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

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#Dagger #LibUpdates

Release Dagger 2.20

Вышла новая версия библиотеки Dagger 2. Нового функционала релиз не принес, но сделал много улучшения:
👉 Увеличена скорость процессинга аннотаций
👉 Улучшение валидация графа
👉 Исправление багов
👉 Удаление deprecated кода
Привет! Я ухожу отпуск, чтобы набраться сил, подготовиться к реализации планов на следующий год и давать вам ещё больше интересного материала, поэтому частота выхода материалов до 2 января будет ниже чем обычно.

Желаю вам всех хороших праздников 🎄 и отдыха !
#ARM #Hardware

“Huawei анонсирует 7-нанометровый процессор и чип для работы с искусственным интеллектом” от Hi-News.ru

Еще 7 лет назад я плевался от качества телефонов Huawei и отговаривал всех их покупать. Не так давно я подарил своей жене P20 Pro и я не видел камеру круче, крутой градиентный корпус, высокая скорость железа, но пока подводит софт. Также Huawei сейчас делает телефоны на своём железе и умудряется неплохо зарабатывать на них! Я могу только сказать что они молодцы, и я жду когда они начнут делать устройства на Android One без кастомизации и можно будет брать 👍

Но сейчас меня компания Huawei поразила новинками - серверный процессор HiSilicon Hi1620 на основе Arm v8a, 7 нм, до 64 ядер, 2.6-3.0 ГГц, Intel Xeon берегись 😁! Помимо этого представили контроллер для SSD с искусственным интеллектом.

Самое печальное, что Intel до сих пор не может освоить 7 нм тех процесс 😔
#Security #BestPractices

Developing Secure Android Apps от Ahmed Abd-Elmeged

Хорошая статья с обзором наиболее популярных уязвимостей в плане безопасности приложение и как их стоит избегать.

В статье вы найдете следующий рекомендации:
👉 В релиз только с Proguard или R8
👉 Доступ к любым API должен осуществляться защищено. Например, используйте API ключ.
👉 Все ключи должны храниться в защищенном месте. Например, можно хранить ключи приложения в нативном коде. Ключи, получаемый динамически, лучше хранить в KeyStore.
👉 Используйте только HTTPS!
👉 Не используйте SharedPreferences для важных данных: ключей, паролей и пр.
👉 Проверяйте что попадает в логи релизной сборки приложения
👉 Важная информация должна храниться только во внутренне хранилище. Внешнее хранилище используйте только для публичных данных, которые вы можете показать кому угодно.
👉 Не передавайте данные в Intent, напр. через Broadcast Receiver. Передача данных между приложениями должна осуществляться через ContentProvider, либо LocalBroadcastManager, для обмена данными в рамках одного приложения.
👉 WebView таит много опасностей внутри себя
👉 Обновляйте ваши зависимости
👉 Доступ к Service и ContentProvider должен осуществляться только при наличие permission
👉 Шифруйте данные на внешнем хранилище, которые вы не можете разместить на внутреннем и валидируйте перед их использованием из приложения.
👉 Старайтесь минимизировать запрос личныз данных GDPR не дремлет!
👉 Рутованные устройства могут менять поведение устройств, поэтому часть функционала на них стоит отключать.Например, вам не будут давать возможности производить оплату или использовать приложения, которые имеют высокие требования к защите.
👉 Запрашивайте как можно меньше permission.
#Security #BestPractices

App Security Best Practices от d.android.com

И добавка - серия статей о базовых советах по безопасности Android приложений от Google !
#Activity #LaunchMode

The Android Launch Mode Animated CheatSheet от Todd Greenberg

Визуализация различного поведения Activity при запуске, если начнете играться с launch mode будет вам в помощь. Все сделано в анимашках и как минимум человек заслуживает 👏 в посте на Medium!
#Library #image

Stfalcon ImageViewer

Библиотека для просмотра изображений во весь экран. Из главных особенностей:
👉 Поддержка жестов
👉 Поддержка Transition
👉 Используйте что вам больше нравится для загрузки картинок: Glide или Picasso или что-то собственное
#Optimizatiion #Performance

Комфортная работа с Android Studio от advance

Современная Android разработка требует хорошего железа:
👉 Intel Core I3/5/7/9 с 4 физическими ядрами и более
👉 16 Гб оперативы
👉 SSD

