Новости Android разработки 15.02.2021

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет. Меня зовут Кирилл Розов и вы если вы интересуетесь разработкой по Android, то скорее всего слышали о Telegram канале "Android Broadcast", с ежедневными новостями для Android разработчиков, и одноимённом YouTube канале. Этот пост является текстовой расшифровкой нового видео на канале


Привет! Очередная неделя подошла к концу, и я собрал лучшие новости специально для вас! Вышла большая порция новых стабильных библиотек Android Jetpack, IDEA теперь можно запустить на CI, а в конце вы узнаете как выиграть билет на Mobius! Я Кирилл Розов, это канал Android Broadcast. Давайте разбираться!

AndroidX Activity 1.2.0 | Activity Result API

Вышла библиотека Activity 1.2.0 в которой появилось Activity Result API, возможность получить Context до вызова onCreate(), поддержка ViewTree, а также backport метода reportFullyDrawn().

Activity Result API - это новое API, которое приходит на замену перегрузке метода onActivityResult() и делает его более удобным. Теперь вам нужно просто зарегистрироваться с указанием контракта и callback для получения объекта ActivityResultContract, который вы можете вызвать для получения результата из любой Activity. Самые распространенные контракты такие как получение картинки или выбор файла уже реализованы в библиотеки, но вы легко можете добавить свой. Также важный аспект нового API то, что оно упрощает работу с получением разрешений, так как их механизм основан на onActivityResult().

Следующая новинка - возможность получить Context до вызова onCreate(), подписавшись на соответствующее событие. Конечно есть вариант для Coroutine без callback-a.

Поддержка ViewTree - это значит что ComponentActivity теперь работает со всеми новыми API из SavedState и Lifecycle, о которых я расскажу позже.

  • AndroidX Activity 1.2.0

  • Примеры Activity Result API

Fragment 1.3.0

Вышла новая библиотека Fragment 1.3.0 в которой произошел большой рефакторинг под капотом, добавлена интеграция с новыми API, пометили как deprecated множество API, а также представили новый механизм для коммуникации между Fragment.

Самое важное, что произошло в новой версии - это новый менеджер состояния Fragment-ов, который исправил множество странностей в поведении, а также заложил фундамент для поддержки множества back stack-ов.

Интеграция Activity Result API позволила упростить код внутри, а также исправила несколько проблем, связанных с request кодами и вызовами callback-ов о получение permission.

Если вы пробовали когда передавать результат между Fragment с помощью setTargetFragment - это была еще та задача. Не место ему добавили новое API - Fragment Result API, которое позволяет через FragmentManager обмениваться данными между Fragment-ами через специальные Callback.

"Пора Fragment меняться и становиться проще" - видно так решили в Google и стали помечать deprecated множество API. setRetainInstance() уходит, передавая свои полномочия ViewModel. FragmentPagerAdapter из ViewPager 1 теперь тоже deprecated и как замена предлагается использовать вторую версию библиотеки, которую разработчики ругают и зачастую все также пользуются первой. Но самый интересный deprecation произошел с методом onAttachFragment() в Activity и Fragment. Ему на смену приходит FragmentOnAttachListener, который более гибкий и позволяет делегировать вызов onAttachFragment().

  • AndroidX Fragment 1.3.0

  • Пример Fragment Result

  • Статья "Fragments: rebuilding the internals"

Lifecycle 2.3.0

Вышла новая версия Lifecycle 2.3.0 добавила возможность сохранять новые типы в SavedStateHandle, изменилось поведение Lifecycle, а также добавили новое ViewTree API.

В SavedStateHandle появилась lazy сериализация, т.е. теперь можно задать setSavedStateProvider() для заданного ключа, чтобы сериализовать его лениво, что позволяет сохранять любой тип.

Изменения также затронули Lifecycle: теперь DESTROYED - это терминальное состояние, и после него никаких вызовов происходить не будет. Также теперь все методы Lifecycle вызываются строго на главном потоке, а в противном случаем будет креш. Помимо прочего добавили нового API, чтобы упростить тестирование

