Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#AndroidX #Library

https://developer.android.com/jetpack/androidx/androidx-rn#2018-dec-03

Очередное обновление библиотеки AndroidX (пока только альфа версия). В анонс попали аж 14 штук:
👉 Activity
👉 AppCompat
👉 Collection
👉 Coordinator Layout
👉 Fragment
👉 Loader
👉 Media
👉 MediaRouter
👉 RecyclerView
👉 RemoteCallback NEW
👉 Swipe Refresh Layout
👉 Text Classifier NEW
👉 Transition
👉 Vector Drawable

Основные изменения:
👉 AppCompatTextView теперь поддерживает атрибуты *app:drawable*Compat*, которые могут принимать VectorDrawable из AndroidX
👉 Backport коллекций Android перенес API из свежих версий SDK
👉 Новая библиотека Remote Callback, упрощающая создание и получение PendingIntent.
👉 Backport Text Classifier из Andorid O+. Сейчас частично перенес функционал Smart Linkify.
👉 VectorDrawable теперь поддерживают tint через ColorStateList из атрибутов темы
👉 Багфикс в рамках всех библиотек

Ждём стабильных релизов 🕘
#VectorDrawable #Images #AndroidX

Part 2: "Draw a Path: Rendering Android VectorDrawables"
Part 1: "Understanding Android’s vector image format: VectorDrawable"

Продолжение серии статей от Nick Butcher/Google о том как работает векторная графика в Android. Из нового поста вы узнаете:
👉 Простейший способ отрисовки path
👉 Поддержка ссылок на различные ресурсы: цвета, ColorStateList, аттрибуты темы
👉 Tinting в VectorDrawable: как работают, настраиваются и когда применять
👉 Градиенты в VectorDrawable: Linear, Radial, Sweep (Angular); tile modes
👉 Поддержка Patter-ов
👉 Как сделать тени в VectorDrawable

Приятная новость что все это уже портировано в AndroidX и полностью работает в VectorDrawableCompat, начиная с API 14
#Education

Android codelab courses are here!

Обновлены code lab по Android:
👉 Добавлены новые популярные темы
👉 Обновлены матералы до новых SDK и последней версии Android Studio

Изменения коснулись Fundamentals и Advanced курсов. Также доступны материалы для тех, кто ведёт курсы, чтобы обучать Android на оcнове материалов code lab
#D8 #Dexing #Compiler

Part 3 (final): "Avoiding Vendor- and Version-Specific VM Bugs"
Part 2: "Android's Java 9, 10, 11, and 12 Support"
Part 1: "Android's Java 8 Support"

Заключительная хардокрная статья о D8 от Jake Warton в которой он рассказывает о том как D8 отличается в dexing кода от DX и исправляет разные баги на старых версий Android и баги от корявых рук производителей устройств, которые любят переизобрести Android ОС.

О чем сможете узнать:
👉 Использование более оптимальных инструкций в D8
👉 Как D8 позволяет обходить баги, на примере OkHttp и Okio, на устрйоствах отдельных производителей
👉 Фикс бага ART ahead-of-time компилятора в Android 6.0

Вас ждет много байткода и тулинга, пристегнитесь и наберитесь терпения перед прочтением.
#Gradle

Gradle 4.10.3 Release Notes

Вышла версия Gradle 4.10.3 в которой внесен важный багфикс и обновления. Несмотря на то что уже есть Gradle 5.X, Android разработчики пока не могу перейти на последнюю версию, поэтому рекомендую обновиться всем (особенно когда перейдете на Android Gradle Plugin 3.3).

Основные измнения:
👉 Инкрементный Java компилятор включен по умолчанию - время сборки у тех кто не использует Kotlin должно стать лучше
👉 Периодическая чистка кеша в GRADLE_USER_HOME. Фактически ваши старые зависимости и кэш сборки будет очищаться после продолжительного неиспользования.
👉 Kotlin DSL 1.0 RC6
👉 Инкрементальный билд использует меньше памяти (в среднем на 12%)
👉 Build Scan Plugin обновлен до версии 1.16
#Droidcon

Droidcon San Francisco 2018 Videos

