Size: a a a

Android Broadcast

2019 July 19
Android Broadcast
#Security #AndroidQ #RuntimePermissions

Android Permissions System Vulnerabilities and Possible Workarounds

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

В Android Q было исправлено множество из этих проблем. Встает ряд вопросов:
👉 Но сколько устройств получат обновление до этой версии ОС ?
👉 Как быстро это произойдет?
👉 В каком году минимальная актуальная версия Android станет Q ?
Мы можем только предполагать и надеяться 😔

В статье вы найдете информацию об уязвимостях, как ими пользуются злоумышленники и решение их в Android Q.
источник
2019 July 20
Android Broadcast
#Architecture #Modularization #ArchitectureComponents

Modularization by Feature and Layer with Android Architecture Components

Команда Android в последние 2 года активно стала решать трудности, связанные с разработкой эффективной архитектуры для Android приложений. Результат этого - Android Architecture Components.

Трендом текущей Android разработки является модуляризация. Она дает плюсы в архитектуре, более высокую скорость сборки проектов и возможность использовать Dynamic Features.

Как позволяет это реализовать текущий стек Architecture Components вы найдете в статье
источник
Android Broadcast
#AndroidX #News #AndroidXWeekly

Android Jetpack - это множество библиотек (аж 74 группы библиотек!). В них постоянно происходят улучшения и обновления. Следить за этой информацией неудобно и я решил каждую неделю делать краткий обзор изменений.
источник
Android Broadcast
#AndroidX #AndroidXWeekly

AndroidX Weekly Update #1

Произошли следующие обновления:
👉 Fragment 1.1.0-rc03
Правка бага перед релизом стабильной версии 1.1.0

👉 Navigation 2.1.0-beta02
Удалена зависимость на JaCoCo

👉 ViewPager2 1.0.0-beta02
Удалена зависимость на JaCoCo. Список багов все ещё большой 😞

👉 WorkManager 2.2.0-beta02
Удалена зависимость на JaCoCo

👉 Test 1.2.1-alpha02
Обновление версий зависимостей до соответствующих alpha версий
источник
Android Broadcast
#WorkManager

Вышел WorkManager 2.1.0

Изменения по сравнению с версией 2.0.1:
👉 work-runtime-ktx требует Java 8
👉 Отложенная инициализация WorkManager
👉 PeriodicWorkRequest теперь поддерживает начальную задержку
👉 Добавлена возможность делегирования WorkerFactory с помощью DelegatingWorkerFactory
👉 Добавлена возможность задавать Executor, используемый WorkManager
👉 Добавлены TestWorkerBuilder и TestListenableWorkerBuilder, которые позволяют писать unit тесты Worker и ListenableWorker
👉 Добавлено возможность получения количества попыток в WorkInfo
👉 Возможность добавления в Data Byte и Array<Byte>
👉 WorkManager теперь зависит от Room 2.1.0, что должно исправить часть багов с БД
источник
2019 July 22
Android Broadcast
#RecyclerView

A Custom LayoutManager Case: Bumble Beeline

История от разработчиков из Badoo как они писали свой собственный LayoutManager для RecyclerView.
источник
Android Broadcast
#Kotlin #TypeAlias #InlineClass

Kotlin: Type aliases and inline classes

В Kotlin есть функционал, довольно схожий - Type Alias и Inline Class. Подробнее о этих фичах языка и отличиях вы можете узнать из статьи.
источник
Android Broadcast
#Performance

An idiomatic Android approach to measuring execution time

Хотите замерить время выполнения вашего кода на Android правильно? Тогда вам надо использовать утилитный класс TimingLogger, доступный с API Level 1!

Только не забудьте, чтобы TimingLogger работал необходимо выполнить следующую команду:
adb shell setprop log.tag.TimingLoggerDemo VERBOSE
источник
Android Broadcast
Пример использования TimingLogger
источник
2019 July 23
Android Broadcast
#News

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

В связи с этим до следующей недели новостей не ждите.
источник
2019 July 27
Android Broadcast
#Dagger

Вышел Dagger 2.24

Вышла новая версия Dagger 2, которая не привнесла ничего значимого:
👉 Удалено устаревшее API из dagger.android Has{Activity,Fragment,Service,ContentProvider,BroadcastReceiver}
👉 Инкрементальный процессинг аннотаций теперь включён по умолчанию
👉 Исправление багов
источник
Android Broadcast
#RxJava

RxBinding 3.0

Как бы не штормило Jake Wharton новый мажорный релиза RxBinding вышел, что несомненно порадует всех любителей Rx. В версии 3.0 произошли следующие изменения:
🎉 Библиотека переписана на Kotlin
🎉 Миграция на AndroidX
👉 Удалены все deprecated методы
👉 Отказ от использования AutoValue в пользу Kotlin data классов
источник
2019 July 29
Android Broadcast
#MVVM #AppArchitecture #ArchitectureComponents