Большая новинка ViewTree API, которое позволяет получить LifecycleOwner или ViewModelStoreOwner для заданного View. Аналогичное API добавили для SavedStateRegistry в библиотеки savedstate 1.1.0

  • AndroidX Lifecycle 2.3.0

Kotlin Symbol Processing вышел в Альфу

Kotlin Symbol Processing (KSP) перешёл в альфу и начата работа по его адаптации в Room

Новость хорошая так как цель KSP - заменить kapt, который здорово тормозит сборку проектов и не всегда позволяет генерировать код инкрементально. Новое решение от Google будет сразу генерировать Kotlin код без магии, которая необходима, чтобы завести Java apt в Kotlin. По предварительным данным скорость работы KSP в 2 раза быстрее kapt. Похоже свет в конце туннеля есть. Будем ждать адаптации KSP в библиотеках

  • Анонс Kotlin Symbol Processing Alpha

Запуск анализа кода IDEA на CI

Статически анализ кода из IDEA теперь можно будет запустить без GUI на CI

Новый проект JetBrains - Qodana, который позволяет запустить статически проверки кода на вашем CI и генерировать отчеты. Qodana состоит из 2 частей: IDEA без UI для запуска проверок и утилита для создания Web UI с отчетом. Теперь анализ можно добавить в ваш pipeline. Сейчас поддерживается интеграция в Teamcity, через Docker образ и есть GitHub Action и Application. Вы также можете посмотреть на анализ открытых проект на публичном TeamCity. В будущем количество поддерживаемых языков и способов интеграции будет увеличиваться. На стадии EAP проект бесплатен, но что будет с выходом первого релиза непонятно.

  • Ранний доступ к JetBrains Qodana

  • Посмотреть работу Qodana (входить как гость)

Core App Quality

На сайте developers.android.com появился новый раздел "App Quality", содержащий ключевые аспекты качественного Android приложения.

В новом разделе вы сможете найти каким критериям должно соответствовать хорошее приложение, а главное как это добиться. Помимо прочего вы найдете checklist в котором представлены все тренды экосистемы Android. Сейчас представлены пять категорий:

  • визуальный опыт

  • функциональность

  • производительность и стабильность

  • приватность и безопасность

  • Соответствие политикам Google Play

Также вы найдете рекомендации по организации тестирования для проверки этих требований в своих приложениях.

  • Анонс "Core App Quality"

  • Чеклист "Core App Quality"

Модуляризация 2021

Вышла серия статей от разработчиков Kaspersky в которой они рассказывают о своём опыте современной модуляризации android приложения и инициализации feature модулей сразу, так и отложенно, когда feature понадобится пользователю. Всем кто задумывался над модуляризацией или хочет ее оптимизировать обязательно к прочтению.

  • Статья "Модуляризация Android приложений в 2021"


Условия розыгрыша билета на Mobius

  1. Подписаться на YouTube канал "Android Broadcast"

  2. Подписаться на Telegram канал "Android Broadcast"

  3. Подписаться на Telegram канал "Kotlin Broadcast"

  4. Оставить комментарий под роликом с указанием своего никнейма в Telegram (не номер телефона!!!)

  5. Ждать розыгрыша, который пройдет в марте

Источник: https://habr.com/ru/post/542662/


Интересные статьи

Интересные статьи

Уже прошло почти восемь месяцев 2020 года, а технические прогнозы на этот год всё выходят и выходят. И это — несмотря на то, что очень сложно предсказать будущее в такой динамично раз...
Учитывая, сейчас многие уходят на удаленку или карантин, я решил что самое время поговорить про современные Android-приставки. Дело в том, что правильный андроид бокс «уделывает» по функционально...
Всем привет! Я — Александр Гузенко, ведущий разработчик в компании Тинькофф. И так сложилось, что я постоянно топлю за какую-то движуху по шарингу знаний, курирую финтех школу по андроиду и лю...
Есть статьи о недостатках Битрикса, которые написаны программистами. Недостатки, описанные в них рядовому пользователю безразличны, ведь он не собирается ничего программировать.
Привет, Хабр! Без малого полтора десятка лет мы создаем и развиваем веб-сервисы. Некоторые из них вы можете знать, иметь опыт пользования, горячо любить или испытывать смешанные чувства, но сейча...