#Kotlin #NullSafety
No more NPE: Converting Java to Kotlin safely
Для тех кто не успел мигрировать код с Java на Kotlin или делает это постепенно, а может и вовсе имеет legacy код на Java, о которого не уйти, то рекомендую вам ознакомиться со статьей.
Автор рассказывает как правильно подготовить ваш код для совместимости с Kotlin, конвертации его и аннотирования полученного кода для максимальной совместимости на уровне байт-кода с исходной версией в Java.
No more NPE: Converting Java to Kotlin safely
Для тех кто не успел мигрировать код с Java на Kotlin или делает это постепенно, а может и вовсе имеет legacy код на Java, о которого не уйти, то рекомендую вам ознакомиться со статьей.
Автор рассказывает как правильно подготовить ваш код для совместимости с Kotlin, конвертации его и аннотирования полученного кода для максимальной совместимости на уровне байт-кода с исходной версией в Java.
Medium
No more NPE. Converting Java file to Kotlin safely.
This article covers the potential sources of NPEs in Kotlin and provides step-by-step instructions for Java-Kotlin migration.
Изменилась ли ваша активность прослушивания подкастов в последнее время?
Final Results
30%
Снизилась
10%
Повысилась
26%
Не слушал(а) подкасты вовсе
5%
Перестал(а) слушать вовсе
18%
Как слушал(а) так и слушаю
3%
Начал(а) слушать подкасты
8%
Не приму участие в опросе
#AndroidAcademy #UI
Android Academy Minsk Topic #6 - Themes & Styles
6 апреля в 19.00 пройдет вебинар о кастомизации UI через темы и стили в Android.
План:
- Theme attributes
- Styles
- Theme.Overlay
- TextAppearance
- Применение style
- Библиотека Material Components
- Custom views & styles
- Лучшие практики по работе со стилями и темами
Android Academy Minsk Topic #6 - Themes & Styles
6 апреля в 19.00 пройдет вебинар о кастомизации UI через темы и стили в Android.
План:
- Theme attributes
- Styles
- Theme.Overlay
- TextAppearance
- Применение style
- Библиотека Material Components
- Custom views & styles
- Лучшие практики по работе со стилями и темами
YouTube
Themes & Styles, Alexey Katsuro@LWO
Slides: https://bit.ly/3aPfkbR
Telegram: https://t.iss.one/androidacademyminsk
Facebook: https://www.facebook.com/AndroidAcademyMinsk/
Subscribe in Slack: https://goo.gl/ebrkBj
Styles and themes on Android allow you to separate the details of your app design…
Telegram: https://t.iss.one/androidacademyminsk
Facebook: https://www.facebook.com/AndroidAcademyMinsk/
Subscribe in Slack: https://goo.gl/ebrkBj
Styles and themes on Android allow you to separate the details of your app design…
#Jetpack
Обновление библиотек Jetpack 01.04.2020
Новинки:
👉 ExifInterface 1.2.0. Поддержка EXIF в PNG и WebP и возможность проверки поддержки заданного mime type
👉 AppCompat 1.2.0-beta01 с важными исправлениями в Window Insets и новыми проверками в Android Lint
👉 RecyclerView 1.2.0-alpha02. Новый MergeAdapter для объединения нескольких адаптеров
👉 Activity 1.2.0-alpha03 - улучшения в Activity Result API. Рекомендуется перечитать документацию "Getting a result from an activity"
👉 Вторая beta CameraX
👉 Fragment 1.2.4 - исправление работы ProGuard для Fragment
👉 Новые бета Core, CustomView, DrawerLayout, Emoji, SlidingPaneLayout
👉 Новые альфы WorkManager, ViewPager2, Fragment
Обновление библиотек Jetpack 01.04.2020
Новинки:
👉 ExifInterface 1.2.0. Поддержка EXIF в PNG и WebP и возможность проверки поддержки заданного mime type
👉 AppCompat 1.2.0-beta01 с важными исправлениями в Window Insets и новыми проверками в Android Lint
👉 RecyclerView 1.2.0-alpha02. Новый MergeAdapter для объединения нескольких адаптеров
👉 Activity 1.2.0-alpha03 - улучшения в Activity Result API. Рекомендуется перечитать документацию "Getting a result from an activity"
👉 Вторая beta CameraX
👉 Fragment 1.2.4 - исправление работы ProGuard для Fragment
👉 Новые бета Core, CustomView, DrawerLayout, Emoji, SlidingPaneLayout
👉 Новые альфы WorkManager, ViewPager2, Fragment
Android Developers
Recent Release Notes | Android Developers
#AndroidStudio
Layout Inspector
В Android Studio 4.0 (пока еще в beta) добавили 3D Layout Inspector. В статье разбор этой функции и как ей воспользоваться
Layout Inspector
В Android Studio 4.0 (пока еще в beta) добавили 3D Layout Inspector. В статье разбор этой функции и как ей воспользоваться
Medium
Layout Inspector
Debugging UI issues can be tricky. Android Studio 4.0 comes with an updated Layout Inspector that lets you debug your Android app UI (user…
#Kotlin #KotlinVocabulary #UnderTheHood
Inline functions — under the hood
inline функции - это особенная функция, которая позволяет оптимизировать код на уровне компилятора, избавлять от создания ненужных лямбда выражений и вызова функций.
В статье разбирается как работает ключевое слово inline в Kotlin.
Когда лучше его использовать:
👉 Для функций, которые имеют функции в качестве параметра
👉 Для небольших функций, чтобы конечный байт код не разрастался
Inline functions — under the hood
inline функции - это особенная функция, которая позволяет оптимизировать код на уровне компилятора, избавлять от создания ненужных лямбда выражений и вызова функций.
В статье разбирается как работает ключевое слово inline в Kotlin.
Когда лучше его использовать:
👉 Для функций, которые имеют функции в качестве параметра
👉 Для небольших функций, чтобы конечный байт код не разрастался
Medium
Inline functions — under the hood
Kotlin Vocabulary
#Meetup #Interview
Интервью со спикерами с Android митапа Avito в Нижнем Новгороде 29.02
Помимо интересных докладов на митапе компании Avtio в Нижнем Новгороде выдалось пообщаться со спикерами и задать им много интересных вопросов. В плейлисте вы найдете много ответов на разные интересные вопросы о разработке, сообществе и Android 11
Интервью со спикерами с Android митапа Avito в Нижнем Новгороде 29.02
Помимо интересных докладов на митапе компании Avtio в Нижнем Новгороде выдалось пообщаться со спикерами и задать им много интересных вопросов. В плейлисте вы найдете много ответов на разные интересные вопросы о разработке, сообществе и Android 11
YouTube
null - YouTube
#UI
Introducing dual-screen layouts for Android
Microsoft готовит API для их двухэкранного устройства Microsoft Surface Duo. Устройство от Microsoft - это очередная попытка уйти от стандартного формата моноблока.
Introducing dual-screen layouts for Android
Microsoft готовит API для их двухэкранного устройства Microsoft Surface Duo. Устройство от Microsoft - это очередная попытка уйти от стандартного формата моноблока.
Microsoft News
Introducing dual-screen layouts for Android
Today we are releasing a preview of our first Android dual-screen layout control for Java and Kotlin developers. The new control and associated helpers will enable you to build dynamic and responsive apps that take advantage of the Microsoft Surface Duo and…
#Design
32 отличия дизайна мобильного приложения под iOS и Android
Статья которую я не смогу обойти, так как страдаю от дизайна, когда он не адаптируется под платформу и не использует всю прелесть Material Design, а может и наоборот - использует ее слишком, даже где не нужно. Да еще и дизайнеры зачастую - это пользователи Apple стороны и не знают пользовательского опыта Android.
Статья сможет показать различия и послужить аргументами в разговоре с ними. Что разбирается:
👉 Базовые отличия Humans Interface Guideline (HIG) и Material Design (MD)
👉 Отличия в навигации
👉 Отличия в компонентах (UI)
👉 Другие отличия: магазины, кликабельные зоны, splash экраны, форматы данных, дизайн пустых состояний и прочее
32 отличия дизайна мобильного приложения под iOS и Android
Статья которую я не смогу обойти, так как страдаю от дизайна, когда он не адаптируется под платформу и не использует всю прелесть Material Design, а может и наоборот - использует ее слишком, даже где не нужно. Да еще и дизайнеры зачастую - это пользователи Apple стороны и не знают пользовательского опыта Android.
Статья сможет показать различия и послужить аргументами в разговоре с ними. Что разбирается:
👉 Базовые отличия Humans Interface Guideline (HIG) и Material Design (MD)
👉 Отличия в навигации
👉 Отличия в компонентах (UI)
👉 Другие отличия: магазины, кликабельные зоны, splash экраны, форматы данных, дизайн пустых состояний и прочее
Хабр
32 отличия дизайна мобильного приложения под iOS и Android
Железный дизайнер из Redmadrobot Design Lab Артур Абраров делится наблюдениями. Адаптировать дизайн под другую платформу — неотъемлемая часть работы дизайнера мобильных приложений. Цель этой работы —...
#RecyclerView
Merge adapters sequentially with MergeAdapter
Последняя альфа версия RecyclerView 1.2.0-alpha02 в котором появился MergeAdapter. Новый адаптер позволяет поочередно соединить в себе содержимое из нескольких адаптеров списка.
Примеры для его применения: добавление header и footer, отображение прогресса загрузки в списках с бесконечным скроллом и др.
В статье разбирается как завести новый MergeAdapter
Merge adapters sequentially with MergeAdapter
Последняя альфа версия RecyclerView 1.2.0-alpha02 в котором появился MergeAdapter. Новый адаптер позволяет поочередно соединить в себе содержимое из нескольких адаптеров списка.
Примеры для его применения: добавление header и footer, отображение прогресса загрузки в списках с бесконечным скроллом и др.
В статье разбирается как завести новый MergeAdapter
Medium
Concatenate adapters sequentially with ConcatAdapter
Use case example: displaying a list header and footer
#Опрос #Итоги
Известность команд мобильной разработки в 2020
Каждый год Егор Толстой проводит большой опрос среди мобильных разработчиков, который помогает оценить текущее состояние рынка и то, насколько вложения в технический бренд компаний влияют на их публичный образ.
И вот результаты для Android Broadcast. В прошлом году проекта даже не было в рейтингах, но в этом году смог отметиться по нескольким категориям:
🥉 Android Broadcast Podcast - 3-е место среди Android подкастов!
🏆 Android Broadcast Telegram канал - 1-е место среди новостных Android ресурсов
👨 Автор проекта, Кирилл Розов, появился в категории "За кем из экспертов в профессиональном сообществе в России вы следите?"! Это очень радует.
Спасибо всем читателям и тем кто поддержал проект. Буду радовать вас и в будущем интересным контентом!
Известность команд мобильной разработки в 2020
Каждый год Егор Толстой проводит большой опрос среди мобильных разработчиков, который помогает оценить текущее состояние рынка и то, насколько вложения в технический бренд компаний влияют на их публичный образ.
И вот результаты для Android Broadcast. В прошлом году проекта даже не было в рейтингах, но в этом году смог отметиться по нескольким категориям:
🥉 Android Broadcast Podcast - 3-е место среди Android подкастов!
🏆 Android Broadcast Telegram канал - 1-е место среди новостных Android ресурсов
👨 Автор проекта, Кирилл Розов, появился в категории "За кем из экспертов в профессиональном сообществе в России вы следите?"! Это очень радует.
Спасибо всем читателям и тем кто поддержал проект. Буду радовать вас и в будущем интересным контентом!
Medium
Известность команд мобильной разработки в 2020
Результаты большого опроса мобильщиков: в каких компаниях хотят работать, как их выбирают, какие ресурсы читают, на какие конференции…
👍1
#Network
Вышел OkHttp 4.5.0
Что нового:
👉 Включена компрессия Web socket
👉 Улучшения в работе Web Socket
👉 Исправление багов
Вышел OkHttp 4.5.0
Что нового:
👉 Включена компрессия Web socket
👉 Улучшения в работе Web Socket
👉 Исправление багов
GitHub
okhttp/CHANGELOG.md at master · square/okhttp
Square’s meticulous HTTP client for the JVM, Android, and GraalVM. - square/okhttp
#Coroutines
Coroutines & Patterns for work that shouldn’t be cancelled
Structured Concurrency в Kotlin Coroutines позволяет завершать асинхронные операции, когда их результат больше не нужен. Jetpack предоставляет стандартные
Но порой есть операции, которые должны выполняться и за рамками
В статье разбирается:
👉 Coroutines или WorkManager?
👉 Лучшие практики Coroutine
👉 Выполнение операций, которые не должны быть отменены в ходе выполнения Coroutine. CoroutineScope из вашего Application класса
👉 Тестирование Coroutine
👉 Альтернативы: GlobalScope, ProcessLifecycleOwner scope, NonCancellable
Coroutines & Patterns for work that shouldn’t be cancelled
Structured Concurrency в Kotlin Coroutines позволяет завершать асинхронные операции, когда их результат больше не нужен. Jetpack предоставляет стандартные
CoroutineScope
: viewModelScope и lifecycleScope.Но порой есть операции, которые должны выполняться и за рамками
CoroutineScope
в котором была запущена Coroutine
.В статье разбирается:
👉 Coroutines или WorkManager?
👉 Лучшие практики Coroutine
👉 Выполнение операций, которые не должны быть отменены в ходе выполнения Coroutine. CoroutineScope из вашего Application класса
👉 Тестирование Coroutine
👉 Альтернативы: GlobalScope, ProcessLifecycleOwner scope, NonCancellable
Medium
Coroutines & Patterns for work that shouldn’t be cancelled
Cancellation and Exceptions in Coroutines (Part 4)
#Podcast
Android Broadcast Podcast #11 "Развитие мобильного разработчика"
Что делать когда вы проработали много лет в мобильной разработке и думаете: "Куда вам расти дальше"? В гостях подкаста 3 опытнейших и известных разработчика из Facebook, Авито и JetBrains Kotlin Team.
Ведущий - Кирилл Розов
Гости:
👨✈️Константин Цховребов, JetBrains, разработчик в Kotlin Mobile Multiplatform
👨✈️ Даниил Попов, Авито, Инженер инфраструктуры Андроид проектов
👨✈️ Сергей Рябов, Facebook, Software Engineer в команде Native UI Frameworks, разработчик библиотеки Lytho
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Отдельное спасибо Даниилу Попову за 🎵трек 🎵для подкаста. Хотите себе что интересное - пишите ему в личку
Android Broadcast Podcast #11 "Развитие мобильного разработчика"
Что делать когда вы проработали много лет в мобильной разработке и думаете: "Куда вам расти дальше"? В гостях подкаста 3 опытнейших и известных разработчика из Facebook, Авито и JetBrains Kotlin Team.
Ведущий - Кирилл Розов
Гости:
👨✈️Константин Цховребов, JetBrains, разработчик в Kotlin Mobile Multiplatform
👨✈️ Даниил Попов, Авито, Инженер инфраструктуры Андроид проектов
👨✈️ Сергей Рябов, Facebook, Software Engineer в команде Native UI Frameworks, разработчик библиотеки Lytho
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Отдельное спасибо Даниилу Попову за 🎵трек 🎵для подкаста. Хотите себе что интересное - пишите ему в личку
#WorkManager
Customizing WorkManager — Fundamentals
Продолжение серии статей о WorkManager, в которой разбирается как изменить настройки работы:
👉 Когда может понадобиться конфигурировать WorkManager самостоятельно
👉 Как предоставить собственную конфигурацию
👉 WorkerFactory: что такое и как добавить поддержку нестандартных конструкторов для подклассов ListenableWorker
👉 DelegatingWorkerFactory - оборачиваем несколько WorkerFactory через стандартную фабрику, вместо конфигурирования WorkManager для использования собственной фабрики
Customizing WorkManager — Fundamentals
Продолжение серии статей о WorkManager, в которой разбирается как изменить настройки работы:
👉 Когда может понадобиться конфигурировать WorkManager самостоятельно
👉 Как предоставить собственную конфигурацию
👉 WorkerFactory: что такое и как добавить поддержку нестандартных конструкторов для подклассов ListenableWorker
👉 DelegatingWorkerFactory - оборачиваем несколько WorkerFactory через стандартную фабрику, вместо конфигурирования WorkManager для использования собственной фабрики
Medium
Customizing WorkManager — fundamentals
An article about WorkManager custom configuration. What is it, why you may need one and how to implement it.
#GooglePlay #Huawei
Массовые удаления ваших приложений с устройств
На днях вы могли заметить заметное количество удалений ваших приложений в Google Play. Это связано с тем, что Huawei поменяла имена устройств и аналитика магазина приложений, посчитала это как удаление приложения и установку на новый.
Бейте тревогу если количество установок у вас не выросло соизмеримо с количеством удалений
Массовые удаления ваших приложений с устройств
На днях вы могли заметить заметное количество удалений ваших приложений в Google Play. Это связано с тем, что Huawei поменяла имена устройств и аналитика магазина приложений, посчитала это как удаление приложения и установку на новый.
Бейте тревогу если количество установок у вас не выросло соизмеримо с количеством удалений
Twitter
Maria Neumayer
PSA: if you see a spike in uninstalls of your app on @GooglePlayDev don’t worry - Huawei changed their device names and that is reported as an uninstall/install event
#Optimization
App size reduction at Microsoft SwiftKey
История того как в Microsoft оптимизировали размер SwiftKey на Android.
В статье разбирают:
👉 Зачем оптимизировать размер APK
👉 Оптимизация кода
👉 Оптимизация ресурсов
👉 Оптимизация нативного кода
App size reduction at Microsoft SwiftKey
История того как в Microsoft оптимизировали размер SwiftKey на Android.
В статье разбирают:
👉 Зачем оптимизировать размер APK
👉 Оптимизация кода
👉 Оптимизация ресурсов
👉 Оптимизация нативного кода
Medium
App size reduction at Microsoft SwiftKey
Our journey of making our Android app smaller, from when we started analysing our app to the changes we made and the improvements we got.
Также в статье выше Microsoft рассказали о интеграции в Azure DevOps Task и Github Actions шага по анализу размеру APK.
Инструмент позволяет анализировать 2 APK и сравнить их разные метрики:
👉 размер APK (apkSize)
👉 размер после установки (installSize)
👉 размер dex файлов (dexFiles)
👉 размер файлов ресурсов (arscFile)
👉 размер нативного кода (nativeLibs)
Инструмент позволяет анализировать 2 APK и сравнить их разные метрики:
👉 размер APK (apkSize)
👉 размер после установки (installSize)
👉 размер dex файлов (dexFiles)
👉 размер файлов ресурсов (arscFile)
👉 размер нативного кода (nativeLibs)
GitHub
GitHub - microsoft/android-app-size-diff: Android app size measuring in your CI
Android app size measuring in your CI. Contribute to microsoft/android-app-size-diff development by creating an account on GitHub.