Совсем недавно ребята из Android Dev Podcast организовали продажу своих фирменных маек. Но вот незадача, раздавать они их будут только на российских конференциях. Я решил устранить это досадную несправедливость - Android Broadcast организовал возможность получить футболки в Беларуси.
Цена одной футболки: 40 бел. рублей
Сбор заказов будет проходить до 7 октября 00:00.
Футболку можно будет заказать только по полной предоплате. Все подробности вы узнаете из письма после окончания приема заказов: где можно получить, когда будет заказ и как можно получить.
Цена одной футболки: 40 бел. рублей
Сбор заказов будет проходить до 7 октября 00:00.
Футболку можно будет заказать только по полной предоплате. Все подробности вы узнаете из письма после окончания приема заказов: где можно получить, когда будет заказ и как можно получить.
#DependencyInjection #Koin #Modularization
Setting Up Android Modules with Koin
Dependency Injection - стандарт для современных приложений и как самое популярное решение для этого Dagger 2 на Android. С некотор пор я предпочитаю Koin, так как она более простая и pure Kotlin 😍.
Пригоден ли Koin для модуляризации проект? Сможет ли он поддерживать Dynamic Features? В статье рассматривается как это сделать
Setting Up Android Modules with Koin
Dependency Injection - стандарт для современных приложений и как самое популярное решение для этого Dagger 2 на Android. С некотор пор я предпочитаю Koin, так как она более простая и pure Kotlin 😍.
Пригоден ли Koin для модуляризации проект? Сможет ли он поддерживать Dynamic Features? В статье рассматривается как это сделать
Medium
Setting Up Android Modules with Koin
Experimenting with Koin on a multi-module Android project
#Kotlin #Multiplatform
Переиспользование кода между платформами - горячая тема в мобильной разработке, так как всем сейчас необходимо приложение под популярные мобильные ОС: Android и iOS. Уже было много попыток: Apache Cordova, Xamarin, React Native, Flutter, Ionic, PhoneGap
Kotlin/Multiplatform взглянул на эту тему по новому - разработчики не пишут общий код, которые интерпретируется на конечной платформе с помощью виртуальной машины или запускается в браузере, а вы пишите единый Kotlin код, который потом компилируется в нативный код для конечной платформы. Наиболее близкое к этому решения - Flutter.
Ребята из IceRock запустили канал по мобильной разработке на с использованием Kotlin Multiplatform - @kotlinmpp
Переиспользование кода между платформами - горячая тема в мобильной разработке, так как всем сейчас необходимо приложение под популярные мобильные ОС: Android и iOS. Уже было много попыток: Apache Cordova, Xamarin, React Native, Flutter, Ionic, PhoneGap
Kotlin/Multiplatform взглянул на эту тему по новому - разработчики не пишут общий код, которые интерпретируется на конечной платформе с помощью виртуальной машины или запускается в браузере, а вы пишите единый Kotlin код, который потом компилируется в нативный код для конечной платформы. Наиболее близкое к этому решения - Flutter.
Ребята из IceRock запустили канал по мобильной разработке на с использованием Kotlin Multiplatform - @kotlinmpp
#Span #Text #HTML
Making Nested Lists with Android Spannables in Kotlin
Span - это мощный инструмент для форматирования текста в Android. С ним можно и ссылку в тексте сделать или поменять часть стиля текста.
В статье разбирается как сделать многоуровневые bullet в тексте, реализовать Html.TagHandler
Making Nested Lists with Android Spannables in Kotlin
Span - это мощный инструмент для форматирования текста в Android. С ним можно и ссылку в тексте сделать или поменять часть стиля текста.
В статье разбирается как сделать многоуровневые bullet в тексте, реализовать Html.TagHandler
Medium
Making Nested Lists with Android Spannables in Kotlin
How do you display a nested list on Android? That sounds simple. After all, it’s just one button in Microsoft Word right? It’s a little…
#Conference #Moscow #Promo
Mobius Москва 2019
Вы можете купить билет со скидкой предоставленной специально для Android Broadcast - используйте промокод mobius19mskAndroidBpc и купите билет здесь.
7-8 декабря в Москве пройдет конференция о мобильных технологиях Mobius. Спикеры из компаний LG, Яндекс, Tinkoff, Сбербанк, Вконтакте, JFrog, Amazon, Badoo, Lyft, Mail.Ru расскажут о:
👉 Лучших практиках тестирования
👉 Эффективный UI с Litho
👉 Как создать собственное правило для Android Lint
👉 Лучшие практики Kotlin
👉 Устройство шрифтов
👉 Как защитить ваше приложение
👉 Создание гибких и расширяемых архитектур
👉 Разбор в зоопарке Android систем: Things, Auto, Automotive, Wear, TV и классический вариант для телефонов
👉 Как продвинуть ваше приложение в Google Play и какие пути есть чтобы понравиться поддержке этого сервиса
Mobius Москва 2019
Вы можете купить билет со скидкой предоставленной специально для Android Broadcast - используйте промокод mobius19mskAndroidBpc и купите билет здесь.
7-8 декабря в Москве пройдет конференция о мобильных технологиях Mobius. Спикеры из компаний LG, Яндекс, Tinkoff, Сбербанк, Вконтакте, JFrog, Amazon, Badoo, Lyft, Mail.Ru расскажут о:
👉 Лучших практиках тестирования
👉 Эффективный UI с Litho
👉 Как создать собственное правило для Android Lint
👉 Лучшие практики Kotlin
👉 Устройство шрифтов
👉 Как защитить ваше приложение
👉 Создание гибких и расширяемых архитектур
👉 Разбор в зоопарке Android систем: Things, Auto, Automotive, Wear, TV и классический вариант для телефонов
👉 Как продвинуть ваше приложение в Google Play и какие пути есть чтобы понравиться поддержке этого сервиса
Mobius 2025 Autumn. Конференция по мобильной разработке
Mobius 2025 Autumn | Конференция по мобильной разработке
Mobius 2025 Autumn. Единственная в России профильная IT-конференция для разработчиков мобильных приложений. Android, iOS, Flutter, Kotlin Multiplatform, кроссплатформенная разработка — в десятках докладов, воркшопов и дискуссий.
#Architecture #MVI #PureKotlin
MVIDroid - MVIDroid is a framework written 100% in Kotlin that brings MVI pattern to Android
Хорошая архитектура приложения - это залог успеха вашего приложения. Она позволит вам расширять функционал, покрывать тестами код и другие полезные вещи.
Сам я никогда не был фанатом
MVIDroid - MVIDroid is a framework written 100% in Kotlin that brings MVI pattern to Android
Хорошая архитектура приложения - это залог успеха вашего приложения. Она позволит вам расширять функционал, покрывать тестами код и другие полезные вещи.
Сам я никогда не был фанатом
MVI
, но архитектура довольная интересная. MVIDroid
- это хороший пример реализации это архитектуры на чистом Kotlin без лишнего обвеса и оптимизированная под Android.#Architecture #MVI #PureKotlin
Debugging with MVIDroid
Помимо всего библиотека имеет обширные возможности по отладке: логирование, подмена
Также библиотека имеет функцию
👉 Переключение между состояниями вперед или назад
👉 Просмотр всех событий
👉 Просмотр информации о любом событии
👉 Возможность вызова любого события снова
👉 Поставить breakpoint для любого события
👉 Возможность сериализации/десериализации для передачи событий между устройства
👉 Remote debug
Debugging with MVIDroid
Помимо всего библиотека имеет обширные возможности по отладке: логирование, подмена
MviStore
через Factory
. Также библиотека имеет функцию
Time Travel
- сохранение всех событий, благодаря чему вы может делать различные интересные вещи:👉 Переключение между состояниями вперед или назад
👉 Просмотр всех событий
👉 Просмотр информации о любом событии
👉 Возможность вызова любого события снова
👉 Поставить breakpoint для любого события
👉 Возможность сериализации/десериализации для передачи событий между устройства
👉 Remote debug
#Firebase #FirebaseAppDistribution #Fastlane
Firebase App Distribution, Fastlane, Docker, Bitbucket Pipelines, Telegram, and all that jazz
На днях был представлен публично Firebase App Distribution, который упрощает доставку сборок вашего приложения тестерам.
В статье рассматривается как настроить новый способ доставки сборок на вашем CI с помощью Docker и Fastlane
Firebase App Distribution, Fastlane, Docker, Bitbucket Pipelines, Telegram, and all that jazz
На днях был представлен публично Firebase App Distribution, который упрощает доставку сборок вашего приложения тестерам.
В статье рассматривается как настроить новый способ доставки сборок на вашем CI с помощью Docker и Fastlane
Medium
Firebase App Distribution, Fastlane, Docker, Bitbucket Pipelines, Telegram, and all that jazz
Long-awaited Firebase App Distribution is here🔥
#Gradle #AndroidGradlePugin
Трансформация кода в Android
Писать boilerplate никто не любит. Сначала это упростили написанием библиотек, потом была рефлексия, затем Annotation Processor и наконец генерация кода с помощью Gradle плагина. Например, с помощью этого работает Android Data Binding.
В статье рассматривается как с помощь Transfrom API написать Gradle плагин, который сохраняет указанные данные в состояние
Трансформация кода в Android
Писать boilerplate никто не любит. Сначала это упростили написанием библиотек, потом была рефлексия, затем Annotation Processor и наконец генерация кода с помощью Gradle плагина. Например, с помощью этого работает Android Data Binding.
В статье рассматривается как с помощь Transfrom API написать Gradle плагин, который сохраняет указанные данные в состояние
Activity
и какие эффекты это несет на время сборкиХабр
Трансформация кода в Android
Вторая часть Вместо вступления Всё началось с того, что мне захотелось изучить тонкости настройки Gradle, понять его возможности в Android разработке (да и вообще). Начал с жизненного цикла и...
#Architecture #CleanArchitecture
Multiple ways of defining Clean Architecture layers
Хорошая архитектура - это ключевой элемент для построения приложения которое может делиться на модули, расширяться, упрощать поддержку, обеспечивать тестирование и др.
Чтобы достичь этого мы используем такие подходы как Clean Architecture (CA), S.O.L.I.D., Dependency Injection
В статье рассматриваются различные подходы какие используются для реализации CA:
1️⃣ CA слов в одно модуле
2️⃣ Один CA слой - один модуль
3️⃣ CA слои в feature модуле
4️⃣ CA слои в отдельных модулях для каждой feature
Также проводится сравнение решений
Multiple ways of defining Clean Architecture layers
Хорошая архитектура - это ключевой элемент для построения приложения которое может делиться на модули, расширяться, упрощать поддержку, обеспечивать тестирование и др.
Чтобы достичь этого мы используем такие подходы как Clean Architecture (CA), S.O.L.I.D., Dependency Injection
В статье рассматриваются различные подходы какие используются для реализации CA:
1️⃣ CA слов в одно модуле
2️⃣ Один CA слой - один модуль
3️⃣ CA слои в feature модуле
4️⃣ CA слои в отдельных модулях для каждой feature
Также проводится сравнение решений
Medium
Multiple ways of defining Clean Architecture layers
Good architecture is a key to build the modular, scalable, maintainable and testable application. Uncle Bob Clean Architecture (CA) is a…
#DependencyInjection #Modularization
Setting Up Android Modules With Kodein
Руководство как осуществлять модуляризацию при использовании Kodein
Setting Up Android Modules With Kodein
Руководство как осуществлять модуляризацию при использовании Kodein
Medium
Setting Up Android Modules With Kodein
Comparison with Koin and Dagger 2
#Kotlin #Optimization
Kotlin: cleaning Java bytecode before release
Многие говорят о том, что Kotlin генерирует много дополнительного Java байткода и результат не оптимальный. Это незначительно влияет на производительность и объем кода. Это не мешает Java сторонникам на этом факте говорить, что их язык лучше.
В статье разбирается как можно избавиться от дополнительно генерированного Java байткода Kotlin компилятором и не платить цену за удобные фичи языка от JetBrains.
Kotlin: cleaning Java bytecode before release
Многие говорят о том, что Kotlin генерирует много дополнительного Java байткода и результат не оптимальный. Это незначительно влияет на производительность и объем кода. Это не мешает Java сторонникам на этом факте говорить, что их язык лучше.
В статье разбирается как можно избавиться от дополнительно генерированного Java байткода Kotlin компилятором и не платить цену за удобные фичи языка от JetBrains.
Medium
Kotlin: cleaning Java bytecode before release
What’s is price of Kotlin null safety and how to remove additional bytecode
#Kotlin #Coroutines
Structured Concurrency Anniversary
Библиотека kotlinx.coroutines имела другой вид до того как в версии 0.26 была внесена новая концептуальная идея -
В статье Роман Елизаров рассказывает о текущем состояние
Например рекомендуется использовать Job только с
Structured Concurrency Anniversary
Библиотека kotlinx.coroutines имела другой вид до того как в версии 0.26 была внесена новая концептуальная идея -
Structured Concurrency
. Эта концепция хорошо подошла для Android с ее сложным жизненным циклом и поэтому была быстра адаптирована и популяризирована. Даже сами разработчики AndroidX и Google рекомендуют использовать Kotlin Coroutines.В статье Роман Елизаров рассказывает о текущем состояние
Structured Concurrency
, какие архитектурные решения хотелось бы изменить и что будет делать.Например рекомендуется использовать Job только с
coroutineContext
в рамках CoroutineScope
. Этому правилу следуют новоиспеченные Flow
, которые запрещают использовать Job и приведут к крэшу приложения.Medium
Structured Concurrency Anniversary
Structured Concurrency for Kotlin Coroutines was announced a year ago. Let’s celebrate this anniversary and see how it turned out to be.
#Animation #Transition #SharedElement
Hidden mistakes with Shared Element Transitions
Анимации - это важный компонент хорошего UI/UX приложения. Они позволяют пользователю понимать что происходит в приложение, выглядеть элементам естественными и оставлять приятные ощущения. Одна из таких анимаций - Shared Element Transition (SET), которая позволяет анимировать переходы между экранами.
Все ли так просто? С какими проблемами столкнулся автор и как их решал? В статье вы найдете подробный рассказ:
👉 Как правильно присваивать идентификаторы
👉 Особенности работы с
👉 Особенности использования загрузчиков картинок с
👉 Правильный момент для вызова
👉 Особенности
Автор потратил около 4 дней чтобы понять эти ошибки, а вы можете получить опыт за 10 минут!
Hidden mistakes with Shared Element Transitions
Анимации - это важный компонент хорошего UI/UX приложения. Они позволяют пользователю понимать что происходит в приложение, выглядеть элементам естественными и оставлять приятные ощущения. Одна из таких анимаций - Shared Element Transition (SET), которая позволяет анимировать переходы между экранами.
Все ли так просто? С какими проблемами столкнулся автор и как их решал? В статье вы найдете подробный рассказ:
👉 Как правильно присваивать идентификаторы
View
для SET
👉 Особенности работы с
SET
с вложенными Fragment👉 Особенности использования загрузчиков картинок с
SET
👉 Правильный момент для вызова
postPostponeTransition()
/startPostponedEnterTransition()
👉 Особенности
RecyclerView
и SET
Автор потратил около 4 дней чтобы понять эти ошибки, а вы можете получить опыт за 10 минут!
Medium
Hidden mistakes with Shared Element Transitions
There is a good practice to make your application beautiful and live, and nowadays there are a lot of tools and ways to achieve this. One…
#R8 #Optimization #jakeWharton
R8 Optimization: Class Reflection and Forced Inlining
В новой серии статей Jake Wharton рассказывает о том как R8 умеет оптимизировать некоторые вызовы рефлексии и принудительный inline методов с помощью
Бойся ProGuard - R8 все качает мышцы и наращивает фичи
R8 Optimization: Class Reflection and Forced Inlining
В новой серии статей Jake Wharton рассказывает о том как R8 умеет оптимизировать некоторые вызовы рефлексии и принудительный inline методов с помощью
-alwaysinline
.Бойся ProGuard - R8 все качает мышцы и наращивает фичи
Jake Wharton
R8 Optimization: Class Reflection and Forced Inlining – Jake Wharton
Какой оптимизатор/обфускатор кода используете вы?
Final Results
30%
R8
49%
ProGuard
9%
Не знаю
12%
Не использую оптимизацию кода
#Multiplatform #Kotlin #CI #CD
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Уже сейчас любому Android разработчику, использующему Kotlin, можно легко заглянуть в будущее языка и узнать как шарить код и с какими проблемами сталкиваются разработчики, которые пишут реальные проекты и выпускаются open source библиотеки.
В статье вы найдёте опыт ребят из Badoo по выстраиванию инфраструктуры CI и CD для сборки и публикации библиотеки Reaktive.
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Kotlin MPP
сейчас одно из самых многообещающих решений для шаринга кода между платформами (мнение лично моё). Да есть Flutter и я жду интересной битвы в будущем.Уже сейчас любому Android разработчику, использующему Kotlin, можно легко заглянуть в будущее языка и узнать как шарить код и с какими проблемами сталкиваются разработчики, которые пишут реальные проекты и выпускаются open source библиотеки.
В статье вы найдёте опыт ребят из Badoo по выстраиванию инфраструктуры CI и CD для сборки и публикации библиотеки Reaktive.
Хабр
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. В...
#Emulator #CI #Docker
Continuous testing with new Android emulator tools
Google открывает доступ к своим скриптам для Docker Container-ов c Android эмулятором, чтобы помочь разработчикам упростить тестирование последних изменений.
Помимо этого Google предоставила следующее:
👉 Скрипт для загрузки эмуляторов (AOSP и Google Play Services)
👉 Генератор Docker образов с Android эмулятором
👉 Поддержка работы по ADB с эмулятором в контейнере
👉 Remote streaming: возможность подключения к эмулятору из контейнера через браузер и видеть что происходит, а также взаимодействовать с ним
Пока образ работает только на Linux, но работы по поддержке macOS и Windows ведутся.
Continuous testing with new Android emulator tools
Google открывает доступ к своим скриптам для Docker Container-ов c Android эмулятором, чтобы помочь разработчикам упростить тестирование последних изменений.
Помимо этого Google предоставила следующее:
👉 Скрипт для загрузки эмуляторов (AOSP и Google Play Services)
👉 Генератор Docker образов с Android эмулятором
👉 Поддержка работы по ADB с эмулятором в контейнере
👉 Remote streaming: возможность подключения к эмулятору из контейнера через браузер и видеть что происходит, а также взаимодействовать с ним
Пока образ работает только на Linux, но работы по поддержке macOS и Windows ведутся.
Android Developers Blog
Continuous testing with new Android emulator tools
Posted by Lingfeng Yang, Android Studio team Developers often use the Android Emulator during their day-to-day development to quickly t...