Size: a a a

Android Broadcast

2019 May 25
Android Broadcast
android_broadcast
#Course

Android Architecture Masterclass video course

Курс по архитектуре Android приложений, написанию чистого кода и разработке поддерживаемых приложений. Курс стоит $12.

Курс состоит из следующих частей:
1️⃣ MVx архитектурные паттерны
2️⃣ MVx в Android
3️⃣ Базисы MVC
4️⃣ Dependency Injection
5️⃣ Controller
6️⃣ Структура пакетов
7️⃣ Вложенные MVC View
8️⃣ Clean Architecture

Замечание: Насколько скидка реальна, и какое качество курса сказать не могу, но я уже его приобрел курс и потрачу 4.5 часа в ближайшие 2 недели, чтобы узнать это и расскажу вам
Я давно обещал вам сделать обзор на этот курс. Досмотрел, но не дошел написать, извините 😢

Курс подойдет вам если вы только начинаете разбираться с архитектурой. Я для себя (опыт 7+ лет промышленной Android разработки) не нашел для себя ничего нового😔.

В рамках курса не раскрылись популярные решения и не хватало практики, хотя бы опросников по каждой из тем. Даже Junior разработчикам я объяснял бы архитектуру немного глубже по некоторым направлениям.

Моя оценка - 4/10 👎
источник
2019 May 27
Android Broadcast
#Dagger #ViewModel

Android. Less Dagger boilerplate code for ViewModel creation

Те кто писал Factory для ViewModel, у которой есть зависимости из графа и соединить весь Inject с Dagger 2, эти люди знают насколько там много boilerplate кода и как этот процесс неприятен.

Для тех кто не знает - посмотрите статью выше и поймите. В ней вы найдете рецепт как соединить Dagger и создание . ViewModel.

Cпойлер: сейчас в EPAM мы работает над библиотекой, которая будет генерировать весь этот код за вас
источник
Android Broadcast
#Gradle #Optimizations

Советы по оптимизации Gradle в Android проектах. Ревизия 2019 года

Советы по следам Google I/O 2019:
👉В многомодульных проектах предпочитайте Java/Kotlin модули вместо Android модулей. Они собираются быстрее и лучше работает инкрементальная сборка
👉Применяйте только необходимые плагины
👉Избегайте непонятных плагинов
👉Мигрируйте на Kotlin 1.3.30 и включайте инкрементальный kapt
👉Запускайте Android Lint только на App модулях
👉Правильно настраивайте зависимости (api и implementation)
👉Описывайте версии зависимостей в одном месте в проекте
👉Используйте папку buildSrc для описания зависимостей
👉Кастомные плагины позволят сократить размер gradle файлов в проекте и ускорить сборку
👉Применяйте последние возможности Gradle API, например Lazy конфигурацию для тасков
👉Используйте Gradle Worker API
👉Создавайте таски кастомных типов
👉Не делайте длительных операций во время фазы конфигурации
👉Измеряйте скорость вашей сборки, чтобы искать узкие места. В этом вам помогут Build Scans, Gradle Profiler, Talaoit
источник
Android Broadcast
#Gradle #Performance

Порой приходится иметь доступ к Android API в Java/Kotlin коде, и отказывать от чистого Java/Kotlin модулей в пользу Android Library проектов.

Есть способ более простой использовать Android API и не уходить от Java/Kotlin модуля - используйте AndroidJar Gradle плагин. Также можно подключить aar с помощью aar2jar Gradle плагина.
источник
2019 May 28
Android Broadcast
#Architecture #CleanArchitecture #ArchitectureComponents

How to implement a Clean Architecture on Android

"Повторение мать учения" - так можно сказать об этой статье, в которой рассказывается о Clean Architecture на примере Android приложения и рассказывает об обязанностях каждого из слоев и осуществление коммуникации между ними
источник
Android Broadcast
Есть ли у вас подписка на Medium ?
Окончательные результаты
9%
Да
2%
Покупаю по надобности
33%
Разве он платный?
56%
Нет
Проголосовало: 180
источник
2019 May 29
Android Broadcast
#JetpackCompose

Android Jetpack Compose Review

Вы верите в Jetpack Compose? Пока он очень сырой и совсем не готов к использованию, но создал много шума. Можете изучить больше подробностей о будущем разработки UI на Android в статье
источник
Android Broadcast
#Kotlin

