Автор решил переосмыслить понятие хорошей архитектуры для мобильных приложений. В основу легли: конечные автоматы, unidirectional data flow, концепции из redux, абстракции над многопоточностью и тонкие View. Что из этого вышло — в статье.
https://doridori.github.io//Android-Architecture-Runtime/
https://doridori.github.io//Android-Architecture-Runtime/
doridori.github.io
Android Architecture: Runtime Centric Thinking
For at least 7 years I have been playing with “alternative” Android architectures in a professional context. This blog post is a brief overview to an architecture I have been using for the last two production projects for which I was Android Lead and outlines…
Системный подход к валидации пользовательского ввода, который позволит легко переиспользовать код для различных сценариев.
https://medium.com/huawei-developers/how-to-easily-validate-user-inputs-on-android-80c8e5744de7
https://medium.com/huawei-developers/how-to-easily-validate-user-inputs-on-android-80c8e5744de7
Medium
How to Easily Validate User Inputs on Android?
Introduction
Инструкция по приготовлению современного проекта с многомодульной архитектурой и Jetpack Compose. Отдельно оговаривается как реализовать навигацию и dependency injection между модулями.
https://proandroiddev.com/navigating-through-multi-module-jetpack-compose-applications-6c9a31fa12b6
https://proandroiddev.com/navigating-through-multi-module-jetpack-compose-applications-6c9a31fa12b6
Medium
Navigating through multi-module Jetpack Compose applications
Designing a scalable architecture for multi-module Jetpack Compose apps
ManyChat ищет в команду крепкого Android-разработчика
ManyChat — это платформа для автоматизации маркетинга в Instagram, Facebook Messenger и WhatsApp, которая помогает 1+ млн бизнесов строить осмысленную коммуникацию с клиентами.
Сейчас ManyChat активно развивает мобильное направление, и ищет человека, который возьмёт на себя амбициозную задачу: реализовать визуальный конструктор автоматизаций чатов.
Пишите @SashaKislinskaya, если вы:
- Знаете и используете Kotlin (плюсом будет oroutines, flow, KMM);
- Имеете опыт работы со следующими технологиями/инструментами/компонентами:
- Android: Activity, Fragment, RecyclerView
- Jetpack: navigation, room, datastore, compose
- REST/WebSocket: Retrofit/OkHttp
- JSON: Moshi
- DI: Dagger2/Hilt
- Паттерны MV**
- Знакомы с алгоритмами и структурами данных из Computer Science;
- Способны самостоятельно обучаться;
- Умеете чётко аргументировать свои решения.
Подробнее о вакансии можно узнать здесь
ManyChat — это платформа для автоматизации маркетинга в Instagram, Facebook Messenger и WhatsApp, которая помогает 1+ млн бизнесов строить осмысленную коммуникацию с клиентами.
Сейчас ManyChat активно развивает мобильное направление, и ищет человека, который возьмёт на себя амбициозную задачу: реализовать визуальный конструктор автоматизаций чатов.
Пишите @SashaKislinskaya, если вы:
- Знаете и используете Kotlin (плюсом будет oroutines, flow, KMM);
- Имеете опыт работы со следующими технологиями/инструментами/компонентами:
- Android: Activity, Fragment, RecyclerView
- Jetpack: navigation, room, datastore, compose
- REST/WebSocket: Retrofit/OkHttp
- JSON: Moshi
- DI: Dagger2/Hilt
- Паттерны MV**
- Знакомы с алгоритмами и структурами данных из Computer Science;
- Способны самостоятельно обучаться;
- Умеете чётко аргументировать свои решения.
Подробнее о вакансии можно узнать здесь
manychat.com
Manychat Careers | We are hiring!
See all open positions at Manychat and find your next career move. Let's transform the way brands connect with customers!
Серия статей, посвященная архитектурной секции на собеседованиях: базовый набор вопросов, дополнительные аспекты, на которые стоит обратить внимание при проектировании систем, а также пример решения одной из возможных задач.
https://proandroiddev.com/mobile-system-design-exercise-file-downloader-library-ccb8ac0e5be4
https://proandroiddev.com/mobile-system-design-exercise-file-downloader-library-ccb8ac0e5be4
Medium
Mobile System Design Exercise: File Downloader Library
The list of posts in this series:
Автор решил протестировать как UI библиотеки влияют на время сборки проектов. В экспериментах приняли участие: Jetpack Compose, чистые View, ViewBinding и DataBinding. Последний вариант ожидаемо показал худший результат, а вот с остальными не всё так однозначно.
https://chao2zhang.medium.com/fairly-evaluating-the-impact-of-different-android-ui-libraries-on-gradle-build-6301de5e0e60
https://chao2zhang.medium.com/fairly-evaluating-the-impact-of-different-android-ui-libraries-on-gradle-build-6301de5e0e60
Medium
Fairly evaluating the impact of different Android UI libraries on Gradle build
For an Android application maintained by a large group of developers, build time is one of the most critical developer ergonomic metrics…
В новой версии библиотеки AppCompat 1.4 улучшится поддержка emoji, добавятся новые иконки и возможность менять тон кожи. Это должно помочь приложениям соответствовать новым стандартам emoji в Google Play для Android 12.
https://medium.com/androiddevelopers/support-modern-emoji-99f6dea8e57f
https://medium.com/androiddevelopers/support-modern-emoji-99f6dea8e57f
Medium
Support Modern Emoji
Emojis! They are everywhere! Since their release they have become a huge part of our language. They are a way to efficiently express…
Вышел Kotlin 1.6.0, поэтому закиньте себе в спринт новую задачу – обновить версию компилятора в проекте!
https://blog.jetbrains.com/kotlin/2021/11/kotlin-1-6-0-is-released/
https://blog.jetbrains.com/kotlin/2021/11/kotlin-1-6-0-is-released/
The JetBrains Blog
Kotlin 1.6.0 Released | The Kotlin Blog
Kotlin 1.6.0 is now officially released with Stable exhaustive whens, Kover, and new memory manager for Kotlin/Native!
Delivery Club ищет Android-разработчиков. Получите оффер — и бонус в две зарплаты
Сколько времени нужно, чтобы найти работу? Если новый работодатель – Delivery Club, то всего два дня. В качестве бонуса вы получите две зарплаты при получении оффера в выходные.
Как принять участие?
Регистрируйтесь на Weekend Offer для Android-разработчиков, который пройдет 27-28 ноября. Всего два собеседования – и оффер у вас в кармане.
Кого ждут?
Android-разработчиков уровней middle и senior.
Что предлагают?
- Бонус в две зарплаты за оффер в выходные.
- Работу в команде сильнейших IT-специалистов.
- Современный стек технологий.
- Возможность влиять на бизнес и российский фудтех-рынок.
Где зарегистрироваться?
Регистрация открыта до 25 ноября на сайте: http://tech.delivery-club.ru/mobileweekend
Сколько времени нужно, чтобы найти работу? Если новый работодатель – Delivery Club, то всего два дня. В качестве бонуса вы получите две зарплаты при получении оффера в выходные.
Как принять участие?
Регистрируйтесь на Weekend Offer для Android-разработчиков, который пройдет 27-28 ноября. Всего два собеседования – и оффер у вас в кармане.
Кого ждут?
Android-разработчиков уровней middle и senior.
Что предлагают?
- Бонус в две зарплаты за оффер в выходные.
- Работу в команде сильнейших IT-специалистов.
- Современный стек технологий.
- Возможность влиять на бизнес и российский фудтех-рынок.
Где зарегистрироваться?
Регистрация открыта до 25 ноября на сайте: http://tech.delivery-club.ru/mobileweekend
Детальный гайд по внутренностям корутин, который поможет новичкам и не только понять как всё устроено: как реализованы приостановка и возобновление работы корутины, переключение потоков и базовые компоненты.
https://doordash.engineering/2021/11/09/the-beginners-guide-to-kotlin-coroutine-internals/
https://doordash.engineering/2021/11/09/the-beginners-guide-to-kotlin-coroutine-internals/
DoorDash Engineering Blog
The Beginner’s Guide to Kotlin Coroutine Internals
When our team started using Kotlin for our backend development we created this guide so our engineers could use coroutines over Java threads.
Как и в других UI фреймворках, рендер в Jetpack Compose проходит в несколько стадий — composition, layout, draw. Разбираемся, что происходит на каждом этапе, а также как мы можем писать наш код оптимальнее.
https://developer.android.com/jetpack/compose/phases
https://developer.android.com/jetpack/compose/phases
Подборка UI нововведений, которые ждут нас в Android 12L: обновленные системные приложения и элементы интерфейса, панель с быстрым доступом к приложениям, новые окна уведомлений и другие изменения.
https://www.xda-developers.com/android-12l-new-features-ui-changes/
https://www.xda-developers.com/android-12l-new-features-ui-changes/
XDA Developers
Here are all the new features and UI changes in Android 12L
Android 12L is expected to launch in the first half of 2022, and here are all of the new features and UI changes that we expect to see.
Таблица совместимости версий Kotlin между собой. Поможет понять получится ли использовать библиотеку с Kotlin 1.6 в проектах с более ранней версией, а также на какие параметры конфигурации стоит обратить внимание для лучшей совместимости.
https://blog.mbonnin.net/kotlin-compatibility-quicksheet
https://blog.mbonnin.net/kotlin-compatibility-quicksheet
Martin Bonnin's Blog
Kotlin compatibility QuickSheet
Edit: Blog post updated for Kotlin 1.7, see the last paragraph for details.
Kotlin 1.6 has just been released 🎉 (blog post). This is great news for everyone in the Kotlin ecosystem. As with every feature release, there are new features, new deprec...
Kotlin 1.6 has just been released 🎉 (blog post). This is great news for everyone in the Kotlin ecosystem. As with every feature release, there are new features, new deprec...
На Android 12 в список событий, вызывающих пересоздание Activity, добавилась смена обоев на рабочем столе.
https://commonsware.com/blog/2021/10/31/android-12-wallpaper-changes-recreate-activities.html
https://commonsware.com/blog/2021/10/31/android-12-wallpaper-changes-recreate-activities.html
CommonsWare: Android App Development Books
Android 12 Wallpaper Changes Recreate Your Activities
Android app development books
Продолжение серии статей про архитектурную секцию собеседований. В этой части разбирают задачу по проектированию библиотеки для кеширования данных.
https://proandroiddev.com/mobile-system-design-exercise-caching-library-8b3b5f1433cd
https://proandroiddev.com/mobile-system-design-exercise-caching-library-8b3b5f1433cd
Medium
Mobile System Design Exercise: Caching Library
The list of posts in this series:
Пробуем inline классы в популярных задачах Android разработки: работа с сетью, работа с базой данных и передача данных между экранами. Автор пришел к выводу, что из-за различных ограничений спектр их применения не так широк, как кажется на первый взгляд.
https://proandroiddev.com/kotlin-inline-classes-in-an-android-world-7147bb9b8a22
https://proandroiddev.com/kotlin-inline-classes-in-an-android-world-7147bb9b8a22
Medium
Kotlin Inline Classes in an Android World
The Kotlin Inline (Value) class is a relatively new feature of the Kotlin language as it recently got a stable release in Kotlin 1.5. I…
Подборка докладов с Android Dev Summit, рекомендуемых к просмотру: обновления Jetpack библиотек, правильная работа с Flow на уровне UI и нововведения Android Studio для Compose.
https://android-developers.googleblog.com/2021/11/ads21-modern-android-development.html
https://android-developers.googleblog.com/2021/11/ads21-modern-android-development.html
Android Developers Blog
#AndroidDevSummit ‘21: 3 things to know for Modern Android Development
Posted by Florina Muntenescu, Developer Relations Engineer From updates to Jetpack libraries, more guidance on using Kotlin cor...
Инструкция по оптимизации затрат на CI сервера для сборок Kotlin Multiplatform проектов. Основная идея — использовать macOS сервера только для сборки iOS артефактов, а для всего остального — Linux.
https://proandroiddev.com/optimising-ci-build-times-of-a-kotlin-multiplatform-project-2a430055f383
https://proandroiddev.com/optimising-ci-build-times-of-a-kotlin-multiplatform-project-2a430055f383
Medium
Optimising CI build times of a Kotlin Multiplatform project
The article describes how we can reduce costs of using CI and improve build times when building and publishing Kotlin Multiplatform.
Если вы используете ForegroundService, то возможно сталкивались в логах с крашем из-за метода
https://proandroiddev.com/when-your-app-makes-android-foreground-services-misbehave-8dbcc57dd99c
startForeground
, который не был вызван вовремя. В статье вы узнаете, что может вызвать такую ошибку и как её исправить.https://proandroiddev.com/when-your-app-makes-android-foreground-services-misbehave-8dbcc57dd99c
Medium
The “misbehaving” foreground service in Android
How blocking the main thread can lead to application crashes.
Заключительная статья из серии об управлении состоянием в Jetpack Compose. Небольшое напоминание о том, почему изменяемые объекты внутри MutableState или MutableStateFlow — плохой паттерн.
https://dev.to/zachklipp/two-mutables-dont-make-a-right-2kgp
https://dev.to/zachklipp/two-mutables-dont-make-a-right-2kgp
DEV Community
Two mutables don’t make a right
This post has moved to blog.zachklipp.com.