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

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

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

  • Android Broadcast

    #AppsCloning

    Preventing Android App Cloning

    "Клонирование" приложения - возможность запускать 2 инстанса одного приложения на одном и том же устройстве. Некоторые производители устройств добавляют такую функцию в свою прошивку из коробки, создавая фейкового пользователя для запуска второй копии приложения. Так же в маркете есть приложения, дающий схожий функционал, создавая некоторое подобие песочницы внутри своей /data директории. В обоих случаях приложение может работать нестабильно, например при попытке доступа к файловой системе.

    В статье можно найти советы, как защитить свое приложение от клонирования. Также вам стоит подумать, что если эта функция имеет место и популярна у пользователей, то вам стоит задуматься об интеграции ее в своё приложение
  • Android Broadcast

    #Activity #Fragment

    BaseActivity and BaseFragment are monsters

    Y вас есть BaseActivity и BaseFragment в проекте? Если да - вам стоит обратить внимание на статью, где автор рассказывает что это за монстры и как их избегать:
    👉 Наследование от классов из Jetpack
    👉 Extension-функции
    👉 ActivityResultContract
    👉 Lifecycle callback
  • Android Broadcast

    #Kotlin

    With the receiver in scope

    Kotlin поддерживает 2 типа функций:
    👉 Обычные (T) -> E
    👉 С Receiver-ом T.() -> E

    Функции с receiver-ом позволяют сделать код более читабельным в отдельнх случаях, но всегда ли стоит прибегать к ним? Ответ - нет! Не стоит ставить во главу минимальное количество строк и символов в коде. Главное требование должно быть легкая читаемость кода разработчиками
  • Реклама

  • Android Broadcast

    #AndroidBroadcast #Kotlin #Coroutines

    Библиотеки kotlinx.* (Livestream)
    Когда: вторник, 14 июля, 20:00 (GMT+3)

    Обсуждаем библиотеки Kotlin с их разработчиком. В программе Coroutines, Serialization, IO, DateTime, Стандартная Библиотека, новинки Kotlin 1.4 и ближайшее развитие экосистемы Kotlin.

    В гостях Всеволод Толстопятов из JetBrains. Всеволод занимается библиотеками и экосистемой вокруг Kotlin с фокусами на Coroutines и Serialization.
  • Android Broadcast

  • Android Broadcast

    #DateTime

    Tick Tock: Desugaring and Timezones

    В Android Studio 4 появился desugaring некоторых Java 8+ APIs, в том числе и java.time. Однако для таймзон по умолчанию используется java.util.TimeZone, которая зависит от рантайма, что является проблемой для Android, так как многие устройства уже перестали получать обновления, а только в 2019 году в мире было 7 изменений таймзон.

    Чтобы решить данную проблему, была создана библиотека Tick Tock, которая использует провайдер таймзон, зависящий от вшитого словаря.
  • Android Broadcast

    #GooglePlay

    Implementing In-App Updates in Android

    Обновление приложения может быть критически необходимым, например, в случае проблем с безопасностью или в случае падения. Однако не у всех пользователей установлено автоматическое обновление приложений в Google Play. Чтобы решить эту проблему, можно воспользоваться In-app обновлениями из Play Core library.

    В статье рассматривается 2 способа настройки обновлений:
    👉 Flexible (выполняется в фоне, не прерывая пользователя)
    👉 Immediate (полноэкраннный, требующий установки и перезагрузки приложения для дальнейшего использования).
  • Android Broadcast

    #Animations

    Анимация в Android: плавные переходы фрагментов внутри Bottom Sheet

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

    Авторы статьи пытались использовать animateLayoutChanges, setCustomAnimations для FragmentTransaction, Shared Element Transition, но в итоге остановились на кастомном Transition. Так же рассматриваются альтернативные способы и почему они не были использованы.
  • Android Broadcast

    #GooglePlay

    Обновление политики Google Play от 8 июля 2020

    Что нового:
    👉 Политики для новых приложений теперь будут применяться одновременно с существующими, а не как раньше - в день объявления о новых политиках
    👉 Больше информации о том, какую политику нарушает ваше приложение и скриншоты, где это обнаружено
    👉 Новые требования для приложений в категорию "Новости"
    👉 Новые требования по модерации контента в AR, генерируемого пользователям. Например, нельзя разместить его в зоне военной базы или частной собственности.
    👉 Обновленные требования по участии в категории "Приложения для семьи и детей"
    👉 Новые требования по размещению рекламу, например нельзя будет показывать нескрываемую рекламу дольше 5 секунд в местах, где это нарушает нормальную работу приложения
    👉 Новая политика Mobile Unwanted Software (MUwS).

    Новые политики вступают в силу 12 августа 2020

    Доступ ко всем файлам
    👉 Приложения теперь должны запрашивать доступ только к тем директориям, которые критически для их работы
    👉 Разрешение MANAGE_EXTERNAL_STORAGE для приложения с targetSdk = 30 (Android 11) будет доступен только с начала 2021 и по критериям, одобренными Google Play. До этого времени размещать приложения с объявлением этого разрешения нельзя
    👉 Изменения касательно работы с файлами вступают в силу в начале 2021. Пора готовиться!
    Google Play PolicyBytes - July 2020 Policy Updates

    Joe Davis, Outreach and Policy Education Lead at Google, explains the July 2020 Play policy updates, will review Google Play’s updated enforcement grace periods for this and all future policy updates, and goes over the new policy center. Stay tuned to learn…

    YouTube
  • Android Broadcast

    #Kotlin #Generics

    Generics in Kotlin

    Хороший разбор основных понятий Generic в Kotlin:
    👉 Type vs Class vs Subtype
    👉 Вариативность
    👉 Ковариативность
    👉 Контрвариант
    👉 Инвариант
    👉 Type projection
    👉 Star projection
    👉 Затирание типов
    👉 reified
  • Android Broadcast

    #UI #ServerDrivenUi

    Beagle - еще одно решение для реализации концепции Server-Driven UI. Эта концепция позволяет управлять интерфейсом приложения с бэкенда.

    Особенности Beagle:
    👉 доступно использование для Android, iOS, Web
    👉 используется декларативный UI подход
    👉 под капотом применяется Yoga Layout  
    👉 примеры кода на Kotlin и Swift
    👉 имеется хорошая документация с руководствами
    👉 документация для реализации подхода и со стороны бэкенда (примеры кода микросервиса тоже на kotlin)
    👉 есть playground - где можно попробовать описать компоненты и страницы в json формате
    👉 позволяет управлять контентом, визуальной структурой и действиями.

    Действия, это например:
    👉🏼 отправка http(s) запросов
    👉🏼 показ диалогов и алертов
    👉🏼 навигация внутри приложения
    👉🏼 открытие url-ссылок в стороннем браузере
    👉🏼 и также есть возможность реализовать собственные действия
  • Android Broadcast

    #реклама

    Помните игру Pokemon Go? Её создатели за 2 года заработали на ней более 2 миллиардов долларов. Оказывается, вы тоже так можете — хотите узнать, как?

    Тогда приходите на курс «Android-разработчик» от SkillFactory! Всего за 18 месяцев вы научитесь проектировать мобильные приложения и тестировать их, разрабатывать интерфейсы, анимацию и дизайн-концепции — в общем, все, что необходимо Android-разработчику уровня middle. Бэкграунд не важен — мы учим разработке с нуля.

    Работа в Android Studio, программирование на Java и Kotlin — это и многое другое вы изучите на практике, под руководством ведущих разработчиков из Skyeng и Lamoda. А через год обучения мы поможем вам найти работу.

    🎁 SkillFactory проводит беспроигрышную акцию с подарками среди новых студентов, успей подать заявку на курс!

    По промокоду AndroidBroadcast до 17 июля вы получите скидку 50%🔥!
  • Android Broadcast

    Современные Android-устройства достаточно безопасны и вот почему

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

    Автор статьи решил выяснить насколько платформа является безопасной и вот какие плюсы он нашел:
    👉  любой телефон с Android на борту соответствует CDD
    👉  шифрование встроенного хранилища
    👉  верифицированная загрузка
    👉  безопасное хранение ключей шифрования
    👉  ограниченный доступ к файлам приложениями в Android 11
  • Android Broadcast

    #Dagger2

    Introducing Hephaestus

    Настройка Dagger 2 в новом проекте обычно включает в себя несколько шагов:
    1️⃣попытаться собрать проект и из ошибок сборки
    2️⃣понять какие зависимости отсутствуют
    3️⃣добавить их
    4️⃣при необходимости синхронизовать проект
    5️⃣повторить

    Разработчики из Square выяснили, что этот процесс является узким горлышком в продуктивности их разработчиков, и создали плагин для компилятора Hephaestus.

    Функционал очень схож с тем, что предоставляет Hilt, однако Hilt содержит больше возможностей и при этом накладывает различные ограничения. Если ваш проект уже на Hilt, то скорее всего Hephaestus вам не нужен, но если вы только задумались о том, как упростить работу с Dagger 2, то стоит сравнить отличия Hephaestus и Hilt

    Важное отличие Hephaestus - он работает на основе плагина для Kotlin компилятора, а не на основе Java annotation processing
  • Android Broadcast

    #Android11

    Android 11 Beta 2 and Platform Stability

    Вышла вторая Beta версия Android 11, а вместе с ней достигнут Platfrom Stability релиз, это значит что мы получаем финальное Android SDK и NDK, а также разрешена публикация приложений с targetSdk="30".

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

  • Android Broadcast

    #Android11

    Testing platform changes in Android 11

    В Android 11 появилась новая возможность для тестирования и отладки изменений в поведении приложений при переходе на новое targetSdk. Теперь разработчик может контролировать какие изменения новой версии Android будут включены в системы. Это позволит проверять только их

    Подробнее об App Compatibility Framework
    Testing platform changes in Android 11

    With each new release of Android, there are changes that may impact how your app works. In this session, we’ll talk about how we’re making it easier to test platform changes in Android 11 with the compatibility framework.

    Resources:
    Read more at → http…

    YouTube
  • Android Broadcast

    #Kotlin #Refactoring 

    Tackle tech debt with @Deprecated annotation

    Статья про возможности @kotlin.Deprecated аннотации:
    👉 помечать устаревший код
    👉 использовать разные уровни:
    ⚠️ warning - при компиляции warning
    error - при компиляции ошибка
    🙈 hidden - код не доступен для вызова, при компиляции - Unresolved Reference error
    👉 каждый уровень по своему подсвечивается в IDE
    👉 может использоваться с большим количеством target'ов (class, function, constructor, property и т.д.)
    👉 работает с Java

    Отдельно отмечаются возможности параметра replaceWith:
    👉 благодаря ему можно не только подсвечивать устаревший код, но и заменять его на новый, используя пункт меню в IDE suggestions
    👉 можно заменять устаревший код как в одном месте, так и во всем проекте
    👉 можно указать и какие импорты необходимо добавить при замене
  • Android Broadcast

    #Dagger #Hilt #Koin

    Change DI Library from Koin to Dagger-Hilt

    Разработчики кто имеет опыт с Dagger сразу хорошо воспринимали Koin в плане удобства его синтаксиса, но всех огорчало что отсутствует некоторые возможности, особенно проверка графа во время компиляции.

    Может ли Hilt стать тем что все так разработчики хотели? Скорее всего только в описание компонентов, ведь под капотом мы имеем старый Dagger

    В статье приводится опыт миграции с Koin на Hilt