Size: a a a

Android Broadcast

2019 November 29
Android Broadcast
#Conference #Quiz

Организаторы крупнейшей мобильной конференции Mobius проводят опрос с целью улучшения контента и формата проведения конференции. У вас есть шанс выиграть призы за прохождение опроса!

Купить билет на декабрьский Mobius в Москве со скидкой по промокоду mobius19mskAndroidBpc
источник
Android Broadcast
#IDEA

IntelliJ IDEA 2019.3: Better Performance and Quality

Разработчики из JetBrains дали свой ответ Project Marble из Android Studio 3.5 и выпустили релиз своей IDE, направленный на улучшение производительности и фиксу багов. Улучшены различные аспекты: индексация проектов, анализ кода, скорость запуска IDE, улучшение работы многих функций IDE и др.

К сожалению, даже будущая Android Studio 4.0 базируется на IDEA 2019.2, поэтому высока вероятность что все эту стабильность мы сможем почувствовать только в Android Studio 4.1. Главное, чтобы код Google не сломал там все!
источник
2019 November 30
Android Broadcast
#Intro

What to consider when starting a new app development

На что стоит обратить внимание когда стартуете разработку нового Android приложения? Конечно же архитектуре, но также важно не забывать про особенности платформы и ее возможности. Автор статьи предлагает уделить внимание:
👉 Работа с местоположением
👉 Push уведомления
👉 Сбор аналитики
👉 Сбор информации о трекинга
👉 Авторизация
👉 Стиль приложения (Тема)
👉 Фоновые сервисы
👉 Локализация (не только переводы но и адаптация под другие регионы)
👉 Возможность работы с приложением без сети
👉 Анимации
источник
Android Broadcast
#Firebase #CloudMessaging #PushNotification

Особенности работы с Firebase Cloud Messaging

В каждом современном приложении есть Push уведомления, но так как встраивать их приходится нечасто, то каждый раз как в первый раз! 🤷‍♀️

Чтобы не ходить по одним и тем же граблям, разработчики Redmadrobot собрали вместе все найденные неявности и рассказали на митапе Redmadrobot. 🤖

Главное, что надо запомнить:
‼️ если вы в настройках вызвали Force Stop, то ваше приложение совсем перестанет получать пуши до следующего запуска!
‼️  если в данных пуша нет поля notification, но есть поле data, то система ОБЯЗАТЕЛЬНО вызовет ваш сервис обработки пуша
‼️ если в данных есть поле notification, то система покажет уведомление сама ТОЛЬКО если приложение не на экране у пользователя (например, свернуто)

Вывод: лучше не используйте поле notification!
источник
Android Broadcast
#DynamicFeature #GooglePlay

Exploring Dynamic Feature Modules at Swiggy

Google Play предоставляет хорошую возможность для ваших приложения - Dynamic Delivery. Эта функция, которая позволяет вам загрузить модуль вашего приложения, отложено. Когда это может быть полезно? Например в вашем приложение есть объемная по размеру функция, но пользуется ей небольшое количество пользователей или она специфична для определенных регионов.

Как сделать динамическую загрузку? Ваше приложение должно быть модулизировано (на основе Gradle модулей/проектов). дальше дело техники, которое описывается в статье
источник
Android Broadcast
#Kotlin #BestPractices

Стала доступна печатная версия книги "Effective Kotlin", которая содержит в себе лучшие практики. Что стоит делать как, а чего лучше избегать.

Хотите сохранить деревья и всегда иметь актуальную версию книги? Купите электронную версию.
источник
2019 December 02
Android Broadcast
#Architecture #BestPractices

How to start writing reusable components for Android apps?

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

Как сделать эффективное повторное использование кода? Начните со следующего:
👉 Уделяйте внимание архитектуре вашего приложения
👉 Пишите собственные View
👉 Используйте стандартное API из SDK по максимуму
👉 Dependency injection - ваш друг
👉 Выделяйте общий функционал в библиотеки/модули
источник
Android Broadcast
#DependencyInjection #Dagger #AssistedInject #Square

Brave New Android World with AssistedInject

Если вы активно используете Dagger, то скорее всего сталкивались с проблемой передачи зависимостей вне графа, например передать id в Presenter. Раньше это решалось те, что создавался новый Dagger компонента, куда этот параметр передается.

Решить эту проблему можно с использование Factory, но это множество boileplate кода. Исправляет это библиотека AssistedInject, а в статье разбирается как ее использовать и как ее применить в Android.
источник
Android Broadcast
#Jetpack #AndroidX #ktx

Знаете ли вы все расширения для Kotlin из *-ktx библиотек? Где найти по ним документацию? Это можно сделать на сайте developers.android.com, если переключиться на формат документации в Kotlin.

Есть ли способ проще? Теперь да - полный список KTX расширений на официальном сайте. Рекомендую пройтись по списку, чтобы сделать ваш Kotlin код лучше и чище.
источник
2019 December 03
Android Broadcast
#ColorUtils

Contrasting text and icons over background

При реализации Material Design легко стоклнуться с тем что иконки, могут располагаться поверх других картинок. В этом случае вы сталкиваетесь с проблемой, что в зависимости от фона приходится менять картинку, или делать какой-то эффект чтобы на любой картинки ваше иконки не терялись.