Kotlin: Don’t just use LET for null check

Kotlin - язык с богатыми возможностями, который позволяет значительно упрощать различные рутинные операции из Java. Главное надо помнить о правиле Человека-Паука - любую фичу можно обернуть против себя и использовать ее неэффективно.

Как правильно проверить переменную на null if (variable != null) { /*Do something*/ } или variable?.let { /*Do something*/ } ?

Больше подробностей когда использовать let и когда нет читайте в статье
источник
Android Broadcast
#CodeQuality

Gradle static analysis plugin

Чтобы качественно анализировать код вашего проекта надо подключать множество различных утилит. Плагин Gradle static analysis облегчает вашу работу, предоставляя простую настройку множества плагинов, которая включает в себя следующие утилиты:
👉 Checkstyle
👉 PMD
👉 FindBugs
👉 Detekt
👉 KtLint
👉 Android Lint

В процесс работы находятся:
👉 Spotbugs
👉 CPD
👉 Error Prone
👉 Jetbrains IDEA Inspections

Высокого качества кода вашему коду
источник
Android Broadcast
#Dagger #DependencyInjection

Dagger 2.23 Release

Вышел Dagger 2.23. Релиз был направлен на исправление багов, улучшение скорости работы и причесывание API:
👉 Генерируемый код по умолчанию теперь не форматируется. Это позволяет ускорить кодогенерацию. Форматирование стоит включать в релизном билде
👉 Общее улучшение скорости сборки
👉 Генерируемый компонент теперь объявляются public в случае если компонент в вашем коде объявлен как public
👉 Более строгая валидация @BindsInstance
источник
2019 May 30
Android Broadcast
#Fresco #Facebook #Image #ProgressiveJPEG

Fresco — Android Image Library

Во современной разработке можно найти множество библиотек, которые решают задачи по загрузке картинок их кэшированию и эффективному отображению. Я уверен, что у всех на слуху, а то и в проекте, одна из библиотек Glide, Picasso и Universal Image Loader (UIL).

Есть решение, которое выделяется из этого списка - Fresco от Facebook. Ее ключевое отличие, что часть обработки изображений и кэширования написана на C/C++ и соответственно на нее не накладываются ограничения JVM. Это позволяет вашему приложению переживать больше OutOfMemory и работать быстрее.

Одной из крутых фичей библиотеки является поддержка Progressive JPEG изображений - отображение картинки постепенно при ее загрузке.

В статье вы найдете краткую вводную информацию, но а всех тех кто заинтересовался - больше подробностей в документации Facebook Fresco
источник
Android Broadcast
#RxJava

RxJava Observable to Single

RxJava позволяет между собой конвертировать свои различные типы из одного в другой. Только не всегда это можно сделать без проблем, так как к пример Observable может не вызвать onNext() ни разу в случае когда поток пустой, а вот Single гарантирует что один элемент будет эмитирован либо произойдет ошибка.

Если попытаться конвертировать пустой Observable в Single, то в результате вас ждет креш из-за отсутствия данных в Observable.

Как уследить за такими случаями и как их обрабатывать, вы можете узнать из статьи
источник
Android Broadcast
#Coroutines #ArchitectureComponents #AndroidX

Coroutines with Architecture components

На прошедшем Google I/O рассказали о том, что Kotlin Coroutines - это рекомендуемое решение для асинхронного программирования на Android. В рамках этого рассказали о многих существующих библиотеках в рамках AndroidX, которые уже имеют поддержку Coroutines и о новых версиях библиотек из Architecture Components.

В статье рассматривается интеграция Coroutine с LiveData, ViewModel и Lifecycle, которая уже доступны в первой альфа версии Architecture Components 2.2.0
источник
2019 May 31
Android Broadcast
#Kotlin

When to use Kotlin's takeIf() and takeUnless() functions

Стандартная библиотека содержит множество различных утилитных функций, которые делаю код короче и приятнее. Но не всегда так все очевидно и можно легко столкнуться с проблемами - например функции takeIf и takeUnless таят в себе опасность.

Задача этих функций в том чтобы проверить значение и если оно удовлетворяет (или нет в для takeUnless) условию вернуть это значение, в противном случае - null. Например digit.takeIf { it % 2 == 0 }, что является аналогом кода if (it % 2 == 0) digit else null.

