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

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

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

Android Jetpack WorkManager Stable Release

То чего так долго ждали свершилось WorkManager 1.0 Stable!

Ключевые функции WorkManager
👉 Возможность задания ограничений для выполнения задач, например необходимость выполнить когда есть подключение к сети и устройство заряжается
👉 Поддержка одноразовых и периодических задач
👉 Поддержка цепочек задач с входными и выходными данными
👉 Гарантирует выполнение задач, даже после перезагрузки устройства
👉 Поддержка Android 4.0+ (API 14+)
👉 Использует JobScheduler API на Android 6.0+ (API 23+) и комбинацию AlarmManager и BroadcastReceiver на более ранних версиях.
👍1
С чего начать использование?

1️⃣ Подключить зависимости

dependencies {
def work_version = 1.0.0

// Java
implementation
"android.arch.work:work-runtime:$work_version"

// Kotlin KTX + coroutines
implementation
"android.arch.work:work-runtime-ktx:$work_version"
}

2️⃣ Создать Worker, который будет выполнять задачу

class MyWorker(
ctx: Context,params: WorkerParameters
): Worker(ctx, params) {

override fun WorkerResult doWork() {
//do the work you want done in the background
return Result.success()
}
}  

3️⃣ Создайте Constraints для задачи (опционально)

val constraints: Constraints = Constraints.Builder()
.setRequiresCharging(true)
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()

4️⃣ Создайте задачу

val myWork =
OneTimeWorkRequestBuilder<MyWorker>()
.setConstraints(constraints).build()

5️⃣ Добавьте ее на выполнение

WorkManager.getInstance().enqueue(myWork)
#Kotlin #KtAcademy

The beauty of Kotlin typing system от Marcin Moskala@Kt.Academy

Рассказ о прекрасно спроектированной системе типов в Kotlin, которая предоставляет удобный способ для работы с nullability, type inference и др.

В статье рассказывается о
👉 Тип Any? - супертип всех типов
👉 Тип Unit
👉 Тип Nothing - подтип всех типов
👉 Какой тип у null
👍1
Пример иерархии типов в Kotlin
#LibUpdate #JakeWharton

ThreeTebABP 1.2.0

Вышел новый релиз библиотеки ThreeTebABP, который добавил возможность загружать базу данных часовых поясов, расположенных в asset-ах
👍1
#Kotlin

When You Should Use Null in Kotlin

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

К сожалению, репутация null испорчена системой типов в Java, частые NPE и множество if (value != null). null - это хороший выбор для представления состояния, когда у вас не проинициализрован объект, либо не доступен в текущий момент.

Для того чтобы ваше работы с null не приводила к ошибкам в Kotlin было сделано множество средств:
👉 система типов, различающая nullable и non-nullable типы
👉 безопасные вызовы ( ?. )
👉 безопасные приведения ( as? )
👉 else shorthand ( ?: )
👉 неизменяемые переменные

Язык должен помогать вам писать код как это логически правильно и не заставлять использовать что-то из-за своих ограничений. Kotlin старается соответствовать этим ожиданиям и у него это прекрасно получается!

Не бойтесь null, так в нем есть польза.
👍1
#AndroidLint #Performance #BestPractices #CodeQuality

Android Lint Performance Tips

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

Как ее увеличить читайте в статье из обсуждений о производительности Lint из Google Groups.

Замечание: Информации много и я не смог ее уместить в небольшой пост, поэтому чтобы не захламлять канал я вынес статью.
👍1
#GoogleMaps #GooglePlayServices #PlacesSDK

Introducing new, improved Places SDKs

Обновляется Google Maps Places SDK для Android. Что важного:
👉 Теперь API не привязано к Google Play Service и распространяется отдельным артефактом com.google.android.libraries.places:places:1.0.0
👉 Больше нет ограничения на количество запросов в день
👉 Более частные обновления и оперативное исправление багов
👉 Возможность получать новую информацию об местах: время работы, количество отзывов
👉 Доступ к plus codes - краткие коды, которые позволяют предоставить адрес для любого места на земле, даже в тех районах где традиционные адреса не существуют

Cтарое Places SDK будет закрыто 29 июля 2019
👍1
#Grow #EPAM

EPAM grow.by - Grow yourself and help others to grow with us

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

Для организации процесса развития сотрудников существует закрытый портал, где человек видит свою текущую матрицу навыков и может поставить себе цели в развитие на новый уровень, либо вообще сменить направление разработки, например перейти из iOS в Android 😁.

Портал grow.by сделали открытым чтобы любой желающий мог посмотреть какие требования предъявляются для людей на различных уровнях и какие навыки вам надо подтянуть. Если же вы ментор, то вы можете при помощи портала выстроить программу менторинга для своих подопечных.
👎1
#AndroidX #ArchComponents #Lifecycle

Detecting when an Android app is in foreground or background

Как вы определяете что приложение ушло в фон или пользователь закрыл все Activity в приложение? В Android Architecture Components есть прекрасное решение для этого - ProcessLifecycleOwner.
👍1
#StrictMode #Library

StrictModeCompat

StrictMode в Android помогает находить различные проблемы в приложениях: выполнение I/O операций на главном потоке, незакрытые БД, неподходящие ресурсы и прочее.

Проблема в том, что это API очень фрагментировано и обновляется от версии к версии, и конфигурировать его для корректной работы на любой версии Android неудобно.

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

Библиотека поддерживает Android 4.0+, Java 7 и имеет Kotlin DSL для удобной конфигурации.
👍1
#Coroutine

Coroutine Context and Scope от Романа Елизарова

CoroutineScope и CoroutineContext очень похожие концепты, CoroutineScope содержит одно единственное свойство - coroutineContext.

В своей статье Роман Елизаров показывает зачем одним и тем же сущностям порой пристают разные имена, чтобы явно продемонстрировать их разные цели применения.
👍1
Построение CoroutineScope для вложенных корутин
Пользуетесь ли вы Chromecast ?
Final Results
24%
Да
54%
Нет
22%
Не знаю что это
👍1
#Podcast #Concurrency #Kotlin

PODLODKA #102: Многопоточность

Многие её побаиваются, и не исключено, что кто-то из-за неё даже заваливал собеседования на особо каверзных вопросах. Многопоточность! Что это такое, и с чего все началось? Чем отличаются concurrency и параллелизм, как это все работает? Об этом всём мы поговорили с человеком, чья работа (помимо всего прочего) – проектировать механизм корутин в языке Kotlin. У нас в гостях Роман Елизаров из JetBrains.
#GooglePlay

Supplement your earnings with rewarded products

Google Play добавила поддержку rewarded products (вознаграждаемые продукты). Первый тип таких продуктов - это видео, за просмотр которых пользователь может получать внутриигровую валюту, призы и пр.

Продукт основан на AdMob и сейчас находится на стадии бета тестирования.

Подробнее о том как интегрировать вознаграждаемые продукты
#Chromecast

Интегрируем Chromecast в Android-приложение

Я люблю свой Chromecast - взял и пошарил YouTube на большой экран и наслаждаемся контентом, подключил его к любому телеку и получил простой вариант SmartTV. Интеграция этой технологии работать вашему приложению на Android TV, телевизоры, колонки и др.

Ребята из MobileUp описали хорошую инструкцию как интегрировать поддержку технологии в ваше приложение. Подробности по ссылке.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Простой пример работы Chromecast 😀
👍1