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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Kotlin #Binary #Compatibility #Library

Бинарная совместимость Reaktive: как мы её обеспечиваем

Разработка библиотек - не самое простое занятие. Ты не можешь получить отчет об ошибке в Crashlytics, твои пользователи (программисты) не всегда могут оставить внятный фидбек, а еще тебе надо обеспечивать обратную совместимость.

Обратную совместимость обычно разделяют на 2 вида: API и Binary. Первая довольная проста - все что написано на старой версии библиотеки, должно запускаться и на новой.

С Binary совместимость все сложнее. В статье один из авторов библиотеки Reaktive разбирает, что именно такое Binary совместимость и как ее обеспечивают на примере этой библиотеки.
#Internship #НеРеклама

Летняя стажировка в Яндекс

Стартовал набор на летнюю стажировку в Яндекс. Направлений стажировки много:
👉 мобильная разработка (Android, iOS)
👉 бэкенд-разработка
👉 фронтенд-разработка
👉 машинное обучение
👉 аналитика

Участников ждут:
👉 от трёх до шести месяцев оплачиваемой работы бок о бок с ментором,
👉 только реальные задачи по улучшению продукта,
👉 приятное место, где работают увлеченные люди и проходят интересные мероприятия

Прием заявок заканчивается 31 мая 2020. Пройти стажировку можно в разных локациях или вам оплатят дорогу и проживание в хостеле

Ответы на популярные вопросы о стажировке здесь

Рекомендую всем попробовать попасть в программу Яндекс. Я помню как устроился на работу в Яндекс в Минске и мой уровень пошел в гору невероятными темпами, потому что я работал с очень сильными специалистами, у которых я учился изо дня в день.
#Kotlin #Kronos

Kronos-Android: Easy NTP

Библиотека для получения реального времени с сервера и его синхронизацией. Позволит избежать ситуаций, когда пользователь меняет время на устройстве для получения бонусов 😁
#Kotlin

Расширения в Kotlin. Опасный атавизм или полезный инструмент?

Kotlin привнёс множество новинок и удобств для Android разработчиков после долгого застоя в Java. И как любой реформатор есть, те кто отнеся положительно, и отрицательно к нему.

В статье разбирается почему Extension Function в Kotlin. По мнению автора проблемы заключаются в том, что:
👉 Расширения на DTO — нарушение шаблона Data Transfer Object
👉 Расширения специфичны и трудно понять какая функция обычная, а какая расширение
👉 Расширения разбросаны по всему проекту, образуя помойку
👉 Не замокать функции расширения при юнит-тестировании
👉 Есть вероятность перекрытия функции расширения одноименной функцией, размещенной внутри расширенного класса
👉 Расширение привязано к классу, а не к объекту, и это может вызвать путаницу
#Podcast #Flutter

Android Broadcast Podcast #6: "Из Android во Flutter" с Евгением Сатуровым

Flutter - один из самых бурно развивающихся кроссплатформенных фреймворков для создания мобильных приложений под Android и iOS. Его популярность дала новую жизнь Dart - языку программирования, который используется в Flutter. Разработчики под Android обратили внимание на новинку от любимой компании Google. Гость выпуска, Женя Сатуров, поделился тем, как он после нескольких лет в нативной Android разработке, ушел в Flutter и почувствовал новое вдохновение.

Сравнили удобство разработки под Android и Flutter:
- Kotlin и Dart
- Android Studio для Android и для Flutter, и конечно же Visual Studio Code
- Каково было привыкать на Flutter без стандартного набора Android разработки
- Архитектурные подходы

Немного о госте Жене Сатурове. Был Android разработчиком (4.5 года опыта за плечами). Год назад его поглатил Flutter. Основатель и ведущий soundcloud.com/flutterdevpodcast. Член программного комитета Mobius, Lead GDG Воронеж и частый спикер на конференциях.

Полезные ссылки:
👉 Flutter Dev Podcast
👉 Flutter Dev Podcast в Telegram
👉 То место, откуда начинается Flutter - flutter.dev
👉 Краткий экскурс во Flutter
👉 Доклад от Жени Сатурова "Flutter in action: how to stop considering and hit the road"

Отдельное спасибо Антону Рожкову за помощь в монтаже выпуска
#JetpackCompose #Animation

