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

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

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

  • Android Broadcast

    #AndroidKTX #Drawing #Kotlin

    Android Canvas APIs with Kotlin and KTX

    Библиотека Android KTX значительно упрощает разработку приложений на Kotlin, предоставляя Kotlin расширения для API из Android SDK.

    Одно из таких удобных расширений - расширения для Canvas API.

    Давайте посмотрим на результаты работы с новым API.
    Без Android KTX:
    val translateCheckpoint = canvas.save()
    canvas.translate(200f, 300f)
    canvas.drawCircle(...)
    val rotateCheckpoint = canvas.save()
    canvas.rotate(45f)
    canvas.drawRect(...)
    canvas.restoreToCount(rotateCheckpoint)
    canvas.restoreToCount(translateCheckpoint)

    С Android KTX
    canvas.withTranslate(200f, 300f) {
    drawCircle(...)
    withRotate(45f) {
    drawRect(...)
    }
    }

    Плюсы от использования Android KTX - более читабельный код и невозможность избежать ошибки с вызовами save/restore().
  • Android Broadcast

    #AppBundle #GooglePlay #Instant

    Google представили обновления Android App Bundle и его работе в Google Play:
    👉Дополнительное API по установке языков, которое позволяет показывать пользователю диалог с выбором языков для установки, а также получить список всех установленных языков. API доступно в Play Core Library 1.4.0.
    👉Поддержка Google Play Instant в App Bundle, теперь можно загружать Android App Bundle, который содержит модули для Google Play Instant
    👉Удаление dymanic feature модулей, встроенных в приложение, при установке приложения. Это позволит удалять модули, для которых выставлено onDemand="false".
    👉Теперь необязательно заливать ключ для Google Play App Signing и артефакт, подписанный этим ключом, перед этим. Больше подробностей здесь.
  • Android Broadcast

    #Performance #Gradle #Marble #AndroidGradlePlugin

    Improving build speed in Android Studio

    Статья о том как Google старается улучшить скорость сборки приложения в Android Studio (AS), хотя не совсем это получается по результатам работы на разных проектах. Причин этому несколько:
    👉 Рост кодовой базы
    👉 Spectre и Meltdown патчи снизили скорость процессоров
    👉 Сторонние и собственные Gradle плагины, которые не поддерживают API последних версий Gradle, позволяющих ускорить сборку
    👉 Использование Java 8 - приводит к работе desugar, что увеличивает время сборки. D8 и R8 позволяют снизить негативный эффект.
    👉 Использование Kotlin, в особенности Kotlin annotation processing (KAPT), влияет на сборку
    👉 Множество библиотек, построенных на Android Support Library, и требующих работы Jetifier при использование AndroidX библиотек

    Для того чтобы решить проблемы Google активно работает с Gradle и JetBrains.


    Google сделала множество улучшений в последних версиях Android Gradle Plugin:
    👉 namespaced resources
    👉 Инкрементальный annotation processor
    👉 Поддержка Gradle Worker API
    👉 Миграция на Gradle Lazy API


    Как исправить положение дел в вашем проекте:
    👉 Анализируйте производительность сборки вашего проекта с помощью Gradle Scan или Gradle profiler
    👉 Используйте Gradle Lazy API, избегайте использовать I/O или любых других длительных операций
    👉 Настраивайте все task-и в фазе конфигурации
    👉 Настраивайте входные и выходные файлы/папки, чтобы ваши результат task-ов могли кэшироваться
    👉 Разделяйте большие task-и на более мелкие, чтобы они могли кэшироваться независимо и выполняться инкрементально
    👉 Убедитесь что один task не затирает результаты другого
    👉 Используйте языки со статической типизацией (Java/Kotlin) вместо динамически типизируемых (Groovy) для написания ваших плагинов и Gradle скриптов
  • Реклама

  • Android Broadcast

  • Android Broadcast

    #MachineLearning #TensorFlow

    TensorFlow Dev Summit key takeaways for Android Developers

    На прошедшем TensorFlow Dev Summit было объявлено несколько важных новостей касательно работы этого фреймворка на Android:
    👉 Ускорение TensorFlow Lite на GPU, которая увеличивает скорость 2-7 раз на устройствах с OpenGL ES 3.1 (Android 5.0+)
    👉 Улучшена документация. больше примеров
    👉 Запуск более сложных моделей на устройстве
  • Android Broadcast

    #Architecture #ViewModel #MVVM #ArchComponents

    MVVM — How View and ViewModel should communicate?

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

    На текущий момент очень популярным решением стало MVVM (Model-View-ViewModel). Рост спроса на эту архитектуру подкрепился тем, что разработчики из Google сделали готовые компоненты для удобной реализации этого подхода, что значительно упрощает задачу.

    Замечание: классический MVVM, описанный в Microsoft, отличается от того что обычно применяется в Android

    Чтобы сделать MVVM качественно надо придерживаться нескольких правил:
    👉 У каждого компонента есть четкая роль: View отвечает за отображение данных, VM - предоставляет данные, которые отобразятся на View и обрабатывает события, связанные с данными в ней
    👉 VM содержит только логику. Он не должен содержать никаких классов из Android SDK, все платформенное API должно предоставляться через абстракции в виде интерфейсов.
    👉 Когда происходит клик или прочие события на UI, View только сообщается VM о произошедшем событие (простым вызовом метода в VM) и не выполняет какой-либо логики
    👉 VM не знает ничего о View
    👉 При модификации данных в VM они сразу же должны отображаться в View. Эффективный способ достичь этого - использовать LiveData. Это позволяет организовать push взаимодействие между VM и View, что дает мгновенное отображение любых изменений в данных на экране.
    👉 ViewModel может предоставлять дополнительные методы для View. В случаях когда у вас много логики в VM можно вынести ее в отдельный класс - Presenter, который служит медиатором между VM. В таком случае VM будет служить чистым контейнером состояния View.

    Следование правилам, описанным выше, позволит вам:
    👉 реализовать эффективную архитектуру в Android
    👉 не иметь проблем с жизненным циклом
    👉 не думать о сохранение данных при повороте экрана
    👉 позволит покрыть логику Unit тестами
    👉 упростит расширение функционала в будущем
  • Android Broadcast

    Track Your Engineering Performance Metrics with Android vitals

    Android vitals helps you keep on top of your engineering performance metrics so that you can avoid issues that will impact your user experience. It monitors ...

    YouTube
  • Android Broadcast

    #Coroutines #Architecture #ViewModel

    Easy Coroutines in Android: viewModelScope

    Coroutine имеют очень хорошую возможность - CoroutineScope, которые позволяют вам автоматически отменять выполнение всех Coroutine, связанных с ним. Это очень эффективно помогает при работе с UI, например при запуске Coroutine в Activity/Fragment/ViewModel.

    Google активно поддерживает Coroutine и в AndroidX Lifecycle v2.1.0 добавлена поддержка CoroutineScope для ViewModel с помощью viewModelScope extension property. Подробности использования и реализации вы можете найти в статье!

    Ждем релиза новой версии библиотеки
  • Android Broadcast

    #GooglePlay

    Google Mobile Developer Day at Game Developers Conference 2019

    Google принимает участие в Game Developers Conference и сделала интересные анонсы:
    👉 Теперь предварительная регистрация доступна для всех. Этот механизм позволяет заранее узнать о выходе продукта и подписаться пользователям на анонс приложения/игры, когда оно станет доступно в Google Play
    👉 Увеличен размер конечной APK, получаемой из Android App Bundles, до 150 МБ (раньше было 100 МБ)
    👉 Возможность кастомизации описания приложения в разных странах
    👉 Обновление A/B тестов с описанием приложения в Google Play: теперь можно поменять описание для пользователей кто уже посетил страничку приложения.
  • Android Broadcast

  • Android Broadcast

    Результаты тестов Koin на LG G4 (Snapdragon 808/3 Gb). Как видите устройство не самое быстрое (ему уже 4 года), но результаты - 🔥🔥🔥
  • Android Broadcast

    #Koin #DependencyInjection #Kotlin

    Koin 2.0 Beta

    Я люблю Kotlin и стараюсь использовать библиотеки, которые написаны на этом языке чтобы получить максимальную эффективность от использования Kotlin.

    Самое важное в Koin 2.0 то, что библиотека упростила API и повысила скорость работы.
  • Android Broadcast

    Мой первый барьер преодолён - 300 подписчиков ⭐️⭐️⭐️
  • Android Broadcast

    #D8 #R8 #CPU #JVM

    Android CPU, Compilers, D8 & R8

    Статья о компиляции кода в Android и как Google улучшает процесс. В ней вы найдете:
    👉 JVM и ее связи с Android
    👉 Как работает JVM
    👉 DEX
    👉 Как читать байткод
    👉 Как происходит сборка Android приложения
    👉 Android Runtime (ART)
    👉 D8 & R8
  • Android Broadcast

    #ArchComponents #Navigation #MasterDetail

    Master-Detail views with Navigation Components

    Совсем недавно вышел Navigation Arch Component и идет его активное исследование. В статье рассказывается как реализовать "Master-Detail" на планшете с помощью новой библиотеки. Как оказалось это не совсем тривиальное решение.
  • Реклама

  • Android Broadcast

    #AndroidQ #WhatNews

    Android Q - что нового для разработчиков

    13 марта была представлена первая бета версия Android Q - очередного обновления популярной ОС. Основные изменения направлены на улучшение безопасности данных пользователя и ограничение возможностей сторонних приложений.

    В статье я подробно разобрал все изменения
  • Android Broadcast

    #GooglePlay

    Introducing a new Google Play app and game icon specification

    Google Play Store представляет новые требования по дизайну для иконок приложений.

    Какие изменения:
    Размер иконок остаётся прежним, но прозрачный фон больше недопустим
    Google Play и Chrome OS будут динамически закруглять углы и отбрасывать тень на иконку. Радиус углов будет 20% от размера иконки.
    Изменения не касаются Google Play на Android TV, Wear и Auto
    Изменения не касаются иконок в лаунчере для Android

    Сроки для внесения изменения следующие:
    1️⃣ Начало апреля - можно начать загрузку иконок с новыми требованиями. Старые и новые иконки будут отображаться корректно
    2️⃣ 1 мая - можно загружать только новые иконки. Оба типа иконок будут отображаться корректно.
    3️⃣ . 24 июня - старые иконки будут конвертированы в "legacy" режим. Загружать можно только новые иконки. Старые иконки будут сконвертированы в "legacy" режим

    Обновление поможет команде из Google унифицировать внешний вид Google Play.

    Google Play icon design specifications
  • Android Broadcast

    Слева направо: старая иконка, новая иконка (пример), старая иконка в "legacy" режиме