#Library #Hack
Only
Как часто вы сталкивались с тем, что тестировщик нервно жмет на кнопку, какой-то экран у вас открывается несколько раз и вам прилетает баг? Малоприятная ситуация. Приходится идти и рассказывать, что это не баг, а ситуация на которую не распространяется проверка в приложении и в реальном мире таких ситуаций не происходит.
Но бывают случаи, когда менеджер заставлял делать затычку, обычно в виде
Библиотека Only предоставляет простое API, которое позволяет выполнять действия строго не более указанного вами количества раз.
Only
Как часто вы сталкивались с тем, что тестировщик нервно жмет на кнопку, какой-то экран у вас открывается несколько раз и вам прилетает баг? Малоприятная ситуация. Приходится идти и рассказывать, что это не баг, а ситуация на которую не распространяется проверка в приложении и в реальном мире таких ситуаций не происходит.
Но бывают случаи, когда менеджер заставлял делать затычку, обычно в виде
boolean флага, которая будет блокировать выполнение действий множество раз ☹️. Что делать если таких кнопок в вашем приложении много?Библиотека Only предоставляет простое API, которое позволяет выполнять действия строго не более указанного вами количества раз.
#Kotlin #DSL
How do Kotlin DSL libraries work?
Kotlin DSL - это удобный декларативный формат работы с различным API. Множество различных библиотек и фреймворков имеют его поддержку: Gradle, Anko, Koin DI, Spek.
Хотите понять как реализовано Kotlin DSL в различных библиотеках и использовать его у себя в приложение? Читайте больше подробностей в статье
How do Kotlin DSL libraries work?
Kotlin DSL - это удобный декларативный формат работы с различным API. Множество различных библиотек и фреймворков имеют его поддержку: Gradle, Anko, Koin DI, Spek.
Хотите понять как реализовано Kotlin DSL в различных библиотеках и использовать его у себя в приложение? Читайте больше подробностей в статье
Brunoaybar
How do Kotlin DSL libraries work?
Many new and shiny Kotlin libraries implement their own DSLs. Learn how they work and how can you implement your own.
Темная тема - это тренд. Особенно с приходом Android Q. Как у ваших приложений обстоят дела с поддержкой этой функции?
Final Results
16%
Уже реализовано
26%
Планируем адатировать в ближайшее время
12%
Надеемся на инвертирование цветов
46%
Не планируем поддержки
#Design #DarkTheme
Design for the Dark Theme
Темная тема с приходом Android Q становится горячей темой, хотя и возможность его реализовать в Android присутствует уже давно. С чего же начать путь в добавление поддержки темной темы вашему приложению? Своим опытом делятся разработчики Shutter Points адаптации темной темы для своего продукта.
Design for the Dark Theme
Темная тема с приходом Android Q становится горячей темой, хотя и возможность его реализовать в Android присутствует уже давно. С чего же начать путь в добавление поддержки темной темы вашему приложению? Своим опытом делятся разработчики Shutter Points адаптации темной темы для своего продукта.
Medium
Design for the Dark Theme
Bringing the dark UI on Android apps
#KotlinEverywhere #Meetup #Lviv
KOTLIN/Everywhere meetUp Lviv
Сегодня, 25 июня, во Львове состоится митап от Lviv Kotlin User Group, на котором вы сможете узнать еще больше о Kotlin:
👉 Автоматизация, которой мы заслуживаем / Roma Marinsky
👉 Andropower of Kotlin DSL / Kirill Rozov
👉 Using Kotlin on the backend and mobile client / Roman Khrupa & Mike Borodin
🎉 Afterparty в MolodoZeleno
Место проведения: Lemkivska St, 15, L'viv
Время и дата: 18.00, 25 июня, вторник
KOTLIN/Everywhere meetUp Lviv
Сегодня, 25 июня, во Львове состоится митап от Lviv Kotlin User Group, на котором вы сможете узнать еще больше о Kotlin:
👉 Автоматизация, которой мы заслуживаем / Roma Marinsky
👉 Andropower of Kotlin DSL / Kirill Rozov
👉 Using Kotlin on the backend and mobile client / Roman Khrupa & Mike Borodin
🎉 Afterparty в MolodoZeleno
Место проведения: Lemkivska St, 15, L'viv
Время и дата: 18.00, 25 июня, вторник
#RxJava
RxJava 3.0-RC0
Состоялся выход первого релиз кандидата следующей мажорной версии библиотеки RxJava 3.0.
Подробностей об изменениях пока немного, т.к. разработка еще продолжается. В основном это рефакторинг API и добавление nullability аннотаций в коде.
Ждем больше информации и стабильного релиза ⌛
RxJava 3.0-RC0
Состоялся выход первого релиз кандидата следующей мажорной версии библиотеки RxJava 3.0.
Подробностей об изменениях пока немного, т.к. разработка еще продолжается. В основном это рефакторинг API и добавление nullability аннотаций в коде.
Ждем больше информации и стабильного релиза ⌛
GitHub
Release 3.0.0-RC0 · ReactiveX/RxJava
Maven
This is an early release for 3.0.0 to verify the release process still works for the new artifact location.
This release note does not detail the changes since 2.2.x. Please check out the wik...
This is an early release for 3.0.0 to verify the release process still works for the new artifact location.
This release note does not detail the changes since 2.2.x. Please check out the wik...
#RxJava #Puzzler
I bet your RxJava is on the wrong thread
Проверьте свои силы, решив 9 пазлов, и узнайте насколько хорошо вы знаете RxJava и особенности её работы на различных потоках
I bet your RxJava is on the wrong thread
Проверьте свои силы, решив 9 пазлов, и узнайте насколько хорошо вы знаете RxJava и особенности её работы на различных потоках
Medium
Dionysis’ desk – Medium
Android code, life thoughts and more..
#ArchitectureComponents, #DataBinding #Coroutines
ViewModels with Saved State, Jetpack Navigation, Data Binding and Coroutines
👉 Поддержка сохранения состояния в
👉 Интеграция между Navigation библиотекой и
👉 Использование
👉 Поддержка Kotlin Coroutines в
ViewModels with Saved State, Jetpack Navigation, Data Binding and Coroutines
Architecture Components, представленные в 2017 году, значительно повлияли на разработку Android приложений. ViewModel используется в более чем 40% процентов приложений. За счет такой большой популярности это компонент все активнее и развивается и обрастает новыми функциями:👉 Поддержка сохранения состояния в
ViewModel👉 Интеграция между Navigation библиотекой и
ViewModel👉 Использование
ViewModel в DataBinding👉 Поддержка Kotlin Coroutines в
ViewModel на основе viewModelScopeMedium
ViewModels with Saved State, Jetpack Navigation, Data Binding and Coroutines
Since its introduction, ViewModel has become one of the most “core” Android Jetpack libraries. Based on our 2019 Developer Benchmarking…
#Quiz
Android Broadcast Kotlin Quiz
Хотите узнать насколько вы круты в Kotlin? Организаторы Kotlin Night Kiev любезно поделились со мной своими материалами. На основе их я сделал тест. Пройдите его и присоединяйтесь в зал славы.
Все касательно теста обсуждаем в @android_broadcast_discussions
Android Broadcast Kotlin Quiz
Хотите узнать насколько вы круты в Kotlin? Организаторы Kotlin Night Kiev любезно поделились со мной своими материалами. На основе их я сделал тест. Пройдите его и присоединяйтесь в зал славы.
Все касательно теста обсуждаем в @android_broadcast_discussions
Google Docs
Android Broadcast Kotlin Quiz
Great thanks for the organizers of Kotlin Night Kiev for source
#Architecture #Modularization
Глубокое погружение в модуляризацию
Android проекты активно растут в своих размерах, мы используем все больше технологий, затягиваем новые библиотеки, стараемся следовать лучшим практикам и реализовать
Что все это было качественно реализовано и вы могли эффективно масштабироваться, рекомендуется использовать многомодульную архитектуру.
Jeroen Mols сделал серию статей на тему многомодульности. В них вы можете найти ответы на свои вопросы и увидеть реальные примеры:
1️⃣ Why you should care?
2️⃣ A successful architecture
3️⃣ Real-life example
4️⃣ How to approach
5️⃣ Lessons learned
Глубокое погружение в модуляризацию
Android проекты активно растут в своих размерах, мы используем все больше технологий, затягиваем новые библиотеки, стараемся следовать лучшим практикам и реализовать
Clean Architecture. Что все это было качественно реализовано и вы могли эффективно масштабироваться, рекомендуется использовать многомодульную архитектуру.
Jeroen Mols сделал серию статей на тему многомодульности. В них вы можете найти ответы на свои вопросы и увидеть реальные примеры:
1️⃣ Why you should care?
2️⃣ A successful architecture
3️⃣ Real-life example
4️⃣ How to approach
5️⃣ Lessons learned
#OkHttp #networking #Kotlin
OkHttp 4 Goes Kotlin
Состоялся релиз новой версии самого популярного HTTP клиента для Android - OkHttp 4.0. Главное изменение - библиотека была полностью переписана на Kotlin.
Несмотря на переход на новый язык, осталась полная бинарная совместимость на уровне Java и Kotlin кода с предыдущей версией. Это значит что вы можете обновиться на новую версию и вам не придется переписывать код.
Библиотека потребует обновлений для тех кто использует:
👉 ProGuard: найдены проблемы при работе с OkHttp. R8 работает без проблем
👉 Mockito + OkHttp: 26 методов в OkHttpClient стали финальными и поменялась идеология как правильно тестировать OkHttp
👉 Advanced Profiling в Android Studio: пока не работает, ждем обновлений от Google
OkHttp 4 Goes Kotlin
Состоялся релиз новой версии самого популярного HTTP клиента для Android - OkHttp 4.0. Главное изменение - библиотека была полностью переписана на Kotlin.
Несмотря на переход на новый язык, осталась полная бинарная совместимость на уровне Java и Kotlin кода с предыдущей версией. Это значит что вы можете обновиться на новую версию и вам не придется переписывать код.
Библиотека потребует обновлений для тех кто использует:
👉 ProGuard: найдены проблемы при работе с OkHttp. R8 работает без проблем
👉 Mockito + OkHttp: 26 методов в OkHttpClient стали финальными и поменялась идеология как правильно тестировать OkHttp
👉 Advanced Profiling в Android Studio: пока не работает, ждем обновлений от Google
#Kotlin #Collections #Sequence
Красивая визуализация в отличие использовании операций для Collection и Sequence от Florina Muntenescu
Красивая визуализация в отличие использовании операций для Collection и Sequence от Florina Muntenescu
#Giphy #SDK
Представлено Android и iOS SDK для Giphy
Любите веселые анимашки с GIPHY? Тогда теперь вы можете сделать интеграцию между своими приложением и этим сервисом!
Представлено Android и iOS SDK для Giphy
Любите веселые анимашки с GIPHY? Тогда теперь вы можете сделать интеграцию между своими приложением и этим сервисом!
#Podcast #DEX #ART #Dalvik #UnderTheHood
Android Dev Podcast #96: DEX формат, его инструментация и Android рантаймы
Продолжительность: 1:08:44
Подходит к концу рабочая неделя и все готовяться отдохнуть. Самое время где-нибудь лечь на солнышке, расслабиться и послушать интересный подкаст.
В последнем выпуске ребята из Android Dev Podcast рассказывают о том как под капотом Android исполняется и оптимизируется код
Android Dev Podcast #96: DEX формат, его инструментация и Android рантаймы
Продолжительность: 1:08:44
Подходит к концу рабочая неделя и все готовяться отдохнуть. Самое время где-нибудь лечь на солнышке, расслабиться и послушать интересный подкаст.
В последнем выпуске ребята из Android Dev Podcast рассказывают о том как под капотом Android исполняется и оптимизируется код
SoundCloud
Android Dev Podcast #96
Это наш второй эксперимент с погружением в особенности платформы. На этот раз погрузились в .dex формат, его интерпретацию, JIT, AOT и инструменты его исследования.
1. DEX формат: зачем, особенности,
1. DEX формат: зачем, особенности,
#Fuchsia
Будущее уже здесь - fuchsia.dev
Появился сайт с документацией ОС с открытым исходным кодов - Fuchsia. Та новая операционка от Google, вокруг которой давно ходят слухи.
На сайте уже можно найти следующее:
👉 Описание ОС Fuchsia
👉 Разработка под новую ОС
👉 Обзор системы
👉 Ядро Zircon (не Linux)
👉 Fuchsia SDK Reference
Будущее уже здесь - fuchsia.dev
Появился сайт с документацией ОС с открытым исходным кодов - Fuchsia. Та новая операционка от Google, вокруг которой давно ходят слухи.
На сайте уже можно найти следующее:
👉 Описание ОС Fuchsia
👉 Разработка под новую ОС
👉 Обзор системы
👉 Ядро Zircon (не Linux)
👉 Fuchsia SDK Reference
#Room #Kotlin
How to create M:N Relationship with Room and Kotlin
Room - очень удобная ORM для Android. Ее отличительные особенности:
👉 удобство использования
👉 интеграция с Architecture Components и другими популярными библиотеками
👉 отсутствие рефлексии
Но не все возможности поддерживаются этой библиотекой, например из коробки нет возможности построить отношение M : N 😦. В статье вы найдете рецепт как исправить отсутствие этой функции (я надеюсь что с будущими релизами ее исправят).
How to create M:N Relationship with Room and Kotlin
Room - очень удобная ORM для Android. Ее отличительные особенности:
👉 удобство использования
👉 интеграция с Architecture Components и другими популярными библиотеками
👉 отсутствие рефлексии
Но не все возможности поддерживаются этой библиотекой, например из коробки нет возможности построить отношение M : N 😦. В статье вы найдете рецепт как исправить отсутствие этой функции (я надеюсь что с будущими релизами ее исправят).
Medium
How to create M:N Relationship with Room and Kotlin
In this article i will explain how to create a relationship Many to Many using Room. I’ll try to be more practice as possible, without…
#JetpackCompose #UI
Погружение в Jetpack Compose
Текущий тренд во всей разработке с UI - декларативные фреймворки. Jetpack Compose - решение этого вопросы для Android. Пока оно очень сырое и не готово к использованию в боевых приложениях, но уже можно посмотреть на то как мы будем писать UI через 1-2 года.
Погружение в Jetpack Compose
Текущий тренд во всей разработке с UI - декларативные фреймворки. Jetpack Compose - решение этого вопросы для Android. Пока оно очень сырое и не готово к использованию в боевых приложениях, но уже можно посмотреть на то как мы будем писать UI через 1-2 года.
Хабр
Погружение в Jetpack Compose
Всем привет. Перед уходом на выходные спешим поделиться с вами еще одним переводом, подготовленным специально для студентов курса «Android-разработчик. Продвинутый курс». Пробуем новый...
#Korlin #Parcelable
Kotlin Android Extensions: Parcelize
Android - особенная ОС, поэтому ей даже сделали особенный формат сериализации данных - Parcelable. Конечно он быстрее, лучше и весь такой крутой по сравнению с
Kotlin сделал нашу жизнь лучше и даже сделали специальное расширение, которое упрощает жизнь разработчикам под Android - Kotlin Android Extensions, в рамках которого есть функция, упрощающая реализацию
Kotlin Android Extensions: Parcelize
Android - особенная ОС, поэтому ей даже сделали особенный формат сериализации данных - Parcelable. Конечно он быстрее, лучше и весь такой крутой по сравнению с
Serializable, но проблема в одном - множество boilerplate кода, который надо писать, а все мы знаем, что разработчики ленивы 😁Kotlin сделал нашу жизнь лучше и даже сделали специальное расширение, которое упрощает жизнь разработчикам под Android - Kotlin Android Extensions, в рамках которого есть функция, упрощающая реализацию
Parcelable. Для этого вам необходимо добавить аннотацию @Parcelize к вашему классу.#Gradle
Вышел Gradle 5.5
Новый релиз системы для сборки приложений
👉 Трансформация зависимостей во время их поиска
👉 init плагин теперь поддерживает JUnit 5 и генерацию проекта для Gradle плагина
👉 Обновлена документация по сборки нативных приложений с Gradle
👉 Исправление багов
Улучшения для разработчиков
👉 Возможность выполнять inject системных сервисов (ObjectFactory, WorkerExecutor и пр.) в абстрактные поля
👉 Добавлены методы для создания domain object collection в ObjectFactory: domainObjectContainer() и domainObjectSet()
👉 Собственные типы, такие как
👉 Больше документации по написанию собственных плагинов
Вышел Gradle 5.5
Новый релиз системы для сборки приложений
Gradle принес ряд новых возможностей:👉 Трансформация зависимостей во время их поиска
👉 init плагин теперь поддерживает JUnit 5 и генерацию проекта для Gradle плагина
👉 Обновлена документация по сборки нативных приложений с Gradle
👉 Исправление багов
Улучшения для разработчиков
Gradle плагинов:👉 Возможность выполнять inject системных сервисов (ObjectFactory, WorkerExecutor и пр.) в абстрактные поля
👉 Добавлены методы для создания domain object collection в ObjectFactory: domainObjectContainer() и domainObjectSet()
👉 Собственные типы, такие как
Task, Plugin или Project, могут быть реализованы как абстрактные классы👉 Больше документации по написанию собственных плагинов
#Dagger #Kotlin #DependencyInjection
Painless Dagger+Android+Kotlin
Dagger 2 - самый популярный DI на Android. Но не все так идеально, так как приходится писать слишком много boileplate кода для его работы. Как уменьшить количество этих строк в ваших исходниках? Воспользуйтесь основными рекомендациями:
1️⃣ Не используйте dagger-android
2️⃣ Используйте
3️⃣ Используйте inject в конструкторы вместо объявление зависимостей в модулях
4️⃣ Для предоставления зависимостей, тип которых является интерфейс используйте @Binds
5️⃣ Не используйте
Лично от себя рекомендую обратить внимание на простые библиотеки, разработанные в EPAM:
👉 Assisted ViewModel - упрощение inject
👉 Dagger Generate Binds - упрощение объявление @Binds
Painless Dagger+Android+Kotlin
Dagger 2 - самый популярный DI на Android. Но не все так идеально, так как приходится писать слишком много boileplate кода для его работы. Как уменьшить количество этих строк в ваших исходниках? Воспользуйтесь основными рекомендациями:
1️⃣ Не используйте dagger-android
2️⃣ Используйте
androix.fragment 1.1.0, в которой появились возможность делать inject зависимостей в конструктор Fragment с использованием FragmentFactory3️⃣ Используйте inject в конструкторы вместо объявление зависимостей в модулях
4️⃣ Для предоставления зависимостей, тип которых является интерфейс используйте @Binds
5️⃣ Не используйте
Dagger Component для получения зависимостей оттудаЛично от себя рекомендую обратить внимание на простые библиотеки, разработанные в EPAM:
👉 Assisted ViewModel - упрощение inject
ViewModel👉 Dagger Generate Binds - упрощение объявление @Binds
Medium
Painless Dagger+Android+Kotlin
Historically the words “Dagger” and “painless” have been mutually exclusive. Dagger has often been associated with complex configuration…
#Conference #Minsk #MobilePeople
Последние 3 месяца сообщество Mobile People (и я в том числе) готовило для вас большое мероприятие - Mobile People Day в рамках RS Conf.
В рамках конференции вы можете услышать доклады по Android, iOS и Flutter. Вас ждут 14 спикеров с докладами в горячих темах современной разработки:
👉 Йонатан Левин@monday.com -
👉 Александр Блинов@Headhunter - ведущий
👉 Elaine Dias Batista@SFEIR -
👉 Muhammed Salih Guler@Onefootball GmbH -
👉 Anastasiia Voitova@Cossack Labs - специалист по безопасности мобильных приложений
👉 Дмитрий Мовчан@KasperskyLab - организатор
Когда: 9 августа 2019
Формат: 1 день ➡️ 2 потока ➡️13 докладов
Место: Культурный хаб OK16 (карта)
Больше спикеров и информации о них вы можете найти на сайте конференции
* GDE - Google Developer Expert
Последние 3 месяца сообщество Mobile People (и я в том числе) готовило для вас большое мероприятие - Mobile People Day в рамках RS Conf.
В рамках конференции вы можете услышать доклады по Android, iOS и Flutter. Вас ждут 14 спикеров с докладами в горячих темах современной разработки:
👉 Йонатан Левин@monday.com -
Android GDE, основатель Android Academy👉 Александр Блинов@Headhunter - ведущий
Android Dev Podcast👉 Elaine Dias Batista@SFEIR -
Google Assistant GDE👉 Muhammed Salih Guler@Onefootball GmbH -
Flutter GDE👉 Anastasiia Voitova@Cossack Labs - специалист по безопасности мобильных приложений
👉 Дмитрий Мовчан@KasperskyLab - организатор
Android Academy в МосквеКогда: 9 августа 2019
Формат: 1 день ➡️ 2 потока ➡️13 докладов
Место: Культурный хаб OK16 (карта)
Больше спикеров и информации о них вы можете найти на сайте конференции
* GDE - Google Developer Expert