Стали доступны видео с Droidcon San Francisco 2018. Плейлист довольно большой (64 видоса). Все видео продолжительностью 30-50 минут. Буду стараться в ближайшее время делится с вами самыми интересными. Буду рад за помощь в этом. Пишите в @android_broadcast_discussions
#Hardware #Qualcomm

Qualcomm представила свой новый флагманский процессор - Snapdragon 855 (в утечках упоминлся как Snapdragon 8150). Это чип будет сердцем большинства флагманов следующего года.

Что нового:
👉 7 нанометровый тех. процесс
👉 Меньшее энергопотребление
👉 Повышенная производительность
👉 Улучшенная производитльность AI
👉 Поддержка 5G сетей
👉 Отдельный процессор для AR, позволяющий рендерить объекты в простренстве с частотой 60 кадров/секунда
👉 Возможность записи 4K HDR 60 FPS с сокращение энергопотребления на 25%

В учтеках предварительных бенчмарков новый SoC от Qualcomm не смог обогнать iPhone, но он однозначно самый быстрый на Android
#WorkManager #AndroidX

https://developer.android.com/jetpack/docs/release-notes (смотрите обновления за 5 декабря)

Наконец-то свершилось - вышла последняя alpha WorkManager, которая будет первой бетой в случае если не будет найдено критичных багов.

Основные измнения:
👉 Поддержка RxJava2
👉 Убрана поддержка Firebase JobDispatcher
👉 Breaking API Changes
👉 Исправление багов

Теперь настал момент, когда уже можно смотреть WorkManager и готовиться для его интеграции в production проекты
#Room #AndroidX #Coroutines

https://developer.android.com/jetpack/docs/release-notes (смотрите обновления за 4 декабря)

Вышел Room 2.1.0-alpha3. Самое важное и приятное изменение - ⭐️ добавлена поддержка корутин ⭐️
Есть кроссплатформенность/переиспользование кода в ваших проектах под разные ОС?
anonymous poll

Только нативные приложения под каждую платформу – 36
👍👍👍👍👍👍👍 82%

Другое – 3
👍 7%

Да (Flutter, ReactNative и пр.) – 2
▫️ 5%

Переиспользование кода с Kotlin Multiplatform – 2
▫️ 5%

Переиспользование кода с JS – 1
▫️ 2%

👥 44 people voted so far. Poll closed.
#GooglePlayServices #ICS

Google Play services discontinuing updates for API levels 14 and 15

Объявлено об окончание поддержки Google Play и Google Play Services для Android 4.0 ICS (API Level 14 и 15). Это связано с тем что доля этих версий меньше около 0.3%.

В статье рассказывается о том, что стоит делать для обновления и как совмещать работу с новыми и старыми версиями Google Play Services, если ваше приложение поддерживает Android 4.0.

Теперь ждём новостей о том, когда тоже самое сделают в рамках AndroidX.
#AndroidX #Paging #ArchitectureComponents

https://developer.android.com/jetpack/docs/release-notes#december_6_2018

Вышла Paging 2.1.0-rc01. Что нового по сравнению с 2.0:
👉 Page Dropping
👉 Ktx расширение
👉 Возможность ограничения количества элементов, загруженных в память.
👉 Улучшения в API
👉 Багфикс
#security

"Is your App secure?" Nishchal Raj

Android приложения используют Java/Kotlin как язык для написания приложений. проблема в том что такой код легко декомпилировать и узнать все ключи вашего приложения. Для того чтобы этого избежать мы делаем самое минимальное:
👉 Используем Proguard/R8 для релизных сборок приложений (все же это делают?)
👉 Храним файлы только в приватной папке приложения
👉 Доступ к контенты приложения осуществляем через ContentProvider

Но это минимум и его недостаточно. В статье вы сможете найти больше о том, какие подходы стоит применять для того чтобы защитить ваше приложение от злоумышлеников. Основные рекомендации:
👉 Ограничивайте количесво неудачных логинов
👉 Двухшаговая авторизация (логин + проверка по SMS например)
👉 Шифруйте ключи вашего приложения либо храните их в системном защишенном хранилище
👉 Не логируйте приватной информации приложения/пользователя в системные логи
👉 Все данные пользовтаеля должны храниться в зашифрованном виде
👉 No “null” acceptance
#Flutter #Dart #Crossplatform

