#GooglePlay #Huawei
Массовые удаления ваших приложений с устройств
На днях вы могли заметить заметное количество удалений ваших приложений в Google Play. Это связано с тем, что Huawei поменяла имена устройств и аналитика магазина приложений, посчитала это как удаление приложения и установку на новый.
Бейте тревогу если количество установок у вас не выросло соизмеримо с количеством удалений
Массовые удаления ваших приложений с устройств
На днях вы могли заметить заметное количество удалений ваших приложений в Google Play. Это связано с тем, что Huawei поменяла имена устройств и аналитика магазина приложений, посчитала это как удаление приложения и установку на новый.
Бейте тревогу если количество установок у вас не выросло соизмеримо с количеством удалений
Twitter
Maria Neumayer
PSA: if you see a spike in uninstalls of your app on @GooglePlayDev don’t worry - Huawei changed their device names and that is reported as an uninstall/install event
#Optimization
App size reduction at Microsoft SwiftKey
История того как в Microsoft оптимизировали размер SwiftKey на Android.
В статье разбирают:
👉 Зачем оптимизировать размер APK
👉 Оптимизация кода
👉 Оптимизация ресурсов
👉 Оптимизация нативного кода
App size reduction at Microsoft SwiftKey
История того как в Microsoft оптимизировали размер SwiftKey на Android.
В статье разбирают:
👉 Зачем оптимизировать размер APK
👉 Оптимизация кода
👉 Оптимизация ресурсов
👉 Оптимизация нативного кода
Medium
App size reduction at Microsoft SwiftKey
Our journey of making our Android app smaller, from when we started analysing our app to the changes we made and the improvements we got.
Также в статье выше Microsoft рассказали о интеграции в Azure DevOps Task и Github Actions шага по анализу размеру APK.
Инструмент позволяет анализировать 2 APK и сравнить их разные метрики:
👉 размер APK (apkSize)
👉 размер после установки (installSize)
👉 размер dex файлов (dexFiles)
👉 размер файлов ресурсов (arscFile)
👉 размер нативного кода (nativeLibs)
Инструмент позволяет анализировать 2 APK и сравнить их разные метрики:
👉 размер APK (apkSize)
👉 размер после установки (installSize)
👉 размер dex файлов (dexFiles)
👉 размер файлов ресурсов (arscFile)
👉 размер нативного кода (nativeLibs)
GitHub
GitHub - microsoft/android-app-size-diff: Android app size measuring in your CI
Android app size measuring in your CI. Contribute to microsoft/android-app-size-diff development by creating an account on GitHub.
#Sample #Arhitecture
Marvel Heroes - пример приложения на основе MVVM
Все кто любит супергероев и примеры приложение с использованием современных архитектур, тогда вам стоит посмотреть на репозиторий.
Тех стек приложения:
👉 min SDK = 21
👉 Kotlin based + Coroutines for asynchronous.
👉 Architecture Components: LiveData, Lifecycle, ViewModel, Room.
👉 MVVM Architecture (View - DataBinding - ViewModel - Model)
👉 Koin
👉 Retrofit2 & Gson
👉 OkHttp3
👉 Glide
👉 TransformationLayout
👉 WhatIf
👉 DiscreteScrollView
👉 Timber
👉 Material Components
Marvel Heroes - пример приложения на основе MVVM
Все кто любит супергероев и примеры приложение с использованием современных архитектур, тогда вам стоит посмотреть на репозиторий.
Тех стек приложения:
👉 min SDK = 21
👉 Kotlin based + Coroutines for asynchronous.
👉 Architecture Components: LiveData, Lifecycle, ViewModel, Room.
👉 MVVM Architecture (View - DataBinding - ViewModel - Model)
👉 Koin
👉 Retrofit2 & Gson
👉 OkHttp3
👉 Glide
👉 TransformationLayout
👉 WhatIf
👉 DiscreteScrollView
👉 Timber
👉 Material Components
Какой основной формат для обмена данными вы используете в своем последнем приложении?
Anonymous Poll
83%
REST
3%
GraphQL
0%
SOAP
4%
Socket
3%
Другой
3%
Нет работы с сервером
5%
Не участвую в опросе
Какой формат для сериализации данных для коммуникации с сервером вы используете?
Anonymous Poll
89%
JSON (GraphQL сюда)
6%
Protobuf
5%
XML
2%
Другой бинарный
1%
Другой
6%
Не участвую в опросе
#AndroidStudio #SQLite
Android Studio 4.1: Database Inspector
Не успела релизнуться Android Studio 4.0, но в новых канарейках Android Studio 4.1 нас радуют крутым функционалом. Теперь посмотреть данные из БД SQLite, модифицировать ее и делать запросы.
Все этого интегрировано с Room. Если AS будет находить аннотации, то позволит сразу выполнять запросы 🔥
Android Studio 4.1: Database Inspector
Не успела релизнуться Android Studio 4.0, но в новых канарейках Android Studio 4.1 нас радуют крутым функционалом. Теперь посмотреть данные из БД SQLite, модифицировать ее и делать запросы.
Все этого интегрировано с Room. Если AS будет находить аннотации, то позволит сразу выполнять запросы 🔥
#AndroidOS
A cautionary tale on Android: do not call System.exit()
Со времен Java многие разработчики привыкли к тому, что System.exit() остановит выполнение программы, но не в случае Android. Хотите завершить весь stack Activity - вызывайте Activity.finishAffinity().
Это не остановит все компоненты (Service и прочее), но поможет закрыть весь текущий back stack Activity.
A cautionary tale on Android: do not call System.exit()
Со времен Java многие разработчики привыкли к тому, что System.exit() остановит выполнение программы, но не в случае Android. Хотите завершить весь stack Activity - вызывайте Activity.finishAffinity().
Это не остановит все компоненты (Service и прочее), но поможет закрыть весь текущий back stack Activity.
Medium
A cautionary tale on Android: do not call System.exit()
Once upon a time… there was an issue that was hidden in plain sight! It lived freely for years without no one noticing it. Until one day…
#Online #Meetup
Kotlin Quiz by Mobile People
Сообщество Mobile People проводит онлайн митап по Kotlin в формате Quiz: задается вопрос, вы на него отвечаете, и идет объяснение ответа. Помимо всего вы можете выиграть призы!
Когда: 15 апреля, среда, 18.30 (Минск)
Где: YouTube Stream
Kotlin Quiz by Mobile People
Сообщество Mobile People проводит онлайн митап по Kotlin в формате Quiz: задается вопрос, вы на него отвечаете, и идет объяснение ответа. Помимо всего вы можете выиграть призы!
Когда: 15 апреля, среда, 18.30 (Минск)
Где: YouTube Stream
#Arhitecture #Navigation
Context free Android navigation
Организация навигации в Android приложении имеет особенности - нам необходимо Activity, Contex либо Fragment (добавленный в Activity). Держать ссылки на эти компоненты из ViewModel не стоит. Как тогда организовать правильно навигацию не перекидывая события о переходе в подписчиков
В статье рассматривается подход в виде абстракции Navigator, которую вы можете использовать в
Context free Android navigation
Организация навигации в Android приложении имеет особенности - нам необходимо Activity, Contex либо Fragment (добавленный в Activity). Держать ссылки на эти компоненты из ViewModel не стоит. Как тогда организовать правильно навигацию не перекидывая события о переходе в подписчиков
LiveData
из ViewModel
?В статье рассматривается подход в виде абстракции Navigator, которую вы можете использовать в
ViewModel
.Medium
Context free Android navigation
You may be familiar with this situation: You want a ViewModel without Android code, but some dependencies need an Activity to navigate. Or…
#Architecture
Android: Error handling in Clean Architecture
Взгляд на обработку ошибок и передачу их между слоями в Clean Architecture. Учтите, что взгляд который описывается в статье - это не канон. Вам он может не понравиться, вы можете сделать по другому.
Для себя я предпочитаю возвращать всегда класс-обертку
Android: Error handling in Clean Architecture
Взгляд на обработку ошибок и передачу их между слоями в Clean Architecture. Учтите, что взгляд который описывается в статье - это не канон. Вам он может не понравиться, вы можете сделать по другому.
Для себя я предпочитаю возвращать всегда класс-обертку
Result
, которая может быть либо ошибкой, либо результатом успешно выполненной операции. Вот здесь примерMedium
Android: Error handling in Clean Architecture
When you’re building an app using Clean Architecture patterns, how do you propagate errors between the layers?
This media is not supported in your browser
VIEW IN TELEGRAM
#Room #Tools
FloorPlan - translate Room schemas to DBML
Конвертирование схему БД на основе Room в Database Markup Language (DBML), чтобы затем использовать DBML в dbdiagram.io и красиво визаулизировать схему.
FloorPlan - translate Room schemas to DBML
Конвертирование схему БД на основе Room в Database Markup Language (DBML), чтобы затем использовать DBML в dbdiagram.io и красиво визаулизировать схему.
#Podcast
Как пройти интервью в компанию мечты
Большие компании. В них круто работать и зачастую они вызывают страх перед тем чтобы даже отправить туда свое резюме. Почему? Все считают, что это нереальная планка требований. Провал на таком собеседование - это закрытие дверей в нее раз и навсегда. Развеиваем мифы попадания в большие компании.
Ведущий - Кирилл Розов
Гости:
👨✈️ Константин Цховребов, JetBrains, разработчик в Kotlin Mobile Multiplatform
👨✈️ Даниил Попов, Авито, Инженер инфраструктуры Андроид проектов
👨✈️ Сергей Рябов, Facebook, Software Engineer в команде Native UI Frameworks, разработчик библиотеки Litho
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Отдельное спасибо Даниилу Попову за 🎵трек 🎵для подкаста
Как пройти интервью в компанию мечты
Большие компании. В них круто работать и зачастую они вызывают страх перед тем чтобы даже отправить туда свое резюме. Почему? Все считают, что это нереальная планка требований. Провал на таком собеседование - это закрытие дверей в нее раз и навсегда. Развеиваем мифы попадания в большие компании.
Ведущий - Кирилл Розов
Гости:
👨✈️ Константин Цховребов, JetBrains, разработчик в Kotlin Mobile Multiplatform
👨✈️ Даниил Попов, Авито, Инженер инфраструктуры Андроид проектов
👨✈️ Сергей Рябов, Facebook, Software Engineer в команде Native UI Frameworks, разработчик библиотеки Litho
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Отдельное спасибо Даниилу Попову за 🎵трек 🎵для подкаста
#Testing #Battery
Android Battery Testing at Microsoft YourPhone
Какими бы большими батареи телефонов не становились, какими бы быстрыми не были зарядки, нам все хочется думать меньше о том как эффективно расходовать батарею.
Мы разработчики можем с вами повлиять на это, бережно относясь к ресурсам. Если хочешь поменять мир - начни с себя. Вот Microsoft и делится своим опытом в отслеживание расхода батареи их продуктом.
Android Battery Testing at Microsoft YourPhone
Какими бы большими батареи телефонов не становились, какими бы быстрыми не были зарядки, нам все хочется думать меньше о том как эффективно расходовать батарею.
Мы разработчики можем с вами повлиять на это, бережно относясь к ресурсам. Если хочешь поменять мир - начни с себя. Вот Microsoft и делится своим опытом в отслеживание расхода батареи их продуктом.
Medium
Android Battery Testing at Microsoft YourPhone
The YourPhone app allows the user to seamlessly connect their PC to their Android device to access a wealth of information from the phone…
#ReverseEngineering
Реверс API по его android приложению
Сталкивались с тем, что хочется использовать API сервиса но его нет в публичном доступе? Если да, то статья вам поможет как раскопать существующий клиент и проанализировать его работу с сервером
Реверс API по его android приложению
Сталкивались с тем, что хочется использовать API сервиса но его нет в публичном доступе? Если да, то статья вам поможет как раскопать существующий клиент и проанализировать его работу с сервером
Хабр
Реверс API по его android приложению
Зачем У меня есть pet-project, приложение для учета финансов. На мой взгляд, одной из ключевых проблем подобных приложений является ручной ввод баланса. У банков...
#AndroidStudio
The Top 20 Android Studio Plugins
IDE призвана упрощать нам написание кода, но содержать все в себе невозможно, поэтому всегда можно написать плагин и улучшить продуктивность. В статье рассматриваются плагины, которые могут вам с этим помочь.
Лучшие по моей версии из этих двадцати:
👉 Rainbow Brackets
👉 ADB Idea
👉 Key Promoter X
Главное помните, что любой плагин в Android Studio - это дополнительный тормоз при ее работе и потребление ресурсов
The Top 20 Android Studio Plugins
IDE призвана упрощать нам написание кода, но содержать все в себе невозможно, поэтому всегда можно написать плагин и улучшить продуктивность. В статье рассматриваются плагины, которые могут вам с этим помочь.
Лучшие по моей версии из этих двадцати:
👉 Rainbow Brackets
👉 ADB Idea
👉 Key Promoter X
Главное помните, что любой плагин в Android Studio - это дополнительный тормоз при ее работе и потребление ресурсов
Medium
The Top 20 Android Studio Plugins
Make Android development a lot easier
#Minsk
Поддержим Event Space
Уверен, что множество из вас, кто живет в Беларуси, были хотя бы на одном из бесплатных митапов, который был организован сообществами при поддержке SPACE. Если бы не помощь этой площадки, многие сообщества вынуждены были бы искать себе другой дом или вовсе даже не смогли бы собираться, потому что SPACE предоставляет площадку сообществам АБСОЛЮТНО БЕСПЛАТНО и помогает в организации мероприятий.
Сейчас непростое время для всего сообщества и организаторов мероприятий. Давайте поможем SPACE пережить это непростое время, чтобы после того как все пройдет у сообществ (GDG Minsk, BKUG, Java Professionals BY, Android Academy Minsk и других) осталась возможность организовывать оффлайн митапы!
Поддержим Event Space
Уверен, что множество из вас, кто живет в Беларуси, были хотя бы на одном из бесплатных митапов, который был организован сообществами при поддержке SPACE. Если бы не помощь этой площадки, многие сообщества вынуждены были бы искать себе другой дом или вовсе даже не смогли бы собираться, потому что SPACE предоставляет площадку сообществам АБСОЛЮТНО БЕСПЛАТНО и помогает в организации мероприятий.
Сейчас непростое время для всего сообщества и организаторов мероприятий. Давайте поможем SPACE пережить это непростое время, чтобы после того как все пройдет у сообществ (GDG Minsk, BKUG, Java Professionals BY, Android Academy Minsk и других) осталась возможность организовывать оффлайн митапы!
#Arhitecture
How To Write Use Cases (Interactors) in Kotlin
Взгляд на реализацию Use Case (или Interactor) в Kotlin: синхронный, асинхронный со слушателем, асинхронный на основе Coroutine
How To Write Use Cases (Interactors) in Kotlin
Взгляд на реализацию Use Case (или Interactor) в Kotlin: синхронный, асинхронный со слушателем, асинхронный на основе Coroutine
TechYourChance
How To Write Use Cases (Interactors) in Kotlin
Detailed discussion of various ways to implement use cases (aka interactors) in Kotlin
#Kotlin
Kotlin 1.4 lazy optimization
В Kotlin 1.4 будут оптимизированы property delegate, позволяя избавиться от рефлексии там где это не используется. Все подробности вы найдете в статье.
Kotlin 1.4 lazy optimization
В Kotlin 1.4 будут оптимизированы property delegate, позволяя избавиться от рефлексии там где это не используется. Все подробности вы найдете в статье.
www.lotharschulz.info
Kotlin 1.4 lazy optimization | Lothar Schulz
How Kotlin 1.4M1 optimizes the lazy function compilation and how you can leverage that alsi in Kotlin 1.3.