#CustomView
Custom view from scratch. Part I.
Автор начал серию статей в которой он хочет полностью разобрать тему Custom View. В первой части он рассказывает:
👉 Когда стоит использовать
👉 Жизненный цикл
👉 Основы и тонкости при наследовании от базовых классов
Если вы всегда хотели разобраться в этой теме, то стоит следить за обновлениями автора, а сама статья будет вам полезна в качестве первого шага в теме кастомных View. Jetpack Compose упростит создание собственных виджетов, но знания от Custom View будут нужны.
Custom view from scratch. Part I.
Автор начал серию статей в которой он хочет полностью разобрать тему Custom View. В первой части он рассказывает:
👉 Когда стоит использовать
👉 Жизненный цикл
👉 Основы и тонкости при наследовании от базовых классов
Если вы всегда хотели разобраться в этой теме, то стоит следить за обновлениями автора, а сама статья будет вам полезна в качестве первого шага в теме кастомных View. Jetpack Compose упростит создание собственных виджетов, но знания от Custom View будут нужны.
Medium
Custom view from scratch. Part I.
Creation & Optimisation of a Dynamic Chart
#MLKit #MachineLearning
On-device machine learning solutions with ML Kit, now even easier to use
ML Kit - sdk для использования возможностей машинного обучения в мобильных приложениях.
В посте рассказывается про то, что:
👉 для использования ML Kit проект в Firebase больше не обязателен
👉 ML Kit обрабатывает данные в режиме реального времени, без задержек из-за сетевых запросов
👉 работает в offline режиме
👉 пользовательские данные не отправляются в сеть, а значит приватность сохраняется
👉 некоторые модели доставляются через Google Play Services, а значит уменьшается размер приложения при установке
👉 можно использовать не только готовые модели, но и собственные модели
👉 в рамках программы раннего доступа можно ознакомиться с новыми моделями:
👉 добавлена поддержка Android Jetpack Lifecycle, что облегчает остановку использования ML Kit на основании жизненного цикла
👉 интеграция с Lifecycle также сделала использование CameraX проще и удобнее.
💪 Как начать работать с новым ML Kit и его поддержкой CameraX можно узнать в code lab Recognize, Identify Language and Translate text
On-device machine learning solutions with ML Kit, now even easier to use
ML Kit - sdk для использования возможностей машинного обучения в мобильных приложениях.
В посте рассказывается про то, что:
👉 для использования ML Kit проект в Firebase больше не обязателен
👉 ML Kit обрабатывает данные в режиме реального времени, без задержек из-за сетевых запросов
👉 работает в offline режиме
👉 пользовательские данные не отправляются в сеть, а значит приватность сохраняется
👉 некоторые модели доставляются через Google Play Services, а значит уменьшается размер приложения при установке
👉 можно использовать не только готовые модели, но и собственные модели
TensorFlow Lite👉 в рамках программы раннего доступа можно ознакомиться с новыми моделями:
Entity Extraction и Pose Detection👉 добавлена поддержка Android Jetpack Lifecycle, что облегчает остановку использования ML Kit на основании жизненного цикла
👉 интеграция с Lifecycle также сделала использование CameraX проще и удобнее.
💪 Как начать работать с новым ML Kit и его поддержкой CameraX можно узнать в code lab Recognize, Identify Language and Translate text
Android Developers Blog
On-device machine learning solutions with ML Kit, now even easier to use
News and insights on the Android platform, developer tools, and events.
ОПРОС ДЛЯ РАЗРАБОТЧИКОВ
Какая ОС на вашем основном личном смартфоне?
Какая ОС на вашем основном личном смартфоне?
Anonymous Poll
85%
Android
13%
iOS
0%
Другая ОС
0%
Не использую смарфтон
0%
Не разработчик
1%
Не участвую в опросе
Android Broadcast
Ваше мнение по поводу новой библиотеки Hilt:
Интересные результаты по поводу Dagger Hilt - впервые на моей памяти большинство респондентов решили выбрать "Не участвую". Но а из ответов без игнора видно что большой популярности добиться не получилось пока, только хайпануть на Hilt можно
Pokedex
Помните таки созданий как покемоны? В моем детстве все дети от них тащились (а я даже знал всех 150 наизусть 😎), а пару лет назад вообще все бегали с телефонами и в AR ловили их везде вокруг.
Но сегодня вы можете посмотреть pet проект в котором реализована идея поке-Wikipedia и понасталгировать, но и увидеть приложение с современнейшим стеком:
👉 Kotlin
👉 Coroutines
👉 Dagger Hilt
👉 Jetpack MVVM
Помните таки созданий как покемоны? В моем детстве все дети от них тащились (а я даже знал всех 150 наизусть 😎), а пару лет назад вообще все бегали с телефонами и в AR ловили их везде вокруг.
Но сегодня вы можете посмотреть pet проект в котором реализована идея поке-Wikipedia и понасталгировать, но и увидеть приложение с современнейшим стеком:
👉 Kotlin
👉 Coroutines
👉 Dagger Hilt
👉 Jetpack MVVM
#ProGuard #Kotlin
Full Kotlin Support in ProGuard
В новой версии Proguard (7.0) добавили полную поддержку Kotlin. Например, он умеет обрабатывать метадату Kotlin, которую R8 боится трогать.
Full Kotlin Support in ProGuard
В новой версии Proguard (7.0) добавили полную поддержку Kotlin. Например, он умеет обрабатывать метадату Kotlin, которую R8 боится трогать.
Guardsquare
Announcing ProGuardCORE & Kotlin Support | Guardsquare
Announcing ProGuardCORE & full Kotlin support to shrink & protect Android apps. Learn more.
#Kotlin
Kotlin DSL для создания State Machine
Все лаконично и просто - если вам нужна finite State Machine и вы используете Kotlin, то вам стоит обратить внимание на эту библиотеку от разработчиков из Tinder
Также есть специальные плагины для IDEA чтобы визуализировать эту State Machine
Kotlin DSL для создания State Machine
Все лаконично и просто - если вам нужна finite State Machine и вы используете Kotlin, то вам стоит обратить внимание на эту библиотеку от разработчиков из Tinder
Также есть специальные плагины для IDEA чтобы визуализировать эту State Machine
#REST
Migrating Retrofit to Ktor
Retrofit давно стал "серебряной пулей" для Android-разработчиков в вопросе работы с REST, но у JetBrains есть для этих целей своё решение — библиотека Ktor, которая полностью написана на Kotlin и под капотом использует Coroutine.
Автор рассказывает как интегрировать библиотеку в ваше приложение:
👉 Настройка HTTP клиента
👉 Сериализация
👉 Создание запросов
👉 Обработка ошибок
Однако, автор сам замечает тот факт, что Ktor сложнее в настройке и не такой удобный как привычный всем Retrofit. Основным аргументом для миграции на Ktor является возможность использования при мультиплатформенной разработке на Kotlin Multiplatform.
Migrating Retrofit to Ktor
Retrofit давно стал "серебряной пулей" для Android-разработчиков в вопросе работы с REST, но у JetBrains есть для этих целей своё решение — библиотека Ktor, которая полностью написана на Kotlin и под капотом использует Coroutine.
Автор рассказывает как интегрировать библиотеку в ваше приложение:
👉 Настройка HTTP клиента
👉 Сериализация
👉 Создание запросов
👉 Обработка ошибок
Однако, автор сам замечает тот факт, что Ktor сложнее в настройке и не такой удобный как привычный всем Retrofit. Основным аргументом для миграции на Ktor является возможность использования при мультиплатформенной разработке на Kotlin Multiplatform.
Medium
Using Ktor on Android
Ktor is a coroutine-based networking framework by Jetbrains that works with Kotlin Multiplatform.
#AndroidStudio #SystemTrace
What’s New in Android Studio System Trace
System Trace - утилита, позволяющая анализировать активность на устройстве за некоторый период времени. Начиная с Android Studio 4.0, System Trace стала доступна как часть UI в IDE.
В статье рассматриваются новинки утилиты и как с ней удобно работать в Android Studio.
What’s New in Android Studio System Trace
System Trace - утилита, позволяющая анализировать активность на устройстве за некоторый период времени. Начиная с Android Studio 4.0, System Trace стала доступна как часть UI в IDE.
В статье рассматриваются новинки утилиты и как с ней удобно работать в Android Studio.
Medium
What’s new in Android Studio System Trace
Highlights of the CPU Profiler improvements in Android Studio 4.0 and 4.1 Beta
#Architecture
Designing and Working with Single View States on Android
В мире разработки Android споры о лучшем архитектурном подходе не утихали никогда. Многие пытаются найти самый лучший подход. У каждого паттерна есть свои достоинства, недостатки и сфера применения. Сегодня предлагаем вам посмотреть на статью про использование ViewState для управления UI, что является особенностью MVI паттерна, в рамках MVVM архитектуры.
В статье описывается два варианта подхода к контролю ViewState, приводятся примеры кода и есть ссылка на готовый проект, в котором можно посмотреть всю структуру.
Designing and Working with Single View States on Android
В мире разработки Android споры о лучшем архитектурном подходе не утихали никогда. Многие пытаются найти самый лучший подход. У каждого паттерна есть свои достоинства, недостатки и сфера применения. Сегодня предлагаем вам посмотреть на статью про использование ViewState для управления UI, что является особенностью MVI паттерна, в рамках MVVM архитектуры.
В статье описывается два варианта подхода к контролю ViewState, приводятся примеры кода и есть ссылка на готовый проект, в котором можно посмотреть всю структуру.
zsmb.co
Designing and Working with Single View States on Android
Describing the state of a screen is a common practice these days thanks to MVI popularizing the concept. Let's take a look at some examples of how you can design your state objects neatly using data classes and sealed classes, and how you can put them into…
#Huawei #HuaweiMobileServices
Huawei выпустила HMS Core 5.0
Huawei Mobile Services (HMS) - это платформа для Huawei и Honor устройств, которая заменяет популярные приложения и службы Google. Это альтернатива Google Play Services (GMS).
HMS Core — это набор различных инструментов для разработчиков (API, SDK и сервисы) для создания приложений, интегрированных в экосистему Huawei.
Недавно Huawei представила новую версию HMS Core. Среди улучшений и изменений:
👉 изменения в системе позиционирования
👉 изменения в push-сервисах
👉 улучшения в способе обработки графики и звука
👉 появилась поддержка приложений дополненной реальности
Huawei выпустила HMS Core 5.0
Huawei Mobile Services (HMS) - это платформа для Huawei и Honor устройств, которая заменяет популярные приложения и службы Google. Это альтернатива Google Play Services (GMS).
HMS Core — это набор различных инструментов для разработчиков (API, SDK и сервисы) для создания приложений, интегрированных в экосистему Huawei.
Недавно Huawei представила новую версию HMS Core. Среди улучшений и изменений:
👉 изменения в системе позиционирования
👉 изменения в push-сервисах
👉 улучшения в способе обработки графики и звука
👉 появилась поддержка приложений дополненной реальности
iXBT.com
Huawei выпустила HMS Core 5.0 для успешной конкуренции с сервисами Google
Китайская компания Huawei, которая старается удержать свои позиции на мировом рынке смартфонов на фоне американских санкций, продолжает улучшать собственные мобильные сервисы, конкурирующие с сервисами Google.
#MLKit #MachineLearning #TensorFlow
New tools for finding, training, and using custom machine learning models on Android
Вышло продолжение поста про ML Kit.
В продолжении рассматриваются следующие вопросы:
👉 где можно найти альтернативные ML модели
👉 тренировка собственных моделей
👉 разные способы импортирования кастомных моделей в Android приложение
Интересные ссылки в посте:
💪 TensorFlow Hub - репозиторий с множеством готовых ML моделей
💪 Codelab Recognize Flowers with TensorFlow Lite on Android (beta)
💪 Видео в помощь прохождения указанного выше codelab
💪 Видео о том как найти модель на TensorFlow Hub и начать ее использовать с ML Kit
💪 Ноутбук на Colab, посвященный классификации изображений с
P.S.: Что такое Google Codelabs можно узнать здесь
New tools for finding, training, and using custom machine learning models on Android
Вышло продолжение поста про ML Kit.
В продолжении рассматриваются следующие вопросы:
👉 где можно найти альтернативные ML модели
👉 тренировка собственных моделей
👉 разные способы импортирования кастомных моделей в Android приложение
Интересные ссылки в посте:
💪 TensorFlow Hub - репозиторий с множеством готовых ML моделей
💪 Codelab Recognize Flowers with TensorFlow Lite on Android (beta)
💪 Видео в помощь прохождения указанного выше codelab
💪 Видео о том как найти модель на TensorFlow Hub и начать ее использовать с ML Kit
💪 Ноутбук на Colab, посвященный классификации изображений с
TensorFlow Lite Model MakerP.S.: Что такое Google Codelabs можно узнать здесь
Android Developers Blog
New tools for finding, training, and using custom machine learning models on Android
Posted by Hoi Lam , Android Machine Learning Yesterday, we talked about turnkey machine learning (ML) solutions with ML Kit . But wha...
👍1
#Security
Creating Secure Android Applications.
В статье автор рассказывает о самых популярных способах взлома Android-приложений и даёт рекомендации как этого избежать:
👉 Обфускация кода
👉 Проверка на root доступ
👉 Шифрование web запросов
👉 Защита локальной базы данных и Shared Preferences
👉 Защищённое логирование
Так же автор приводит примеры как предотвратить создание скриншотов в вашем приложении и как использовать одноразовую верификацию для пользователей.
Creating Secure Android Applications.
В статье автор рассказывает о самых популярных способах взлома Android-приложений и даёт рекомендации как этого избежать:
👉 Обфускация кода
👉 Проверка на root доступ
👉 Шифрование web запросов
👉 Защита локальной базы данных и Shared Preferences
👉 Защищённое логирование
Так же автор приводит примеры как предотвратить создание скриншотов в вашем приложении и как использовать одноразовую верификацию для пользователей.
Medium
Creating Secure Android Applications.
Security is a critical aspect of every application. It is extremely important that we put in place measures that helps us in creating…
#Kotlin #CodeQuality
Вышел Detekt 1.10.0
Выпустили новую версию статического анализатора Kotlin кода - Detekt:
💪 в
👉 новые правила - IgnoredReturnValue, ImplictUnitReturnType, IsPropertyNaming
👉 добавили ReportingExtension - интерцептор для результатов отчета
👉 Обновили до KtLint 0.37.1
👉 о проблемах функций и классов теперь сообщается по идентификаторам (что особенно полезно в IntelliJ Detekt Plugin)
👉 много различных багфиксов и улучшений
Особенности миграции:
⚠️ может потребоваться подкорректировать/перегенерировать
⚠️ файл
Вышел Detekt 1.10.0
Выпустили новую версию статического анализатора Kotlin кода - Detekt:
💪 в
Сomplexity report теперь вычисляется показатель когнитивной сложности проекта 🧠👉 новые правила - IgnoredReturnValue, ImplictUnitReturnType, IsPropertyNaming
👉 добавили ReportingExtension - интерцептор для результатов отчета
👉 Обновили до KtLint 0.37.1
👉 о проблемах функций и классов теперь сообщается по идентификаторам (что особенно полезно в IntelliJ Detekt Plugin)
👉 много различных багфиксов и улучшений
Особенности миграции:
⚠️ может потребоваться подкорректировать/перегенерировать
baseline файл⚠️ файл
default-detekt-config был перемещен, потребуется обновить ссылку до негоGitHub
Release v1.10.0 · detekt/detekt
Notable Changes
New rules: IgnoredReturnValue, ImplictUnitReturnType, IsPropertyNaming
The complexity report (console/html) now calculates the cognitive complexity metric for your project.
Issues ...
New rules: IgnoredReturnValue, ImplictUnitReturnType, IsPropertyNaming
The complexity report (console/html) now calculates the cognitive complexity metric for your project.
Issues ...
#Gradle #Performance
Optimizing Gradle Daemon’s memory and cache usage
Gradle Daemon предназначен для того чтобы ускорять вашу сборку. Платите вы за это тем, что он постоянно весит в оперативной памяти и кушает ее.
В статье рассказывает о том, что одновременное использование Android Studio и терминала для запуска Gradle команд может приводить к тому, что стартуют разные Gradle Daemons и это приводит к увеличению потребления памяти.
Правильная настройка IDE позволяет достичь того, чтобы использовался общий Daemon.
Optimizing Gradle Daemon’s memory and cache usage
Gradle Daemon предназначен для того чтобы ускорять вашу сборку. Платите вы за это тем, что он постоянно весит в оперативной памяти и кушает ее.
В статье рассказывает о том, что одновременное использование Android Studio и терминала для запуска Gradle команд может приводить к тому, что стартуют разные Gradle Daemons и это приводит к увеличению потребления памяти.
Правильная настройка IDE позволяет достичь того, чтобы использовался общий Daemon.
Medium
Optimizing Gradle Daemon’s memory and cache usage
Versão em português aqui
#OkHttp #Networking #Optimization
Maximizing OkHttp connection reuse
Разработчики из Booking закопались в оптимизации OkHttp чтобы получить больше скорости для своих сетевых запросов. Узкое место было найдено в том, что переиспользование socket соединений не работает так эффективно, как хотелось бы разработчикам библиотеки.
К сожалению, библиотека OKHttp не содержит callback, который бы позволил бы перехватить управление созданием RealConnection, не вам стоит обратить на рекомендацию от создателей:
Maximizing OkHttp connection reuse
Разработчики из Booking закопались в оптимизации OkHttp чтобы получить больше скорости для своих сетевых запросов. Узкое место было найдено в том, что переиспользование socket соединений не работает так эффективно, как хотелось бы разработчикам библиотеки.
К сожалению, библиотека OKHttp не содержит callback, который бы позволил бы перехватить управление созданием RealConnection, не вам стоит обратить на рекомендацию от создателей:
Security.insertProviderAt(Conscrypt.newProvider(), 1);Medium
Maximizing OkHttp connection reuse
debugging a 3rd party library
#Architecture #SOLID
Понятнее о S.O.L.I.D
Принципы SOLID стали фундаментальными при разработке программного обеспечения, но не всех их знают или до конца понимают. Если вы до сих пор о них не слышали или хотите разобраться, то лучшим решением станет прочитать книгу Роберта Мартина "Чистая Архитектура"
Если такой возможности нет, то автор статьи постарался максимально просто и доходчиво объяснить каждый из них, при этом использовал примеры на Java и Kotlin, близкие Android разработчикам.
Понятнее о S.O.L.I.D
Принципы SOLID стали фундаментальными при разработке программного обеспечения, но не всех их знают или до конца понимают. Если вы до сих пор о них не слышали или хотите разобраться, то лучшим решением станет прочитать книгу Роберта Мартина "Чистая Архитектура"
Если такой возможности нет, то автор статьи постарался максимально просто и доходчиво объяснить каждый из них, при этом использовал примеры на Java и Kotlin, близкие Android разработчикам.
Хабр
Понятнее о S.O.L.I.D
Большинство разработчиков с разговорами о принципах архитектурного дизайна, да и принципах чистой архитектуры вообще, обычно сталкивается разве что на очередном...
#UI #Compose
JetPack Compose With Server Driven UI
Server Driven UI - это новый подход к управлению вашим UI который станет более доступен с релизом Jetpack Compose. Ключевая идея состоит в том чтобы управлять данными, которые отображают ваши View, удалённо с помощью обновлений с сервера.
В статье описан один из вариантов такого подхода на примере приложения для отображения списков фильмов. Кроме этого автор показывает как с помощью Compose можно создавать комплексный UI с несколькими scrollable списками.
JetPack Compose With Server Driven UI
Server Driven UI - это новый подход к управлению вашим UI который станет более доступен с релизом Jetpack Compose. Ключевая идея состоит в том чтобы управлять данными, которые отображают ваши View, удалённо с помощью обновлений с сервера.
В статье описан один из вариантов такого подхода на примере приложения для отображения списков фильмов. Кроме этого автор показывает как с помощью Compose можно создавать комплексный UI с несколькими scrollable списками.
Medium
JetPack Compose With Server Driven UI
A new way to build reactive apps with JetPack Compose UI
#Firebase #MachineLearning #TensorFlow
Enhance your TensorFlow Lite deployment with Firebase
В статье рассказывается о полезных возможностях Firebase при использовании TensorFlow Lite:
👉 deploy моделей в облаке (вручную или автоматизировано). Это позволит доставить модель на устройство без необходимости перепубликации приложения
👉 измерение скорости ответа модели, с помощью Firebase Performance Monitoring
👉 проведение A/B тестов с разными моделями с помощью Firebase Remote Config и Firebase A/B Testing
💪 статья содержит примеры кода
💪 есть ссылки на codelabs (Android и iOS), которые помогут освоить рассмотренные вопросы на практике
Enhance your TensorFlow Lite deployment with Firebase
В статье рассказывается о полезных возможностях Firebase при использовании TensorFlow Lite:
👉 deploy моделей в облаке (вручную или автоматизировано). Это позволит доставить модель на устройство без необходимости перепубликации приложения
👉 измерение скорости ответа модели, с помощью Firebase Performance Monitoring
👉 проведение A/B тестов с разными моделями с помощью Firebase Remote Config и Firebase A/B Testing
💪 статья содержит примеры кода
💪 есть ссылки на codelabs (Android и iOS), которые помогут освоить рассмотренные вопросы на практике
The Firebase Blog
Enhance your TensorFlow Lite deployment with Firebase
ОПРОС ДЛЯ РАЗРАБОТЧИКОВ ПОД ANDROID:
Какой ОС на своем оснвном компьютере для разработке вы пользуетесь?
Какой ОС на своем оснвном компьютере для разработке вы пользуетесь?
Final Results
38%
Windows
43%
macOS
16%
Дистрибутивы Linux
3%
Не участвую в опросе
#Dagger #Hilt #Fragment
Dagger Hilt: Custom Entry Point for FragmentFactory Integration
Dagger Hilt - библиотека которая уже наделала много шуму, но я не смог там найти одной удобной возможности - inject зависимостей в конструкторы
Dagger Hilt: Custom Entry Point for FragmentFactory Integration
Dagger Hilt - библиотека которая уже наделала много шуму, но я не смог там найти одной удобной возможности - inject зависимостей в конструкторы
Fragment. Автор статьи рассказывает как это можно сделатьTechYourChance
Dagger Hilt: Custom Entry Point for FragmentFactory Integration
A tutorial of using Dagger Hilt's Entry Points convention to work around lifecycle mismatch between Hilt and custom FragmentFactory in Android apps