#GooglePlay
История одной блокировки и разблокировки в Google Play
Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
История одной блокировки и разблокировки в Google Play
Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
#Testing
Using Fakes To Test Reactive Flows
Довольно часто для создания зависимостей в Unit тестах используются mocking-фреймворки. Несмотря на простоту и быстроту имплементации такого решения, иногда можно столкнуться с его ограничениями, например, при тестировании реактивных потоков данных.
В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
Using Fakes To Test Reactive Flows
Довольно часто для создания зависимостей в Unit тестах используются mocking-фреймворки. Несмотря на простоту и быстроту имплементации такого решения, иногда можно столкнуться с его ограничениями, например, при тестировании реактивных потоков данных.
В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
#MotionLayout
MotionLayout: Visibility
Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.
Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
MotionLayout: Visibility
Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.
Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
Styling Android
MotionLayout: Visibility
MotionLayout is a wonderful tool for creating complex layout animations. However it does have some foibles which are easy enough to work around, but can initially be baffling. In this post we'll look
#Architecture #LiveStream
Все тайны MVI
Когда: 18 июня, ЧТ, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Обсуждаем паттерн MVI от начала и до конца:
👉 в чем отличие
👉 преимущества
👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.
Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
Все тайны MVI
Когда: 18 июня, ЧТ, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Обсуждаем паттерн MVI от начала и до конца:
👉 в чем отличие
👉 преимущества
👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.
Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
#JetpackCompose
Compose Academy
Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).
На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
Compose Academy
Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).
На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
Compose Academy
Practical Jetpack Compose
Practical Jetpack Compose - learn Jetpack Compose with the book, app and screencasts
#R8 #Proguard
How to break your Android App with ProGuard / R8
Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.
Однако не аккуратно настроенная конфигурация может приводить к неявным ошибкам. Нужно следить как за собственными настройками, так и за настройками в подключаемых библиотеках.
Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы
Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
How to break your Android App with ProGuard / R8
Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.
Однако не аккуратно настроенная конфигурация может приводить к неявным ошибкам. Нужно следить как за собственными настройками, так и за настройками в подключаемых библиотеках.
Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы
wait
, nofify
и nofifyAll
класса Object
были неявно помечены как не имеющие side-эффектов и были удалены при оптимизации.Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
Medium
How to break your Android App with proguard / R8
I recently updated the android gradle plugin to 4.0.0. While developing, everything went smoothly and at some point I was ready to cut a…
#Dagger #Hilt
Dependency Injection on Android with Hilt
Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте
Внимание: библиотека еще в альфа стадии
Dependency Injection on Android with Hilt
Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте
Внимание: библиотека еще в альфа стадии
Medium
Dependency injection on Android with Hilt
Jetpack’s recommended library for DI
hilt-annotations.pdf
56.4 KB
Основные аннотации Hilt и их использование
#FirebaseML #MLKit #MachineLearning
Машинное обучение для мобильных разработчиков вместе с Firebase ML
Машинное обучение становится все более востребованным. Google прилагает много усилий для того, чтобы развивать эту область. Также стремится предоставить разработчикам любого уровня познаний в машинном обучении возможность его использовать. В том числе и в мобильных приложениях.
Созданный ранее для этих целей проект ML Kit for Firebase, разделили на два отдельных продукта и обновили ML Kit SDK.
В статье подробнее описано для чего предназначен Firebase ML и ML Kit
Машинное обучение для мобильных разработчиков вместе с Firebase ML
Машинное обучение становится все более востребованным. Google прилагает много усилий для того, чтобы развивать эту область. Также стремится предоставить разработчикам любого уровня познаний в машинном обучении возможность его использовать. В том числе и в мобильных приложениях.
Созданный ранее для этих целей проект ML Kit for Firebase, разделили на два отдельных продукта и обновили ML Kit SDK.
В статье подробнее описано для чего предназначен Firebase ML и ML Kit
Telegraph
Машинное обучение для мобильных разработчиков вместе с Firebase ML
Машинное обучение предоставляет много возможностей и каждый день становится все более востребованными, в том числе и для мобильных приложений. Благодаря TensorFlow Lite использование моделей машинного обучения в мобильных приложениях стало проще. Однако проектирование…
#Android11
New Android R Important Changes
Достаточно много материалов вышло в последние дни о будущей версии Android, и еще не меньше выйдет. Ребята в своей статье рассматривают достаточно интересные фишки:
👉 Одновременное использование нескольких камер устройства, например даже фронтальную и основную одновременно (хотя такая фишка у меня уже была на Nokia 7 Plus)
👉 Замена API Wi-Fi сканирования
New Android R Important Changes
Достаточно много материалов вышло в последние дни о будущей версии Android, и еще не меньше выйдет. Ребята в своей статье рассматривают достаточно интересные фишки:
👉 Одновременное использование нескольких камер устройства, например даже фронтальную и основную одновременно (хотя такая фишка у меня уже была на Nokia 7 Plus)
👉 Замена API Wi-Fi сканирования
Medium
New Android R Important Changes
Review of the new Android R features and changes
#MemoryLeak
Practical Guide To Solve OutOfMemoryError in Android Application
Утечки памяти и, как следствие, OutOfMemoryError - больное место как для начинающего, так и для опытного Android разработчика. Основная проблема состоит в том что подобного рода ошибки не так очевидны и их сложно сразу отследить. Наиболее частые причины возникновения:
👉 Использование static
👉 Зарегистрированные, но не актуальные Listener'ы
👉 Использование
👉 Не статичные вложенные классы
В статье подробно рассказывается обо всех этих причинах, приводятся примеры подобных утечек и рассказывается как их избегать.
Practical Guide To Solve OutOfMemoryError in Android Application
Утечки памяти и, как следствие, OutOfMemoryError - больное место как для начинающего, так и для опытного Android разработчика. Основная проблема состоит в том что подобного рода ошибки не так очевидны и их сложно сразу отследить. Наиболее частые причины возникновения:
👉 Использование static
Context
, View
или Activity
👉 Зарегистрированные, но не актуальные Listener'ы
👉 Использование
getContext()
вместо getApplicationContext()
там где это необходимо👉 Не статичные вложенные классы
В статье подробно рассказывается обо всех этих причинах, приводятся примеры подобных утечек и рассказывается как их избегать.
Medium
Practical Guide To Solve OutOfMemoryError in Android Application
In this blog, we will learn how to solve OutOfMemoryError in Android application. We will look at the reasons responsible for OOM.
#JetpackCompose
Why do we need Jetpack Compose?
Приложения для Android успешно разрабатываются уже больше 10 лет, для чего же нам понадобился новый UI-фреймворк?
в статье рассматриваются недостатки имеющегося подхода:
👉 инструментарий 10-летней давности, когда на телефонах решались совсем другие задачи
👉 иерархия наследования с базовым классом View c десятками тысяч строк кода
👉 является частью ОС, что делает невозможным исправление ошибок без обновления прошивок
👉 нет поддержки Material Design, представленного позже
а также преимущества Jetpack Compose:
🔥 современные язык, парадигмы и инструменты. Для описания UI используется Kotlin, подходы взяты из таких UI-фреймворков как React и Flutter, полная поддержка со стороны Android Studio
🔥 единый источник правды. Больше ваш UI не будет отображать неактуальное состояние
🔥 команда разработки уделила особое внимание производительности фреймворка
🔥 поддержка Material Design из коробки
🔥 совместимость с имеющейся UI-иерархией
Why do we need Jetpack Compose?
Приложения для Android успешно разрабатываются уже больше 10 лет, для чего же нам понадобился новый UI-фреймворк?
в статье рассматриваются недостатки имеющегося подхода:
👉 инструментарий 10-летней давности, когда на телефонах решались совсем другие задачи
👉 иерархия наследования с базовым классом View c десятками тысяч строк кода
👉 является частью ОС, что делает невозможным исправление ошибок без обновления прошивок
👉 нет поддержки Material Design, представленного позже
а также преимущества Jetpack Compose:
🔥 современные язык, парадигмы и инструменты. Для описания UI используется Kotlin, подходы взяты из таких UI-фреймворков как React и Flutter, полная поддержка со стороны Android Studio
🔥 единый источник правды. Больше ваш UI не будет отображать неактуальное состояние
🔥 команда разработки уделила особое внимание производительности фреймворка
🔥 поддержка Material Design из коробки
🔥 совместимость с имеющейся UI-иерархией
Medium
Why do we need Jetpack Compose?
There has been much excitement in the Android community since the announcement of Jetpack Compose at Google I/O 2019, with a vast number…
#Розыгрыш
Разыграли билет на онлайн-конференция Podlodka Android Crew. Поздравляю победителя @ValeryBoretsky
Для тех кто не попал, то можете купить билет на сайте. Уже доступна расписание и всю следующую неделю будут говорить об архитектуре приложений. На сайте уже доступно расписание сессий.
Видео запись с розыгрышем
Разыграли билет на онлайн-конференция Podlodka Android Crew. Поздравляю победителя @ValeryBoretsky
Для тех кто не попал, то можете купить билет на сайте. Уже доступна расписание и всю следующую неделю будут говорить об архитектуре приложений. На сайте уже доступно расписание сессий.
Видео запись с розыгрышем
#Android11 #Jetpack #UI
Screens - Large, Small and Foldable
Продолжительность 16 минут
Современная Android разработка подразумевает поддержку устройств с разными типами и размерами экранов, а также режимами отображения окон: мобилки, планшеты (они живы?), десктопы (Chrome OS), складываемые устройства а также многооконность
В видео рассказывается:
👉 Почему верстка должна быть адаптивной
👉 Хорошие практики для расположения элементов
👉 Jetpack Window Manager
👉 Android Compatibility Definition Document - документ с требованиями для Android устройств, где можно найти информацию о возможных конфигурациях, включая размеры экрана, окон в разных режимах и т.д.
👉 Возможность задать свои ограничения для конфигурации окон
👉 Эмуляторы, на которых можно тестировать разные конфигурации
👉 Deprecated APIs по работе с
👉 Новые APIs, в том числе новый класс WindowMetrics
Screens - Large, Small and Foldable
Продолжительность 16 минут
Современная Android разработка подразумевает поддержку устройств с разными типами и размерами экранов, а также режимами отображения окон: мобилки, планшеты (они живы?), десктопы (Chrome OS), складываемые устройства а также многооконность
В видео рассказывается:
👉 Почему верстка должна быть адаптивной
👉 Хорошие практики для расположения элементов
👉 Jetpack Window Manager
👉 Android Compatibility Definition Document - документ с требованиями для Android устройств, где можно найти информацию о возможных конфигурациях, включая размеры экрана, окон в разных режимах и т.д.
👉 Возможность задать свои ограничения для конфигурации окон
👉 Эмуляторы, на которых можно тестировать разные конфигурации
👉 Deprecated APIs по работе с
Display
и WindowManager
👉 Новые APIs, в том числе новый класс WindowMetrics
YouTube
Screens - large, small and foldable
Learn about different screen configurations and window features supported by Android, explore design challenges with new and existing products, and take a look at some of the latest tools and APIs in the platform and Jetpack.
Resource:
Blog → https://goo.gle/window…
Resource:
Blog → https://goo.gle/window…
#Dagger
В Dagger появится Assisted Inject
Для тех кто не знает - это возможность добавлять параметры в конструкторы или методы, которых нет в графе, и предоставлять их через фабрики.
Подобную реализацию уже сделал Jake Wharton. AssistedInject on Square
В Dagger появится Assisted Inject
Для тех кто не знает - это возможность добавлять параметры в конструкторы или методы, которых нет в графе, и предоставлять их через фабрики.
Подобную реализацию уже сделал Jake Wharton. AssistedInject on Square
Twitter
Manuel Vivo
Got a lot of questions about AssistedInject and Hilt working together. AssistedInject will be added to Dagger and Hilt in the future so expect a good support there. Meanwhile, you can still use its generated code in Hilt. Here's an example of how you'd do…
#Meetup #Online #Android11
Android 11: что нового?
Продолжительность: ~ 2 часа
Завтра, 20 июня в 12:00(GMT+3) пройдет митап по новинкам в Android 11, совместно организованный GDG группами Брянска и Калуги. Вас ждет 3 доклада:
👉 Изменения в Privacy / Федор Цымбал
👉 Новинки WindowInsets и анимации клавиатуры / Иван Баранов
👉 Обзор Notification Bubbles / Инесса Бухонова
Зарегистрироваться нужно 👉 тут
Android 11: что нового?
Продолжительность: ~ 2 часа
Завтра, 20 июня в 12:00(GMT+3) пройдет митап по новинкам в Android 11, совместно организованный GDG группами Брянска и Калуги. Вас ждет 3 доклада:
👉 Изменения в Privacy / Федор Цымбал
👉 Новинки WindowInsets и анимации клавиатуры / Иван Баранов
👉 Обзор Notification Bubbles / Инесса Бухонова
Зарегистрироваться нужно 👉 тут
#UI #Framework
Litho: лучшие практики для создания эффективного UI в Android
Многие слышали о Jetpack Compose, но не все знают, что уже давно существует конкурент от Facebook под названием Litho, который представляет собой фрэймворк, позволяющий создавать UI в декларативном стиле в коде. Причем его уже можно использовать в Production!
Основные преимущества этого фрэймворка:
👉 Все вычисления происходят вне UI потока в него передаётся лишь Draw
👉 Значительный прирост в производительности при отрисовке UI
👉 Интерфейс более плоский, потому что сокращается уровень вложенности Layout'ов
При этом существует и ряд недостатков:
⛔ Плохая интеграция с Android Studio
⛔ Нет поддержки в UI Preview
⛔ Интеграция с Kotlin всё ещё в разработке
Если же достоинства превосходят недостатки, то для вас статья от Сергея Рябова, разработчика Litho, в ней он постарался раскрыть большинство аспектов фреймворка.
Litho: лучшие практики для создания эффективного UI в Android
Многие слышали о Jetpack Compose, но не все знают, что уже давно существует конкурент от Facebook под названием Litho, который представляет собой фрэймворк, позволяющий создавать UI в декларативном стиле в коде. Причем его уже можно использовать в Production!
Основные преимущества этого фрэймворка:
👉 Все вычисления происходят вне UI потока в него передаётся лишь Draw
👉 Значительный прирост в производительности при отрисовке UI
👉 Интерфейс более плоский, потому что сокращается уровень вложенности Layout'ов
При этом существует и ряд недостатков:
⛔ Плохая интеграция с Android Studio
⛔ Нет поддержки в UI Preview
⛔ Интеграция с Kotlin всё ещё в разработке
Если же достоинства превосходят недостатки, то для вас статья от Сергея Рябова, разработчика Litho, в ней он постарался раскрыть большинство аспектов фреймворка.
Хабр
Litho: лучшие практики для создания эффективного UI в Android
Litho — UI-фреймворк от Facebook, который отвечает за быстрый рендеринг тяжелого UI в топовых приложения с миллиардами загрузок. Как его использовать, что происходит под капотом, и действительно...
#Conference #Online
DevParty Russia!
В субботу, 27 июня, ждём на 15-часовую бесплатную онлайн-конференцию DevParty от GDG Russia. Все начнется в 5 утра по московскому времени, встретим рассвет в Владивостоке, а завершим день и проводим закат в Калининграде. И все это в прямой трансляции!
В программе вас ждут:
- 3 потока (Mobile, Web, Cloud)
- 45 спикеров из более чем 10 стран
- 33 комьюнити GDG со всей России
- GDE по всем направлениям
В мобильном треке вас ждет 15 докладов от спикеров из Lyft, Avito, JetBrains, EPAM Systems, Replika.ai, Тинькофф, MERA, Surf и других компаний.
DevParty Russia!
В субботу, 27 июня, ждём на 15-часовую бесплатную онлайн-конференцию DevParty от GDG Russia. Все начнется в 5 утра по московскому времени, встретим рассвет в Владивостоке, а завершим день и проводим закат в Калининграде. И все это в прямой трансляции!
В программе вас ждут:
- 3 потока (Mobile, Web, Cloud)
- 45 спикеров из более чем 10 стран
- 33 комьюнити GDG со всей России
- GDE по всем направлениям
В мобильном треке вас ждет 15 докладов от спикеров из Lyft, Avito, JetBrains, EPAM Systems, Replika.ai, Тинькофф, MERA, Surf и других компаний.
На DevParty Russia будет выступать автор канала Кирилл Розов с докладом "Все ли вы знаете об Android Jetpack?" в котором расскажет о интересных API, которое вы могли упустить, а также о будущих версиях и новинках, представленных вместе с Android 11 Beta 1
#BestPractices #CodeQuality
10 правил NASA для написания критически важного кода
У разработчиков в NASA непростое ПО, оно реально отправляет в космос! И поэтому к нему предъявляются наивысшие требования по качеству и безопасности. Подробнее об этих правилах в статье:
10 правил NASA для написания критически важного кода
У разработчиков в NASA непростое ПО, оно реально отправляет в космос! И поэтому к нему предъявляются наивысшие требования по качеству и безопасности. Подробнее об этих правилах в статье:
AppTractor
10 правил NASA для написания критически важного кода
У разработчиков NASA одна из самых сложных работ в мире программирования. Они пишут код и разрабатывают критически важные приложения, в первую очередь заботясь о безопасности и надежности.