Size: a a a

Android Broadcast

2018 December 21
Android Broadcast
#Kotlin #Dart #Flutter

"From Kotlin to Dart — an Android developer’s perspective" от Łukasz Wasylkowski|Tooploox

Flutter создает все больше хайпа в мире мобильной разработки, но один из самых популярных вопросов в сообществе - "Почему Dart?". В ответе на это даже есть целый развернутый ответ на FAQ Flutter. С другой стороны, я как Android разработчик уже давно наслаждаюсь всеми возможностями Kotlin и отсутсвие какого-то функционала в Dart меня смутило, например extension функций, null safety, sealed классов и прочего. В статье вы найдете сравнение Dart и Kotlin.

Я очень надеюсь, что появится поддержка Kotlin/Dart, JetBrains услышьте призыв!
источник
Android Broadcast
#Kotlin #Coroutines #LibUpdates

KotlinX.Coroutines 1.1.0 Released

Вышла новая версия библиотеки корутин. Апдейт направлен на улучшения дебага, производительности и стабильности корутин, а именно было сделано следующее:
👉 Читабельные стектрейсы корутин 🎉 - используйте системное свойство kotlinx.coroutines.debug
👉 Новый модуль kotlinx-coroutines-debug 🎉 - теперь можно получить дамп работы корутины
👉 Новый модуль kotlinx-coroutines-test 🎉 - тестировать становится удобнее, появилась функция Dispatchers.setMain() для подмены Dispatchers.Main в тестах
👉 Dispatchers.Default теперь потребляет меньше CPU ресурсов в JVM
👉 MainScope() и CoroutineScope.cancel() позволят вам в 1 строку создавать CoroutineContext для корутин
👉 Корутины теперь собираются в progressive режиме
👉 Множество других улучшений, исправлений багов и обновлений в документации
источник
2018 December 22
Android Broadcast
#Dagger #LibUpdates

Release Dagger 2.20

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

Желаю вам всех хороших праздников 🎄 и отдыха !
источник
Android Broadcast
источник
2018 December 24
Android Broadcast
источник
Android Broadcast
#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 нм тех процесс 😔
источник
2018 December 28
Android Broadcast
#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.
источник
Android Broadcast
#Security #BestPractices

App Security Best Practices от d.android.com

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

The Android Launch Mode Animated CheatSheet от Todd Greenberg

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

Stfalcon ImageViewer

Библиотека для просмотра изображений во весь экран. Из главных особенностей:
👉 Поддержка жестов
👉 Поддержка Transition
👉 Используйте что вам больше нравится для загрузки картинок: Glide или Picasso или что-то собственное
источник
Android Broadcast
#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.
источник
2018 December 29
Android Broadcast
#CodeQuality #AndroidLint

Letting Android Lint fix your code от Niklas Baudy

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

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

Kotlin for Android Developers: Visibility Modifiers от Pablo Costa

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

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

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

Creating Kotlin DSLs от Wolfram Rittmeyer

DSL довольно удобный формат для описания конфигурация. Kotlin также дает возможность построения своего DSL, так что вы можете интегрировать его себе в свой код, Я решал с помощью DSL задачи по откажу от Builder: диалоги, NotificationCompat.Builder. В статье вы найдете как сделать свой DSL и стоит ли овчинка выделки.
источник
Android Broadcast
#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
источник
Android Broadcast
#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().
источник
Android Broadcast
#Flutter

Flutter for Android developers

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

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

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