Обложка канала

Android Broadcast. Страница 137

Качественная выборка Android Dev новостей, тезисы важных новостей и статей, личное мнение

  • Android Broadcast

    #Fragment #ViewModel #Jetpack

    Fragment 1.2.0

    👉 FragmentContainerView - новая ViewGroup, предназначенная специально для размещения в ней Fragment. Она исправляет проблемы с анимациями при выполнение транзакций. Забудь о FrameLayout или <fragment>, теперь только FragmentContainerView.
    👉 Изменение используемой по умолчанию фабрики для создания ViewModel по аналогии с Activity 1.1.0
    👉 Fragment.onDestroyView() теперь вызывается только после окончания анимации/transition
    👉 Новые проверки Android Lint: теперь проверяется правильность использования getViewLifecycleOwner()
    👉 Fragment.getFragmentManager() переименовано в Fragment.getParentFragmentManager()
    👉 FragmentManager теперь поддерживает операции (add/replace и др.) с Fragment по их классу, в дополнение к заранее созданному объекту. Это улучшает поддержку возможности по интеграции DI в конструктор Fragment.
  • Android Broadcast

    #Jetpack #Activity #ViewModel

    Activity 1.1.0

    Важным изменением в новой версии Activity стала изменение используемой по умолчанию фабрики для создания ViewModel. Раньше использовалась AndroidViewModelFactory на смену которой пришла SavedStateViewModelFactory.

    Теперь вы можете получить SavedStateHandle в конструкторе ViewModel, например

    class MyActivity : Activity() {
    val vm: MyViewModel by viewModels()
    }

    class MyViewModel(
    savedState: SavedStateHandle
    ) : ViewModel()
  • Android Broadcast

    #Jetpack #ViewModel #SavedState

    ViewModel-SavedState 1.0.0

    В ViewModel решена задача с сохранением данных при изменение конфигурации. Ранее состояние сохранялась пока жив процесс, но вот при его уничтожение системой способа сохранить данные "из коробки" не было. Теперь есть - SavedStateHandle
  • Реклама

  • Android Broadcast

  • Android Broadcast

    #AndroidKtx #Kotlin #Codelab

    Building a Kotlin extensions library

    Используете ли вы Android KTX библиотеки? Это расширения стандартного API и библиотек из Jetpack чтобы удобно писать под Android на языке Kotlin.

    Google выпустила новую Codelab с руководством как создать свою собственную Ktx библиотеку и адаптировать ее API. Рассматриваются:
    👉 Extension Functions
    👉 Coroutines
    👉 Flow

    Также рекомендую посмотреть доклад "KotlinConf 2019: Android Jetpack ❤️ Kotlin: On the road to more wholesome APIs" от Wojtek Kaliciński
  • Android Broadcast

    Now in Android: 01 - Room, KTX Extensions, AndroidX, Conference Videos, ADB podcast & more!

    Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development. In this video, Chet Haase goes over the new Room...

    YouTube
  • Android Broadcast

    #Android10 #DarkTheme

    Dark Mode

    Темная тема - одна из самых долгожданных функций в Android 10. Её наличие позволяет сократить расход батареи и уменьшить напряжение на глаза в темных условиях. В видео разбирают как можно адаптировать ваше приложение под темную тему.
    Dark Mode - Android Development Patterns

    Dark theme is a new alternative to Android's default light theme, which is a system wide setting that applies to all apps that support it. By supporting Dark...

    YouTube
  • Android Broadcast

    #Podcast

    Android Broadcast #5: "Как стать крутым разработчиком" с Денисом Неклюдовым

    Каково это быть крутым и популярным разработчиком? Когда ты выступаешь на митапах и конференциях, твой голос узнают в подкастах и читают твои статьи. Однозначно интересно! Это дает как профессиональное развитие, так и карьерное продвижение. Как стать таким разработчиком выяснил с Денисом Неклюдовым. Завсегдатый Dev Fest-ов и тайный поклонник Android Academy.

    Денис Неклюдов - Android разработчик в Lyft, Google Developer Expert в Android, IoT и Google Pay. Ведущий подкаста "Android Dev Podcast". Чаcтый спикер на конференция Mobius и Apps Conf.

    Полезные ссылки:
    👉 Android Dev Podcast RU
    👉 Android Dev Podcast EN
    👉 Android Dev Podcast Telegram
    👉 Доклад "Google Ecosystem for Apps. Total Integrations"
    👉 Доклад "Переезд: подготовка, выбор, освоение территории"
    👉 Доклад "Переезд Vol2. Детальный разбор направлений"
    👉 Интервью с Денисом "Об удаленке в Тайланде, переезде в Сингапур, экстраординарной визе в США!"
    👉 Отзывы на "90 Seconds"
    👉 Анонс курсов по трудоустройству от Дениса и Кати из Подлодки Подкаста
    👉 Программа "Google Developer Experts"
    👉 Денис на сайте GDE

    Контакты:
    👉 Кирилл Розов - [email protected], t.me/krlrozov
    👉 Денис Неклюдов - t.me/nekdenis

    Отдельное спасибо Александру Марцинкевичу за помощь в монтаже выпуска
    Android Broadcast Podcast #5 - "Как стать крутым разработчиком" с Денисом Неклюдовым

    Каково это быть крутым и популярным разработчиком? Когда ты выступаешь на митапах и конференциях, твой голос узнают в подкастах и читают твои статьи. Однозна...

    YouTube
  • Android Broadcast

    #Fragment

    Android MultiStacks

    Популярный дизайн паттерн в Android приложениях Bottom Navigation имеет один недостаток в реализации - в библиотеке AndroidX Fragment нет поддержки множества стеков для каждой вкладки ☹️. Библиотека Android MultiStacks предлагает решение этой проблемы.
  • Android Broadcast

    #Dagger

    Dagger Browser - простая утилита для навигации по сгенерированному Dagger графу с помощью SPI плагина
  • Android Broadcast

    Починить, хакнуть, раскопать. Решаем онлайн-квест Droid Mission

    В прошлом году Яндекс провел квест для мобильных разработчиков Droid Mission. После подведения итогов можно ознакомиться с решениями задач.

    Тематика их абсолютно разная: SQLite, Android SDK, утечки памяти, Java, Android NDK, Dagger, Reverse Engineering и взлом приложений
  • Android Broadcast

    #Kotlin #DSL #Builder

    Builder Pattern vs Kotlin DSL

    Когда у класса в конструкторе много параметров, хорошим тоном является использовать паттерн Builder. Но Kotlin может предложить более интересную альтернативу - Kotlin DSL.

    В статье разбирается как заменить старый подход новым.
  • Android Broadcast

    #Gradle #CI #Performance

    How fast are your Android CI builds? And why it matters

    Android проекты растут и разрабатываются долгое время большими командами. Все разработчики локально страдают от того как собираются долго проекты, но на CI это делается еще дольше так как обычно ему надо сделать:
    👉 Скомпилировать код
    👉 Прогнать Unit тесты
    👉 Запустить статический анализатор KtLint, Detekt, Checkstyle, Android Lint и др.

    Все это еще происходит медленнее чем на локальной машине т.к. на сервере выключается Gradle демон, который не имеет смысла на CI, когда собирается много разных ветках или вовсе все в Docker контейнерах.

    В статье приводится история ребят, которые вместе с DevOps сели решить проблему долгой сборки проекта (47 минут) и как у них получилось (8 минут)

    От себя рекомендую периодически запускать Gradle Build Scan, чтобы проверить где у вас есть проблемные места в сборке.
  • Android Broadcast

    Какую версию JUnit используете вы?

    JUnit 5 (Spek 2 здесь) - 33
    👍👍👍 14%
    JUnit 4 - 114
    👍👍👍👍👍👍👍👍 47%
    Не пишу тесты - 81
    👍👍👍👍👍👍 33%
    Не знаю - 5
    👍 2%
    Использую другой тестовый framework - 2
    👍 1%
    Секрет. Но результаты посмотрю - 7
    👍 3%
    👥 242 человека уже проголосовало.
  • Android Broadcast

    #JUnit #Test

    Вышла новая версия JUnit 5.6.0

    Основные изменения:
    👉 Новый @Enabled/@DisabledForJreRange условия для выполнения теста
    👉 Новое API TestInstancePreDestroyCallback для расширений
    👉 Улучшение отчетов для крэшей во время поиска/выполнения тестов
    👉 Модуляризация Javadoc

    Множество других улучшений который вы можете найти в полном описание изменений
  • Реклама

  • Android Broadcast

    #Kotlin

    Zero-cost* abstractions in Kotlin

    Очень часто приходится сталкиваться в коде с тем, что в виде чисел могут представляться разные по смыслу переменные. Лучший пример - идентификаторы ресурсов в Android. Все это выражается цифрами и передать неправильное значение довольно легко.

    Google дала нам решение в виде xxxRes, IntDef, IntRange и др. аннотаций над типами, но это не позволяет избавиться от ошибки во время компиляции.

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

    В Kotlin предложили свое решение - inline классы, которые во время компиляции встраивают обернутый объект в место вызова. В статье вы найдет больше подробностей об это возможности языка Kotlin и когда компилятор не может развернуть тип
  • Android Broadcast

    #Podcast #Kotlin #Multiplatform

    Android Broadcast #3: Kotlin Multiplatform - выходим за рамки Kotlin/Android c IceRock

    В ожидании выпуска вы можете послушать другие эпизоды. Например, интересующимся Kotlin MPP подойдет выпуск об опыте разработчиков из компании IceRock о адаптации этой технологии для Android и iOS проектов. Ребята разработали более 10 проектов с ее использованием и говорят уже на реальном опыте применения в production.
  • Android Broadcast

    #Новости #Podcast #Kotlin #Multiplatform

    Если у вас есть вопросы по Kotlin Multiplatform Mobile - спешите задать их в @android_broadcast_discussions, ведь совсем скоро я буду записывать эпизод "Android Broadcast Podcast" c представителями команды из JetBrains: Анастасией Капаниной (Product Manager Kotlin MPP) и Кириллом Шмаковым (разработчик в Kotlin MPP).