Пообщался с Андреем Бреславом. Услышал о: 👉 Kotlin в Flutter 👉Jetpack Compose 👉 Поддержке ReactNative 👉 Применение Kotlin/Multiplatform при разработке мобильных приложений
Очень надеюсь, что сможем с ним договориться о выступление с докладом в Минске в следующем году 🤞
В Mobile People Podcast планируем сделать эпизод о том, что есть качественное приложение.
Прошу вас записать голосовое сообщение со свои мнением, о том что есть качественное приложение, и отправить его в @android_broadcast_discussions или мне в личку @krlrozov
Я приехал на Mobius и нахожусь в полной боеготовности к своему докладу о лучшем практиках в использовании Kotlin Coroutines в Android. Доклад будет в четверг, 23 мая 17.30
Приношу извинения, но эта неделя не будет активной на посты 😪, но буду рад увидеть вас всех на конференции, пообщаться и поделиться значками и наклейками от Android Broadcst
Размер APK - важный показатель для вашего приложения. Более меньший размер позволяет доставить приложении быстрее, использовать Instant Run. Что стоит сделать чтобы убрать неиспользуемый файлы: 👉 Примените рекомендации от Google 👉 Используйте оптимизаторы/обфускаторы кода - ProGuard/R8 👉 Удаляйте лишние файлы из конечной APK 👉 На используйте библиотеки (зависимости) которые вам не нужны или которые вы используете минимально 👉 Удаляйте зависимости для отладки из релизных сборок. Например, Stetho, LeakCanary и пр. 👉 Удаляйте неиспользуемый ресурсы (Refactor -> Remove unused resources...) 👉 Правильно настраивайте ваш DI
Обзор изменений, которые изменят работу ваших приложений и вам стоит обратить на них внимание: 👉Новая возможность медиа нотификаций - прогресс воспроизведения, на котором отображается прогресс и пользователь может делать перемотку 👉Новые разрешения для местоположения - разделение на фоновый, только во время работы и всегда меняет как ваше приложение будет работать 👉Запуск Activity из фона запрещен 👉Новые жесты навигации. Скорее всего может повлиять только на чистые сборки Android 👉Темная тема и принудительный режим её применения 👉Scoped storage, который отложили на следующий релиз, но готовиться уже пора
Для тех кто считает, что сборка Android приложений на Kotlin это долгий процесс, то ребята из Zomato показали что это не так. Они оптимизировали время сборки с 2.3 минуты до 6 секунд.
Первый шаг на этом пути анализ сборки вашего проекта с помощь Gradle Build Scan, который поможет вам понять как собирается ваш проект и какие таски тратят много времени и потом переходить к оптимизациям: 👉 Отказаться от работы, которая не нужна в dev сборках 👉 Правильно настроить граф зависимостей (api и implementation) 👉 Отключить создание BuildConfig для библиотечных модулей, где это возможно 👉 Дробить проект на модули 👉 Используйте последний Gradle и Android Gradle Plugin
Как бы я не любил #Coroutine, Rx подход решил много проблем в свое время: callback hell, предоставил удобный стиль работы с потоками данных (функциональный) и упростил работу с многопоточными приложениями.
Я уверен, что большинство Android программистов знают #Rx подход по библиотеки RxJava, но она о Java 😞. Написали RxKotlin, но она является набором расширений для #RxJava и работает только c Kotlin/JVM.
В сообществе уже давно обсуждали написание Rx библиотеки на чистом Kotlin. Это бы дало: 👉 Поддержку работы на множестве платформ (Kotlin Multiplatform Projects) 👉 Учет системы типов Kotlin, а значит поддержку null safety 👉 Корректную поддержку Generic из Kotlin 👉 Убрать зависимости от каких либо сторонних Rx библиотек 👉 Сделать архитектуру и API с использованием всех возможностей языка Kotlin
Ребята из Badoo решили не ждать и написать решение сами. Встречайте библиотекуReaktive. Библиотека пока находится в Alpha статусе (возможны изменения API) и разработка новых фичей продолжается.
В статье рассматриваются: 👉 Следите за совместимость версий Kotlin stdlib 👉 Какую stdlib использовать? 👉 Структура пакетов 👉 Выбору модификаторов видимости 👉 Совместимость с Java 👉 Kotlin зависимость в Java проектах
Виртуальная машина ART - это интересная тема, но она раскрывается плохо: вы не найдете множество информации о ней в документации на developers.android.com, мало докладов освещают эту тему, особенно нововведения. Я черпаю информацию о новинках из редких статей и в видео об ART на Google I/O.
В докладе рассказывают о изменениях в Zygote fork, Cloud profiles, Garbage Collector. Представили новую утилиту Trebuchet, которая позволяет анализировать время запуска приложений
Learn more about how Android Runtime, for Java or Kotlin programming languages, makes it easier to write a great Android app with improvements in debugging a...
Structured Concurrency - это концепция которая используется для построения отношений между корутинами. В статье приведен подробный: 👉 Состояния Job 👉 Отношение "Parent-Child" между Job 👉 Что происходит с Exception в Job
В последнее время я стал очень много рассказывать про Kotlin в рамках Android. Это от того что без Kotlin в Android никак или я без него никуда 😁 ? Сейчас собираюсь подготовить доклад по Android тематике. Буду рад услышать о ваших пожеланиях, то пишите в @android_broadcast_discussions. Там я и расскажу о своих идеях
GraphQL все более активно сейчас обсуждается в сообществе, но не все о нем слышали. Это замена REST от Facebook, которой уже 7 лет, призванная решить его проблемы. Больше подробностей в статье.
В статье раскрываются принципы дизайна нового API холодных стримов, появившегося в Coroutines 1.2, - Flow: 👉 как они работают 👉 стандартные операторы и как написать свои собственные 👉 backpressure
В Uber заморочились оценкой производительностью компиляции Kotlin и провели большой эксперимент по сравнению Java и Kotlin проектов в различных конфигурациях проекта.
Серия статей по использованию корутин на Android от команды разработки Android OS. В руководстве рассматриваются как работают корутины, какие проблемы решают и как работать с ними.
Уже доступны 2 статьи из серии 1️⃣Getting the background 👉 Базовые концепции подхода корутин 👉 Какие проблемы эффективно решаются при помощи корутин 👉 Какие Dispatcher использовать и как
2️⃣Getting started 👉Work leak - фоновая задача (корутина, поток, RxJava Observable или др.) на которую вы потеряли ссылку и она выполняется даже если ее результат больше не нужен 👉Structured concurrency 👉 Arch Components ViewModel & CoroutineScope 👉 Unit тесты viewModelScope