Size: a a a

Android Broadcast

2019 April 14
Android Broadcast
#GooglePlay #InstantApp #BestPractices

5 tips for using showInstallPrompt in your instant experience

Для всех тех кто имеет в свое портфолио Instant App разработчики из Google рассказали о практиках, которых стоит придерживаться, чтобы обеспечить наиболее комфортный переход пользователя к полной версии приложения:
👉 Используйте самую последнюю доступную версию библиотеки play-services-instantapps
👉 Если полная версия вашего приложения/игры еще не доступна - используйте раннюю регистрацию (pre-register)
👉 Запоминайте состояние вашего instant приложения для последующей его передачи в полное приложение на основе Cookie API. Таким образом пользователь сможет продолжить там где остановился.
👉 Не мешайте пользователю выполнить сценарий предложение установки полной версии приложения. Например, пользователь должен иметь сделать возможность покупки и после этого уже ему будет предложено установить в полное приложение.
👉 Сделайте явный способ установки полного приложения. Добавьте FAB "Install" или "Pre-register"
источник
Android Broadcast
#R8 #Optimizations #JackWharton

R8 Optimization: Method Outlining

Продолжение серии статей от Jake Wharton об оптимизациях, выполняемых R8.

R8 умеет избавляться от констант, коротких методов, или методов, которые вызываются в одном месте, вставкой этого кода в место вызова. Это называется method inlining.

R8 также умеет избавляться от дублирующегося кода выделением его в новый метод и заменой оригинального кода на новый метод 🔥. Это называется method outlining.
источник
2019 April 16
Android Broadcast
#Gradle

Вышел Gradle 5.4

Вышла новая версия Gradle. В обновлении вас ждут:
👉 Поддержка работы на Java 12
👉 Новое API для инкрементальных task-ов
👉 Поддержка Swift 5
👉 Исправление багов

Новое API для инкрементальных task-ов
Теперь есть более точечный способ выполнять ваши task-и инкрементально: можно получать разницу по файлам и в зависимости от этого выполнять только часть работы в task. Ранее если происходило какое-либо изменение входных или выходных данных, то приходилось выполнять task с нуля.
источник
Android Broadcast
#Kotlin #KtAcademy

Abstract class vs interface in Kotlin

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

Так получается разница (в Kotlin) сводится только к тому, что абстрактный класс отличается наличием конструкторов и ограничениями в наследовании?
источник
Android Broadcast
#UI #Material #BottomNavigation

WindowInsets — Listeners to layouts

В Android, начиная с версии 5.0, есть очень эффектная возможность, которая позволяет вам рисовать UI вашего приложения под системными панелями: панелями навигации и статуса. В статье Chris Banes написал руководство как сделать BottomNavigationView, отображающимся под панелью навигации.
источник
2019 April 17
Android Broadcast
Вы просили — мы сделали. Вебинар на тему IT & Security уже 27 апреля!

Темы:
♤ Роль информационной безопасности в IT-мире
♤ Практические советы и профессиональные знания из отрасли
♤ Базовые навыки аудита
♤ Рекомендации по сокрытию личных данных

Скорее регистрируйся 👉 тут
источник
2019 April 18
Android Broadcast
#AndroidStudio #ProjectMarble

Вышла Android Studio 3.4

Вышла новая стабильная версия Android Studio (AS). В рамках ее можно увидеть первые результаты Project Marble. Project Marble - это инициатива в рамках которой команда разработки инструментария для Android исправляет в нем баги и улучшает производительность.

Что вас ждет нового после обновления:
👉 R8, пришедший на замену Proguard, теперь включен по умолчанию. Возможность использовать Proguard пока есть.
🎉 Новый менеджер ресурсов
🚀 Обновленный эмулятор, с улучшенной производительностью и меньшим потреблением ресурсов
🚀 Увеличена скорость работы Android Lint
🚀 Увеличена скорость сборки проектов
👉 Теперь для библиотек AndroidX и Firebase при их использование кода из них и отсутствие в зависимостях, AS будет предлагает их подключить
👉 Обновленный редактор свойств View в Layout Editor
👉 Обновленный диалог структуры проекта (кто-то им пользуется?)
🚀 Поддержка инкрементального процессинга аннотаций в Kotlin (требуется Kotlin 1.3.30 или выше)
👉 Новая Android Studio построена на основе IntelliJ 2018.3 и все фичи, который появились в ней теперь есть и в Android Studio. Подробнее читайте в анонсе "IntelliJ IDEA 2018.3".

Project Marble продолжит свое шествие и его результаты будут также в Android Studio 3.5, которая уже доступна в Canary канале.
источник
Android Broadcast
#AndroidStudio #ProjectMarbel