Не у всех есть возможности приобрести такое железо, а кто-то просто фанат AMD и влюбился в Ryzen процессоры 😍.

В статье вы найдете советы по тому как оптимизировать настройки вашей ОС для более быстрой сборки.

Мне на слабеньком железе помогало следующее:
👉 Отключение индексирования в поиске
👉 Отключить антивируса
👉 Отключение шифрования диска
👉 Отключать параллельную сборку в Gradle и Daemon
👉 Поиграйтесь c настройками выделяемой памяти для Android Studio
👉 Отключайте неиспользуемые плагины в Android Studio
👉 Используйте реальные устройства, а не эмуляторы.
👉 Не открывать миллион вкладок в браузере одновременно

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

Ребята из Google пообещали в Android Studio 3.4 и 3.5 потрудиться над фиксом багов, потреблением памяти и оптимизацией IDE в рамках Project Merbel.
#CodeQuality #AndroidLint

Letting Android Lint fix your code от Niklas Baudy

Android Lint - очень полезная тулза, которая позволяет анализировать ваш код и выводить отчет с описанием найденных в нем проблем и способов фиксов. Я уверен, что все вы с ней сталкивались внутри Android Studio, так как именно с помощью ее подсвечиваются различные ошибки в коде.

Для себя я недавно открыл, что Android Lint может не только находить ошибки, но и исправлять их самостоятельно 😮. Для этого есть специальный Gradle task - lintFix. Авторы собственных правил могут интегрироваться с этим API. В статье вы найдете все подробности.
#Kotlin #VisibilityModifiers

Kotlin for Android Developers: Visibility Modifiers от Pablo Costa

Kotlin старается собрать в себе все лучшие практики от опыта разработчиков в Java и других языков. Например множество принципов из книги "Effective Java" от Joshua Bloch были сразу заложены в архитектуре языка.

Одно из важных изменений в Kotlin - модификаторы видимости, заменившие собой модификаторы доступа из Java (access modifiers).

Для всех кто хочет узнать подробнее о них рекомендую читать статью!
#Kotlin #DSL #Architecture

Creating Kotlin DSLs от Wolfram Rittmeyer

DSL довольно удобный формат для описания конфигурация. Kotlin также дает возможность построения своего DSL, так что вы можете интегрировать его себе в свой код, Я решал с помощью DSL задачи по откажу от Builder: диалоги, NotificationCompat.Builder. В статье вы найдете как сделать свой DSL и стоит ли овчинка выделки.
#BestPractices #Media

The Decalogue of a Pro Media App от Marcin Adamczewski

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

1️⃣ Необходимо поддерживать AudioFocus
2️⃣ Обрабатывайте Broadcast AudioManager.ACTION_AUDIO_BECOMING_NOISY
3️⃣ Android Media Session содержит множество информации которую стоит обрабатывать
4️⃣ Показывайте уведомление о Media. Для этого лучше использовать Notification.MediaStyle, чтобы уведомление выглядело в нативном стиле системы.
5️⃣ Media также показывается и на экране блокировки, поэтому проверяйте ее отображение: фоновую полноэкранную картинку, доступные действия для управления и пр.
6️⃣ Проигрывание медиа часто должно продолжаться и в фоне, поэтому вам стоит использовать Foreground Service для вашего плеера.
7️⃣ Чтобы ваш телефон не выключил процессор когда отключится экран важно использовать WakeLock. Для плееров, воспроизводящих онлайн контент, очень важно не дать отключиться WiFi. Сделать это можно с помощью WifiManager.WifiLock.
8️⃣ Видео всегда должно быть на экране, поэтому не даем ему погаснуть с помощью атрибута android:keepScreenOn=”true” в layout.
9️⃣ AudioTrack имеет ограничения в Android, и не стоит забывать о них!
🔟 Добавляйте поддержку Chromecast для аудио/видео сервисов, это позволит вашим пользователям наслаждаться конвентом на различных устройствах. Смотрите Google Cast SDK
#Service #Background

Pitfalls of a foreground Service lifecycle от Maciej Witowski

Android 8.0 ввел новые правила для приложений - по максимум показывать пользователю активность в фоне и управлению по ее запуску отдавать системе (JobScheduler). Также ужесточением политики было необходимость в этом году всем приложением поддерживать minSdk = Android 8.0.

