#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...
#ChromeOS #LargeScreen
VLC optimizes its Android app for immersive video experiences on larger screens
VLC - самый популярный плеер, доступный на любой из современных платформ: Windows, macOS, Android, iOS. Команда приложения захотела сделать его еще более доступным и адаптировать своё Android приложение для корректно работы на Chrome OS. Что для этого надо было сделать:
👉 Поддержка экранов с большой диагональю
👉 Поддержка управления клавиатурой и мышкой
👉 Поддержка работы в плавающем окне
👉 Поддержка изменения размера окна
👉 VLC - это о видео и звуке, а поэтому надо поддержать нативный код для x86 и x86_64, которые популярны в Chromebook-ах
Будет классно услышать кого-то с опытом адаптации Android приложения для Chrome OS в @android_broadcast_discussions
VLC optimizes its Android app for immersive video experiences on larger screens
VLC - самый популярный плеер, доступный на любой из современных платформ: Windows, macOS, Android, iOS. Команда приложения захотела сделать его еще более доступным и адаптировать своё Android приложение для корректно работы на Chrome OS. Что для этого надо было сделать:
👉 Поддержка экранов с большой диагональю
👉 Поддержка управления клавиатурой и мышкой
👉 Поддержка работы в плавающем окне
👉 Поддержка изменения размера окна
👉 VLC - это о видео и звуке, а поэтому надо поддержать нативный код для x86 и x86_64, которые популярны в Chromebook-ах
Будет классно услышать кого-то с опытом адаптации Android приложения для Chrome OS в @android_broadcast_discussions
Android Developers
VLC optimizes its Android app for immersive video experiences on larger screens | Developer stories | Android Developers
This media is not supported in your browser
VIEW IN TELEGRAM
SurveyKit: Create beautiful surveys on Android
Любите делать опросы? Тогда вам пригодится библиотека SurveyKit
Любите делать опросы? Тогда вам пригодится библиотека SurveyKit
#AndroidX
Количество артефактов в Android огромное, чтобы посмотреть их можно полазить в документации либо зайти на maven.google.com. Сегодня сайт стал удобнее - на нем наконец-то появился поиск 🎉
Количество артефактов в Android огромное, чтобы посмотреть их можно полазить в документации либо зайти на maven.google.com. Сегодня сайт стал удобнее - на нем наконец-то появился поиск 🎉
#ConstraintLayout #AndroidX
Awesomeness of ConstraintLayout Flow
Мы уже давно ждем ConstrainLayout 2.0, а особенно MotionLayout + визуальный редактор анимаций в Android Studio! Но вот уже с Google I/O 2019 они весят в статусе beta 😞.
В статье рассматриваются новые элемент - Flow.
Awesomeness of ConstraintLayout Flow
Мы уже давно ждем ConstrainLayout 2.0, а особенно MotionLayout + визуальный редактор анимаций в Android Studio! Но вот уже с Google I/O 2019 они весят в статусе beta 😞.
В статье рассматриваются новые элемент - Flow.
Flow
позволяет улучшить расположение элементов, нечто подобное на Chain, но уже работает не в первом измерение а одновременно по горизонтали и вертикали.Medium
Awesomeness of ConstraintLayout Flow
Constraint Layout Flow
#Gradle #Bazel #Buck
Сборка Android-приложения. Задачка со звёздочкой
Сборка современного Android приложения - непростая задача . Множество библиотек, многомодульность, использование плагинов, процессоров аннотаций и др. Система сборки Gradle не радует своей скоростью.
Есть ли сборка на Android вне Gradle? В статье вы найдете сравнение стандартной системы сборки с Bazel и Buck
Сборка Android-приложения. Задачка со звёздочкой
Сборка современного Android приложения - непростая задача . Множество библиотек, многомодульность, использование плагинов, процессоров аннотаций и др. Система сборки Gradle не радует своей скоростью.
Есть ли сборка на Android вне Gradle? В статье вы найдете сравнение стандартной системы сборки с Bazel и Buck
Хабр
Сборка Android-приложения. Задачка со звёздочкой
Привет, Хабр! Летом я выступал на Summer Droid Meetup с докладом про сборку Android-приложения. Видеоверсию можно найти здесь: habr.com/ru/company/funcorp/blog...