How to заботать android-разработку
Периодически можно услышать мнение, что нативная разработка сдаёт позиции, которые перехватывают flutter и real native. Но, во-первых, реальность такова, что для приложений с критическими требованиями к производительности и безопасности (например, в финтехе) нативная разработка - всё ещё мастхев. А, во-вторых, стоит упомянуть быстрое развитие технологии Kotlin Multiplatform, позволяющей разрабатывать фичи для обеих платформ, используя всё тот же котлин и фреймворк Jetpack Compose.
Итак, переходим к роадмапу:
KotlinЕсли вы уже знакомы с экосистемой JVM, то переход на котлин не займёт много времени. Разберитесь с null-safety, классами данных, обработкой исключений, синтаксическим сахаром вроде функций-расширений, в общем, теми концепциями языка, которые делают его удобным и современным. Вопросы на эти темы частенько встречаются на собеседованиях, в том числе в контексте различий между джавой и котлином.
Основы androidПосле котлина вам нужно разобраться, собственно, с самим андроидом и освоить среду разработки Android Studio, начав реализовывать простое приложение. На этом этапе важно понимание компонентов Activity и Fragment, которые позволяют управлять экранами приложений, и их жизненных циклов.
Далее учимся создавать интерфейс с помощью XML. Да, потом вы перейдёте на Compose, но знание XML-разметки необходимо из-за огромного количества legacy-проектов, которые всё ещё нуждаются в поддержке. Разберитесь с этапами отрисовки View и его жизненным циклом, уделите внимание компоненту RecyclerView, чтобы чётенько разложить интервьюеру, почему списки данных в андроиде так эффективны.
Здесь же автоматизируйте сборку с помощью Gradle.
Многопоточка
Многопоточность - важнейший аспект в мобильной разработке. На собесах этой теме уделяется особое внимание, поэтому здесь стоит потратить время на базу. Разберитесь с основными концепциями асинхронности и корутинами (suspend-функции, structured concurrency), которые позволяют её реализовывать. Иногда интервьюеры спрашивают об эволюции подходов к обеспечению асинхронности, поэтому нелишним будет немного погуглить.
Работа с сетью и хранение данныхСтандарт - библиотека Retrofit, которая преобразует api в kotlin-интерфейс.
Что касается хранения данных, то здесь два варианта: библиотека Room для SQLite и Jetpack DataStore (о Jetpack поговорим следующим пунктом), который пришёл на смену SharedPreferences (но о нём всё ещё спрашивают на собесах).
Jetpack ComposeПосле того, как вы вдоволь намучились с XML, самое время перейти к фреймворку Jetpack Compose, обновляющему интерфейс автоматически при изменении данных, и базово в нём освоиться (composable-функции, рекомпозиция, управление состоянием, модификаторы, макеты). Можете глянуть для начала этот краткий плейлист, а потом разобраться более основательно.
На работе, вероятнее всего, в какой-то момент вам придётся решать задачу на совместимость Compose и XML, так как большинство проектов проходят через gradual migration.
АрхитектураПри проектировании общепринято соблюдение
Clean Architecture подхода (хороший плейлист), суть которого в разделении приложения на слои и отделении бизнес-логики от логики интерфейса.
Вам нужно разобраться с ключевым паттерном
MVVM, концептуально посмотрите
MVP и
MVI.
Затем научитесь внедрять зависимости через библиотеку
Dagger Hilt (в качестве более простой, но менее популярной альтернативы применяется Koin) для реализации
Dependency Injection.
ТестированиеИ, конечно, вам нужно научиться покрывать код тестами:
Unit-тесты: JUnit и Mockito
UI-тесты: Espresso, UiAutomator, Kaspresso
видео от Яндекса для лучшего понимания.
Итак, пройдя эти пункты, вы заботаете базу, необходимую для любого android-разработчика.
Ставьте , если считаете, что мобильщиков несправедливо обделяют, и мы напишем гайд по созданию мощного пет-проекта для прохождения на стажировку мечты!!!
@postypashki_old
17.5K views16:11