Android MVVM — Do’s and Don’ts

Несколько рекомендаций при реализации архитектуры MVVM на основе Architecture Components:
👉 ViewModel не должна использовать классы из Android SDK. Используйте интерфейсы, которые позволят вам абстрагироваться от платформенной реализации.
👉 View не должна содержать какой либо логики (быть пассивной). Место для всей логики - это ViewModel.
👉 ViewModel не должна иметь ссылки на View
👉 Если вы хотите получать обновления данных от LiveData для обновления UI, тогда используйте viewLifecycleOwner.
источник
Android Broadcast
#Kotlin #Sequence

Collections and sequences in Kotlin

Kotlin имеет множество операторов для обработки коллекций, которые выполняются сразу же и создаются новые коллекции. Альтернативой ему служит Sequence API, которое реализует lazy API для обработки коллекций. В статье рассматриваются различия между этими подходами.
источник
Android Broadcast
#GooglePlay #InAppUpdates

How Pandao Uses the In-App Updates Flexible Flow to Speed up the App Update Process on Android

Не так давно Google дала всем разработчикам доступ к In-App Updates, которая позволяет обновлять приложение изнутри. Разработчики из Pandao делятся тем как интегрировать работу с библиотекой и какой эффект ее применения.
источник
2019 July 30
Android Broadcast
#Kotlin #Conference #Minsk

7 сентября пройдет крутейшее событие в Беларуси по Kotlin - Kotlin/Everywhere Minsk. Вас ожидают известные спикеры из-за рубежа и нашей страны и классный материал по использованию Kotlin!

В списке спикеров уже подтверждены:
👉 Мarcin Moskala@KtAcademy
👉 Ильмир Усманов@JetBrains
👉 Marharyta Nedzelska@WIX, Kiev Kotlin User Group Lead
👉 Леонид Старцев@JetBrains
👉 Олег Семен@Lviv Kotlin User Group Lead
👉 Nicolas Fränkel@Exoscale

Регистрация уже открыта. Спешите пройти по ссылке
источник
2019 July 31
Android Broadcast
#Kotlin #Dagger #BestPractices #DependencyInjection

Dagger in Kotlin: Gotchas and Optimizations

Dagger на сегодня является самым популярным DI для Android. Почему так? Он богат возможностями, не использует рефлексию и проверят ваш граф во время компиляции.

Для всех любителей Kotlin использование Dagger порой является неудобным и трудным в силу того, что эта библиотека изначально разрабатывалась для Java и до сих пор на официальном сайте нет полноценного руководства как ее лучше использовать с Kotlin.

Команда Android решила исправит это и дать ряд рекомендаций:
👉 Всегда используйте последнюю версию Dagger (сейчас это 2.24)
👉 Включите инкрементальную компиляцию Dagger в kapt
👉 При выполнение inject зависимости в непубличное свойство класса, задавайте квалификатор на поле
👉 Dagger работает эффективнее если зависимости в @Module предоставляются через статические методы. Используйте object для объявления @Module и добавляйте аннотацию @JvmStatic к каждому методу @Provides.
👉 Работа с generic в Kotlin и Java отличается, поэтому при inject зависимостей с generic вам будет полезна аннотация @JvmSuppressWildcards
👉 Будьте осторожны с использованием single line function, так как Dagger при построение графа опирается на возвращаемый тип. Указывайте явно возвращаемый тип всегда или используйте функции с телом.
источник
Android Broadcast
Считаете ли вы набор таких рекомендаций (больше это "костыли") удобным при работе с Dagger в Kotlin?
Анонимный опрос
28%
Норм
64%
Dagger - это всегда была боль
8%
Нет
Проголосовало: 182
источник
Android Broadcast
#RecyclerView #DiffUtil #UnderTheHood

Разоблачаем магию DiffUtil

RecyclerView - компонент который есть в любом приложение. Он имеет возможность с помощью анимации показывать изменения данных в нем. Делается это довольно непросто, поэтому Google дала нам DiffUtil - утилита, которая за нас вычисляет разницу и анимирует список.

Для тех кто хочет понять как работает эта магия (а называется она алгоритм Майерса) ты вы можете узнать это от ребят из Redmadrobot. Объясняют довольно доступно и с красивыми иллюстрациями.
источник
Android Broadcast
Переключение языка в Android-приложении

Как часто к вам приходит заказчик со своим видением как должно работать приложение в Android? Например, как должен меняться в нем язык (и плевать что этот функционал заложен в системе).

В статье вы найдете руководство как реализовать такую фичу и чтобы форматирование данных и разметка у вас были соответствующими.
источник