FlutterLive

Недавно прошла конференция от Google FlutteLive, в рамках нее Flutter показали первый стабильный релиз, рассказали впечатляющую статистику платформы Flutter. Также было показан план на мировое господство аля Flutter везде:
👉 Mobile: Android/iOS
👉 Web
👉 Descktop: Mac/Windows/Linux
👉 IoT: заявлена о поддержке Rasberry Pi

Хороший обзор итогов был сделан Евгением Котом
Детальный разбор того, что Google показал на конференции FlutterLive (и что это значит для Dart и мира)
#Images

"Understanding Android Matrix transformations" Maria Neumayer

Хороший разбор о том как стандартными средствами Android с помощью Matrix можно выполнять преобразования изображений в Android.

В статье рассказывается о:
👉 Смещение
👉 Масштабирование
👉 Повороте
👉 Искажение
👉 Применение нескольких трансформаций одновременно
#Dagger #DependencyInjection #Performance

"Deep Dive into Dagger Lazy" Marcos Holgado (6 минут чтения)

Dagger 2 имеет возможность получать зависимости отложено (lazy). Это позволяет не загружать множество зависимостей при первом старте приложения/компонента. Но насколько эффективно это?

У автора статьи получилось это показать на примере, но также автор приводит почему не стоит использовать Lazy как панацею для ускорения старта.
#Coroutines #BestPractices

"Kotlin Coroutines patterns" от Dmytro Danylyk

Coroutine наделали много шума в асинхронном программирование, особенно в Android. Я слышал о многоих проектах кто уже их использует в релизных версиях приложений либо тем что втягивает их. Но как и любая новомодная библиотека разработчики не всегда понимают до конца как стоит ее использовать.

В статье вы найдете советы как стоит использовать coroutine и что не стоит.
#VectorDrawable #Images #AndroidX

Part 3: "Using vector assets in Android apps"
Part 2: "Draw a Path: Rendering Android VectorDrawables"
Part 1: "Understanding Android’s vector image format: VectorDrawable"

Продолжение серии статей от Nick Butcher (https://twitter.com/crafty)/Google о том как работает векторная графика в Android. Из нового поста вы узнаете:
👉 Что дает поддержка VectorDrawable в AndroidX
👉 Почему стоит использовать VectorDrawableCompat
👉 Как включить VectorDrawable из AndroidX
👉 Как добавить поддержку VectorDrawableCompat для любого аттрибута в layout XML.
👉 Ограничения реализации VectorDrawableCompat в вложенных drawable (StateListDrawable, InsetDrawable, LayerDrawable)

Важно помнить
👉 если вы не включите поддержку supprt vector drwable у себя в проекте то для всех API ниже 25 у вас буду генерироваться растровые варианты векторных изображений для старых версий API.
👉 Используйте app:srcCompat вместо android:src атрибута для изобравжение в ImageView
#Architecture #BestPractices

"10 things every Android app developer should know about Architecture" by Ashesh Bharadwaj

Статья о 10 вещах, которые помогут вам лучше понимать архитектуру:
1️⃣ Архитектура незхависима от языка или платформы
2️⃣ Недопонимание MV(Any) подходов
3️⃣ Архитектура важна, но не является необходимой
4️⃣ Архитекутра упрощает добавление нового функционала или модификации существующего
5️⃣ Архитектура не требует специальных знаний, как фреймворки или библиотеки
6️⃣ Архитекутра требует придерживания правил и терпения
7️⃣ Android Architecture Components упрощает реализацию архитектуры на Android
8️⃣ Каждому разработчику не надо быть Архитектором
9️⃣ Наличие архитектуры приносит ряд преимуществ для проекта
🔟 Что стоит изучить для построения хорошей архитектуры в проекте
#Library #Kotlin #AnnotationProcessing

KotlinPoet Github by Square

Вышла стабильная версия библиотеки KotlinPoet 1.0.0. Теперь стало проше генерировать исходники на Kotlin.