#Kotlin #Jetpack #MAD
Using KTX libraries
Kotlin - основной язык для разработки под Android, но всё Android SDK написано на Java. Чтобы сделать удобной опыт использования Kotlin в Android максимальным разработчики из Google сделали 2 вещи:
👉 Добавляют аннотации о nullability в Java код
👉 Новые библиотеки Jetpack стараются писать на Kotlin
👉 Для существующих библиотек пишутся Kotlin расширения - KTX
В статье вы найдете больше информации о KTX расширениях, которые помогут вам сократить количество Kotlin кода в Android проекте.
Using KTX libraries
Kotlin - основной язык для разработки под Android, но всё Android SDK написано на Java. Чтобы сделать удобной опыт использования Kotlin в Android максимальным разработчики из Google сделали 2 вещи:
👉 Добавляют аннотации о nullability в Java код
👉 Новые библиотеки Jetpack стараются писать на Kotlin
👉 Для существующих библиотек пишутся Kotlin расширения - KTX
В статье вы найдете больше информации о KTX расширениях, которые помогут вам сократить количество Kotlin кода в Android проекте.
#Security #Jetpack
Обновление документации "Permissions"
Документация по Permissions была обновлена на официальном сайте Android Developers. Теперь она содержит подробные описания:
👉 как правильно запрашивать разрешения в Runtime
👉 как работать если пользователь отказал в получении разрешения
👉 какие подходы использовать, чтобы объяснить, зачем вашему приложению вообще нужно какое-то разрешение
👉 Новый способ получения разрешение через новое ActivityResult API из androidx.activity 1.2.0
👉Разрешения для приложений по умолчанию (звонилка, браузер, лаунчер и др.)
👉Объявление собственных разрешений
👉Лучшие практики по работе с разрешениями
Обновление документации "Permissions"
Документация по Permissions была обновлена на официальном сайте Android Developers. Теперь она содержит подробные описания:
👉 как правильно запрашивать разрешения в Runtime
👉 как работать если пользователь отказал в получении разрешения
👉 какие подходы использовать, чтобы объяснить, зачем вашему приложению вообще нужно какое-то разрешение
👉 Новый способ получения разрешение через новое ActivityResult API из androidx.activity 1.2.0
👉Разрешения для приложений по умолчанию (звонилка, браузер, лаунчер и др.)
👉Объявление собственных разрешений
👉Лучшие практики по работе с разрешениями
#Testing
Быстрый старт: гайд по автоматизированному тестированию для Android-разработчика. JVM
Получить хорошее руководство по погружению в автоматизированное тестирование - это непросто. Google в своих гайдах задевает только тему специфики под Android, не рассказывая о базисах.
В статье (она немаленькая) раскладывается все по полочкам: базисы и особенности тестирование под Android. Вы сможете понять основные понятия и как тесты реализуются при разработки в Android
Быстрый старт: гайд по автоматизированному тестированию для Android-разработчика. JVM
Получить хорошее руководство по погружению в автоматизированное тестирование - это непросто. Google в своих гайдах задевает только тему специфики под Android, не рассказывая о базисах.
В статье (она немаленькая) раскладывается все по полочкам: базисы и особенности тестирование под Android. Вы сможете понять основные понятия и как тесты реализуются при разработки в Android
👍1
#Security #ProGuard #R8
Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
Оптимизация и обфускация кода, который уходит в Production, - очень важный этап поставки клиентских приложений. Это уменьшает размер приложения, ускоряет его работы и обеспечивает дополнительную безопасность.
Статья охватывает все важные аспекты оптимизации сборки:
👉 Зачем использовать эти инструменты
👉 Как работает ProGuard/R8
👉 Оптимизация ресурсов Android приложения
👉 D8/R8
Статья очень толковая, подробно разбирает все аспекты. Рекомендую к прочтению. Автору респект!
Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
Оптимизация и обфускация кода, который уходит в Production, - очень важный этап поставки клиентских приложений. Это уменьшает размер приложения, ускоряет его работы и обеспечивает дополнительную безопасность.
Статья охватывает все важные аспекты оптимизации сборки:
👉 Зачем использовать эти инструменты
👉 Как работает ProGuard/R8
👉 Оптимизация ресурсов Android приложения
👉 D8/R8
Статья очень толковая, подробно разбирает все аспекты. Рекомендую к прочтению. Автору респект!
#Gradle
Gradle Doctor - это плагин, который анализирует конфигурацию Gradle и определят ошибки в конфигурации, тормозящие скорость сборки
Gradle Doctor - это плагин, который анализирует конфигурацию Gradle и определят ошибки в конфигурации, тормозящие скорость сборки
#Kotlin
Kotlin Delegation by Inception
Разбор делегатов из Kotlin на примерах упрощения различных задач Android разработки:
👉 Получение значение из Bundle
👉 Работа с Intent
👉 Работа с View
Kotlin Delegation by Inception
Разбор делегатов из Kotlin на примерах упрощения различных задач Android разработки:
👉 Получение значение из Bundle
👉 Работа с Intent
👉 Работа с View
#Performance
Разрушаем мифы о производительности Android
Популярность всегда преследуется мифами. Так случилось и с Android. Разработчики, которые давно в этой ОС помнят о старых оптимизациях на уровне Java кода из первых версий Android. В статье разрушают современные мифы:
👉 Приложения на Kotlin больше и медленнее, чем приложения на Java
👉 Геттеры и сеттеры обходятся дорого
👉 Лямбда-выражения медленнее, чем внутренние классы
👉 Аллоцирование объектов — дорогое удовольствие, лучше использовать пулы
👉 Профилирование моего отлаживаемого приложения — это хорошая идея
а также другие странности
Разрушаем мифы о производительности Android
Популярность всегда преследуется мифами. Так случилось и с Android. Разработчики, которые давно в этой ОС помнят о старых оптимизациях на уровне Java кода из первых версий Android. В статье разрушают современные мифы:
👉 Приложения на Kotlin больше и медленнее, чем приложения на Java
👉 Геттеры и сеттеры обходятся дорого
👉 Лямбда-выражения медленнее, чем внутренние классы
👉 Аллоцирование объектов — дорогое удовольствие, лучше использовать пулы
👉 Профилирование моего отлаживаемого приложения — это хорошая идея
а также другие странности
Да кто такой этот ваш Mobile DevOps?
Есть ли такой человек как Mobile DevOps? Нужен ли он команде? За чем он следит и кака от него польза? Ответы в статье
Есть ли такой человек как Mobile DevOps? Нужен ли он команде? За чем он следит и кака от него польза? Ответы в статье
Реализовывали поддержку Android Enterprise в production приложениях?
Anonymous Poll
5%
Да
20%
Нет
68%
Что это?
8%
Не участвую в опросе
#SQLite #Performance
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
Как правильно идентифицировать Android-устройства
Вопрос уникальной идентификации устройства/пользователя зачастую стоит при разработке приложений. Все хотят собрать много данных, независимо от сервисов аналитик.
В статье автор разбирает различные подходы к идентификации пользователя в современной Android разработке с учетом всех ограничений. Обратите внимание на 2 библиотеки: Android-device-identification и Fingerprint-android.
Вопрос уникальной идентификации устройства/пользователя зачастую стоит при разработке приложений. Все хотят собрать много данных, независимо от сервисов аналитик.
В статье автор разбирает различные подходы к идентификации пользователя в современной Android разработке с учетом всех ограничений. Обратите внимание на 2 библиотеки: Android-device-identification и Fingerprint-android.
#Стажировка
Как устроены технические стажировки Авито
У вас есть возможность получить опыт работы в одной из крутейшей компании России, научиться работать в Scrum. Помимо всего прочего стажировка оплачиваемая , удаленная и вас будет свой наставник - инженер из Авито. Вы будете решать боевые задачи с первого дня!
Все позиции на стажировку можно найти здесь. После успешной стажировки вы сможете стать полноценным сотрудником Авито.
Как устроены технические стажировки Авито
У вас есть возможность получить опыт работы в одной из крутейшей компании России, научиться работать в Scrum. Помимо всего прочего стажировка оплачиваемая , удаленная и вас будет свой наставник - инженер из Авито. Вы будете решать боевые задачи с первого дня!
Все позиции на стажировку можно найти здесь. После успешной стажировки вы сможете стать полноценным сотрудником Авито.
#Android11
The Quick Developers Guide to Migrate Their Apps to Android 11
Для всех тех кто не обновляет свои приложения до последней версии targetSdk, только когда Google заставит, рекомендую ознакомиться со статьей, в которой автор разбирает обновления в коде:
👉 Foreground Service Type
👉 Доступ с местоположению в фоне
👉 Одноразовые разрешения (One-Time Permissions)
👉 Scoped Storage
👉 Ограничения на доступ к другим приложениям
👉 Уведомления
👉 Отслеживание показа IME
👉 AsyncTask Deprecated
👉 Множество ограничений и изменений в поведении Toast
The Quick Developers Guide to Migrate Their Apps to Android 11
Для всех тех кто не обновляет свои приложения до последней версии targetSdk, только когда Google заставит, рекомендую ознакомиться со статьей, в которой автор разбирает обновления в коде:
👉 Foreground Service Type
👉 Доступ с местоположению в фоне
👉 Одноразовые разрешения (One-Time Permissions)
👉 Scoped Storage
👉 Ограничения на доступ к другим приложениям
👉 Уведомления
👉 Отслеживание показа IME
👉 AsyncTask Deprecated
👉 Множество ограничений и изменений в поведении Toast
#Flow #Coroutines
FlowBinding 1.0.0 уже в релизе (EN)
Для всех кто любит реактивное программирование, использовал библиотеку RxBinding возрадуйтесь - теперь у вас есть стабильная версия binding на основе Coroutines Flow
FlowBinding 1.0.0 уже в релизе (EN)
Для всех кто любит реактивное программирование, использовал библиотеку RxBinding возрадуйтесь - теперь у вас есть стабильная версия binding на основе Coroutines Flow
Когда провести стрим с подведением итогов 2020 года от Android Broadcast?
Final Results
32%
В этом году
12%
В следующем году
7%
Вообще не надо
29%
Без разницы, смотрю в записи
12%
Лучше текстовый пост
8%
Не участвую в опросе
#SQLite
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
#Performance
Вышел LeakCanary 2.6
👉 Отслеживание утечек View из диалогов, после того как те скрываются
👉 Отслеживание утечек Service
👉 Добавлена возможность настройки, какие watcher-ы должны быть установлены по умолчанию
👉 Дамп heap когда экран устройства выключается
👉 Новый артефакт leakcanary-android-release, который используется для анализа heap в релизных билдах (эксперементально). Например, для отправки в аналитику
👉 Plumber: исправление утечек из AOSP
👉 Фиксы багов и минорные улучшения
Вышел LeakCanary 2.6
👉 Отслеживание утечек View из диалогов, после того как те скрываются
👉 Отслеживание утечек Service
👉 Добавлена возможность настройки, какие watcher-ы должны быть установлены по умолчанию
👉 Дамп heap когда экран устройства выключается
👉 Новый артефакт leakcanary-android-release, который используется для анализа heap в релизных билдах (эксперементально). Например, для отправки в аналитику
👉 Plumber: исправление утечек из AOSP
👉 Фиксы багов и минорные улучшения
#UI #Material
MAD Skills Material Design Components: Wrap-Up
Подведение итогов третьей темы в MAD Skills - «Material Design Component» (далее MDC).
Что было:
👉 Зачем использовать MDC?
👉 Material тема и ее применения в приложениях
👉 Темная тема
👉 Material Motion
👉 Советы сообщества
👉 Сессия Live Q&A
Помимого видео вы найдете статьи в блоге на Medium и примеры приложений
MAD Skills Material Design Components: Wrap-Up
Подведение итогов третьей темы в MAD Skills - «Material Design Component» (далее MDC).
Что было:
👉 Зачем использовать MDC?
👉 Material тема и ее применения в приложениях
👉 Темная тема
👉 Material Motion
👉 Советы сообщества
👉 Сессия Live Q&A
Помимого видео вы найдете статьи в блоге на Medium и примеры приложений
#Compose #GraphQL
Jetpack Compose and GraphQL, a very merry combination!
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
В статье разбирается как совместить работу GraphQL в вариации от Apollo, пагинации и Compose.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
Jetpack Compose and GraphQL, a very merry combination!
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
В статье разбирается как совместить работу GraphQL в вариации от Apollo, пагинации и Compose.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
#Architecture
Работа с толстофичами: как разобрать слона на части и собрать обратно
В статье вы найдете
👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты
👉 Проблемы при разработке больших фич
👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh
👉 Как связать атомарные фичи в функциональность одного экрана
👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты
👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.
Работа с толстофичами: как разобрать слона на части и собрать обратно
В статье вы найдете
👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты
👉 Проблемы при разработке больших фич
👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh
👉 Как связать атомарные фичи в функциональность одного экрана
👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты
👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.