Android Broadcast
14.2K subscribers
3.53K photos
341 videos
11 files
5.9K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @ab_manager

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#FirebaseML #MLKit #MachineLearning

Машинное обучение для мобильных разработчиков вместе с Firebase ML

Машинное обучение становится все более востребованным. Google прилагает много усилий для того, чтобы развивать эту область. Также стремится предоставить разработчикам любого уровня познаний в машинном обучении возможность его использовать. В том числе и в мобильных приложениях.

Созданный ранее для этих целей проект ML Kit for Firebase, разделили на два отдельных продукта и обновили ML Kit SDK.

В статье подробнее описано для чего предназначен Firebase ML и ML Kit
#Android11

New Android R Important Changes

Достаточно много материалов вышло в последние дни о будущей версии Android, и еще не меньше выйдет. Ребята в своей статье рассматривают достаточно интересные фишки:
👉 Одновременное использование нескольких камер устройства, например даже фронтальную и основную одновременно (хотя такая фишка у меня уже была на Nokia 7 Plus)
👉 Замена API Wi-Fi сканирования
#MemoryLeak

Practical Guide To Solve OutOfMemoryError in Android Application

Утечки памяти и, как следствие, OutOfMemoryError - больное место как для начинающего, так и для опытного Android разработчика. Основная проблема состоит в том что подобного рода ошибки не так очевидны и их сложно сразу отследить. Наиболее частые причины возникновения:
👉 Использование static Context, View или Activity
👉 Зарегистрированные, но не актуальные Listener'ы
👉 Использование getContext() вместо getApplicationContext() там где это необходимо
👉 Не статичные вложенные классы

В статье подробно рассказывается обо всех этих причинах, приводятся примеры подобных утечек и рассказывается как их избегать.
#JetpackCompose

Why do we need Jetpack Compose?

Приложения для Android успешно разрабатываются уже больше 10 лет, для чего же нам понадобился новый UI-фреймворк?

в статье рассматриваются недостатки имеющегося подхода:
👉 инструментарий 10-летней давности, когда на телефонах решались совсем другие задачи
👉 иерархия наследования с базовым классом View c десятками тысяч строк кода
👉 является частью ОС, что делает невозможным исправление ошибок без обновления прошивок
👉 нет поддержки Material Design, представленного позже

а также преимущества Jetpack Compose:
🔥 современные язык, парадигмы и инструменты. Для описания UI используется Kotlin, подходы взяты из таких UI-фреймворков как React и Flutter, полная поддержка со стороны Android Studio
🔥 единый источник правды. Больше ваш UI не будет отображать неактуальное состояние
🔥 команда разработки уделила особое внимание производительности фреймворка
🔥 поддержка Material Design из коробки
🔥 совместимость с имеющейся UI-иерархией
#Розыгрыш

Разыграли билет на онлайн-конференция Podlodka Android Crew. Поздравляю победителя @ValeryBoretsky

Для тех кто не попал, то можете купить билет на сайте. Уже доступна расписание и всю следующую неделю будут говорить об архитектуре приложений. На сайте уже доступно расписание сессий.

Видео запись с розыгрышем
#Android11 #Jetpack #UI

Screens - Large, Small and Foldable
Продолжительность 16 минут

Современная Android разработка подразумевает поддержку устройств с разными типами и размерами экранов, а также режимами отображения окон: мобилки, планшеты (они живы?), десктопы (Chrome OS), складываемые устройства а также многооконность

В видео рассказывается:
👉 Почему верстка должна быть адаптивной
👉 Хорошие практики для расположения элементов
👉 Jetpack Window Manager
👉 Android Compatibility Definition Document - документ с требованиями для Android устройств, где можно найти информацию о возможных конфигурациях, включая размеры экрана, окон в разных режимах и т.д.
👉 Возможность задать свои ограничения для конфигурации окон
👉 Эмуляторы, на которых можно тестировать разные конфигурации
👉 Deprecated APIs по работе с Display и WindowManager
👉 Новые APIs, в том числе новый класс WindowMetrics
#Dagger

В Dagger появится Assisted Inject

Для тех кто не знает - это возможность добавлять параметры в конструкторы или методы, которых нет в графе, и предоставлять их через фабрики.

Подобную реализацию уже сделал Jake Wharton. AssistedInject on Square
#Meetup #Online #Android11

Android 11: что нового?
Продолжительность: ~ 2 часа

Завтра, 20 июня в 12:00(GMT+3) пройдет митап по новинкам в Android 11, совместно организованный GDG группами Брянска и Калуги. Вас ждет 3 доклада:
👉 Изменения в Privacy / Федор Цымбал
👉 Новинки WindowInsets и анимации клавиатуры / Иван Баранов
👉 Обзор Notification Bubbles / Инесса Бухонова

Зарегистрироваться нужно 👉 тут
#UI #Framework

Litho: лучшие практики для создания эффективного UI в Android

Многие слышали о Jetpack Compose, но не все знают, что уже давно существует конкурент от Facebook под названием Litho, который представляет собой фрэймворк, позволяющий создавать UI в декларативном стиле в коде. Причем его уже можно использовать в Production!

