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

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

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

  • Android Broadcast

  • Android Broadcast

    #Android11 #Animations

    Animating your Keyboard (part 1)

    В Android 11 появилась возможность создавать плавные анимации UI при открытии/закрытии системной клавиатуры, благодаря множествам улучшений в WindowInsets, которые также доступны в WindowInsetsCompat.

    Чтобы поддержать новую возможность вам надо:
    1️⃣ Добавить поддержку edge-to-edge в ваше приложение (отрисовка под системными панелями)
    2️⃣ Добавить слушателя на изменение отступа при открытии/закрытии клавиатуры
    3️⃣ Добавить реакцию на изменения

    В первой части рассказывается про то как сделать приложение "edge-to-edge", новые API WindowInsets в Android 11 и рекомендации по использованию.

    Помимо всего появилось новое API - WindowInsetsController, позволяющее показать/скрыть клавиатуру и много чего другого. Это API заменило собой работу с показом/скрытием системного UI и настройкой его отображения, например Immersive Mode. WindowInsetsController пока нет в AndroidX, но появится.
  • Android Broadcast

    #Coroutines #Testing #Flow

    Turbine - маленькая библиотека для тестирования kotlinx.coroutines Flow
    Автор - Jake Wharton

    Библиотека позволяет проверить какие данные были проэмичены в Flow
  • Реклама

  • Android Broadcast

    #MemoryLeak #ViewBinding

    Avoiding memory leaks when using Data Binding and View Binding

    При использовании View Binding легко попасть в ситуацию, когда у вас в Fragment начнет утекать память. Связано это с тем, что ViewBinding хранит ссылки на View, которые уничтожаются в onDestroyView() и создаются в onCreateView().

    Самое интересное, что автор предложил решением мою библиотеку ViewBindingPropertyDelegate, которая изящно решает работу с ViewBinding и DataBinding.
  • Android Broadcast

    #Kotlin #DSL #Lint

    Kotlin DSL —defining mandatory parameters

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

    Проблема DSL что нельзя каким-то образом проверить, что разработчик использовал все необходимые поля. Такая проверка могла пройти в коде в рантайме или нужно было требовать заполнение во вне DSL.

    В статье автор рассказывает о свое библиотеке DSLint, которая на основе Android Lint делает проверку того что все необходимые поля были заполнены.
  • Android Broadcast

    #ConstraintLayout #MotionLayout

    Вышел ConstraintLayout 2.0

    Наконец-то вышел стабильный релиз долгостроя AndroidX - ConstraintLayout 2.0

    Что нового:
    👉 Улучшенный Runtime
    👉 Новый механизм Flow, нечто подобное Chain, позволяющее управлять позиционированием группой виджетов горизонтально или вертикально
    👉 Новый helper Layer
    👉 Простой способ строить анимации с помощью MotionLayout
    👉 Обновленный Layout Editor в Android Studio 4.1 с поддержкой ConstraintLayout 2.0
    👉 MotionEditor - визуальный редактор анимаций, доступный с Android Studio 4.0

    Примеры использования можно найти здесь
  • Android Broadcast

    #Firebase #Analytics

    New API for manually tracking screen views in Google Analytics

    В Firebase Analytics появилась возможность вручную трекать показы экраны на Android и iOS. Событие screen_view теперь можно отправить самостоятельно и иметь больше контроля за ним

    Когда это может пригодиться:
    👉 Отправка события когда пользователь провел какое-то время на экране (не было случайного входа на экран)
    👉 Экраны в вашем приложении, которые автоматическая статистика понять не могла, например дочерние View или Fragment

    Старое API setCurrentScreen стало deprecated и надо с него уходить. В статье есть гайд как это сделать
  • Android Broadcast

    #WearOS

    What’s happening in Wear OS by Google

    Жива ли WearOS или нет? Может ли жить платформа без устройств на ней? Google продолжает развивать ОС:
    👉 Осенью будет обновление со значительным улучшением производительности и системного UI, таймер для мытья рук, улучшенное приложение погоды
    👉 Новые производители WearOS часов - Oppo, Suunto и Xiaomi
    👉 Обновление WearOS до Android 11 и недавняя androidx.wear 1.1.0
  • Android Broadcast

  • Android Broadcast

    #ChromeOS

    ChromeOS.dev — A blueprint to build world-class apps and games for Chrome OS

    "Продажи Chromebook растут в несколько раз быстрее чем другие ноутбуки" - это причина по которой Google предлагает нам активнее поддерживать на Android эту платформу. Платформа также активнее упрощает разработку приложений на ней: поддержка эмулятора, Linux терминал и др.
  • Android Broadcast

    ​​#Gradle

    Introducing Configuration Caching

    В предстоящей версии Gradle 6.6 появится новая экспериментальная возможность - Configuration Caching, которая значительно ускоряет фазу конфигурации Gradle проекта.

    Чтобы новая возможность заработала, плагинам надо её поддержать (полный список требований).

    Поддержка configuration caching появится в Android Gradle Plugin 4.2 и ожидается в Kotlin 1.4.20. Информацию по другим популярным Gradle плагинам можно найти здесь
  • Android Broadcast

    Почему iPhone хватает 4 ГБ ОЗУ, а Android — нет?

    Для флагманов Android ставить 8 Гб оперативки, а то 12 и 16 - это норма. Порой в компьютерах памяти меньше. С другой стороны iPhone столько оперативной памяти не имеют и работают хорошо.

    Все это связано с разными принципами компрессии памяти и выгрузки приложений при ее нехватке.
  • Android Broadcast

    #ConstraintLayout #MotionLayout

    Motion Tags Ep2 - ConstraintSet + Constraint

    Продолжение серии видео о MotionLayout. В новой версии разбираются ConstraintSet-ы и трансформации
    Motion Tags Ep2 - ConstraintSet + Constraint

    On today’s episode of the Motion Tags series, we will talk about ConstraintSet and Constraint. Stay tuned for our next episode on Transition!

    MotionLayout API Reference → https://goo.gle/30Wddzi

    YouTube
  • Android Broadcast

    #AndroidBroadcast #Mentor

    Всем привет! С вами Кирилл Розов. Я помню, как я учился программированию (2011 год) и что было плохо, а что наоборот было хорошо. С опытом я вывел формулу, которая играет самую важную роль - наличие ментора.

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

    Можно подумать, что менторство помогает только тому кто учится, но нет! Для ментора это приобретение:
    👉 Заведение знакомств
    👉 Получение навыков донесения информации
    👉 Работа с менее опытными разработчиками
    👉 Навык постановки задач
    👉 Структурирование подачи данных
    👉 Изучение подход работы с людьми

    Все это поможет двигаться вам на уровень Senior, Lead, а может и вовсе сменить ветку, ведь помимо технических навыков вам все больше будут нужны навыки коммуникации и менеджмента (soft skills).

    Я предлагаю всем желающим присоединится к программе в качестве Ментора или Падавана и помочь тем, кому это нужно.

    Участие абсолютно бесплатное, Android Broadcast выступает лишь в роли медиатора, чтобы помочь вам найти свою реализацию, а Кирилл Розов и др. ребята из сообщества поделятся своими знаниями и ответят на ваши вопросы

    Заполнить форму здесь
  • Android Broadcast

    #Figma #UI

    FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты

    Статья о том, как получилось автоматизировать экспорт цветов, иконок, картинок из Figma в iOS или Android проекты.

    Проблемы, которые решались:
    1️⃣ нет возможности автоматически экспортировать цвета, необходимость корректировки скопированного имени цвета
    2️⃣ неудобный экспорт иконок и иллюстраций стандартными средствами: файлы экспортируется в несколько вложенных директорий, необходимость переименования имени файла, ручной перенос в проект или конвертация SVG в vector drawable XML

    В результате поиска решения, была создана утилита FigmaExport. Для работы необходимо договориться с дизайнером о том, как хранить цвета, иконки, картинки и потребуется использовать Team Library (дизайнеру нужна платная подписка на Figma).

    Также из статьи можно узнать про способы расширения функционала в Figma (Figma-плагин и Figma API) и их короткое сравнение.
  • Реклама

  • Android Broadcast

    #Subscription

    Как внедрить in-app подписки в Android-приложения: советы и рекомендации

    В апреле 2020 года Google выпустил обновления правил по работе с in-app подписками. Новые меры направлены на то, чтобы сделать условия получения услуг для пользователя более прозрачными: все важные условия должны быть четко сформулированы, ясны для пользователя и изложены полностью, в т.ч. условия о размере и периодичности списаний, окончании бесплатного пробного периода, изменении или отмены подписки и т.д.

    В статье указаны основные рекомендации по in-app подпискам в Google Play от команды Центрального Маркетинга Mail.ru Group, которые они собрали в результате изучения новых требований и анализа более сотни случайных приложений.

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

    #Android #UnderTheHood

    Android Vitals - Rising to the first drawn surface

    Продолжение статей о запуске Android приложения. В новой части рассказывается про запуск первой Activity приложения при холодном старте
  • Android Broadcast

    #Decompilation #Reverse

    Reverse engineering an Android Application

    Реверс-инжиниринг — это целый пласт в IT сфере, который не обошёл стороной и мобильную разработку. Среди вакансий мобильных разработчиков периодически всплывают предложения на должность реверс-инженера. Понимание того как работает декомпиляция, помогает лучше понять структуру вашего приложения, погрузиться в недры Android и, зная о процессе декомпиляции, вы будете уже под другим углом смотреть на безопасность своего приложения.

    В статье автор даёт азы реверс-инжиниринга, на примере показывает сам процесс, получая доступ к скрытому API, и рассказывает какими утилитами он пользуется, для того чтобы добраться до необходимых данных в декомпелируемом приложении.