Forwarded from paradiSEcurity
Мною было замечено, что разработчики не задумываются, как работают Android-приложения, а исследователи не понимают, как заводится Xposed. В этой статье разложено по полочкам как работает система под капотом.
Telegraph
Приложения под капотом и не только
Привет, дорогой читатель этой статьи, сегодня хочу поговорить про работу Android-приложений изнутри. Как оказалась, эта тема достаточно глубокая и интересная, особенно, если речь идет про самые последние версии Android. Я постараюсь сделать все, чтобы информация…
#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 на более ранних версиях.
Android Jetpack WorkManager Stable Release
То чего так долго ждали свершилось WorkManager 1.0 Stable!
Ключевые функции WorkManager
👉 Возможность задания ограничений для выполнения задач, например необходимость выполнить когда есть подключение к сети и устройство заряжается
👉 Поддержка одноразовых и периодических задач
👉 Поддержка цепочек задач с входными и выходными данными
👉 Гарантирует выполнение задач, даже после перезагрузки устройства
👉 Поддержка Android 4.0+ (API 14+)
👉 Использует JobScheduler API на Android 6.0+ (API 23+) и комбинацию AlarmManager и BroadcastReceiver на более ранних версиях.
Android Developers Blog
Android Jetpack WorkManager Stable Release
Posted by Sumir Kataria, Software Engineering Lead & Jisha Abubaker, Product Manager Simplify how you manage background work with WorkM...
👍1
С чего начать использование?
1️⃣ Подключить зависимости
2️⃣ Создать Worker, который будет выполнять задачу
3️⃣ Создайте Constraints для задачи (опционально)
4️⃣ Создайте задачу
5️⃣ Добавьте ее на выполнение
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
The beauty of Kotlin typing system от Marcin Moskala@Kt.Academy
Рассказ о прекрасно спроектированной системе типов в Kotlin, которая предоставляет удобный способ для работы с nullability, type inference и др.
В статье рассказывается о
👉 Тип Any? - супертип всех типов
👉 Тип Unit
👉 Тип Nothing - подтип всех типов
👉 Какой тип у null
Medium
The beauty of Kotlin typing system
Many amazing Kotlin features are just a result of its amazingly designed type system. See how all those pieces perfectly fit together.
👍1
#LibUpdate #JakeWharton
ThreeTebABP 1.2.0
Вышел новый релиз библиотеки ThreeTebABP, который добавил возможность загружать базу данных часовых поясов, расположенных в asset-ах
ThreeTebABP 1.2.0
Вышел новый релиз библиотеки ThreeTebABP, который добавил возможность загружать базу данных часовых поясов, расположенных в asset-ах
GitHub
ThreeTenABP/CHANGELOG.md at trunk · JakeWharton/ThreeTenABP
An adaptation of the JSR-310 backport for Android. - JakeWharton/ThreeTenABP
👍1
#Kotlin
When You Should Use Null in Kotlin
Является ли значение
К сожалению, репутация
Для того чтобы ваше работы с
👉 система типов, различающая nullable и non-nullable типы
👉 безопасные вызовы ( ?. )
👉 безопасные приведения ( as? )
👉 else shorthand ( ?: )
👉 неизменяемые переменные
Язык должен помогать вам писать код как это логически правильно и не заставлять использовать что-то из-за своих ограничений. 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.
Замечание: Информации много и я не смог ее уместить в небольшой пост, поэтому чтобы не захламлять канал я вынес статью.
Android Lint Performance Tips
Android Lint - это замечательный анализатор кода, который определяет специфичные для Android баги и потенциальные проблемы. Расстраивает его невысокая скорость работы, которая становиться хуже с каждым релизом 😪
Как ее увеличить читайте в статье из обсуждений о производительности Lint из Google Groups.
Замечание: Информации много и я не смог ее уместить в небольшой пост, поэтому чтобы не захламлять канал я вынес статью.
Telegraph
Android Lint Performance Tips
Android Lint (далее просто Lint) - это замечательный анализатор кода, который определяет специфичные для Android баги и потенциальные проблемы. Проблемой в работе этой утилиты является её скорость - она невысокая и становиться все хуже с каждым релизом. Это…
👍1
#GoogleMaps #GooglePlayServices #PlacesSDK
Introducing new, improved Places SDKs
Обновляется Google Maps Places SDK для Android. Что важного:
👉 Теперь API не привязано к Google Play Service и распространяется отдельным артефактом
👉 Больше нет ограничения на количество запросов в день
👉 Более частные обновления и оперативное исправление багов
👉 Возможность получать новую информацию об местах: время работы, количество отзывов
👉 Доступ к plus codes - краткие коды, которые позволяют предоставить адрес для любого места на земле, даже в тех районах где традиционные адреса не существуют
Cтарое Places SDK будет закрыто 29 июля 2019
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 сделали открытым чтобы любой желающий мог посмотреть какие требования предъявляются для людей на различных уровнях и какие навыки вам надо подтянуть. Если же вы ментор, то вы можете при помощи портала выстроить программу менторинга для своих подопечных.
EPAM grow.by - Grow yourself and help others to grow with us
Я был приятно удивлен, когда пришел в компанию EPAM, насколько здесь качественно поставлен на поток процесс обучения сотрудников: тренинги, менторинг, митапы, поддержка участия в конференциях и пр.
Для организации процесса развития сотрудников существует закрытый портал, где человек видит свою текущую матрицу навыков и может поставить себе цели в развитие на новый уровень, либо вообще сменить направление разработки, например перейти из iOS в Android 😁.
Портал grow.by сделали открытым чтобы любой желающий мог посмотреть какие требования предъявляются для людей на различных уровнях и какие навыки вам надо подтянуть. Если же вы ментор, то вы можете при помощи портала выстроить программу менторинга для своих подопечных.
YouTube
С чего начать работу с платформой grow.by
Вводное видео - портал grow.by
👎1
#AndroidX #ArchComponents #Lifecycle
Detecting when an Android app is in foreground or background
Как вы определяете что приложение ушло в фон или пользователь закрыл все Activity в приложение? В Android Architecture Components есть прекрасное решение для этого - ProcessLifecycleOwner.
Detecting when an Android app is in foreground or background
Как вы определяете что приложение ушло в фон или пользователь закрыл все Activity в приложение? В Android Architecture Components есть прекрасное решение для этого - ProcessLifecycleOwner.
Medium
Detecting when an Android app is in foreground or background
It’s a rule: every Android app has its own logic, context and behaviors. And the solutions that may apply successfully to certain cases…
👍1
#StrictMode #Library
StrictModeCompat
StrictMode в Android помогает находить различные проблемы в приложениях: выполнение I/O операций на главном потоке, незакрытые БД, неподходящие ресурсы и прочее.
Проблема в том, что это API очень фрагментировано и обновляется от версии к версии, и конфигурировать его для корректной работы на любой версии Android неудобно.
Для того чтобы эффективно использовать это API, я разработал библиотеку StrictModeCompat, которая позволяет не переживать есть ли API на текущей версии Android или нет - все что можно будет включить из того что вы захотели, будет включено.
Библиотека поддерживает Android 4.0+, Java 7 и имеет Kotlin DSL для удобной конфигурации.
StrictModeCompat
StrictMode в Android помогает находить различные проблемы в приложениях: выполнение I/O операций на главном потоке, незакрытые БД, неподходящие ресурсы и прочее.
Проблема в том, что это API очень фрагментировано и обновляется от версии к версии, и конфигурировать его для корректной работы на любой версии Android неудобно.
Для того чтобы эффективно использовать это API, я разработал библиотеку StrictModeCompat, которая позволяет не переживать есть ли API на текущей версии Android или нет - все что можно будет включить из того что вы захотели, будет включено.
Библиотека поддерживает Android 4.0+, Java 7 и имеет Kotlin DSL для удобной конфигурации.
GitHub
GitHub - androidbroadcast/StrictModeCompat: Safety call StrctiMode API methods from newer Android SDK on old versions
Safety call StrctiMode API methods from newer Android SDK on old versions - GitHub - androidbroadcast/StrictModeCompat: Safety call StrctiMode API methods from newer Android SDK on old versions
👍1
#Coroutine
Coroutine Context and Scope от Романа Елизарова
CoroutineScope и CoroutineContext очень похожие концепты, CoroutineScope содержит одно единственное свойство - coroutineContext.
В своей статье Роман Елизаров показывает зачем одним и тем же сущностям порой пристают разные имена, чтобы явно продемонстрировать их разные цели применения.
Coroutine Context and Scope от Романа Елизарова
CoroutineScope и CoroutineContext очень похожие концепты, CoroutineScope содержит одно единственное свойство - coroutineContext.
В своей статье Роман Елизаров показывает зачем одним и тем же сущностям порой пристают разные имена, чтобы явно продемонстрировать их разные цели применения.
Medium
Coroutine Context and Scope
Kotlin Coroutines have a context. There is a also a concept of coroutine scope that looks very much like a context. What’s the difference?
👍1
👍1
#Podcast #Concurrency #Kotlin
PODLODKA #102: Многопоточность
Многие её побаиваются, и не исключено, что кто-то из-за неё даже заваливал собеседования на особо каверзных вопросах. Многопоточность! Что это такое, и с чего все началось? Чем отличаются concurrency и параллелизм, как это все работает? Об этом всём мы поговорили с человеком, чья работа (помимо всего прочего) – проектировать механизм корутин в языке Kotlin. У нас в гостях Роман Елизаров из JetBrains.
PODLODKA #102: Многопоточность
Многие её побаиваются, и не исключено, что кто-то из-за неё даже заваливал собеседования на особо каверзных вопросах. Многопоточность! Что это такое, и с чего все началось? Чем отличаются concurrency и параллелизм, как это все работает? Об этом всём мы поговорили с человеком, чья работа (помимо всего прочего) – проектировать механизм корутин в языке Kotlin. У нас в гостях Роман Елизаров из JetBrains.
podlodka.tilda.ws
Podlodka #102 — Многопоточность
Многие её побаиваются, и не исключено, что кто-то из-за неё даже заваливал собеседования на особо каверзных вопросах. Многопоточность! Что это такое, и с чего все началось? Чем отличаются concurrency и параллелизм, как это все работает? Об этом всём мы поговорили…
#GooglePlay
Supplement your earnings with rewarded products
Google Play добавила поддержку rewarded products (вознаграждаемые продукты). Первый тип таких продуктов - это видео, за просмотр которых пользователь может получать внутриигровую валюту, призы и пр.
Продукт основан на AdMob и сейчас находится на стадии бета тестирования.
Подробнее о том как интегрировать вознаграждаемые продукты
Supplement your earnings with rewarded products
Google Play добавила поддержку rewarded products (вознаграждаемые продукты). Первый тип таких продуктов - это видео, за просмотр которых пользователь может получать внутриигровую валюту, призы и пр.
Продукт основан на AdMob и сейчас находится на стадии бета тестирования.
Подробнее о том как интегрировать вознаграждаемые продукты
Android Developers Blog
Supplement your earnings with rewarded products
Developers are increasingly using multiple methods to monetize their apps and games. One trend has been to reward users for a monetizable action, like watching a video, with in-game currency or other benefits. This gives users more choice in how they experience…
This media is not supported in your browser
VIEW IN TELEGRAM
Пример rewarded product
#Chromecast
Интегрируем Chromecast в Android-приложение
Я люблю свой Chromecast - взял и пошарил YouTube на большой экран и наслаждаемся контентом, подключил его к любому телеку и получил простой вариант SmartTV. Интеграция этой технологии работать вашему приложению на Android TV, телевизоры, колонки и др.
Ребята из MobileUp описали хорошую инструкцию как интегрировать поддержку технологии в ваше приложение. Подробности по ссылке.
Интегрируем Chromecast в Android-приложение
Я люблю свой Chromecast - взял и пошарил YouTube на большой экран и наслаждаемся контентом, подключил его к любому телеку и получил простой вариант SmartTV. Интеграция этой технологии работать вашему приложению на Android TV, телевизоры, колонки и др.
Ребята из MobileUp описали хорошую инструкцию как интегрировать поддержку технологии в ваше приложение. Подробности по ссылке.
Хабр
Смотрю и слушаю где хочу. Интегрируем Chromecast в Android-приложение
На улице я часто слушаю аудиокниги и подкасты со смартфона. Когда прихожу домой, мне хочется продолжить слушать их на Android TV или Google Home. Но далеко не в...
👍1