#AndroidStudio
Android Gradle Plugin получил важные улучшения для разработчиков плагинов, завязанных на него:
👉 Разделение API на публичное и приватное
👉 Документация
👉 Обратная совместимость публичного API
Ссылок по этой информации кроме как видео выше нет (
Android Gradle Plugin получил важные улучшения для разработчиков плагинов, завязанных на него:
👉 Разделение API на публичное и приватное
👉 Документация
👉 Обратная совместимость публичного API
Ссылок по этой информации кроме как видео выше нет (
#Jetpack
AndroidX: App Startup
App Startup - новая библиотека в составе Jetpack, призванная уменьшить время запуска приложений.
Появилась возможность создавать граф компонентов и последовательно инициализировать каждый из них, с учётом того, что один компонент может зависеть от другого, тем самым предотвращая повторный вызов встроенных
Это позволит уменьшить код в Application-классе и ограничиться лишь одним Content Provider'ом для инициализации всего графа. Так же библиотека может отключать "тяжёлые" зависимости, чтобы инициализировать их в нужном месте приложения.
В статье описывается принцип работы App Startup на примере инициализации компонентов приложения для распознавания лиц.
AndroidX: App Startup
App Startup - новая библиотека в составе Jetpack, призванная уменьшить время запуска приложений.
Появилась возможность создавать граф компонентов и последовательно инициализировать каждый из них, с учётом того, что один компонент может зависеть от другого, тем самым предотвращая повторный вызов встроенных
ContentProvider
'ов. Это позволит уменьшить код в Application-классе и ограничиться лишь одним Content Provider'ом для инициализации всего графа. Так же библиотека может отключать "тяжёлые" зависимости, чтобы инициализировать их в нужном месте приложения.
В статье описывается принцип работы App Startup на примере инициализации компонентов приложения для распознавания лиц.
Medium
AndroidX: App Startup
Initialize components on app startup with AndroidX App Startup
#Android11 #Jetpack #Compose #GooglePlay #AndroidStudio
По следам Android 11 Beta
Когда: завтра, 15 июня, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Обзор недавно представленных новинок Android 11, Android Jetpack, Jetpack Compose, Google Play, Android Studio и др
Организовано совместно с Android Dev Podcast
По следам Android 11 Beta
Когда: завтра, 15 июня, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Обзор недавно представленных новинок Android 11, Android Jetpack, Jetpack Compose, Google Play, Android Studio и др
Организовано совместно с Android Dev Podcast
#Conference #Online
Podlodka Android Crew
22 июня запускается онлайн-конференция Podlodka Android Crew – ежедневные интерактивные сессии и постоянное общение с самыми крутыми экспертами.
Конференция будет идти на протяжении двух недель, каждая из которых имеют свою тему: “Архитектура” и “Оптимизация работы приложений”. На борту уже такие известные спикеры как Денис Неклюдов, Александр Блинов, Сергей Боиштян, Александр Ефременков, а скоро экспертов будет еще больше!
Купить early bird билет по пониженной цене!
Хотите выиграть билет? Участвуйте в розыгрыше
Podlodka Android Crew
22 июня запускается онлайн-конференция Podlodka Android Crew – ежедневные интерактивные сессии и постоянное общение с самыми крутыми экспертами.
Конференция будет идти на протяжении двух недель, каждая из которых имеют свою тему: “Архитектура” и “Оптимизация работы приложений”. На борту уже такие известные спикеры как Денис Неклюдов, Александр Блинов, Сергей Боиштян, Александр Ефременков, а скоро экспертов будет еще больше!
Купить early bird билет по пониженной цене!
Хотите выиграть билет? Участвуйте в розыгрыше
Что вы разрабатывает под Android?
Final Results
93%
Приложения
1%
Игры
1%
Прошивки
1%
Не разработчик
1%
Не имею отношения к Android разработке
1%
Другое
3%
Не учавствую в опросе
#GooglePlay
Meet Google Play Billing Library Version 3
Вышла новая мажорная версия библиотеки для работы с платежами в Google Play. Что нового:
👉 Pending transaction
👉 Оплата наличкой
👉 Возможность использовать промокодов без установки приложения
👉 Возможность добавления мета информации при покупке товаров
Также введены сроки смерти всех старых версий API:
👉 Все новые приложения должны будут публиковаться с Billing API v3 с 2 августа 2021
👉 Все старые версии Billing API перестанут работать с 1 ноября 2021
👉 Каждый мажорный релиз будет поддерживаться 2 года
Meet Google Play Billing Library Version 3
Вышла новая мажорная версия библиотеки для работы с платежами в Google Play. Что нового:
👉 Pending transaction
👉 Оплата наличкой
👉 Возможность использовать промокодов без установки приложения
👉 Возможность добавления мета информации при покупке товаров
Также введены сроки смерти всех старых версий API:
👉 Все новые приложения должны будут публиковаться с Billing API v3 с 2 августа 2021
👉 Все старые версии Billing API перестанут работать с 1 ноября 2021
👉 Каждый мажорный релиз будет поддерживаться 2 года
Android Developers Blog
Meet Google Play Billing Library Version 3
Posted by Steve Hartford, Product Manager, Google Play Google Play is committed to a healthy ecosystem, where developers succeed by cr...
#AndroidStudion #Debug
Debugging in Android Studio
Любой разработчик занимался отладкой своего кода. Поэтому знать инструмент всегда стоит получше.
AndroidStudio и Logcat
👉 Настройка вывода Logcat (что показывать из логов)
👉 Фильтр нужных логов Logcat
👉 Возможность спрятать похожие логи
Возможности breakpont:
👉 Присоединение дебагера во время работы приложения
👉 Остановка на breakpoint по условию
👉 Зависимости между breakpoint
👉 Приостановка потоков
👉 Вывод лога вместо остановки выполнения программы (без добавления кода логирования в программу)
👉 Drop frame - возможность выйти из метода и вернуться в момент до его выполнения. Доступна на Android 10+
👉 Mark object - возможность пометить объект и отслеживать его, вместо того чтобы запоминать его хэш код
👉 Возможность выполнить код во время остановки
Еще стоит упомянуть опцию "Analyze stacktrace" - скопируйте стектрейс из любого места и вставьте его и вы сможете переходить по коду из него
Debugging in Android Studio
Любой разработчик занимался отладкой своего кода. Поэтому знать инструмент всегда стоит получше.
AndroidStudio и Logcat
👉 Настройка вывода Logcat (что показывать из логов)
👉 Фильтр нужных логов Logcat
👉 Возможность спрятать похожие логи
Возможности breakpont:
👉 Присоединение дебагера во время работы приложения
👉 Остановка на breakpoint по условию
👉 Зависимости между breakpoint
👉 Приостановка потоков
👉 Вывод лога вместо остановки выполнения программы (без добавления кода логирования в программу)
👉 Drop frame - возможность выйти из метода и вернуться в момент до его выполнения. Доступна на Android 10+
👉 Mark object - возможность пометить объект и отслеживать его, вместо того чтобы запоминать его хэш код
👉 Возможность выполнить код во время остановки
Еще стоит упомянуть опцию "Analyze stacktrace" - скопируйте стектрейс из любого места и вставьте его и вы сможете переходить по коду из него
Medium
Debugging in Android Studio
Discover some of the powerful debugging features available in Android Studio.
#Kotlin #KAPT
Kotlin Symbol Processing API
Скорость Kapt огорчает многих разработчиков в Android мире. Люди делают свои обходные решения, а некоторые и вовсе весь код, которые используется для кодогенерации, пишут только на Java.
В этом царстве тьмы появляется новый игрок - Kotlin Symbol Processing. Цель новой утилиты позволить генерировать Kotlin код во время компиляции, без необходимости делать это через Java. Проект пока на ранней стадии, но уже способен сократить время работы компиляции кода на 30%!
Kotlin Symbol Processing API
Скорость Kapt огорчает многих разработчиков в Android мире. Люди делают свои обходные решения, а некоторые и вовсе весь код, которые используется для кодогенерации, пишут только на Java.
В этом царстве тьмы появляется новый игрок - Kotlin Symbol Processing. Цель новой утилиты позволить генерировать Kotlin код во время компиляции, без необходимости делать это через Java. Проект пока на ранней стадии, но уже способен сократить время работы компиляции кода на 30%!
GitHub
kotlin/libraries/tools/kotlin-symbol-processing-api at ksp · android/kotlin
Kotlin Symbol Processing API. Contribute to android/kotlin development by creating an account on GitHub.
#Architecture
The beautiful story of Android developers, multiple Activities, and the chained elephant
Подход "Single Activity" становится всё более популярным при разработке Android приложений, как минимум потому что это рекомендация от Google.
Автор статьи простым языком объясняет проблемы "Multi Activity" приложений и показывает плюсы подхода "Single Activity":
👉 Отпадает необходимость в Bundle
👉 Больше не нужны Result-колбэки
👉 Упрощённая навигация с помощью Navigation Component или другой библиотеки на ваш выбор
👉 Shared scope для передачи данных между Fragment-ами и хранение состояния
Обойтись без "Multi Activity" не получится полностью. Автор приводит частные случаи, когда такой подход становится оправдан.
The beautiful story of Android developers, multiple Activities, and the chained elephant
Подход "Single Activity" становится всё более популярным при разработке Android приложений, как минимум потому что это рекомендация от Google.
Автор статьи простым языком объясняет проблемы "Multi Activity" приложений и показывает плюсы подхода "Single Activity":
👉 Отпадает необходимость в Bundle
👉 Больше не нужны Result-колбэки
👉 Упрощённая навигация с помощью Navigation Component или другой библиотеки на ваш выбор
👉 Shared scope для передачи данных между Fragment-ами и хранение состояния
Обойтись без "Multi Activity" не получится полностью. Автор приводит частные случаи, когда такой подход становится оправдан.
Medium
The beautiful story of Android developers, multiple Activities, and the chained elephant
We’re bound to do certain things out of habit based on what we’ve learned, or have trained ourselves to do. Why use Activities instead of…
#Gradle #Performance
10 Tips to Speed Up Android Gradle Build Times
Автор даёт 10 простых советов как ускорить время сборки вашего приложения. В статье приводится инфографика влияния того или иного изменения на время сборки, поэтому вы сможете выбрать наиболее подходящие для себя.
После применения всех рекомендаций результаты были следующими:
👉 Время полной сборки сократилось с 59 до 19 секунд, почти в три раза.
💥 Время инкрементальной сборки после изменения кода сократилось с 24 до 2 секунд, в 12 раз!
👉 Время инкрементальной сборки после изменения ресурсов сократилось с 15 до 4.5 секунд
10 Tips to Speed Up Android Gradle Build Times
Автор даёт 10 простых советов как ускорить время сборки вашего приложения. В статье приводится инфографика влияния того или иного изменения на время сборки, поэтому вы сможете выбрать наиболее подходящие для себя.
После применения всех рекомендаций результаты были следующими:
👉 Время полной сборки сократилось с 59 до 19 секунд, почти в три раза.
💥 Время инкрементальной сборки после изменения кода сократилось с 24 до 2 секунд, в 12 раз!
👉 Время инкрементальной сборки после изменения ресурсов сократилось с 15 до 4.5 секунд
Medium
10 Tips to Speed Up Android Gradle Build Times
3x your build speed by following these simple best practices
Forwarded from Android Good Reads (Egor Tolstoy)
Используете ли вы kts для gradle файлов?
Anonymous Poll
71%
Не использую
27%
Использую в build.gradle
13%
Использую в settings.gradle
4%
Использую в init.gradle
8%
Использую в прочих gradle скриптах (script plugins)
#GooglePlay
История одной блокировки и разблокировки в Google Play
Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
История одной блокировки и разблокировки в Google Play
Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
#Testing
Using Fakes To Test Reactive Flows
Довольно часто для создания зависимостей в Unit тестах используются mocking-фреймворки. Несмотря на простоту и быстроту имплементации такого решения, иногда можно столкнуться с его ограничениями, например, при тестировании реактивных потоков данных.
В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
Using Fakes To Test Reactive Flows
Довольно часто для создания зависимостей в Unit тестах используются mocking-фреймворки. Несмотря на простоту и быстроту имплементации такого решения, иногда можно столкнуться с его ограничениями, например, при тестировании реактивных потоков данных.
В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
#MotionLayout
MotionLayout: Visibility
Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.
Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
MotionLayout: Visibility
Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.
Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
Styling Android
MotionLayout: Visibility
MotionLayout is a wonderful tool for creating complex layout animations. However it does have some foibles which are easy enough to work around, but can initially be baffling. In this post we'll look
#Architecture #LiveStream
Все тайны MVI
Когда: 18 июня, ЧТ, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Обсуждаем паттерн MVI от начала и до конца:
👉 в чем отличие
👉 преимущества
👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.
Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
Все тайны MVI
Когда: 18 июня, ЧТ, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Обсуждаем паттерн MVI от начала и до конца:
👉 в чем отличие
👉 преимущества
👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.
Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
#JetpackCompose
Compose Academy
Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).
На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
Compose Academy
Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).
На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
Compose Academy
Practical Jetpack Compose
Practical Jetpack Compose - learn Jetpack Compose with the book, app and screencasts
#R8 #Proguard
How to break your Android App with ProGuard / R8
Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.
Однако не аккуратно настроенная конфигурация может приводить к неявным ошибкам. Нужно следить как за собственными настройками, так и за настройками в подключаемых библиотеках.
Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы
Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
How to break your Android App with ProGuard / R8
Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.
Однако не аккуратно настроенная конфигурация может приводить к неявным ошибкам. Нужно следить как за собственными настройками, так и за настройками в подключаемых библиотеках.
Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы
wait
, nofify
и nofifyAll
класса Object
были неявно помечены как не имеющие side-эффектов и были удалены при оптимизации.Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
Medium
How to break your Android App with proguard / R8
I recently updated the android gradle plugin to 4.0.0. While developing, everything went smoothly and at some point I was ready to cut a…
#Dagger #Hilt
Dependency Injection on Android with Hilt
Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте
Внимание: библиотека еще в альфа стадии
Dependency Injection on Android with Hilt
Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте
Внимание: библиотека еще в альфа стадии
Medium
Dependency injection on Android with Hilt
Jetpack’s recommended library for DI
hilt-annotations.pdf
56.4 KB
Основные аннотации Hilt и их использование