Добиться это можно если перекрашивать иконки с зависимости от картинок. Как это сделать? Нужно рассчитывать яркость и динамически менять иконку. Рецепт в статье
источник
Android Broadcast
#Coroutines

Suspending over Views

Kotlin Coroutines позволяют интегрировать их подход с любым принципом, основанным на Callback-ах. Где в Android можно найти много callback-ов? Это система View в Android. В статье рассказывается как это сделать и каким образом этом может быть эффективно применить.
источник
Android Broadcast
#DSL #Anko #Kotlin

Кладбище проектов пополнилось еще одним решением - Anko. Авторы написали прощальный MD, в котором объясняют причины закрытия проекта из-за сложностей развития отдельного функционала и появление хорошего аналога от Google в виде *-ktx. Создатели библиотеки предлагают мигрировать на другие решения, одним из которых является Jetpack Compose.
источник
2019 December 04
Android Broadcast
#CodeQuality #Kotlin

Вышел KtLint 0.36.0 в рамках которой вы найдете:
👉 новую возможность создания HTML отчетов
👉 Новые правила и улучшение старых
👉 Багфикс
источник
Android Broadcast
#DeepLink

От веба до приложения за один DeepLink

Deep Link - это популярная функция любого приложения. Она позволяет связывать между собой ссылку на страничку и окном в установленном приложении. Что делать если приложение не установлено? Открыть страницу в браузере? Предложить установить приложение? Также помимо Deep Link в Android есть еще и App Link.

Как все это связать между собой? Как решить проблемы с редиректом в разных браузеров на разных платформах. В статье рассматриваются решения OneLink и Firebase Dynamic Link: принципы работы, трудности с которыми столкнулся автор, особенности работы с Chrome Custom Tab.

Firebase Dynamic Link оказалось лучшим решением так как его работа базируется на Google Play Services, что позволяет эффективнее обрабатывать случаи когда приложение не установлено.
источник
Android Broadcast
#Gradle #DependencyManagement

Стала доступна запись вебинара "What’s New in Gradle 6.0". В рамках сессии разработчики этой системы сборки рассказали о:
👉 Нововведениях в системе управления зависимостями
👉 Публикация Gradle Module Metadata и его роль
👉 Улучшениях поддержки java, Groovy, Scala
👉 Новых возможностях для разработчиков плагинов
источник
Android Broadcast
#Kotlin #Conference #Copenhagen

Сегодня началась конференция Kotlin Conf 2019. Первый день посвящен воркшопам, а завтра нас уже ждут доклады, как и в третий день конференции. В этом году все потоки будут транслироваться онлайн и поэтому вы можете полностью увидеть всех со сцен в онлайне.

В конце первого дня докладов нас ждет загадочный анонс нового продукта компании... Жду не дождусь чтобы узнать чем нас порадует компания, которая создала язык и IDE, изменившие качество разработки множества Android разработчиков и не только!

Также в вашем городе вы можете попробовать найти мероприятия в рамках KotlinConf Global. Карту можно найти здесь.

А я уже сажусь в самолёт ✈️, чтобы увидеть все своими глазами и конечно же делиться новостями в канале! Если у вас есть какие-то вопросы к компаниям на стендах или разработчикам из JetBrains - можете написать мне (@krlrozov) и я постараюсь задать ваш вопрос.
источник
2019 December 05
Android Broadcast
#Security

An Update on Android TLS Adoption

Google хвастается тем что добавление Network Security Configuration в Android 7.0, а позже и введение политик по умолчанию который блокируют незашифрованный трафик, начиная с Android 9.0, дали прекрасные результаты. На текущий день что 80% всех Android приложений шифруют трафик по умолчанию, а для Android 9.0+ этот Показатель еще выше - 90%.

Если вы еще не позаботились о безопасности работы в сети, в статье вы найдёте краткое руководство.
источник
Android Broadcast
#Security #Fingerprint #Biometric #Migration

Migrating from FingerprintManager to BiometricPrompt

Не так давно вышла библиотека AndroidX Biometric, в рамках которой произошла унификация работы между FingerprintManager и BiometricPrompt, а также появился единый UI. Пора задуматься о миграции на новый API.

В статье рассматривается миграция с FingerprintManager в 2 вариантах: с использование шифрования данных с полученным CryptoObject или без. Первый вариант нужен если вам необходимо выполнять шифрование данных, а второй - если вы используете биометрическую авторизацию как пароль.
источник
2019 December 06
Android Broadcast
#Kotlin #Conference #Copengagen

Обзор анонсов Kotlin Conf 2019

5-6 декабря в Копенгаген (Дания) проходит конференция Kotlin Conf в рамках которой рассказали подробности следующей версии языка и представили новый продукт компании JetBrains - Space. В видео я делюсь личными впечатлениями от первого дня и рассказываю про анонсы.

P.S. Видео записывалось в отеле в спешке, прошу не судить строго за огрехи ☹️
источник
Android Broadcast
Coroutines Flow убьют необходимость использования LiveData.

Уже задумывался над тем, чтобы заменить LiveData на Flow, т.к. наличие из коробки CoroutineScope для жизненных циклов не несут в себе никакой ценности использования LiveData
источник