#AndroidStudio #SQLite #Room
Database Inspector - A live database tool we’ve been waiting for!
Android Studio 4.1 Canary 5 порадовала нас новым инструментом - Database Inspector.
В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
Database Inspector - A live database tool we’ve been waiting for!
Android Studio 4.1 Canary 5 порадовала нас новым инструментом - Database Inspector.
В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
Medium
Database Inspector
Creating and managing local databases is a core component of most mobile apps. But whether you’re using SQLite directly or through the…
#HuaweiMobileServices
Как в inDriver добавили поддержку Huawei Mobile Services
Последние устройства Huawei лишены возможности использовать Google сервисы и магазин Google Play. Huawei сделала ход конем и разработала свою альтернативу - Huawei Mobile Services.
В статье вы найдете как произошла адаптация Android приложения с заменой карт, пушей и провайдера местоположения.
Совсем скоро в гости в Android Broadcast Podcast придет Android разработчик из Huawei, который ответит на вопросы по Huawei Mobile Services.
Как в inDriver добавили поддержку Huawei Mobile Services
Последние устройства Huawei лишены возможности использовать Google сервисы и магазин Google Play. Huawei сделала ход конем и разработала свою альтернативу - Huawei Mobile Services.
В статье вы найдете как произошла адаптация Android приложения с заменой карт, пушей и провайдера местоположения.
Совсем скоро в гости в Android Broadcast Podcast придет Android разработчик из Huawei, который ответит на вопросы по Huawei Mobile Services.
Хабр
Как мы в андроид приложение inDriver добавили поддержку Harmony OS
Все началось с того, что министерство торговли США включило Huawei в список компаний, с которыми запрещено вести бизнес американским компаниям. Ответом Huawei ст...
#Podcast #Security
В гости в Android Broadcast Podcast пришел исследователь безопасности Android приложений - Андрей Манкевич, чтобы рассказать о Android SafetyNet. Помимо всего он смог взломать его и расскажет, что там внутри и насколько безопасно использовать. Спойлер - взлом действителен совсем недолго, порядка недели, потому что ....
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
В гости в Android Broadcast Podcast пришел исследователь безопасности Android приложений - Андрей Манкевич, чтобы рассказать о Android SafetyNet. Помимо всего он смог взломать его и расскажет, что там внутри и насколько безопасно использовать. Спойлер - взлом действителен совсем недолго, порядка недели, потому что ....
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
#Dagger #DependencyInjection
Dagger dependencies beyond the basics
Dagger - очень популярное решения для организации DI в Android проектах. Одна печаль - инструмент мощный, но в нем легко запутаться, так как точных рекомендаций по использованию от авторов нет.
В статье разбирается как лучше доставлять зависимости с помощью Dagger в Android из всех возможных вариантов.
Dagger dependencies beyond the basics
Dagger - очень популярное решения для организации DI в Android проектах. Одна печаль - инструмент мощный, но в нем легко запутаться, так как точных рекомендаций по использованию от авторов нет.
В статье разбирается как лучше доставлять зависимости с помощью Dagger в Android из всех возможных вариантов.
Medium
Dagger dependencies beyond the basics
Dagger is one of the most polarizing subjects in the Android community, either you love it, or you hate it. Some developers love it and…
#Network
Connectivity State on Android 10 and Above
Проверка наличия интернета - это нетривиальная задача. Определить наверняка можно только постучавшись на какой-либо удаленный ресурс. Как минимум локально на устройстве нужно проверить, что ваше текущее сетевое подключение имеет возможность выхода в интернет.
В статье разбирается решение на основе NetworkCallback и бекпорт его на API Level 23 и ниже
Connectivity State on Android 10 and Above
Проверка наличия интернета - это нетривиальная задача. Определить наверняка можно только постучавшись на какой-либо удаленный ресурс. Как минимум локально на устройстве нужно проверить, что ваше текущее сетевое подключение имеет возможность выхода в интернет.
В статье разбирается решение на основе NetworkCallback и бекпорт его на API Level 23 и ниже
Medium
Connectivity State on Android 10 and Above
Meet the NetworkCallback
#Performance
Analyze and improve Android app performance with System Tracing
Быстрое приложение с низким потреблением ресурсов устройства - это хороший повод, чтобы инженеры могли гордиться проделанной работой. Чтобы сделать это надо знать какие инструменты использовать и как реагировать на результаты метрик в них.
В статье разбираются различные стандартные инструменты Android разработчика, так и сторонние и как действовать при плохих метриках.
Analyze and improve Android app performance with System Tracing
Быстрое приложение с низким потреблением ресурсов устройства - это хороший повод, чтобы инженеры могли гордиться проделанной работой. Чтобы сделать это надо знать какие инструменты использовать и как реагировать на результаты метрик в них.
В статье разбираются различные стандартные инструменты Android разработчика, так и сторонние и как действовать при плохих метриках.
Medium
Analyze and improve Android app performance with System Tracing
Understanding what exactly happens underneath the user interface of your app is the key to performance tuning.
#Kotlin #CodeQuality
Detekt 1.8.0
Вышла новая версия утилиты, которая позволяет позволяет следить за качеством вашего Kotlin кода. Новая версия может похвастаться следующим:
👉 Новое правило
👉 Большинство правил поддерживает списки yaml вместе со списком, разделенными запятыми
👉 Багфикс
Некоторые фиксы багов потребуют от вас сгенерировать baseline файл снова
Detekt 1.8.0
Вышла новая версия утилиты, которая позволяет позволяет следить за качеством вашего Kotlin кода. Новая версия может похвастаться следующим:
👉 Новое правило
UnnecessaryNotNullOperator
👉 Новое правило UnnecessarySafeCall
👉 Отдельный исполнительный файл detekt
на странице релизов в Github👉 Большинство правил поддерживает списки yaml вместе со списком, разделенными запятыми
👉 Багфикс
Некоторые фиксы багов потребуют от вас сгенерировать baseline файл снова
This media is not supported in your browser
VIEW IN TELEGRAM
#Auth
One Tap sign in for Android apps
One Tap sign-in и sign-up поможет вам упростить авторизацию пользователей в вашем приложении. Хотите узнать как - читайте статью
One Tap sign in for Android apps
One Tap sign-in и sign-up поможет вам упростить авторизацию пользователей в вашем приложении. Хотите узнать как - читайте статью
Android Broadcast
Вы мигрировали на AndroidX / Jetpack (это не про Jetpack Compose) с Android Support?
Как видно что еще часть разработчиков не ушил с Android Support Library на AndroidX. Интересно почему? Отзовитесь в @android_broadcast_talks и расскажите почему, а также что вам не позволяет отключить Jetifier
#AndroidAcademy #Minsk #Online
Android Academy Minsk Topic #6 - Оптимизация приложений
Мобильные устройства хоть и становятся сильнее каждый год, но за собой Android тянем множество старых и дает возможность пользователям покупать бюджетные устройства. Задача нас как разработчиков обеспечить должный уровень производительности и сделать приложение быстрым и не тормозить всю работу устройства.
На ближайшем вебинаре от Android Academy Minsk вы узнает каким практикам сделать чтобы не допускаться проблемы и как их диагностировать, если они есть.
Когда: 27 апреля 2020, понедельник, 19:00 (Москва)
Где: YouTube канал Android Academy
Android Academy Minsk Topic #6 - Оптимизация приложений
Мобильные устройства хоть и становятся сильнее каждый год, но за собой Android тянем множество старых и дает возможность пользователям покупать бюджетные устройства. Задача нас как разработчиков обеспечить должный уровень производительности и сделать приложение быстрым и не тормозить всю работу устройства.
На ближайшем вебинаре от Android Academy Minsk вы узнает каким практикам сделать чтобы не допускаться проблемы и как их диагностировать, если они есть.
Когда: 27 апреля 2020, понедельник, 19:00 (Москва)
Где: YouTube канал Android Academy
#ADVM #Online
Так же рекомендую вам подключиться на ближайший Android Dev Virtual Meetup, на котором Александра Боброва из Яндекс расскажет об измерении потребления батарейки приложением и его оптимизации.
Когда: 23 апреля 2020, четверг, 19.00 (Москва)
Где: YouTube канал ADVM
Организовано при поддержке Android Dev Podcast и Android Broadcast
Так же рекомендую вам подключиться на ближайший Android Dev Virtual Meetup, на котором Александра Боброва из Яндекс расскажет об измерении потребления батарейки приложением и его оптимизации.
Когда: 23 апреля 2020, четверг, 19.00 (Москва)
Где: YouTube канал ADVM
Организовано при поддержке Android Dev Podcast и Android Broadcast
#Coroutines #LiveData #Architecture
Flow and LiveData in MVVM architecture
Пример использования LiveData и Kotlin Flow в архитектуре Android приложений:
👉 Что выбрать в качестве источника данных
👉
👉
Flow and LiveData in MVVM architecture
Пример использования LiveData и Kotlin Flow в архитектуре Android приложений:
👉 Что выбрать в качестве источника данных
Flow
или LiveData
?👉
Flow
в ViewModel
👉
Flow
и Channel
Medium
Flow and LiveData in MVVM architecture
LiveData, Flow and Channels in a modern Android MVVM architecture
#Avito
Avito Android 2020.4.4
Вышло обновление инфраструктуры Android от Avito:
👉 Test runner получил более гибкий и понятный DSL для фильтрации тестов
👉 Test runner научился запускать тесты из library модулей
👉 Тестовое приложение с Kaspresso. На нем будут проверять test runner
👉 Описали плагин для проверки типовых проблем со сборкой. В нем можно подсмотреть с чем сталкивались и как обходим проблемы.
Полный список изменений здесь
Avito Android 2020.4.4
Вышло обновление инфраструктуры Android от Avito:
👉 Test runner получил более гибкий и понятный DSL для фильтрации тестов
👉 Test runner научился запускать тесты из library модулей
👉 Тестовое приложение с Kaspresso. На нем будут проверять test runner
👉 Описали плагин для проверки типовых проблем со сборкой. В нем можно подсмотреть с чем сталкивались и как обходим проблемы.
Полный список изменений здесь
GitHub
Release 2020.4.4 · avito-tech/avito-android
Features
Add new test filters (#332, #329)
Log detailed information of applied test filters (#322, #325)
Can change test filters via CLI (#340)
Can run tests in Android libraries in test runner (#...
Add new test filters (#332, #329)
Log detailed information of applied test filters (#322, #325)
Can change test filters via CLI (#340)
Can run tests in Android libraries in test runner (#...
#JetpackCompose #KotlinMultiplatform
Jetpack Compose для UI на десктопе
Подоспел интересный коммит, где декларативный UI Jetpack Compose используется для UI на десктопе на основе Skia. Вот и подтвердились наши ожидания - Jetpack Compose будет Multiplatform!
Обратите внимание на класс Main
Jetpack Compose для UI на десктопе
Подоспел интересный коммит, где декларативный UI Jetpack Compose используется для UI на десктопе на основе Skia. Вот и подтвердились наши ожидания - Jetpack Compose будет Multiplatform!
Обратите внимание на класс Main
#UI
Android at Large: How to Bring Optimized Experiences to the Big Screen
Android - это не только телефоны, но и часы, планшеты, складные устройства, десктопы и телевизоры. Только жалко, что все кроме телефонов разработчиками поддерживает неактивно.
В чем причина такого? Для меня это замкнутый круг: разработчики не адаптируют UI на экраны отличные от смартфонов, потому что такие устройства непопулярны, а устройства непопулярны, потому что мало адаптированного софта.
Автор статьи делится тем как адаптировать приложение под большие экраны, а именно:
👉 Навигация
👉 UI
👉 Способы ввода информации: сенсорный экран, клавиатура + мышь, пульт
👉 Продолжить работу там же где и был пользователь после смены конфигурации устройства: поворот экрана, смена языка, раскрытие устройства и др.
👉 Поддержка множества окон
👉 Drag-&-Drop
Изучить больше о поддержке складных устройств и десктопов (Chrome OS)
Android at Large: How to Bring Optimized Experiences to the Big Screen
Android - это не только телефоны, но и часы, планшеты, складные устройства, десктопы и телевизоры. Только жалко, что все кроме телефонов разработчиками поддерживает неактивно.
В чем причина такого? Для меня это замкнутый круг: разработчики не адаптируют UI на экраны отличные от смартфонов, потому что такие устройства непопулярны, а устройства непопулярны, потому что мало адаптированного софта.
Автор статьи делится тем как адаптировать приложение под большие экраны, а именно:
👉 Навигация
👉 UI
👉 Способы ввода информации: сенсорный экран, клавиатура + мышь, пульт
👉 Продолжить работу там же где и был пользователь после смены конфигурации устройства: поворот экрана, смена языка, раскрытие устройства и др.
👉 Поддержка множества окон
👉 Drag-&-Drop
Изучить больше о поддержке складных устройств и десктопов (Chrome OS)
Medium
Android at large: how to bring optimized experiences to the big screen
Discover how to build great experiences for the larger display devices: tablets, foldables, laptops, and desktop devices
Для каких устройств адаптируете Android приложения? Не просто даёте запускаться, а именно используете возможности
МОЖНО ВЫБРАТЬ НЕСКОЛЬКО ВАРИАНТОВ
МОЖНО ВЫБРАТЬ НЕСКОЛЬКО ВАРИАНТОВ
Final Results
89%
Телефоны
28%
Планшеты
1%
Десктоп (ChromeOS)
5%
Телевизор (Android TV)
3%
Часы (Android Wear)
9%
Не участвую в опросе
#DependencyInjection #ArchitectureComponents #ViewModel
Injecting ViewModel — hard to easy
В современной Android разработке очень популярна архитектура MVVM на основе Arch Components. И куда же современное приложение без Dependency Injection (DI).
Создание ViewModel и доставка зависимостей в ее конструктор с помощью DI - нетривиальная задача, так как создать ViewModel просто через конструктор неправильно, нужно делать это через ViewModelProvider.Factory.
В статье разбирается как решить эту задачу с помощью Dagger и Koin.
Injecting ViewModel — hard to easy
В современной Android разработке очень популярна архитектура MVVM на основе Arch Components. И куда же современное приложение без Dependency Injection (DI).
Создание ViewModel и доставка зависимостей в ее конструктор с помощью DI - нетривиальная задача, так как создать ViewModel просто через конструктор неправильно, нужно делать это через ViewModelProvider.Factory.
В статье разбирается как решить эту задачу с помощью Dagger и Koin.
Medium
Injecting ViewModel — hard to easy
Comparing Dagger 2, Koin and Service Locator approaches
#Podcast
Android Broadcast Podcast #14: "Android инфраструктура Авито в Open Source" c Дмитрием Ворониным
Компания Avito открыла наработки для своих Android проектов, связанных с запуском сборок на CI, автотестами, лучшими практиками по настройке утилит и использованию библиотек. Дмитрий Воронин из Авито рассказал все подробности, что интересного можно использовать в своих проектах и что еще будет в будущем.
Гость выпуска - Дмитрий Воронин, инженер Android инфраструктуры в Авито, команда "Speed"
Полезные ссылки:
📰 Telegram канал с полезными материалами для Android разработчиков
🧰 Github Avito Android Infrastructure
👉 Android in Avito. Documentation
👉 Обсуждение Avito Android Open Source в Telegram
Android Broadcast Podcast #14: "Android инфраструктура Авито в Open Source" c Дмитрием Ворониным
Компания Avito открыла наработки для своих Android проектов, связанных с запуском сборок на CI, автотестами, лучшими практиками по настройке утилит и использованию библиотек. Дмитрий Воронин из Авито рассказал все подробности, что интересного можно использовать в своих проектах и что еще будет в будущем.
Гость выпуска - Дмитрий Воронин, инженер Android инфраструктуры в Авито, команда "Speed"
Полезные ссылки:
📰 Telegram канал с полезными материалами для Android разработчиков
🧰 Github Avito Android Infrastructure
👉 Android in Avito. Documentation
👉 Обсуждение Avito Android Open Source в Telegram
#Android11
Android 11: Developer Preview 3
Вышла новая предварительная версия Android 11 для разработчиков. Изменений не так много:
👉 Обновления Exit Reason API (возможность понять почему приложение было закрыто)
👉 GWP-ASan для анализа heap, для проверки безопасности файлов
👉 Инкрементальный ADB. Нужно испольвать APK signature scheme v4
👉 Полноценный беспроводной debug
👉 Багфикс
Следующая версия будет в мае и уже можно будет обновиться по воздуху
Android 11: Developer Preview 3
Вышла новая предварительная версия Android 11 для разработчиков. Изменений не так много:
👉 Обновления Exit Reason API (возможность понять почему приложение было закрыто)
👉 GWP-ASan для анализа heap, для проверки безопасности файлов
👉 Инкрементальный ADB. Нужно испольвать APK signature scheme v4
👉 Полноценный беспроводной debug
👉 Багфикс
Следующая версия будет в мае и уже можно будет обновиться по воздуху
Android Developers Blog
Android 11: Developer Preview 3
Posted by Dave Burke, VP of Engineering Our teams, like all of you, continue getting used to a new normal. For many of us, that mean...
This media is not supported in your browser
VIEW IN TELEGRAM
#AndroidStudio #Dagger
Dagger navigation support in Android Studio
Android Studio 4.1 Canary 7 добавила возможность навигации по месту коду, связанного с Dagger:
👉 Перейти в место, откуда предоставляется зависимость
👉 Найти все использования зависимости
👉 Найти Component, который использует Subcomponent
👉 Поддержка Qualifier
Пока не все работает с Kotlin, но в будущих Canary версиях будут вестись работы дальше. Крутое начало!
Dagger navigation support in Android Studio
Android Studio 4.1 Canary 7 добавила возможность навигации по месту коду, связанного с Dagger:
👉 Перейти в место, откуда предоставляется зависимость
👉 Найти все использования зависимости
👉 Найти Component, который использует Subcomponent
👉 Поддержка Qualifier
Пока не все работает с Kotlin, но в будущих Canary версиях будут вестись работы дальше. Крутое начало!