Одним из больших изменений, которые пришлось делать разработчикам при адаптации своих приложений - уход от обычных Service в сторону Foreground Service либо JobScheduler.

Основные правила при работе с Foreground Service:
1️⃣ Не вызывайте Service.startForeground() слишком рано
2️⃣ Вызывайте Service.stopSelf() после startForeground()
3️⃣ Останавливайте Service только из него самого

Нарушение правил карается падением приложения по принципам работы на Android 8.0+ 😢

Соблюдение этих правил сводиться к тому, что запуск Context.startForegroundService() всегда должен сводиться в обязательному наличию вызова Service.startForeground().
#Flutter

Flutter for Android developers

Хорошая выборка информации по тому как преходить с Android разработки на Flutter. В репозитории вы найдете описание аналогов основных концепций из мира Android во Flutter, также прилагаются популярные паттерны: Dependency Injection, Rx, сетевые запросы, система сборки и пр.
По традиции все подводят итоги в последнем посте года, но мой канал совсем ещё маленький и только начинает свой рост. Одно я знаю наверняка - я хочу выразить всем вам спасибо за поддержку в развитие этого канала. Ваш интерес и положительные отзывы стимулируют делать больше и лучше.

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

Вам же хочу пожелать в следующем году быстрого профессионального роста, легкой модуляризации ваших проектов, интересных приложений
#Gradle

Gradle 5.1 Release Notes

Вышла новая версия Gradle 5.1. В этом обновление сделано следующее:
👉 Задание репозитория для зависимостей. Теперь с помощью регулярного выражения можно задать какие зависимости можно брать из репозитория. Подробнее смотреть здесь.
👉 Configuration avoidance для Task-ов теперь стабильно. Теперь все гайды будут основываться на этом API. Подробнее читайте здесь.
👉 Gradle Kotlin DSL 1.1. Обновления в апдейтe DSL.
👉 Авторы Gradle плагинов обратите внимание на улучшения в API.
👉 Gradle Tooling API, которое используется Android Studio для интеграции с Gradle, теперь лучше сможет отображать прогресс выполнения задач. Ждем поддержки этого в Android Studio 3.4 😀
👉 Прочие мелкие улучшения
👉 Исправлено 30 багов
#UI #UX

10 Android UI/UX Tips & Tricks от Gaurav

Советы по UI/UX для вашего приложения:
1️⃣ Не забывайте о эффект при нажатии на элементы UI Используйте ?android:attr:selectableItemBackground для получения Drawable из темы для фона кнопки, которая корректно показывает нажатие.

2️⃣ Используйте стандартные компоненты View и стилизацию их из темы
Этот позволяет всем вашим виджетам выглядеть консистентно платформе. Для кастомизации цветов используйте tint.

3️⃣ Тень под компонентами

4️⃣ Используйте tools:parentTag в <merge>
Это позволяет LayoutEditor понимать как отображать ваш UI в предпросмотре.

5️⃣ Отложенные парсинг layout XML с помощью ViewStub
Если часть вашего UI показывается опционально, то не стоит ее парсить сразу и делать, visibility="gone". Используйте ViewStub. Подробнее модно почитать здесь.

6️⃣ Старайтесь не использовать фиксированные разрешения
Фиксированные разрешения должны использоваться только в редких случаях когда вы знаете что размер должен быть строго такой и не может быть гибким. Например, ImageView с аватаром пользователя имеет размер 48x48dp. Просите дизайнера делать дизайн под большие и маленькие устройства, либо комментировать как должны адаптироваться элементы.

7️⃣ Размер текста: dp или sp?
Извечная дилемма. Я выбираю sp так как это делает приложение более удобным, потому что позволяет менять размер текста пользователем и приятно работать.

8️⃣ Используйте анимации при переходах
Наличие анимации позволяет пользователю понимать какой происходит переход и упрощает понимание работы приложения. Современный Android имеет множество средств и упрощений для работы с анимацией. Ждем Navigation и CoordinatorLayout, чтобы упростить это еще больше!

Также рекомендую освежать в памяти и почитывать гайды по Material Design. В них можно найти много полезного и вдохновится идеями для вашего приложения.