На первый взгляд все выглядет хорошо, но надо учитывать порядок выполнения инструкций, так как он разный и может привезти к печальны последствиям. Больше подробностей в статье.
источник
2019 June 01
Android Broadcast
#GooglePlay

Building a safer Google Play for kids

Google Play становится более безопасным для детей и семей. Для разработчиков это выливается в следующие изменения:
👉 Если дети часть вашей аудитории, ты ваше приложение должно соответствовать новой политике по контенту и обработки персональных данных
👉 Реклама в вашем приложение должна соответствовать аудитории и предоставляться из рекламных сетей, которые сертифицированы в соответствии с новой политикой
👉 Если ваше приложение не предназначается для детей, то вы должны убедиться, что ваше приложение соответствует требованиям. Например, это касается контента в информации на Google Play

Теперь при публикация приложения в Google Play надо указывать целевую аудиторию и контент приложения. Для уже опубликованных приложений необходимо сделать обновления до 1 сентября 2019.
источник
Android Broadcast
#Kotlin #AnnotationProcessor

Annotation processor: Say less, mean more

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

Современная Java разработка (как и Kotlin) имеет возможность генерация кода в момент компиляции - Annotation Processor. Суть технологии проста - вы помечаете код аннотациями, а специальная утилита, называемая процессор аннотаций (в Kotlin это kapt) запускают написанный вами обработчик этих аннотаций и позволяют во время компиляции сделать различные операции, например сгенерировать код.

Большинство Android разработчиков используют библиотеки с Annotation Processor: Dagger 2, Room, Butterknife, Arch Component Lifecycle.

Упростить свою задачу с помощью кодогенерации и Annotation Processor не так сложно. Подумайте что в вашем вы бы перестали бы писать каждый раз, возьмите JavaPoet или KotlinPoet, изучите статью и вперед!
источник
Android Broadcast
#Kotlin #Architecture #Delegate

Class delegation in Kotlin

Все мы хотим (и даже должны) делать хорошую архитектуру приложений: разбивать на слои, писать переиспользуемый код, покрывать тестами, не использовать сильные связи между классами (например наследование 😦) и др.

Для этого у нас есть много рекомендаций, одна из которых - делегаты. В Java я не использовал этот шаблон программирования активно по причине, что это боль - нужно писать дубликат API из делегата и пробрасывать все вызовы в этот объект.

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

👇Узнайте больше из статьи 👇
источник
2019 June 03
Android Broadcast
#Новости

За все время существование канала я всегда старался сделать подачу контента удобной и не перегружать подписчиков большим потоком информаци. Последний месяц я ввел несколько правил, которые придерживался при создание постов:
1️⃣  Не больше 4 постов в день
2️⃣  Воскресенье - выходной. Ждать в этот день постов не стоит. Расслабьтесь, приготовьтесь к новой неделе.
3️⃣  Первые 2 правила могут нарушаться в исключительных случаях - очень важные новости, которые нужно рассказать ASAP
4️⃣  Большие обзоры будут создаваться на сторонних сервисах (Telegraph, Medium) и поститься в кратком варианте в канал
5️⃣  Все новости постятся без оповещений, чтобы не отвлекать от важных дел

Этим правилам я буду следовать и дальше .Буду очень рад вашим альтернативным предложениям по контенту и его подаче. Вы можете написать мне лично @krlrozov либо обсудить это в чате @android_broadcast_discussions
источник
Android Broadcast
#DarkTheme

Moving to the Dark Side: Dark Theme Recap

В Android 10.0 Q будет поддержкой темной темы в ОС, хотя возможность она уже была давно доступна для разработчиков приложений (DayNight).

Почему важна поддерживать темную тему:
👉 Экономия батарейки устройства
👉 Более комфортное использование приложений в темных условиях и для людей, чувствительных к яркому свету

Разработчикам сейчас предоставляется 2 возможности для реализации темной темы:
👉 Использование DayNight темы для приложения
👉 Поддержка Force Dark Mode с помощью включения android:forceDarkAllowed=”true”

В статье вы найдете обзор темного режима и как происходит работа с ним, лучшие практики и пр. материалы которые позволят вам дать пользователям выбор свой стороны Темы
источник
Android Broadcast
#Security

Безопасная передача данных между двумя приложениями

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