Intro to animations with Jetpack Compose

Много говорить про Jetpack Compose пока не хочу, так как все сыро и будет еще меняться перед бета и альфа. В статье найдёте взгляд на анимации в новом декларативном подходе.
Инженеры Avito решили открыть исходники своих наработок для Android проектов: библиотеки для приложений и тестовых фреймворков, Gradle плагины.

Обратной совместимости пока не гарантируется, но может появится если будут желающие использовать библиотеки и у себя в проектах.
#Fragment #Animation

Android Fragments: FragmentContainerView

В AndroidX Fragment 1.2.0 появилась специальная ViewGroup, которую надо использовать для добавления Fragment, - FragmentContainerView. В статье разбираются особенности нового контейнера.
#Material #UI

Вышла Material Design 1.1.0

Вышло обновление библиотеки Material Design для Android, которое привнесло:
👉 Многие компоненты приведены в соответствии с новой спецификацей Material Design
👉 Использование новой Material Shape System большинством компонентов
👉 Улучшена поддержка "Edge-to-Edge" дизайна и навигации жестами из Android 10
👉 Исправлено поведения компонентов на Android до 5.0
👉 Поддержка темной темы всем компонентами библиотеки
👉 Date Picker
👉 Extended Floating Action Button
👉 Улучшения в Accessibility
👉 Исправление багов и улучшения
Tips & Tricks #2 от Readmadrobot

В новом выпуске советов вы найдете:
 👨🏻‍🔧 как проще всего загрузить и показать пользователю PDF файл
 🧐 решение проблемы с названиями месяцев в русской локали
 💪 отличная библиотека для отображения календаря с возможностью полной кастомизации
 👻 BottomSheetDialog и исчезнувшие инсеты
 💄 тинтинг Drawable в рантайме
 🙅🏽‍♀️ глобальный PlaceHolder при использовании Glide
#Dx #D8

The path to DX deprecation

Google объявила о 3 фазах миграции с Dx на D8, причем в фазу 2 мы уже успели войти. Во второй фазе Dx остаётся доступным, но помечается как deprecated. Баги в нем больше исправляться не будут. Пора переходить на D8.

Третья фаза начнется 1 февраля 2021 - полное удаление Dx из Android Studio и всех других инструментов сборки.

Справка: Dx и D8 - это компиляторы Java байт кода в Dex, формат байт кода для ART
#UI

Android Styling: Themes vs Styles

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

Android Styling: Common Theme Attributes

Продолжение серии статей про стили в Android. В новой части рассказывается про
👉 основные атрибуты Material темы
👉 сравнивается разница между app и android namespace
👉 объявление собственных атрибутов
#NFC

NFC Token & Credit Card reader

Всем кому интересна работа с NFC для считывания данных с карточек и чтения/записи на NFC токены рекомендую посмотреть на исходный код приложения
NFC Peerbits
Android Broadcast
Используете ли вы Espresso Test Recorder?
Что-то не пошло у Google с их решение для записи тестов через клики по экрану - Espresso Test Recorder. Возможно разработчики любят писать код сами? Может потому что не генериться Kotlin код? Пишите свои идеи почему вышло так в @android_broadcast_discussions
#Jetpack #Biometric

AndroidX Biometric library code review

Немного о том как Google забивает на фикс проблем с утечками памяти в своих библиотеках и выкатывает стабильный релиз, когда проблемы так и не исправлены.
​​#UI

CurveGraphView

Библиотека, которая поможет отображать вам графики в ваших приложениях
#MotionLayout #Animation #Coroutines

Complex UI/Animations on Android — featuring MotionLayout

Чем ближе Android Studio 4.0 и стабильный релиз Motion Layout, тем больше интересных статей что можно сделать с новым инструментом для создания анимаций на Android.

В статье разбирается пример + очень узкие кейсы работы анимаций в MotionLayout, а также как можно работать с AnimationSet с помощью Kotlin Coroutine
#RxJava #Coroutines #Backpressure

From RxJava to Kotlin Flow: Backpressure

Сравнение работы с Backpressure в RxJava 2 и Coroutines Flow:
👉 Как решается в Flow
👉 Flowable
👉 Операторы для работы с Backpressure в RxJava