#Dagger #Factory #Kotlin
Injection into Android Component’s Constructors is real
Что вас огорчает в Kotlin? Меня огорчает костыль в виде
В статье я написал руководство как при помощи Dagger можно реализовать это, а также увеличить производительность вашего кода.
Injection into Android Component’s Constructors is real
Что вас огорчает в Kotlin? Меня огорчает костыль в виде
lateinit
для inject зависимостей. Я считаю, что стоит это сделать по нормальному и доставлять все зависимости при создании в конструктор. Но как это сделать для Activity
или Fragment
, так как все знают правило - "Все компоненты Android должны иметь конструкторы по умолчанию"? В статье я написал руководство как при помощи Dagger можно реализовать это, а также увеличить производительность вашего кода.
Medium
Injection into Android Component’s Constructors is real
How to inject dependencies into Android Components constructors with Dagger 2
#ConstraintLayout #UI
ConstraintLayout Flow: Simple Grid Building Without Nested Layouts
ConstraintLayout 2.0 предоставил возможность virtual helper object, который по сути являются правилами для размещения группы View. Пример такого объекта - Flow. Он позволяет размещать View по сетке, наподобие того как делает Google FlexboxLayout.
В статье разбираются возможности ConstraintLayout Flow и как их реализовать.
ConstraintLayout Flow: Simple Grid Building Without Nested Layouts
ConstraintLayout
- это layout, который предназначен для реализации сложных иерархий View и предоставляет обширные возможности, которые позволяют вам избегать многоуровневой иерархии.ConstraintLayout 2.0 предоставил возможность virtual helper object, который по сути являются правилами для размещения группы View. Пример такого объекта - Flow. Он позволяет размещать View по сетке, наподобие того как делает Google FlexboxLayout.
В статье разбираются возможности ConstraintLayout Flow и как их реализовать.
#Coroutines #Testing
Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher
Разбор возможностей TestCoroutineDispatcher, который позволяет эффективно выполнять тесты. В его возможности входит:
👉 Вызов функции delay() не приводит к паузе
👉 Возможность приостанавливать выполнение всех Coroutine в этом
👉 Останавливать все Coroutine в рамках
Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher
Разбор возможностей TestCoroutineDispatcher, который позволяет эффективно выполнять тесты. В его возможности входит:
👉 Вызов функции delay() не приводит к паузе
👉 Возможность приостанавливать выполнение всех Coroutine в этом
CoroutineDispatcher
👉 Останавливать все Coroutine в рамках
CoroutineDispatcher
craigrussell
Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher
Kotlin coroutines provide an elegant way to write asynchronous code, but sometimes coroutines make it difficult to write unit tests. This post describes how to use TestCoroutineDispatcher to write efficient and stable unit tests for code written with coroutines.
#Hackaton #Minsk #AndroidAcademy
22 ноября состоится хакатон, который завершит второй курс Android Fundamentals от Android Academy Minsk. В рамках хакатона вы можете показать свои навыки программирования, создав за сутки концепт приложения. Любая идея, любая сложность, любой API или SDK для использования.
Основная идея - создавать крутые проекты, писать код, разговаривать, делиться и танцевать! :)
Можно участвовать своей командой, можно участвовать в одиночку. Новичок вы или профи - вы тоже можете принять участие.
Хакатон пройдет с 22 ноября 16:00 до 23 ноября 16:00. Еда, напитки и одеяла будут предоставлены
Все свои вопросы можно задать организаторам в @androidacademyminsk
22 ноября состоится хакатон, который завершит второй курс Android Fundamentals от Android Academy Minsk. В рамках хакатона вы можете показать свои навыки программирования, создав за сутки концепт приложения. Любая идея, любая сложность, любой API или SDK для использования.
Основная идея - создавать крутые проекты, писать код, разговаривать, делиться и танцевать! :)
Можно участвовать своей командой, можно участвовать в одиночку. Новичок вы или профи - вы тоже можете принять участие.
Хакатон пройдет с 22 ноября 16:00 до 23 ноября 16:00. Еда, напитки и одеяла будут предоставлены
Все свои вопросы можно задать организаторам в @androidacademyminsk
#RenderScript #Image
RenderScript - это фреймворк для выполнения сложных вычислений с высокой производительностью.
https://github.com/rumboalla/coolrs - это библиотека, которая предоставляет различные эффекты для изображений
RenderScript - это фреймворк для выполнения сложных вычислений с высокой производительностью.
RenderScript
предназначен для параллельных вычислений, задействуя для этого различные типы процессоров на устройстве: CPU и GPU. Распространенное применения - обработка фотографий или компьютерное зрение.https://github.com/rumboalla/coolrs - это библиотека, которая предоставляет различные эффекты для изображений
GitHub
GitHub - rumboalla/coolrs: CoolRs is a collection of Android Renderscript effects.
CoolRs is a collection of Android Renderscript effects. - rumboalla/coolrs
#Dagger #UnderTheHood
Dagger Android — Behind the Scenes
Самый популярный фреймворк для DI на Android - Dagger 2. Для фан базы создатели этого DI реализовали специальное расширение Dagger - dagger-android. Суть его в том чтобы упростить доставку зависимостей в Android компоненты.
Стало ли это проще? Спорно. Чтобы все это работало надо еще написать кучу кода и добавить отдельный процессор аннотаций.
В статье разбирается как под капотом работает
Dagger Android — Behind the Scenes
Самый популярный фреймворк для DI на Android - Dagger 2. Для фан базы создатели этого DI реализовали специальное расширение Dagger - dagger-android. Суть его в том чтобы упростить доставку зависимостей в Android компоненты.
Стало ли это проще? Спорно. Чтобы все это работало надо еще написать кучу кода и добавить отдельный процессор аннотаций.
В статье разбирается как под капотом работает
dagger-android
и чего стоит его удобствоMedium
Dagger Android — Behind the Scenes
Understanding Dagger 2 itself is already a challenge for many. With Dagger Android, it becomes even more confusing how things works…
#Jetpack
AndroidX Release Notes RSS
Google наконец-то упростила отслеживание обновление в Jetpack/AndroidX и предоставили RSS. C другой стороны каждое обновление вы можете найти в #JetpackWeekly с более подробным описанием.
AndroidX Release Notes RSS
Google наконец-то упростила отслеживание обновление в Jetpack/AndroidX и предоставили RSS. C другой стороны каждое обновление вы можете найти в #JetpackWeekly с более подробным описанием.
#Gradle
Avoiding dependency hell with Gradle 6
Недавно вышедший Gradle 6 значительно расширил возможности по управлению зависимостями и более гибко управлять ими. Например избегать какой либо версии зависимости или использовать только допустимую версию.
Также вся эта информация записывается в специальный файл Gradle Module Metadata и загружается при публикации в репозиторий, так что все сторонние библиотеки также теперь могут использовать всю мощь ограничений и поставлять ее пользователям.
Также была значительно переработана документация по управлению зависимостями.
Avoiding dependency hell with Gradle 6
Недавно вышедший Gradle 6 значительно расширил возможности по управлению зависимостями и более гибко управлять ими. Например избегать какой либо версии зависимости или использовать только допустимую версию.
Также вся эта информация записывается в специальный файл Gradle Module Metadata и загружается при публикации в репозиторий, так что все сторонние библиотеки также теперь могут использовать всю мощь ограничений и поставлять ее пользователям.
Также была значительно переработана документация по управлению зависимостями.
blog.gradle.org
Avoiding dependency hell with Gradle 6
Dependency hell is a big problem for many teams. The larger the project and its dependency graph, the harder it is to maintain it.
The solutions provided by existing dependency management tools are insuffici...
The solutions provided by existing dependency management tools are insuffici...
В прошлом году прошел первый курс SchoolKt. В начале следующего хочется сделать его продолжение. Какой формат вы хотели бы увидеть?
Final Results
4%
Сделать курс "Basic Kotlin" (с нуля)
42%
Сделать курс "Advanced Kotlin"
35%
Сделать курс с упором на Kotlin в Android
9%
Сделать воркошопы по отдельным темам
10%
Не интересует
#GooglePlay
Still Using InstallBroadcast? Switch to the Play Referrer API by March 1, 2020
Google предупреждает всех тех кто отслеживает источник установки приложения из Google Play (рекламный баннер, поиск и пр.) пора отказываться от
Still Using InstallBroadcast? Switch to the Play Referrer API by March 1, 2020
Google предупреждает всех тех кто отслеживает источник установки приложения из Google Play (рекламный баннер, поиск и пр.) пора отказываться от
INSTALL_REFERRER
broadcast и мигрировать на Play Install Referrer Library. Старое API будет отключено 1 марта 2020 годаAndroid Developers Blog
Still Using InstallBroadcast? Switch to the Play Referrer API by March 1, 2020
Posted by Marcus Leal, Product Manager, Google Play Ads How do people find your app? It’s the million-dollar question for any develop...
#Kotlin #Course #Online
Learn Advanced Android Development in Kotlin
Недавно Google представила курс "Advanced Android development in Kotlin". Бесплатный онлайн курс научит вас продвинутым навыкам для разработки Android приложений, используя Kotlin.
Learn Advanced Android Development in Kotlin
Недавно Google представила курс "Advanced Android development in Kotlin". Бесплатный онлайн курс научит вас продвинутым навыкам для разработки Android приложений, используя Kotlin.
YouTube
Learn Advanced Android Development in Kotlin
Advanced Android development in Kotlin, developed by Google together with Udacity, is a free, self-paced online course that teaches advanced skills for building Android apps using the Kotlin programming language.
Take the course → https://goo.gle/2CzDVCk…
Take the course → https://goo.gle/2CzDVCk…
К моей недавней статье "Injection into Android Component’s Constructors is real" сделал замечание разработчик
Он поделился тем что child fragment по умолчанию используют
Fragment
-ов Ian Lake. Он поделился тем что child fragment по умолчанию используют
FragmentFactory
parent fragment. Для FragmentActivity
и Fragment
в ней это не работает 😐Medium
Injection into Android Component’s Constructors is real
How to inject dependencies into Android Components constructors with Dagger 2
Android Broadcast
В прошлом году прошел первый курс SchoolKt. В начале следующего хочется сделать его продолжение. Какой формат вы хотели бы увидеть?
Спасибо всем кто поучаствовал в опросе. В ближайшее время я буду формировать программу и собирать команду. Буду рад услышать от вас предложения по темам. Присоединяйтесь в Slack SchoolKt чтобы обсудить что вы хотите услышать и увидеть на курсе. Сейчас именно вы влияете на программу!
#ArchitectureComponents #Navigation #DynamicFeature
Navigation with Dynamic Feature Modules
Android Architecture Components - набор библиотек, который решил много проблем Android разработчиков и дал множество простых решений, одним из который является Navigation, который упрощает переходы между экранами в Android приложениях.
В свою очередь Google до сих пор не представила стабильного решения (пока есть только SNAPSHOT сборки) для навигации по приложению, когда вы используете Dynamic Delivery.
В статье описывается способ как с помощью Deep Link и Activity медиатора для обработки все таких ссылок достигается зен Navigation + Dynamic Delivery.
Navigation with Dynamic Feature Modules
Android Architecture Components - набор библиотек, который решил много проблем Android разработчиков и дал множество простых решений, одним из который является Navigation, который упрощает переходы между экранами в Android приложениях.
В свою очередь Google до сих пор не представила стабильного решения (пока есть только SNAPSHOT сборки) для навигации по приложению, когда вы используете Dynamic Delivery.
В статье описывается способ как с помощью Deep Link и Activity медиатора для обработки все таких ссылок достигается зен Navigation + Dynamic Delivery.
Medium
Navigation with Dynamic Feature Modules
Recently at work, my team started taking on the challenge of modularising our app, one of the first things we started grappling with…
#Animation
Easy Reveal Android Library
Библиотека, которая упростит вам создание анимации Reveal в разных ее проявлениях: круговой, волна, звезда и пр.
Easy Reveal Android Library
Библиотека, которая упростит вам создание анимации Reveal в разных ее проявлениях: круговой, волна, звезда и пр.
GitHub
GitHub - Chrisvin/EasyReveal: Android Easy Reveal Library
Android Easy Reveal Library. Contribute to Chrisvin/EasyReveal development by creating an account on GitHub.
#Kotlin
Вышел Kotlin 1.3.60 и будущие изменения в Kotlin 1.4
В новой стабильной версии языка вас ждут следующие улучшения:
👉 Улучшение работы Inline классов
👉 Более подробные сообщения об ошибках
👉 IDEA: Улучшена поддержка Scratch файлов
👉 IDEA: Улучшена поддержка Gradle Kotlin DSL
👉 IDEA: Улучшение дебага
👉 IDEA: Улучшение автодополнения
👉 IDEA: Новый конвертер из Java в Kotlin
Также стало известно, что Kotlin 1.4 выйдет когда-то в 2020😁, но уже сейчас можно попробовать функции из новой версии, которые уже готовы:
👉 NPE assertions: теперь выбрасывается
👉 Break & continue внутри
👉 Улучшения в tail-recursive функциях
👉 Запрет на использование
Вышел Kotlin 1.3.60 и будущие изменения в Kotlin 1.4
В новой стабильной версии языка вас ждут следующие улучшения:
👉 Улучшение работы Inline классов
👉 Более подробные сообщения об ошибках
👉 IDEA: Улучшена поддержка Scratch файлов
👉 IDEA: Улучшена поддержка Gradle Kotlin DSL
👉 IDEA: Улучшение дебага
👉 IDEA: Улучшение автодополнения
👉 IDEA: Новый конвертер из Java в Kotlin
Также стало известно, что Kotlin 1.4 выйдет когда-то в 2020😁, но уже сейчас можно попробовать функции из новой версии, которые уже готовы:
👉 NPE assertions: теперь выбрасывается
NullPointerException
вместо IllegalStateException
, в случае когда вы сталкиваетесь с null из Java кода в Kotlin, там где это не ожидается👉 Break & continue внутри
when
👉 Улучшения в tail-recursive функциях
👉 Запрет на использование
open tailrec
функцийThe JetBrains Blog
Kotlin 1.3.60 Released | The Kotlin Blog
We’re happy to present the new release today, Kotlin 1.3.60. In addition to the quality improvements, this version focuses on:
Optimizing the comparison of inline classes.
Tooling improvements fo
Optimizing the comparison of inline classes.
Tooling improvements fo
#Testings
Pixel perfect UI: How to automatize automation testing on Android
Краткий рассказ о подходе к тестированию вашего UI по скриншотам для проверки что при изменении кода или ресурсов в одних местах у вас не едет код в других.
Pixel perfect UI: How to automatize automation testing on Android
Краткий рассказ о подходе к тестированию вашего UI по скриншотам для проверки что при изменении кода или ресурсов в одних местах у вас не едет код в других.
Medium
Pixel perfect UI: How to automatize automation testing on Android
Have you ever modify a dimensions file and realized too late, that this change has affected unexpected parts of your app? This is a common…
#AndroidDevSummit
Итоги Android Dev Summit 2019
Я давно обещал сделать подведение итогов Android Dev Summit 2019. Прошёл уже месяц, но в итоге я это сделал! Просмотрел много статей, видео и перечитал статьи. Видео содержит мое личное мнение по поводу множества новинок. Буду рад услышать и ваше в @android_broadcast_discussions
Итоги Android Dev Summit 2019
Я давно обещал сделать подведение итогов Android Dev Summit 2019. Прошёл уже месяц, но в итоге я это сделал! Просмотрел много статей, видео и перечитал статьи. Видео содержит мое личное мнение по поводу множества новинок. Буду рад услышать и ваше в @android_broadcast_discussions
YouTube
Итоги Android Dev Summit 2019
Подведение итогов Android Dev Summit, прошедшего 22-23 октября. Высказываю свое мнение о новинках, будущем Android в пост Jetpack Compose эре, Android Studio 4.0, Kotlin, новинках Jetpack и пр.
Подписывайтесь на новости для Android разработчиков - t.iss.one/…
Подписывайтесь на новости для Android разработчиков - t.iss.one/…
#Kotlin
Type-safe time calculations using Duration
В Kotlin 1.3.50 был добавлен новый класс Duration (в статусе experimental), цель которого избавиться от вечного использования long в качестве продолжительности и дать полноценные возможности и более строгие проверки в compile time для типов.
Type-safe time calculations using Duration
В Kotlin 1.3.50 был добавлен новый класс Duration (в статусе experimental), цель которого избавиться от вечного использования long в качестве продолжительности и дать полноценные возможности и более строгие проверки в compile time для типов.
Duration
- это inline класс и его влияние на производительность минимально.Okkotlin
Type-safe time calculations using Duration
Dealing with time calculations can be a headache. Let's see how Kotlin's new Duration class makes it easy.