What’s new in Android Studio 3.4
источник
Android Broadcast
Новый менеджер ресурсов
источник
Android Broadcast
Новый UI для редактирования свойств в Layout Editor
источник
Android Broadcast
Обновленный диалог структуры проекта
источник
Android Broadcast
#R8 #Proguard

Важно: R8 на моем проекте в этом релизе AS завелся сразу, но при включение full режима требуется дополнительная настройка. Самый безопасный режим включения R8 сейчас это добавить в gradle.propertiesgradle.properties вашего проекта следующее:
android.enableR8=true
android.enableR8.fullMode=false

Если вы столкнетесь с проблемами при переходе, то в первую очередь попробуйте перенастроить правила для обфускации и оптимизации кода.
Если это не помогает - откатитесь на Proguard (пока есть возможность) и сообщите о баге.
источник
Android Broadcast
В посте про Android Studio 3.4 я ошибся - "Instant Run" появится только в Android Studio 3.5. Приношу свои извинения тем, кто уже сломя голову побежал искать эту функцию 😀
источник
2019 April 19
Android Broadcast
#Kotlin #Architecture #Delegates

Delightful Delegate Design

Хорошая статья о том какую пользу Kotlin Delegated Properties могут принести при разработке библиотек и увеличить переиспользование кода в вашем проекте.

Автор разбирает все на примере собственной библиотеки Krate, которая позволяет удобнее работать с SharedPreferences.
источник
Android Broadcast
#AndroidBroadcast

Сделал свага для канала. Хотите такой себе? Я с удовольствием поделюсь им с вами.

В ближайшее время меня можно встретить на:
👉 23 апреля - митап GDG Minsk Mobile
👉 22-23 мая - выступаю на Mobius в Санкт-Петербурге
👉 1 июня - выступаю на Kotlin Night в Киеве
👉 25 июня - выступаю на митапе Kotlin Lviv User Group

Всем тем кто работает со мной в EPAM в офисе K3V - пишите мне в личку и я дам вам наклейку!
источник
Android Broadcast
источник
Android Broadcast
источник
2019 April 20
Android Broadcast
#Material #AndroidX #Design

Upgrading to Material Components

На Google I/O 2018 было представлено обновление Material Design или его вторая версия. В рамках нее произошло обновление концепции дизайна и UI элементов, даже библиотке с дизайном поменяла пакет и стала com.google.android.material:material. В статье рассказывается о том как интегрировать новую библиотеку к себе в проект (придется мигрировать на AndroidX) и немного об обновленных компонентах:
👉 TextInputLayout: OutlinedBox и FilledBox
👉 Material Button:  filled, text, elevated
👉 Chips: Filter, Choice, Action
👉 Bottom App Bar
👉 Backdrop Menu

Для тех кому интересно узнать больше о Material Design 2.0 рекомендую изучить официальную документацию и пройти Codelab "Material Advanced Components"
источник
Android Broadcast
#Workmanager #ArchComponents #RxJava

How to use WorkManager with RxJava

Для всех тех кто уже начал использовать WorkManager и любит RxJava. В статье вы можете найти рецепт, как подружить эти 2 библиотеки больше чем это умеет androidx.work:work-rxjava2, а также результат приготовления этого рецепта в виде библиотеки RxWorkManagerObservers.

Библиотека позволит вам получать обновления статуса выполнения задач или данные в виде Observable.
источник
2019 April 21
Android Broadcast
#Fragment #BestPractices

Android Fragments Common Queries & Common Mistakes

В современной Android разработки при работе с UI и не только приходится сталкиваться с Fragment API. Оно не является простым и вызывает множество вопросов. В статье автор раскрывает основные из них:
👉 Разница между Fragment.getSupportFragmentManager() и Fragment.getChildFragmentManager()
👉 Взаимодействие между parent и child Fragment-ами
👉 Разница между FragmentStateAdapter and FragmentPagerAdapter в ViewPager и когда какой использовать
👉 Разница между add и replace в FragmentTransaction
👉 Слушатели, BroadcastReceiver-ы и утечка памяти в Fragment
👉 Использование BottomBarNavigation и NavigationDrawer с Fragment (отсылка к библиотеки FragNav)
👉 Разница между FragmentTransaction.commit() and FragmentTransaction.commitAllowingStateLoss()
👉 Работа с меню в Fragment
👉 В каких случаях getContext(), getActivity() и getView() возвращают null
👉 onActivityResult() не вызывается во вложенных (child) Fragment
👉 Для передачи аргументов при создании e надо использовать Bundle
👉 Организации навигации по back стеку
источник