Android Broadcast
14.2K subscribers
3.49K photos
335 videos
11 files
5.87K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#ArchitectureComponents, #DataBinding #Coroutines

ViewModels with Saved State, Jetpack Navigation, Data Binding and Coroutines

Architecture Components, представленные в 2017 году, значительно повлияли на разработку Android приложений. ViewModel используется в более чем 40% процентов приложений. За счет такой большой популярности это компонент все активнее и развивается и обрастает новыми функциями:
👉 Поддержка сохранения состояния в ViewModel
👉 Интеграция между Navigation библиотекой и ViewModel
👉 Использование ViewModel в DataBinding
👉 Поддержка Kotlin Coroutines в ViewModel на основе viewModelScope
#Quiz

Android Broadcast Kotlin Quiz

Хотите узнать насколько вы круты в Kotlin? Организаторы Kotlin Night Kiev любезно поделились со мной своими материалами. На основе их я сделал тест. Пройдите его и присоединяйтесь в зал славы.

Все касательно теста обсуждаем в @android_broadcast_discussions
#Architecture #Modularization

Глубокое погружение в модуляризацию

Android проекты активно растут в своих размерах, мы используем все больше технологий, затягиваем новые библиотеки, стараемся следовать лучшим практикам и реализовать Clean Architecture.

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

Jeroen Mols сделал серию статей на тему многомодульности. В них вы можете найти ответы на свои вопросы и увидеть реальные примеры:

1️⃣ Why you should care?
2️⃣ A successful architecture
3️⃣ Real-life example
4️⃣ How to approach
5️⃣ Lessons learned
#OkHttp #networking #Kotlin

OkHttp 4 Goes Kotlin

Состоялся релиз новой версии самого популярного HTTP клиента для Android - OkHttp 4.0. Главное изменение - библиотека была полностью переписана на Kotlin.

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

Библиотека потребует обновлений для тех кто использует:
👉 ProGuard: найдены проблемы при работе с OkHttp. R8 работает без проблем
👉 Mockito + OkHttp: 26 методов в OkHttpClient стали финальными и поменялась идеология как правильно тестировать OkHttp
👉 Advanced Profiling в Android Studio: пока не работает, ждем обновлений от Google
#Kotlin #Collections #Sequence

Красивая визуализация в отличие использовании операций для Collection и Sequence от Florina Muntenescu
#Giphy #SDK

Представлено Android и iOS SDK для Giphy

Любите веселые анимашки с GIPHY? Тогда теперь вы можете сделать интеграцию между своими приложением и этим сервисом!
#Podcast #DEX #ART #Dalvik #UnderTheHood

Android Dev Podcast #96: DEX формат, его инструментация и Android рантаймы
Продолжительность: 1:08:44

Подходит к концу рабочая неделя и все готовяться отдохнуть. Самое время где-нибудь лечь на солнышке, расслабиться и послушать интересный подкаст.

В последнем выпуске ребята из Android Dev Podcast рассказывают о том как под капотом Android исполняется и оптимизируется код
#Fuchsia

Будущее уже здесь - fuchsia.dev

Появился сайт с документацией ОС с открытым исходным кодов - Fuchsia. Та новая операционка от Google, вокруг которой давно ходят слухи.

На сайте уже можно найти следующее:
👉 Описание ОС Fuchsia
👉 Разработка под новую ОС
👉 Обзор системы
👉 Ядро Zircon (не Linux)
👉 Fuchsia SDK Reference
#Room #Kotlin

How to create M:N Relationship with Room and Kotlin

Room - очень удобная ORM для Android. Ее отличительные особенности:
👉 удобство использования
👉 интеграция с Architecture Components и другими популярными библиотеками
👉 отсутствие рефлексии

Но не все возможности поддерживаются этой библиотекой, например из коробки нет возможности построить отношение M : N 😦. В статье вы найдете рецепт как исправить отсутствие этой функции (я надеюсь что с будущими релизами ее исправят).
#JetpackCompose #UI

Погружение в Jetpack Compose

Текущий тренд во всей разработке с UI - декларативные фреймворки. Jetpack Compose - решение этого вопросы для Android. Пока оно очень сырое и не готово к использованию в боевых приложениях, но уже можно посмотреть на то как мы будем писать UI через 1-2 года.
#Korlin #Parcelable

Kotlin Android Extensions: Parcelize

Android - особенная ОС, поэтому ей даже сделали особенный формат сериализации данных - Parcelable. Конечно он быстрее, лучше и весь такой крутой по сравнению с Serializable, но проблема в одном - множество boilerplate кода, который надо писать, а все мы знаем, что разработчики ленивы 😁