Основные преимущества этого фрэймворка:
👉 Все вычисления происходят вне UI потока в него передаётся лишь Draw
👉 Значительный прирост в производительности при отрисовке UI
👉 Интерфейс более плоский, потому что сокращается уровень вложенности Layout'ов

При этом существует и ряд недостатков:
Плохая интеграция с Android Studio
Нет поддержки в UI Preview
Интеграция с Kotlin всё ещё в разработке

Если же достоинства превосходят недостатки, то для вас статья от Сергея Рябова, разработчика Litho, в ней он постарался раскрыть большинство аспектов фреймворка.
#Conference #Online

DevParty Russia!

В субботу, 27 июня, ждём на 15-часовую бесплатную онлайн-конференцию DevParty от GDG Russia. Все начнется в 5 утра по московскому времени, встретим рассвет в Владивостоке, а завершим день и проводим закат в Калининграде. И все это в прямой трансляции!

В программе вас ждут:
- 3 потока (Mobile, Web, Cloud)
- 45 спикеров из более чем 10 стран
- 33 комьюнити GDG со всей России
- GDE по всем направлениям

В мобильном треке вас ждет 15 докладов от спикеров из Lyft, Avito, JetBrains, EPAM Systems, Replika.ai, Тинькофф, MERA, Surf и других компаний.
На DevParty Russia будет выступать автор канала Кирилл Розов с докладом "Все ли вы знаете об Android Jetpack?" в котором расскажет о интересных API, которое вы могли упустить, а также о будущих версиях и новинках, представленных вместе с Android 11 Beta 1
#Course #Online

JetBrains Academy Is Getting Ready to Hit the Market

JetBrains Academy станет платной. Если успеете зарегистрироваться до 1 июля, то у вас останется бесплатный доступ до 2021, а на следующий год получите скидку на подписку.
#Coroutines #UnderTheHood

Coroutines: Suspending State Machines
8 минут на чтение

В статье разбирает как код с использованием suspend функций и Coroutine превращается в рабочий код на конечной платформе. Разбираются такие понятия как:
👉 suspension points
👉 Continuation Passing Style (CPS)
👉 state machine

Все довольно лаконично, просто и с визуализацией, поэтому сложить высокоуровневое представление получается достаточно хорошо.
#Multiplatform #KMP

Создаём своё первое приложение для Kotlin Multiplatform

Kotlin Multiplatfrom - отличная возможность писать общий код сразу для нескольких платформ, на языке, полюбивщимся Android разработчикам.

Общая идея проста - нативный код платформы все еще остается, однако дополнительно на Kotlin можно создавать переиспользуемые между платформами модули - общая бизнес логика, сервисы по работе с сетевым подключением, базами данных и т.д.

В данной статье разбирается по шагам как написать свое первое приложение с Kotlin Multiplatform сразу под две мобильные платформы (Android и iOS):
👉 необходимые среды разработки и инструменты
👉 структура и настройка проекта
👉 создание общей логики и ее вызов в нативной платформенной части

В статье при создании общего модуля показан пример использования Coroutines и Ktor - мультиплатформенной библиотеки для работы с сетью и сериализацией
#Security

Dependency-check-gradle plugin - интересный Gradle плагин от OWASP для поиска уязвимостей в проекте.

Позволяет запуском одной команды (не считая команды на обновление локальной базы данных) подготовить отчет о наличии в зависимостях известных уязвимостей.

Сам плагин работает поверх утилиты DependencyCheck. Информация об уязвимостях берется из базы данных управления уязвимостями NVD.
#CustomView

Custom view from scratch. Part I.

Автор начал серию статей в которой он хочет полностью разобрать тему Custom View. В первой части он рассказывает:
👉 Когда стоит использовать
👉 Жизненный цикл
👉 Основы и тонкости при наследовании от базовых классов

Если вы всегда хотели разобраться в этой теме, то стоит следить за обновлениями автора, а сама статья будет вам полезна в качестве первого шага в теме кастомных View. Jetpack Compose упростит создание собственных виджетов, но знания от Custom View будут нужны.
#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, а значит уменьшается размер приложения при установке
👉 можно использовать не только готовые модели, но и собственные модели TensorFlow Lite
👉 в рамках программы раннего доступа можно ознакомиться с новыми моделями: Entity Extraction и Pose Detection
👉 добавлена поддержка Android Jetpack Lifecycle, что облегчает остановку использования ML Kit на основании жизненного цикла
👉 интеграция с Lifecycle также сделала использование CameraX проще и удобнее. 
💪 Как начать работать с новым ML Kit и его поддержкой CameraX можно узнать в code lab Recognize, Identify Language and Translate text
ОПРОС ДЛЯ РАЗРАБОТЧИКОВ
Какая ОС на вашем основном личном смартфоне?
Anonymous Poll
85%
Android
13%
iOS
0%
Другая ОС
0%
Не использую смарфтон
0%
Не разработчик
1%
Не участвую в опросе