#AndroidQ #WhatNews
Android Q - что нового для разработчиков
13 марта была представлена первая бета версия Android Q - очередного обновления популярной ОС. Основные изменения направлены на улучшение безопасности данных пользователя и ограничение возможностей сторонних приложений.
В статье я подробно разобрал все изменения
Android Q - что нового для разработчиков
13 марта была представлена первая бета версия Android Q - очередного обновления популярной ОС. Основные изменения направлены на улучшение безопасности данных пользователя и ограничение возможностей сторонних приложений.
В статье я подробно разобрал все изменения
Medium
Android Q Beta 1 — Обзор изменений для разработчиков
Хотите узнать больше интересных новостей из мира Android разработки — подписывайтесь на Telegram канал Android Broadcast
👍1
#ArchComponents #Navigation #MasterDetail
Master-Detail views with Navigation Components
Совсем недавно вышел Navigation Arch Component и идет его активное исследование. В статье рассказывается как реализовать "Master-Detail" на планшете с помощью новой библиотеки. Как оказалось это не совсем тривиальное решение.
Master-Detail views with Navigation Components
Совсем недавно вышел Navigation Arch Component и идет его активное исследование. В статье рассказывается как реализовать "Master-Detail" на планшете с помощью новой библиотеки. Как оказалось это не совсем тривиальное решение.
👍1
#D8 #R8 #CPU #JVM
Android CPU, Compilers, D8 & R8
Статья о компиляции кода в Android и как Google улучшает процесс. В ней вы найдете:
👉 JVM и ее связи с Android
👉 Как работает JVM
👉 DEX
👉 Как читать байткод
👉 Как происходит сборка Android приложения
👉 Android Runtime (ART)
👉 D8 & R8
Android CPU, Compilers, D8 & R8
Статья о компиляции кода в Android и как Google улучшает процесс. В ней вы найдете:
👉 JVM и ее связи с Android
👉 Как работает JVM
👉 DEX
👉 Как читать байткод
👉 Как происходит сборка Android приложения
👉 Android Runtime (ART)
👉 D8 & R8
Medium
Android CPU, Compilers, D8 & R8
Imagine you have an important space mission ahead. You need a spacecraft that won’t get you into much trouble on the way. You may opt in a…
👍1
#Koin #DependencyInjection #Kotlin
Koin 2.0 Beta
Я люблю Kotlin и стараюсь использовать библиотеки, которые написаны на этом языке чтобы получить максимальную эффективность от использования Kotlin.
Самое важное в Koin 2.0 то, что библиотека упростила API и повысила скорость работы.
Koin 2.0 Beta
Я люблю Kotlin и стараюсь использовать библиотеки, которые написаны на этом языке чтобы получить максимальную эффективность от использования Kotlin.
Самое важное в Koin 2.0 то, что библиотека упростила API и повысила скорость работы.
👍1
Forwarded from The Daily Kotlin (Ruslan Ibragimov)
Билеты на Kotlin Conf появились в продаже. Твит.
KotlinConf
Registration | KotlinConf 2026, May 20–22, Munich
KotlinConf is the official Kotlin conference by JetBrains. It is a place for the community to gather and discuss all things Kotlin.
👍1
#GooglePlay
Google Mobile Developer Day at Game Developers Conference 2019
Google принимает участие в Game Developers Conference и сделала интересные анонсы:
👉 Теперь предварительная регистрация доступна для всех. Этот механизм позволяет заранее узнать о выходе продукта и подписаться пользователям на анонс приложения/игры, когда оно станет доступно в Google Play
👉 Увеличен размер конечной APK, получаемой из Android App Bundles, до 150 МБ (раньше было 100 МБ)
👉 Возможность кастомизации описания приложения в разных странах
👉 Обновление A/B тестов с описанием приложения в Google Play: теперь можно поменять описание для пользователей кто уже посетил страничку приложения.
Google Mobile Developer Day at Game Developers Conference 2019
Google принимает участие в Game Developers Conference и сделала интересные анонсы:
👉 Теперь предварительная регистрация доступна для всех. Этот механизм позволяет заранее узнать о выходе продукта и подписаться пользователям на анонс приложения/игры, когда оно станет доступно в Google Play
👉 Увеличен размер конечной APK, получаемой из Android App Bundles, до 150 МБ (раньше было 100 МБ)
👉 Возможность кастомизации описания приложения в разных странах
👉 Обновление A/B тестов с описанием приложения в Google Play: теперь можно поменять описание для пользователей кто уже посетил страничку приложения.
Android Developers Blog
Google Mobile Developer Day at Game Developers Conference 2019
Posted by Kacey Fahey, Developer Marketing, Google Play & Android We're excited to host the Google Mobile Developer Day at Game Deve...
👍1
#Coroutines #Architecture #ViewModel
Easy Coroutines in Android: viewModelScope
Coroutine имеют очень хорошую возможность - CoroutineScope, которые позволяют вам автоматически отменять выполнение всех Coroutine, связанных с ним. Это очень эффективно помогает при работе с UI, например при запуске Coroutine в Activity/Fragment/ViewModel.
Google активно поддерживает Coroutine и в AndroidX Lifecycle v2.1.0 добавлена поддержка CoroutineScope для ViewModel с помощью
Ждем релиза новой версии библиотеки ⌛
Easy Coroutines in Android: viewModelScope
Coroutine имеют очень хорошую возможность - CoroutineScope, которые позволяют вам автоматически отменять выполнение всех Coroutine, связанных с ним. Это очень эффективно помогает при работе с UI, например при запуске Coroutine в Activity/Fragment/ViewModel.
Google активно поддерживает Coroutine и в AndroidX Lifecycle v2.1.0 добавлена поддержка CoroutineScope для ViewModel с помощью
viewModelScope extension property. Подробности использования и реализации вы можете найти в статье!Ждем релиза новой версии библиотеки ⌛
Medium
Easy Coroutines in Android: viewModelScope
Cancelling coroutines when they are no longer needed can be a task easy to forget, it’s monotonous work and adds a lot of boilerplate code…
#Architecture #ViewModel #MVVM #ArchComponents
MVVM — How View and ViewModel should communicate?
Выбор архитектуру - важный вопрос для любого проекта, но приняв это решение, надо понимать как эффективно реализовать его, чтобы получить все преимущества от.
На текущий момент очень популярным решением стало MVVM (Model-View-ViewModel). Рост спроса на эту архитектуру подкрепился тем, что разработчики из Google сделали готовые компоненты для удобной реализации этого подхода, что значительно упрощает задачу.
Замечание: классический MVVM, описанный в Microsoft, отличается от того что обычно применяется в Android
Чтобы сделать MVVM качественно надо придерживаться нескольких правил:
👉 У каждого компонента есть четкая роль:
👉
👉 Когда происходит клик или прочие события на UI,
👉
👉 При модификации данных в
👉 ViewModel может предоставлять дополнительные методы для View. В случаях когда у вас много логики в
Следование правилам, описанным выше, позволит вам:
👉 реализовать эффективную архитектуру в Android
👉 не иметь проблем с жизненным циклом
👉 не думать о сохранение данных при повороте экрана
👉 позволит покрыть логику Unit тестами
👉 упростит расширение функционала в будущем
MVVM — How View and ViewModel should communicate?
Выбор архитектуру - важный вопрос для любого проекта, но приняв это решение, надо понимать как эффективно реализовать его, чтобы получить все преимущества от.
На текущий момент очень популярным решением стало MVVM (Model-View-ViewModel). Рост спроса на эту архитектуру подкрепился тем, что разработчики из Google сделали готовые компоненты для удобной реализации этого подхода, что значительно упрощает задачу.
Замечание: классический MVVM, описанный в Microsoft, отличается от того что обычно применяется в Android
Чтобы сделать MVVM качественно надо придерживаться нескольких правил:
👉 У каждого компонента есть четкая роль:
View отвечает за отображение данных, VM - предоставляет данные, которые отобразятся на View и обрабатывает события, связанные с данными в ней👉
VM содержит только логику. Он не должен содержать никаких классов из Android SDK, все платформенное API должно предоставляться через абстракции в виде интерфейсов.👉 Когда происходит клик или прочие события на UI,
View только сообщается VM о произошедшем событие (простым вызовом метода в VM) и не выполняет какой-либо логики👉
VM не знает ничего о View👉 При модификации данных в
VM они сразу же должны отображаться в View. Эффективный способ достичь этого - использовать LiveData. Это позволяет организовать push взаимодействие между VM и View, что дает мгновенное отображение любых изменений в данных на экране.👉 ViewModel может предоставлять дополнительные методы для View. В случаях когда у вас много логики в
VM можно вынести ее в отдельный класс - Presenter, который служит медиатором между VM. В таком случае VM будет служить чистым контейнером состояния View.Следование правилам, описанным выше, позволит вам:
👉 реализовать эффективную архитектуру в Android
👉 не иметь проблем с жизненным циклом
👉 не думать о сохранение данных при повороте экрана
👉 позволит покрыть логику Unit тестами
👉 упростит расширение функционала в будущем
👍1
#MachineLearning #TensorFlow
TensorFlow Dev Summit key takeaways for Android Developers
На прошедшем TensorFlow Dev Summit было объявлено несколько важных новостей касательно работы этого фреймворка на Android:
👉 Ускорение TensorFlow Lite на GPU, которая увеличивает скорость 2-7 раз на устройствах с OpenGL ES 3.1 (Android 5.0+)
👉 Улучшена документация. больше примеров
👉 Запуск более сложных моделей на устройстве
TensorFlow Dev Summit key takeaways for Android Developers
На прошедшем TensorFlow Dev Summit было объявлено несколько важных новостей касательно работы этого фреймворка на Android:
👉 Ускорение TensorFlow Lite на GPU, которая увеличивает скорость 2-7 раз на устройствах с OpenGL ES 3.1 (Android 5.0+)
👉 Улучшена документация. больше примеров
👉 Запуск более сложных моделей на устройстве
👍1
#Gradle
Gradle 5.3 Released
Вышла новая версия Gradle. Релиз содержит следующие обновления:
👉 Feature variants (аналогично опциональным зависимостям в Maven)
👉 Обновление Kotlin DSL
👉 Gradle Module Metadata 1.0 - новый формат метаданных, которые решает проблемы Maven POM
👉 Исправление багов
Gradle 5.3 Released
Вышла новая версия Gradle. Релиз содержит следующие обновления:
👉 Feature variants (аналогично опциональным зависимостям в Maven)
👉 Обновление Kotlin DSL
👉 Gradle Module Metadata 1.0 - новый формат метаданных, которые решает проблемы Maven POM
👉 Исправление багов
blog.gradle.org
Introducing Gradle Module Metadata
Gradle Module Metadata reaches 1.0 in Gradle 5.3 and here we explain why you should be as excited as we are!
👍1
#Performance #Gradle #Marble #AndroidGradlePlugin
Improving build speed in Android Studio
Статья о том как Google старается улучшить скорость сборки приложения в Android Studio (AS), хотя не совсем это получается по результатам работы на разных проектах. Причин этому несколько:
👉 Рост кодовой базы
👉 Spectre и Meltdown патчи снизили скорость процессоров
👉 Сторонние и собственные Gradle плагины, которые не поддерживают API последних версий Gradle, позволяющих ускорить сборку
👉 Использование Java 8 - приводит к работе desugar, что увеличивает время сборки. D8 и R8 позволяют снизить негативный эффект.
👉 Использование Kotlin, в особенности Kotlin annotation processing (KAPT), влияет на сборку
👉 Множество библиотек, построенных на Android Support Library, и требующих работы Jetifier при использование AndroidX библиотек
Для того чтобы решить проблемы Google активно работает с Gradle и JetBrains.
Google сделала множество улучшений в последних версиях Android Gradle Plugin:
👉 namespaced resources
👉 Инкрементальный annotation processor
👉 Поддержка Gradle Worker API
👉 Миграция на Gradle Lazy API
Как исправить положение дел в вашем проекте:
👉 Анализируйте производительность сборки вашего проекта с помощью Gradle Scan или Gradle profiler
👉 Используйте Gradle Lazy API, избегайте использовать I/O или любых других длительных операций
👉 Настраивайте все task-и в фазе конфигурации
👉 Настраивайте входные и выходные файлы/папки, чтобы ваши результат task-ов могли кэшироваться
👉 Разделяйте большие task-и на более мелкие, чтобы они могли кэшироваться независимо и выполняться инкрементально
👉 Убедитесь что один task не затирает результаты другого
👉 Используйте языки со статической типизацией (Java/Kotlin) вместо динамически типизируемых (Groovy) для написания ваших плагинов и Gradle скриптов
Improving build speed in Android Studio
Статья о том как Google старается улучшить скорость сборки приложения в Android Studio (AS), хотя не совсем это получается по результатам работы на разных проектах. Причин этому несколько:
👉 Рост кодовой базы
👉 Spectre и Meltdown патчи снизили скорость процессоров
👉 Сторонние и собственные Gradle плагины, которые не поддерживают API последних версий Gradle, позволяющих ускорить сборку
👉 Использование Java 8 - приводит к работе desugar, что увеличивает время сборки. D8 и R8 позволяют снизить негативный эффект.
👉 Использование Kotlin, в особенности Kotlin annotation processing (KAPT), влияет на сборку
👉 Множество библиотек, построенных на Android Support Library, и требующих работы Jetifier при использование AndroidX библиотек
Для того чтобы решить проблемы Google активно работает с Gradle и JetBrains.
Google сделала множество улучшений в последних версиях Android Gradle Plugin:
👉 namespaced resources
👉 Инкрементальный annotation processor
👉 Поддержка Gradle Worker API
👉 Миграция на Gradle Lazy API
Как исправить положение дел в вашем проекте:
👉 Анализируйте производительность сборки вашего проекта с помощью Gradle Scan или Gradle profiler
👉 Используйте Gradle Lazy API, избегайте использовать I/O или любых других длительных операций
👉 Настраивайте все task-и в фазе конфигурации
👉 Настраивайте входные и выходные файлы/папки, чтобы ваши результат task-ов могли кэшироваться
👉 Разделяйте большие task-и на более мелкие, чтобы они могли кэшироваться независимо и выполняться инкрементально
👉 Убедитесь что один task не затирает результаты другого
👉 Используйте языки со статической типизацией (Java/Kotlin) вместо динамически типизируемых (Groovy) для написания ваших плагинов и Gradle скриптов
Medium
Improving build speed in Android Studio
Posted by Leo Sei, Product manager on Android Studio
👍1
#AppBundle #GooglePlay #Instant
The latest Android App Bundle updates including the additional languages API
Google представили обновления Android App Bundle и его работе в Google Play:
👉Дополнительное API по установке языков, которое позволяет показывать пользователю диалог с выбором языков для установки, а также получить список всех установленных языков. API доступно в Play Core Library 1.4.0.
👉Поддержка Google Play Instant в App Bundle, теперь можно загружать Android App Bundle, который содержит модули для Google Play Instant
👉Удаление dymanic feature модулей, встроенных в приложение, при установке приложения. Это позволит удалять модули, для которых выставлено
👉Теперь необязательно заливать ключ для Google Play App Signing и артефакт, подписанный этим ключом, перед этим. Больше подробностей здесь.
The latest Android App Bundle updates including the additional languages API
Google представили обновления Android App Bundle и его работе в Google Play:
👉Дополнительное API по установке языков, которое позволяет показывать пользователю диалог с выбором языков для установки, а также получить список всех установленных языков. API доступно в Play Core Library 1.4.0.
👉Поддержка Google Play Instant в App Bundle, теперь можно загружать Android App Bundle, который содержит модули для Google Play Instant
👉Удаление dymanic feature модулей, встроенных в приложение, при установке приложения. Это позволит удалять модули, для которых выставлено
onDemand="false".👉Теперь необязательно заливать ключ для Google Play App Signing и артефакт, подписанный этим ключом, перед этим. Больше подробностей здесь.
Android Developers Blog
The latest Android App Bundle updates including the additional languages API
Posted by Wojtek Kaliciński, Developer Advocate, Android Last year, we launched Android App Bundles and Google Play's Dynamic Delivery...
👍1
#AndroidKTX #Drawing #Kotlin
Android Canvas APIs with Kotlin and KTX
Библиотека Android KTX значительно упрощает разработку приложений на Kotlin, предоставляя Kotlin расширения для API из Android SDK.
Одно из таких удобных расширений - расширения для Canvas API.
Давайте посмотрим на результаты работы с новым API.
Без Android KTX:
С Android KTX
Плюсы от использования Android KTX - более читабельный код и невозможность избежать ошибки с вызовами
Android Canvas APIs with Kotlin and KTX
Библиотека Android KTX значительно упрощает разработку приложений на Kotlin, предоставляя Kotlin расширения для API из Android SDK.
Одно из таких удобных расширений - расширения для Canvas API.
Давайте посмотрим на результаты работы с новым API.
Без Android KTX:
val translateCheckpoint = canvas.save()canvas.translate(200f, 300f) canvas.drawCircle(...)val rotateCheckpoint = canvas.save()canvas.rotate(45f) canvas.drawRect(...)canvas.restoreToCount(rotateCheckpoint)canvas.restoreToCount(translateCheckpoint)С Android KTX
canvas.withTranslate(200f, 300f) { drawCircle(...) withRotate(45f) { drawRect(...) }}Плюсы от использования Android KTX - более читабельный код и невозможность избежать ошибки с вызовами
save/restore().👍1
#Debug #Native
Debugging Native Crashes in Android Apps
По статистике на декабрь 2018 года 100 самых популярных приложений были установлены 54 миллиарда раз из 85 из них содержат нативный код.
Хотите сделать конкурента таким приложением или статью часть их команды? Без знания C/C++ уже не обойтись с ростом навыков, но любому разработчику будет полезно знать как дебажить такой код.
В статье вы найдете руководство с чего начать поиск проблемы, когда ваше приложение падает на уровне нативного кода.
Debugging Native Crashes in Android Apps
По статистике на декабрь 2018 года 100 самых популярных приложений были установлены 54 миллиарда раз из 85 из них содержат нативный код.
Хотите сделать конкурента таким приложением или статью часть их команды? Без знания C/C++ уже не обойтись с ростом навыков, но любому разработчику будет полезно знать как дебажить такой код.
В статье вы найдете руководство с чего начать поиск проблемы, когда ваше приложение падает на уровне нативного кода.
Medium
Debugging Native Crashes in Android Apps
A Simple End-to-End Example with ProGuard
👍1
#StrcitMode #Performance
StrictModeCompat Library
Я реализовал библиотеку StrictModeCompat для удобной работы с StrictMode на всех версиях Android. Она позволяет безопасно вызывать любой метод аналогично тому, как это сделано в AndroidX. В статье ниже вы найдете описание проблемы и как подключить библиотеку к вашему проекту.
StrictModeCompat Library
Я реализовал библиотеку StrictModeCompat для удобной работы с StrictMode на всех версиях Android. Она позволяет безопасно вызывать любой метод аналогично тому, как это сделано в AndroidX. В статье ниже вы найдете описание проблемы и как подключить библиотеку к вашему проекту.
Medium
StrictModeCompat Library
Init StrcitMode safely on any Android version
👍1
#Material #Design #BottomSheet
Hands-on with Material Components for Android: Bottom Sheet
Третья статья из серии о компонентах Material Design и как их использовать в Android. В текущей рассматривается Bottom Sheet:
👉 Виды Bottom Sheet
👉 Базисы использования
👉 BottomSheetBehavior
👉 Состояния Bottom Sheet и как его сохранить
👉 Оповещение об изменение состояния
👉 Кастомизация
Hands-on with Material Components for Android: Bottom Sheet
Третья статья из серии о компонентах Material Design и как их использовать в Android. В текущей рассматривается Bottom Sheet:
👉 Виды Bottom Sheet
👉 Базисы использования
👉 BottomSheetBehavior
👉 Состояния Bottom Sheet и как его сохранить
👉 Оповещение об изменение состояния
👉 Кастомизация
Medium
Hands-on with Material Components for Android: Bottom Sheets
Part 3 of a series covering practical usage of Material Components for Android
👍1