Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#Tools #Performance

Android third party tools to increase the performance of your app

Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты:
👉 Leak Canary - популярный инструмент, позволяющий находить утечки памяти
👉 Android Performance Monitor (Block Canary) - библиотека для обнаружения ui-фризов
👉 AndroidDevMetrics - позволяет замерить сколько времени уходит на инициализацию Activity и Dagger 2
👉 Takt - намерение FPS
👉 Nanoscape от Uber - трасировщик с более высокой скоростью работы и более аккуратный чем Android Studio CPU Profiler
👉 Android God Eye - утилита, которая может следить за множеством параметров FPS/RAM/PSS/Battery, Cpu/Heap/Traffic, Leak Memory/App Janks, Network и Thread
👉 Booster - коллекция модулей для поиска проблем производительности, оптимизации многопоточности и др Включает в себя около 20 модулей с разными целями. По заявлением авторов вы можете увеличить производительность вашего приложения нв 15% ~ 25% и уменьшить размер на 1MB ~ 10MB.
👉 Profilo от Facebook - утилита для сбора информации о производительности опубликованного приложения
#UI

Contour

Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много:
👉 Anko Layouts - больше не поддерживается
👉 Jetpack Compose - еще не готово
👉 Создавать View через код - мучительно и больно

Представляю вам новую библиотеку - Contour
Она предоставляет typesafe, Kotlin API для сложных layout на Android
#AndroidX #JetpackWeekly

Android Jetpack Weekly #7

Прошедшая неделя была очень богатой на обновления:
👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы
👉Улучшения в Navigation: dialog target, навигация по uri
👉Новые Kotlin APIs в *-ktx
👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
#AndroidAcademy #Minsk

Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете
👉 Как создать простой Android проект
👉 Базисы работы с ресурсами
👉 Немного о Context и Activity
#Android10 #Security

Project Mainline в Android 10

Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.

Google стала решать эту проблему - «Project Treble» в Android 8 и потом «Project Mainline» в Android 10. Первый разделил ядро ОС на слои, отделив работу с железом в отдельный слой, а второй - позволяет обновлять наиболее критичные компоненты без необходимости перезагрузки устройства и обновления прошивки, аналогично приложениям Google Play.

В статье разбираются детали работы «Project Mainline»
#Kotlin

Unit, Nothing, Any (and null)

Kotlin имеет систему типов отличную от Java - есть понятия nullable типов и специальные типы Any, Nothing и Unit. За что эти типы отвечают, в каких ситуациях применяются и чем отличаются - вы найдете в статье.
#Architecture #BestPractices

The “Real” Repository Pattern in Android

Repository - это довольно популярный шаблон проектирования, позволяющий инкапсулировать получение/хранение данных из различных источников: сервер, БД, хранилища на устройстве и пр.

Шаблон проектирования - это рекомендация и общее описание компонентов и их отношений между ними, поэтому зачастую разработчики делают реализацию по разному и не всегда хорошо.

Наиболее популярные ошибки, которые допускают пользователи:
👉 Repository возвращает DTO (модели источников данных, которые используются источниками данных в нем) а не модели Domain слоя
👉 Различные несвязанные между собой DataSource используются одни и те же DTO
👉 Repository реализуется по на основе endpoint-ов, а не на основе модели
👉 Repository кэширует всю модель, даже те поля, которые всегда должны быть свежими
👉 DataSource используется более чем одним Repository

В статье разбираются эти лучшие практики по реализации и почему им стоит следовать
#Testing

Android UI Testing Frameworks

Сравнение различных тестовых фреймворков для UI на Android. В ходе сравнения производится сравнения реализации одного тестового сценария на разных фреймворках:
👉 Appium
👉 Espresso
👉 UI Automator
#Java

Jabel - unlock Javac 12+ syntax when targeting Java 8

Все еще боретесь за права Java и не признаёте Kotlin? Пока Android команда молчит о добавление поддержке возможностей из свежих версий Java, проект Jabel может вас порадовать. Автор занимается тем чтобы использовать такие новинки Java 12+ на Java 9 как:
👉 var
👉 Type inference
👉 switch expression
👉 много другого менее интересного
#ViewBinding

В Android Studio добавили View Binding

В Android Studio 3.6. Canary 11 добавили поддержку View Binding. View Binding - это легкая замена Data Binding, котороя содержит только ссылки на View из ваших layout ресурсов.

Наконец-то появилась альтернатива Butter Knife и Kotlin Android Extensions.
#JakeWharton

Вышел Butter Knife 10.2.0

Вышла новая версия библиотеки Butter Knife, в которой реализована поддержка инкрементального процессинга аннотаций, а также теперь поддерживается только Android Gradle Plugin версии 3.3 и выше
#JakeWharton #ViewBinding

Важная новость которую я пропустил в посте и Butter Knife 10.2.0 - Jake рекомендует мигрировать на View Binding т.к. разработка Butter Knife останавливается
#Multiplatform #ReactiveX #Kotlin

Вышел Reaktive 1.0.0-rc2

Ребята из Badoo не останавливаются и продолжают развивать свою библиотеку Reaktive - ReactiveX на чистом Kotlin причем еще и Multiplatform. В новой версии произошли следующие изменения:
👉 Переход на Kotlin 1.3.50
👉 Новый оператор threadLocal()
👉 Thread local subnoscriptions
👉 Новые операторы
👉 Исправление багов и больше стабильности
👉 Добвлен MPP модуль с примером

Ждем не дождемся стабильного релиза!
"Reaktive: реактивное программирование в Kotlin Multiplatform" - Аркадий Иванов@Badoo

Уже доступно видео с конференции Kotlin/Everywhere Minsk, где один из создателей библиотеки рассказывает более подробно о ней.
#JavaScript #V8

A lighter V8

Для всех кто исполняет JS код у себя в приложения (я это не разделяю, но есть legacy порой). V8 Lite - это проект направленный на сокращения потребления памяти на слабых устройствах. В некоторых оптимизациях в жертву была отдана скорость выполнения.

В статье рассказывается о том, что из себя представляет новый режим V8, какие есть оптимизации, сравнение V8 и V8 Lite и результаты работы.
Всем привет! Сегодня 256-ой день в году, а это значит, что сегодня важный праздник для большинства подписчиков канала - День Программиста. Я желаю вас всего самого наилучшего: чистой архитектуры проектов, быстрой сборки, отсутствия багов, интересного стека технологий, задач и достижения невероятных высот вашими приложениями.

Спасибо всем вам, что вы читаете новости. Очень приятно понимать, что то что ты делаешь кому-то нужно и помогает. Хороших всем выходных!
#Conference

Три в ряд: топ-10 докладов Mobius 2019 Piter

Появились записи докладов с последнего Mobius, который прошёл в мае 2019 в Санкт-Петербурге. Топовым докладом стал рассказ Дениса Неклюдова о архитектуре в Lyft. Также рекомендую обратить внимание на доклад Степана Гончарова об оптимизации Gradle сборки.

К сожалению, мой доклад «Coroutining Android Apps» не попал в топ 10, но вы сможете найти там полезные советы как использовать Coroutine эффективнее и правильнее в своих Android проектах.