#Kotlin #Coroutines #Firebase
Using Kotlin Extension Functions and Coroutines with Firebase
Совсем мимо меня прошло то, что есть не только Android Ktx, но и своя вариация Firebase Ktx:
👉 com.google.firebase:firebase-common-ktx
👉 com.google.firebase:firebase-firestore-ktx
Using Kotlin Extension Functions and Coroutines with Firebase
Совсем мимо меня прошло то, что есть не только Android Ktx, но и своя вариация Firebase Ktx:
👉 com.google.firebase:firebase-common-ktx
👉 com.google.firebase:firebase-firestore-ktx
👍1
#Gradle #Performance
Bringing Android app build times down by 95% at Zomato
Для тех кто считает, что сборка Android приложений на Kotlin это долгий процесс, то ребята из Zomato показали что это не так. Они оптимизировали время сборки с 2.3 минуты до 6 секунд.
Первый шаг на этом пути анализ сборки вашего проекта с помощь Gradle Build Scan, который поможет вам понять как собирается ваш проект и какие таски тратят много времени и потом переходить к оптимизациям:
👉 Отказаться от работы, которая не нужна в dev сборках
👉 Правильно настроить граф зависимостей (
👉 Отключить создание BuildConfig для библиотечных модулей, где это возможно
👉 Дробить проект на модули
👉 Используйте последний Gradle и Android Gradle Plugin
Bringing Android app build times down by 95% at Zomato
Для тех кто считает, что сборка Android приложений на Kotlin это долгий процесс, то ребята из Zomato показали что это не так. Они оптимизировали время сборки с 2.3 минуты до 6 секунд.
Первый шаг на этом пути анализ сборки вашего проекта с помощь Gradle Build Scan, который поможет вам понять как собирается ваш проект и какие таски тратят много времени и потом переходить к оптимизациям:
👉 Отказаться от работы, которая не нужна в dev сборках
👉 Правильно настроить граф зависимостей (
api и implementation)👉 Отключить создание BuildConfig для библиотечных модулей, где это возможно
👉 Дробить проект на модули
👉 Используйте последний Gradle и Android Gradle Plugin
#AndroidQ
Android Q – The breaking changes
Обзор изменений, которые изменят работу ваших приложений и вам стоит обратить на них внимание:
👉 Новая возможность медиа нотификаций - прогресс воспроизведения, на котором отображается прогресс и пользователь может делать перемотку
👉 Новые разрешения для местоположения - разделение на фоновый, только во время работы и всегда меняет как ваше приложение будет работать
👉 Запуск Activity из фона запрещен
👉 Новые жесты навигации. Скорее всего может повлиять только на чистые сборки Android
👉 Темная тема и принудительный режим её применения
👉 Scoped storage, который отложили на следующий релиз, но готовиться уже пора
Android Q – The breaking changes
Обзор изменений, которые изменят работу ваших приложений и вам стоит обратить на них внимание:
👉 Новая возможность медиа нотификаций - прогресс воспроизведения, на котором отображается прогресс и пользователь может делать перемотку
👉 Новые разрешения для местоположения - разделение на фоновый, только во время работы и всегда меняет как ваше приложение будет работать
👉 Запуск Activity из фона запрещен
👉 Новые жесты навигации. Скорее всего может повлиять только на чистые сборки Android
👉 Темная тема и принудительный режим её применения
👉 Scoped storage, который отложили на следующий релиз, но готовиться уже пора
#APK #Optimizations
Сжимаем APK, стараясь сохранить его работоспособность
Размер APK - важный показатель для вашего приложения. Более меньший размер позволяет доставить приложении быстрее, использовать Instant Run. Что стоит сделать чтобы убрать неиспользуемый файлы:
👉 Примените рекомендации от Google
👉 Используйте оптимизаторы/обфускаторы кода - ProGuard/R8
👉 Удаляйте лишние файлы из конечной APK
👉 На используйте библиотеки (зависимости) которые вам не нужны или которые вы используете минимально
👉 Удаляйте зависимости для отладки из релизных сборок. Например, Stetho, LeakCanary и пр.
👉 Удаляйте неиспользуемый ресурсы (Refactor -> Remove unused resources...)
👉 Правильно настраивайте ваш DI
Сжимаем APK, стараясь сохранить его работоспособность
Размер APK - важный показатель для вашего приложения. Более меньший размер позволяет доставить приложении быстрее, использовать Instant Run. Что стоит сделать чтобы убрать неиспользуемый файлы:
👉 Примените рекомендации от Google
👉 Используйте оптимизаторы/обфускаторы кода - ProGuard/R8
👉 Удаляйте лишние файлы из конечной APK
👉 На используйте библиотеки (зависимости) которые вам не нужны или которые вы используете минимально
👉 Удаляйте зависимости для отладки из релизных сборок. Например, Stetho, LeakCanary и пр.
👉 Удаляйте неиспользуемый ресурсы (Refactor -> Remove unused resources...)
👉 Правильно настраивайте ваш DI
Хабр
Сжимаем APK, стараясь сохранить его работоспособность
/ PxHere / PD Оптимизация веса APK — это нетривиальная, но очень актуальная во времена Instant App, задача. Включение proguard избавит вас от ненужного кода, ес...
#mobius
Всем привет
Я приехал на Mobius и нахожусь в полной боеготовности к своему докладу о лучшем практиках в использовании Kotlin Coroutines в Android. Доклад будет в четверг, 23 мая 17.30
Приношу извинения, но эта неделя не будет активной на посты 😪, но буду рад увидеть вас всех на конференции, пообщаться и поделиться значками и наклейками от Android Broadcst
Всем привет
Я приехал на Mobius и нахожусь в полной боеготовности к своему докладу о лучшем практиках в использовании Kotlin Coroutines в Android. Доклад будет в четверг, 23 мая 17.30
Приношу извинения, но эта неделя не будет активной на посты 😪, но буду рад увидеть вас всех на конференции, пообщаться и поделиться значками и наклейками от Android Broadcst
#MobilePeopleTalks
Привет всем с Mobius!!!
В Mobile People Podcast планируем сделать эпизод о том, что есть качественное приложение.
Прошу вас записать голосовое сообщение со свои мнением, о том что есть качественное приложение, и отправить его в @android_broadcast_discussions или мне в личку @krlrozov
Привет всем с Mobius!!!
В Mobile People Podcast планируем сделать эпизод о том, что есть качественное приложение.
Прошу вас записать голосовое сообщение со свои мнением, о том что есть качественное приложение, и отправить его в @android_broadcast_discussions или мне в личку @krlrozov
Пообщался с Андреем Бреславом. Услышал о:
👉 Kotlin в Flutter
👉 Jetpack Compose
👉 Поддержке ReactNative
👉 Применение Kotlin/Multiplatform при разработке мобильных приложений
Очень надеюсь, что сможем с ним договориться о выступление с докладом в Минске в следующем году 🤞
👉 Kotlin в Flutter
👉 Jetpack Compose
👉 Поддержке ReactNative
👉 Применение Kotlin/Multiplatform при разработке мобильных приложений
Очень надеюсь, что сможем с ним договориться о выступление с докладом в Минске в следующем году 🤞
Хочу узнать распределение аудитории по странам. Из какой страны вы?
Anonymous Poll
51%
Беларусь 🇧🇾
30%
Россия 🇷🇺
13%
Украина 🇺🇦
4%
Другая страна
2%
Запретить достук к геолокации 😀
#Kotlin #Contest
Kotlin Heroes Coding Contest
Хотите проверить свои навыки Kotlin программиста? JetBrains организовали соревнование по Kotlin, в рамках которого вам надо будет выполнить серию заданий.
Соревнование состоится 28 мая 2019 14:35 - 17:05 UTC
Сейчас можно пройти тренировку и посмотреть что вас ожидает
Kotlin Heroes Coding Contest
Хотите проверить свои навыки Kotlin программиста? JetBrains организовали соревнование по Kotlin, в рамках которого вам надо будет выполнить серию заданий.
Соревнование состоится 28 мая 2019 14:35 - 17:05 UTC
Сейчас можно пройти тренировку и посмотреть что вас ожидает
#Coroutines #CoroutinesOnAndroid
Coroutines On Android (part III): Real work
Продолжение серии статей об использование Kotlin Coroutines в Android. В этой части разбираются вопросы реального использования на примере задачи отображения отсортированного списка данных из БД с использование Room.
Coroutines On Android (part III): Real work
Продолжение серии статей об использование Kotlin Coroutines в Android. В этой части разбираются вопросы реального использования на примере задачи отображения отсортированного списка данных из БД с использование Room.
Классный стенд у GDG СПб на Mobius! Тут куча мини докладов, розыгрыш призов, а ещё я насыпал наклеек от канала.
#AndroidQ #GestureNavigation
Gesture Navigation – Edge Cases
В AndroidQ была представлена стандартные жесты для навигация (аля iOS). В статье обозревается новое API View.setSystemGestureExclusionRects(List<Rect>), которое позволяет сообщать системе в каком регионе View, нельзя распознавать жесты как системные.
Gesture Navigation – Edge Cases
В AndroidQ была представлена стандартные жесты для навигация (аля iOS). В статье обозревается новое API View.setSystemGestureExclusionRects(List<Rect>), которое позволяет сообщать системе в каком регионе View, нельзя распознавать жесты как системные.
#DependencyInjection #Kotlin
Koin 2.0 Release
Состоялся релиз Koin 2.0 - просто и чистого решения на Kotlin для dependency injection.
Лично для меня Koin - прекрасный выбор, так как он решает самые распространенные задачи DI в Android и еще больше наслаждаться Kotlin в проекте. Для Java также есть поддержка.
В новой версии произошли следующие изменения:
🎉Значительно улучшена скорость работы, что решило ее проблемы на слабых устройствах
🎉Новый DSL для инициализации
Поддержка многомодульных проектов
🎉Доступна загрузка/выгрузки модулей после инициализации
🎉 Объявление зависимостей на лету
Изменения, которые сломают вам простое обновление версии:
❌ Вложенные модули для описания зависимостей больше не поддерживаются
❌ Изменено описание scope
❌ Изменено описание именованных зависимостей
Koin 2.0 Release
Состоялся релиз Koin 2.0 - просто и чистого решения на Kotlin для dependency injection.
Лично для меня Koin - прекрасный выбор, так как он решает самые распространенные задачи DI в Android и еще больше наслаждаться Kotlin в проекте. Для Java также есть поддержка.
В новой версии произошли следующие изменения:
🎉Значительно улучшена скорость работы, что решило ее проблемы на слабых устройствах
🎉Новый DSL для инициализации
Поддержка многомодульных проектов
🎉Доступна загрузка/выгрузки модулей после инициализации
🎉 Объявление зависимостей на лету
Изменения, которые сломают вам простое обновление версии:
❌ Вложенные модули для описания зависимостей больше не поддерживаются
❌ Изменено описание scope
❌ Изменено описание именованных зависимостей
#MobilePeopleTalks #Podcast
Mobile People Talks #5 - Android Q по следам Google I/O 19
Записали новый выпуск подкаста (технический). Мы немного обсудили прошедший Google IO (Саша Денисов рассказал нам о своих впечатлениях от палящего солнца), Pixel 3a, но основная часть подкаста была посвящена рассказе об Android Q от Кирилла Розова.
Mobile People Talks #5 - Android Q по следам Google I/O 19
Записали новый выпуск подкаста (технический). Мы немного обсудили прошедший Google IO (Саша Денисов рассказал нам о своих впечатлениях от палящего солнца), Pixel 3a, но основная часть подкаста была посвящена рассказе об Android Q от Кирилла Розова.
SoundCloud
Mobile People Talks
Mobile People Talks — подкаст про мобильную разработку. И все остальное.
Так что если вы не мобильный разработчик, не спешите закрывать страничку – разные выпуски имеют разные уровни погружения и буду
Так что если вы не мобильный разработчик, не спешите закрывать страничку – разные выпуски имеют разные уровни погружения и буду
Android Broadcast
#Course Android Architecture Masterclass video course Курс по архитектуре Android приложений, написанию чистого кода и разработке поддерживаемых приложений. Курс стоит $12. Курс состоит из следующих частей: 1️⃣ MVx архитектурные паттерны 2️⃣ MVx в Android…
Я давно обещал вам сделать обзор на этот курс. Досмотрел, но не дошел написать, извините 😢
Курс подойдет вам если вы только начинаете разбираться с архитектурой. Я для себя (опыт 7+ лет промышленной Android разработки) не нашел для себя ничего нового😔.
В рамках курса не раскрылись популярные решения и не хватало практики, хотя бы опросников по каждой из тем. Даже Junior разработчикам я объяснял бы архитектуру немного глубже по некоторым направлениям.
Моя оценка - 4/10 👎
Курс подойдет вам если вы только начинаете разбираться с архитектурой. Я для себя (опыт 7+ лет промышленной Android разработки) не нашел для себя ничего нового😔.
В рамках курса не раскрылись популярные решения и не хватало практики, хотя бы опросников по каждой из тем. Даже Junior разработчикам я объяснял бы архитектуру немного глубже по некоторым направлениям.
Моя оценка - 4/10 👎
#Dagger #ViewModel
Android. Less Dagger boilerplate code for ViewModel creation
Те кто писал Factory для ViewModel, у которой есть зависимости из графа и соединить весь Inject с Dagger 2, эти люди знают насколько там много boilerplate кода и как этот процесс неприятен.
Для тех кто не знает - посмотрите статью выше и поймите. В ней вы найдете рецепт как соединить Dagger и создание . ViewModel.
Cпойлер: сейчас в EPAM мы работает над библиотекой, которая будет генерировать весь этот код за вас
Android. Less Dagger boilerplate code for ViewModel creation
Те кто писал Factory для ViewModel, у которой есть зависимости из графа и соединить весь Inject с Dagger 2, эти люди знают насколько там много boilerplate кода и как этот процесс неприятен.
Для тех кто не знает - посмотрите статью выше и поймите. В ней вы найдете рецепт как соединить Dagger и создание . ViewModel.
Cпойлер: сейчас в EPAM мы работает над библиотекой, которая будет генерировать весь этот код за вас
Medium
Android. Less Dagger boilerplate code for ViewModel creation
Dagger architecture component traditional approach
#Gradle #Optimizations
Советы по оптимизации Gradle в Android проектах. Ревизия 2019 года
Советы по следам Google I/O 2019:
👉В многомодульных проектах предпочитайте Java/Kotlin модули вместо Android модулей. Они собираются быстрее и лучше работает инкрементальная сборка
👉Применяйте только необходимые плагины
👉Избегайте непонятных плагинов
👉Мигрируйте на Kotlin 1.3.30 и включайте инкрементальный kapt
👉Запускайте Android Lint только на App модулях
👉Правильно настраивайте зависимости (
👉Описывайте версии зависимостей в одном месте в проекте
👉Используйте папку
👉Кастомные плагины позволят сократить размер gradle файлов в проекте и ускорить сборку
👉Применяйте последние возможности Gradle API, например Lazy конфигурацию для тасков
👉Используйте Gradle Worker API
👉Создавайте таски кастомных типов
👉Не делайте длительных операций во время фазы конфигурации
👉Измеряйте скорость вашей сборки, чтобы искать узкие места. В этом вам помогут Build Scans, Gradle Profiler, Talaoit
Советы по оптимизации Gradle в Android проектах. Ревизия 2019 года
Советы по следам Google I/O 2019:
👉В многомодульных проектах предпочитайте Java/Kotlin модули вместо Android модулей. Они собираются быстрее и лучше работает инкрементальная сборка
👉Применяйте только необходимые плагины
👉Избегайте непонятных плагинов
👉Мигрируйте на Kotlin 1.3.30 и включайте инкрементальный kapt
👉Запускайте Android Lint только на App модулях
👉Правильно настраивайте зависимости (
api и implementation)👉Описывайте версии зависимостей в одном месте в проекте
👉Используйте папку
buildSrc для описания зависимостей👉Кастомные плагины позволят сократить размер gradle файлов в проекте и ускорить сборку
👉Применяйте последние возможности Gradle API, например Lazy конфигурацию для тасков
👉Используйте Gradle Worker API
👉Создавайте таски кастомных типов
👉Не делайте длительных операций во время фазы конфигурации
👉Измеряйте скорость вашей сборки, чтобы искать узкие места. В этом вам помогут Build Scans, Gradle Profiler, Talaoit
#Gradle #Performance
Порой приходится иметь доступ к Android API в Java/Kotlin коде, и отказывать от чистого Java/Kotlin модулей в пользу Android Library проектов.
Есть способ более простой использовать Android API и не уходить от Java/Kotlin модуля - используйте AndroidJar Gradle плагин. Также можно подключить aar с помощью aar2jar Gradle плагина.
Порой приходится иметь доступ к Android API в Java/Kotlin коде, и отказывать от чистого Java/Kotlin модулей в пользу Android Library проектов.
Есть способ более простой использовать Android API и не уходить от Java/Kotlin модуля - используйте AndroidJar Gradle плагин. Также можно подключить aar с помощью aar2jar Gradle плагина.
#Architecture #CleanArchitecture #ArchitectureComponents
How to implement a Clean Architecture on Android
"Повторение мать учения" - так можно сказать об этой статье, в которой рассказывается о Clean Architecture на примере Android приложения и рассказывает об обязанностях каждого из слоев и осуществление коммуникации между ними
How to implement a Clean Architecture on Android
"Повторение мать учения" - так можно сказать об этой статье, в которой рассказывается о Clean Architecture на примере Android приложения и рассказывает об обязанностях каждого из слоев и осуществление коммуникации между ними
Medium
How to implement a Clean Architecture on Android
Learn how to implement a Clean Architecture on Android from scratch