Kotlin сделал нашу жизнь лучше и даже сделали специальное расширение, которое упрощает жизнь разработчикам под Android - Kotlin Android Extensions, в рамках которого есть функция, упрощающая реализацию Parcelable. Для этого вам необходимо добавить аннотацию @Parcelize к вашему классу.
#Gradle

Вышел Gradle 5.5

Новый релиз системы для сборки приложений Gradle принес ряд новых возможностей:
👉 Трансформация зависимостей во время их поиска
👉 init плагин теперь поддерживает JUnit 5 и генерацию проекта для Gradle плагина
👉 Обновлена документация по сборки нативных приложений с Gradle
👉 Исправление багов

Улучшения для разработчиков Gradle плагинов:
👉 Возможность выполнять inject системных сервисов (ObjectFactory, WorkerExecutor и пр.) в абстрактные поля
👉 Добавлены методы для создания domain object collection в ObjectFactory: domainObjectContainer​() и domainObjectSet()
👉 Собственные типы, такие как Task, Plugin или Project, могут быть реализованы как абстрактные классы
👉 Больше документации по написанию собственных плагинов
#Dagger #Kotlin #DependencyInjection

Painless Dagger+Android+Kotlin

Dagger 2 - самый популярный DI на Android. Но не все так идеально, так как приходится писать слишком много boileplate кода для его работы. Как уменьшить количество этих строк в ваших исходниках? Воспользуйтесь основными рекомендациями:
1️⃣ Не используйте dagger-android
2️⃣ Используйте androix.fragment 1.1.0, в которой появились возможность делать inject зависимостей в конструктор Fragment с использованием FragmentFactory
3️⃣ Используйте inject в конструкторы вместо объявление зависимостей в модулях
4️⃣ Для предоставления зависимостей, тип которых является интерфейс используйте @Binds
5️⃣ Не используйте Dagger Component для получения зависимостей оттуда

Лично от себя рекомендую обратить внимание на простые библиотеки, разработанные в EPAM:
👉 Assisted ViewModel - упрощение inject ViewModel
👉 Dagger Generate Binds - упрощение объявление @Binds
#Conference #Minsk #MobilePeople

Последние 3 месяца сообщество Mobile People (и я в том числе) готовило для вас большое мероприятие - Mobile People Day в рамках RS Conf.

В рамках конференции вы можете услышать доклады по Android, iOS и Flutter. Вас ждут 14 спикеров с докладами в горячих темах современной разработки:

👉 Йонатан Левин@monday.com - Android GDE, основатель Android Academy
👉 Александр Блинов@Headhunter - ведущий Android Dev Podcast
👉 Elaine Dias Batista@SFEIR - Google Assistant GDE
👉 Muhammed Salih Guler@Onefootball GmbH - Flutter GDE
👉 Anastasiia Voitova@Cossack Labs - специалист по безопасности мобильных приложений
👉 Дмитрий Мовчан@KasperskyLab - организатор Android Academy в Москве

Когда: 9 августа 2019
Формат: 1 день ➡️ 2 потока ➡️13 докладов
Место: Культурный хаб OK16 (карта)

Больше спикеров и информации о них вы можете найти на сайте конференции

* GDE - Google Developer Expert
#MobilePeople #Free

Хотите выиграть бесплатный билет на Mobile People Day? Рецепт следующий:
Forwarded from Mobile People Talks (Александр Денисов)
Асинхронность - знаешь что об этом ты? Part I

Первоначальной идеей этого выпуска было обсуждение асиннхронности, подходов и решений со всех, так сказать, четырех сторон. Сначала обсудить нативные темы, а потом обсудить кроссплатформенные решения. И начиналось все вроде бы хорошо, обсудили многопоточность, классические проблемы, языки, которые живут без этого, но потом Данис с Кириллом так увлеклись беседой о сходствах и различиях асинхронных подходов в Android и iOS, что на Flutter и React Native просто тупо не хватило времени!

🤪 Так что придется делать два выпуска по цене одного! Асинхронность Flutter vs ReactNative ждите в следующем!

🎧 SoundCloud
🎧 Apple Podcasts
#AndroidStudio #Productivity #Template

Supercharging your app development speed with custom file templates

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

Самый популярный boilerplate код, который можно встретить это архитектура: MVVM, MVP, Clean Architecture и пр. Дело в том что этот код имеет одинаковое строение и много схожего API. Так почему бы не избавиться от этого и сделать генерацию каркаса архитектуры фичи с помощью IDE?

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