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

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

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

  • Android Broadcast

    #Meetup #Online #Android11

    Android 11: что нового?
    Продолжительность: ~ 2 часа

    Завтра, 20 июня в 12:00(GMT+3) пройдет митап по новинкам в Android 11, совместно организованный GDG группами Брянска и Калуги. Вас ждет 3 доклада:
    👉 Изменения в Privacy / Федор Цымбал
    👉 Новинки WindowInsets и анимации клавиатуры / Иван Баранов
    👉 Обзор Notification Bubbles / Инесса Бухонова

    Зарегистрироваться нужно 👉 тут
  • Android Broadcast

    #Dagger

    В Dagger появится Assisted Inject

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

    Подобную реализацию уже сделал Jake Wharton. AssistedInject on Square
  • Android Broadcast

    #Android11 #Jetpack #UI

    Screens - Large, Small and Foldable
    Продолжительность 16 минут

    Современная Android разработка подразумевает поддержку устройств с разными типами и размерами экранов, а также режимами отображения окон: мобилки, планшеты (они живы?), десктопы (Chrome OS), складываемые устройства а также многооконность

    В видео рассказывается:
    👉 Почему верстка должна быть адаптивной
    👉 Хорошие практики для расположения элементов
    👉 Jetpack Window Manager
    👉 Android Compatibility Definition Document - документ с требованиями для Android устройств, где можно найти информацию о возможных конфигурациях, включая размеры экрана, окон в разных режимах и т.д.
    👉 Возможность задать свои ограничения для конфигурации окон
    👉 Эмуляторы, на которых можно тестировать разные конфигурации
    👉 Deprecated APIs по работе с Display и WindowManager
    👉 Новые APIs, в том числе новый класс WindowMetrics
    Screens - large, small and foldable

    Learn about different screen configurations and window features supported by Android, explore design challenges with new and existing products, and take a lo...

    YouTube
  • Реклама

  • Android Broadcast

    #Розыгрыш

    Разыграли билет на онлайн-конференция Podlodka Android Crew. Поздравляю победителя @ValeryBoretsky

    Для тех кто не попал, то можете купить билет на сайте. Уже доступна расписание и всю следующую неделю будут говорить об архитектуре приложений. На сайте уже доступно расписание сессий.

    Видео запись с розыгрышем
  • Android Broadcast

    #JetpackCompose

    Why do we need Jetpack Compose?

    Приложения для Android успешно разрабатываются уже больше 10 лет, для чего же нам понадобился новый UI-фреймворк?

    в статье рассматриваются недостатки имеющегося подхода:
    👉 инструментарий 10-летней давности, когда на телефонах решались совсем другие задачи
    👉 иерархия наследования с базовым классом View c десятками тысяч строк кода
    👉 является частью ОС, что делает невозможным исправление ошибок без обновления прошивок
    👉 нет поддержки Material Design, представленного позже

    а также преимущества Jetpack Compose:
    🔥 современные язык, парадигмы и инструменты. Для описания UI используется Kotlin, подходы взяты из таких UI-фреймворков как React и Flutter, полная поддержка со стороны Android Studio
    🔥 единый источник правды. Больше ваш UI не будет отображать неактуальное состояние
    🔥 команда разработки уделила особое внимание производительности фреймворка
    🔥 поддержка Material Design из коробки
    🔥 совместимость с имеющейся UI-иерархией
  • Android Broadcast

    #MemoryLeak

    Practical Guide To Solve OutOfMemoryError in Android Application

    Утечки памяти и, как следствие, OutOfMemoryError - больное место как для начинающего, так и для опытного Android разработчика. Основная проблема состоит в том что подобного рода ошибки не так очевидны и их сложно сразу отследить. Наиболее частые причины возникновения:
    👉 Использование static Context, View или Activity
    👉 Зарегистрированные, но не актуальные Listener'ы
    👉 Использование getContext() вместо getApplicationContext() там где это необходимо
    👉 Не статичные вложенные классы

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

    #Android11

    New Android R Important Changes

    Достаточно много материалов вышло в последние дни о будущей версии Android, и еще не меньше выйдет. Ребята в своей статье рассматривают достаточно интересные фишки:
    👉 Одновременное использование нескольких камер устройства, например даже фронтальную и основную одновременно (хотя такая фишка у меня уже была на Nokia 7 Plus)
    👉 Замена API Wi-Fi сканирования
  • Android Broadcast

    #FirebaseML #MLKit #MachineLearning

    Машинное обучение для мобильных разработчиков вместе с Firebase ML

    Машинное обучение становится все более востребованным. Google прилагает много усилий для того, чтобы развивать эту область. Также стремится предоставить разработчикам любого уровня познаний в машинном обучении возможность его использовать. В том числе и в мобильных приложениях.

    Созданный ранее для этих целей проект ML Kit for Firebase, разделили на два отдельных продукта и обновили ML Kit SDK.

    В статье подробнее описано для чего предназначен Firebase ML и ML Kit
  • Android Broadcast

    Основные аннотации Hilt и их использование
  • Android Broadcast

    #Dagger #Hilt

    Dependency Injection on Android with Hilt

    Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте

    Внимание: библиотека еще в альфа стадии
  • Android Broadcast

    #R8 #Proguard

    How to break your Android App with ProGuard / R8

    Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.

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

    Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы wait, nofify и nofifyAll класса Object были неявно помечены как не имеющие side-эффектов и были удалены при оптимизации.

    Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
  • Android Broadcast

    #JetpackCompose

    Compose Academy

    Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).

    На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
  • Android Broadcast

    #Architecture #LiveStream

    Все тайны MVI

    Когда: 18 июня, ЧТ, 20:00 (GMT+3)
    Где: YouTube канал Android Broadcast

    Обсуждаем паттерн MVI от начала и до конца:
    👉 в чем отличие
    👉 преимущества
    👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.

    Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
    Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
  • Android Broadcast

    #MotionLayout

    MotionLayout: Visibility

    Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.

    Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
  • Android Broadcast

    #Testing

    Using Fakes To Test Reactive Flows

    Довольно часто для создания зависимостей в Unit тестах используются mocking-фреймворки. Несмотря на простоту и быстроту имплементации такого решения, иногда можно столкнуться с его ограничениями, например, при тестировании реактивных потоков данных.

    В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
  • Реклама

  • Android Broadcast

    #GooglePlay

    История одной блокировки и разблокировки в Google Play

    Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
  • Android Broadcast

    #Gradle #Performance

    10 Tips to Speed Up Android Gradle Build Times

    Автор даёт 10 простых советов как ускорить время сборки вашего приложения. В статье приводится инфографика влияния того или иного изменения на время сборки, поэтому вы сможете выбрать наиболее подходящие для себя.

    После применения всех рекомендаций результаты были следующими:
    👉 Время полной сборки сократилось с 59 до 19 секунд, почти в три раза.
    💥 Время инкрементальной сборки после изменения кода сократилось с 24 до 2 секунд, в 12 раз!
    👉 Время инкрементальной сборки после изменения ресурсов сократилось с 15 до 4.5 секунд
  • Android Broadcast

    #Architecture

    The beautiful story of Android developers, multiple Activities, and the chained elephant

    Подход "Single Activity" становится всё более популярным при разработке Android приложений, как минимум потому что это рекомендация от Google.

    Автор статьи простым языком объясняет проблемы "Multi Activity" приложений и показывает плюсы подхода "Single Activity":
    👉 Отпадает необходимость в Bundle
    👉 Больше не нужны Result-колбэки
    👉 Упрощённая навигация с помощью Navigation Component или другой библиотеки на ваш выбор
    👉 Shared scope для передачи данных между Fragment-ами и хранение состояния

    Обойтись без "Multi Activity" не получится полностью. Автор приводит частные случаи, когда такой подход становится оправдан.