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

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

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

  • Android Broadcast

    #Firebase #MLKit #SmartReply

    Exploring Firebase ML Kit on Android: Smart Reply

    Совсем недавно произошел анонс о выходе в бету новой функции в Firebase ML Kit - Smart Reply. Она позволяет на основе на основание переписки предложить возможные варианты ответов. Весь механизм работает на устройстве и подключение к интернету не требуется. Текущие ограничение - поддерживается только английский язык.

    В статье рассматривается как интегрировать Smart Reply к себе в приложение.
  • Android Broadcast

    #Room #Architecture

    Don't Pass Around Your Room/Database Entity

    Статья о том как как правильно работать с сущностей (entity) в Room, когда вы выносите БД в отдельный Gradle модуль. Советы также справедливы и для других библиотек по работе с БД.

    Спойлер: надо делать маппинг сущностей и не подключать зависимости для работы с БД вне модуля работы с базой.
  • Android Broadcast

    #ProjectMarble #AndroidStudio #LayoutEditor

    Android Studio Project Marble: Layout Editor

    Улучшение Android Studio в рамках Project Marble пришло в Layout Editor. Уже в Android Studio 3.5 можно наблюдать следующие улучшения:
    1️⃣ Список всех constraint для ConstraintLayout
    2️⃣ Создание constraint с помощью drag-and-drop
    3️⃣ Удаление constraint
    4️⃣ Визуальное обновление для более четкого обозначения constraint.
    5️⃣ Улучшение в изменение размера окна превью
    6️⃣ Добавлена возможность выбора размеров из ресурсов для margin

    В статье вы найдете подробное описание и примеры вида "было-стало" в Layout Editor по всем улучшениям.
  • Реклама

  • Android Broadcast

    #Material #Animation #Transition

    Playing with Material Design Transitions

    Реализация красивых анимаций на Android не так проста 😔. Все разработчики надеяться, что с приходом MotionLayout, все изменится. Пока этого не произошло - смотрите руководство о том, как сделать красивую анимацию перехода.

    Также в статье рассматривается сделать красивую анимацию на основе AnimatedVectorDrawable с помощью утилиты Shape Shifter.

    👉 APK с реализацией анимации
    👉 Исходный код
  • Android Broadcast

    #Architecture

    Bohemian Wrapsody

    Стоит ли оборачивать сторонние библиотеки своими собственными интерфейсами? Это может принести несколько положительных аспектов для вашего проекта:
    1️⃣ Независимость от стороннего API
    2️⃣ Модуляризация проекта
    3️⃣ Скорость сборки и параллельная компиляция модулей независимо
    4️⃣ Сторонние зависимости будут объявлены только в модулях где они используются, а не все в модули вашего приложения
    5️⃣ Возможность добавления нового функционала в своем API-обертке поверх сторонней библиотеки

    В статье рассматриваются подходы как стоит делать такие обертки и каких ошибок не допустить.
  • Android Broadcast

    #Mobius #Conference

    22-23 мая в Санкт-Петербурге состоится международная конференция по мобильной разработке — Mobius 2019 Piter!

    В центре внимания инженерные подходы в iOS и Android-разработке. Приходите обсудить Java, Kotlin, Swift и другие технологии, инструменты, фреймворки, архитектуру и не только!

    Спикеры этой конференции:
    👉 Йонатан Левин - Android GDE и основатель Android Academy
    👉Андрей Бреслав - отец языка Kotlin, который будет говорить не о Kotlin 😔
    👉Corey Latislaw - Android GDE, техлид TAB/The App Business и экс-тимлид Capital One, XfinityTV and Pinterest.
    👉Hannes Dorfmann - автор MVP-библиотеки Mosby
    👉Денис Неклюдов - GDE по Android, Pay и IoT и ведущий Android Dev Podcast;
    👉Константин Цховребов - Android-архитектор в Redmadrobot, автор библиотеки Cicerone.
    👉 Кирилл Розов - тимлид в EPAM, автор канала Android Broadcast

    Завтра (1 мая) повышается цена на билеты. По промокоду AndroidBroadcastPromo вы получите скидку.
    👉👉👉Купить билет 👈👈👈
  • Android Broadcast

    #Network #Library

    netWatch

    Небольшая библиотека, которая проверяет наличие доступа в интернет. Именно интернет, а не наличие Wi-Fi или мобильной сети.

    Библиотека имеет следующие функции:
    👉 Уведомление об изменение состояния подключения к интернету
    👉 Отображение системного кастомизуремого уведомления при измненения состояния подключения к интернету
    👉 Делать ping по указанному IP адресу, чтобы проверить возможность подключения
  • Android Broadcast

    #Kotlin #Conference

    Kotlin Night Kyiv 2019

    1 июня в Киеве пройдет крупнейшая в Украине конференция по Kotlin и технологиям, связанным с этим языком программирования.

    В рамках конференции будет 3 потока:
    👉 General
    👉 Android
    👉 Backend

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

    👉 Купить билет 👈 Скидка 10% по промокоду Rozov10

    До конца апреля еще есть возможность купить билеты по сниженной цене (1500 UAH ~ 57 $ ~ 3700 RUB)
  • Android Broadcast

    #NullSafety #Rave #Uber

    How Uber Engineering Verifies Data at Runtime with the Annotations You Already Use

    Сталкивались ли вы с проблемой, что данные, присылаемые сервером, отличается от ожидаемых вами в описанных вами моделей (классов)? Например, поле которое у вас объявлено как @NonNull вдруг пришло null? Или значение одного из полей моделей должно быть в пределах от 0 до 1, но сервер прислал 1.5?

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

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

    Поддерживаются следующие аннотации:
    👉@NonNull и @Nullable
    👉TypeDef аннотации: @StringDef, @IntDef и @LongDef
    👉Аннотации ограничений на значения: @IntRange, @FloatRange, @Size и др.
    👉 Собственные аннотации @MustBeFalse и @MustBeTrue, которыми могут быть аннотированы методы, проверяющие более сложные условия для данных внутри модели.

    Валидация кода выглядет следующим образом:

    void validateMyModel(SimpleModel myModel) {
    try {
    Rave.getInstance().validate(myModel);
    } catch (UnsupportedObjectException e) {
    // handle unsupported error case.
    } catch (RaveException e) {
    // handle rave validation error.
    }
    }


    Rave эффективна для интеграции с библиотеками, которые предоставляют сериализованые данные (например JSON), а вы их на стороне клиента парсите в объекты языка. Яркий пример REST сервис, с которым вся работа в Android приложения осуществляется на основе библиотеки Retrofit, причем уже есть готовый конвертер - RaveConverterFactory.
  • Android Broadcast

    #Fragmentation #Yandex #AIDL #AOSP

    Секреты API Android-устройств
    Продолжительность: 26:36 + 4:13 (QA)

    👉 Виды фрагментации Android: по версии API, по версии Android ОС (Phone, Wear, Auto, TV), по производителям
    👉 Строение AOSP, встраивание эксклюзивного API производителей устройств (вендоры) в сборку Android
    👉 Взаимодействие с API вендоров по средствам AIDL
    Droid Party: Яндекс.Телефон - Запись трансляции

    Android-митап с командой Яндекс.Телефона. Программа: 2:52 – Приложение в памяти на практике: наш опыт оптимизации 30:54 – Секреты API Android-устройств 1:20:...

    YouTube
  • Android Broadcast

    #Optimizations #AndroidGo #Memory #Yandex

    Приложение в памяти на практике: наш опыт оптимизации Яндекс.Лончер
    Продолжительность: 21:28 + 6:16 (QA)

    В докладе рассматриваются следующие вопросы:
    👉 Яндекс.Лончер: особенности приложения и почему необходимо его оптимизировать по потреблению памяти. 👉 Особенности работы на Android Go edition
    👉 Как измерять расход памяти приложением? Android Studio Profiler, Memory Analyzer (MAT), dumpsys meminfo
    👉 Уменьшение потребления памяти приложением: от простых (отказ от Enum-ов) к сложным (lazy inflate и программное создание View)
    👉 Мониторинг расхода памяти: Android Lint, тестирование расхода на устройствах/эмуляторах

    Также доклад доступен в виде статьи.
    Droid Party: Яндекс.Телефон - Запись трансляции

    Android-митап с командой Яндекс.Телефона. Программа: 2:52 – Приложение в памяти на практике: наш опыт оптимизации 30:54 – Секреты API Android-устройств 1:20:...

    YouTube
  • Android Broadcast

    #AndroidQ #ScopedStorage #BestPractices

    Android Q Scoped Storage: Best Practices and Updates

    Следующей релиз Android (Q), направлен на улучшение безопасности пользователей. Частью этих улучшения стали новые ограничения на работу с файлами - Scoped Storage.

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

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

    Для остальных - придется вносить правки в свою работу с файлами, но разработчики Android ОС предоставляют рекомендации, который вы можете найти в статье.
  • Android Broadcast

    #Performance #UI

    Facebook Litho Lessons

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

    По ссылке вы найдете несколько видео, общей продолжительностью 16 минут, раскрывающих работу с функционалом библиотеки (не базовыми вещами).
    Видео недоступно для просмотра
    ОТКРЫТЬ В TELEGRAM
    Litho Lessons - YouTube

    YouTube
  • Android Broadcast

    #Animation

    Lottie 3.0.0 released

    Для всех любителей анимаций Lottie - это то, что "доктор прописал". Библиотека позволяет запускать анимации из Adobe After Effects и отображать их нативно на мобильных платформах и Web.

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

    Замечание: Сразу вышел релиз 3.0.1, исправляющий незначительные баги
  • Android Broadcast

    #Tests #Performance

    Deep Dive into writing Performance Tests with @JankTest

    Тестовая библиотека AndroidX, содержит в себе компонент androidx.test.janktesthelper:janktesthelper, который предназначен для тестирования производительности UI.

    Библиотека позволяет производить тест UI на ожидаемое количество кадров. Например, вы можете проверить что при скроллинге списка fps не опускается ниже заданного значения.

    Также можно написать свой собственный монитор, который будет проверять производительность UI, как это вам былы бы необходимо.
  • Реклама

  • Android Broadcast

    #GDGMinsk #Meetup

    Сегодня, 23 апреля, сообщество GDG Minsk проводит очередной митап по мобильной тематике!

    В программе:
    🤖 Что может сделать мобильный разработчик в одиночку с помощью Firebase
    Константин Конопко@Keeple.app

    🤖 Частые ошибки и общий workflow локализации мобильных приложений
    Александр Маркевич, Localization team lead, Flo Health Inc

    🤖 Безопасность Android приложений
    Дмитрий Лукьяненко, Исследователь безопасности Android приложений

    В своем докладе Дмитрий расскажет о том, какие проблемы могут возникнуть с защитой данных пользователя, а так же с выполнением несанкционированных действий от его имени.

    Регистрация участников с 18.30, начало докладов в 19.00.
    Место проведения: SPACE (ул. Октябрьская 16/4).
  • Android Broadcast

    ​#Course Android Architecture Masterclass video course Курс по архитектуре Android приложений, написанию чистого кода и разработке поддерживаемых приложений. Курс стоит $12. Курс состоит из следующих частей: 1️⃣ MVx архитектурные паттерны 2️⃣ MVx в Android…
  • Android Broadcast

    #Dagger #DependencyInjection #Square

    Dagger Assisted Injection

    Для всех те кто решал проблему Dagger 2 с передачей параметров в зависимости, Square сделали толковое решение - Assisted Inject, которое позволяет избавиться от создания дополнительных компонентов или не задавать зависимости через setter-ы после их создания.

    Рассмотрим пример:
    class TextPresenter @AssistedInject constructor(
    @Assisted private val view: TextView,
    @Assisted private val text: String,
    private val textDecorator: TextDecorator
    )

    Параметры view и text не находятся в графе зависимостей и поэтому мы не можем получить оттуда, и мы помечаем их с помощью @Assisted, что говорит о том что они будут задаваться динамически.

    Следующим шагом нам нужна фабрика для создания нашей зависимости:
    class TextPresenter {
    @AssistedInject.Factory interface Factory {
    fun create(
    view: TextView,
    text: String
    ): TextPresenter
    }
    }

    Фабрика позволит нам создавать зависимости, передавая туда необходимые параметры.

    Библиотека сейчас находится в версии 0.3.3, но работает без проблем, проверено личной мной на production проекте.

    Все подробности полной реализации вы можете найти в статье.

    Gtihub Assisted Inject