На чем сосредоточить усилия для разработки android приложений?

Ребята, дайте совет.
Работаю кодером на дремучем языке программирования.
Для дополнительного заработка решил создавать приложения. Может пойду работать андроид-разработчиком, если наберусь скиллов.
Времени на изучение и разработку - где-то 1-2 часа в день.
Года два назад изучил основы Java, курс андроид разработки на udacity, год назад сделал пару простых приложений. Появился Котлин. Почитал его, уже многое успел забыть. Стал смотреть курс на udacity по разработке на Котлине. Там все по-другому: MVVM, DataBinding...
Теперь сижу, туплю, пытаюсь сделать третье приложение – очень сложно, многое не понимаю, типа такого

// Use the 'by activityViewModels()' Kotlin property delegate
// from the fragment-ktx artifact
private val model: SharedViewModel by activityViewModels()

И конца-края не видно. Вижу что есть какие-то dagger, rxjava и прочие бесконечные вещи. Вижу кто-то советует использовать Flutter и другие не нативные вещи. Которые опять изучать заново и наверняка много ньюансов и там.
Сорян за нытье. Как делать простые прилы? На чем сконцентрироваться? Сами как?


Ответы (1 шт):

Автор решения: Сергей Бувака

Что понимать под "простыми приложениями"? Если вам надо написать простенький TODO list, то вам хватит нативных средств Android-а.

Если же разговор о том, чтоб вам начать зарабатывать, то список примерно такой:

  1. Java. Хоть сейчас везде и Kotlin, но без нее никуда.

    • Гора легаси написана на Java. Необходимость поддерживать легаси код никто не отменял.

    • Вся основа Android написана на Java.

    • Есть гора компаний в которых Kotlin еще в принципе не пришел, а если у вас нет продуктового опыта в разработке, то выбирать особо не приходится.

  2. Вам нужно знать фреймворк Android.

    • Компоненты Android.

    • Работа с View, верстка.

    • Многопоточность.

  3. Вы должны уметь работать с API. Тут чаще всего Retrofit. Нативные инструменты Android мало кто использует.

  4. DI. В основном везде Dagger, хотя можно и посмотреть в сторону Koin.

  5. Асинхронная работа. RX Java. Это уже стало почти частью языка. Она везде. Местами можно найти корутины, но это сравнительно новый инструмент и его в болших проектах еще не часто встретишь.

  6. Работа с базой данных. В основном это Room, кое где можно встретить ORM Lite.

  7. Основные паттерны проектирования, без фанатизма, по основам. Так же MVP, MVVM. DataBinding на самом то деле встречается оч редко. Писать код в xml разметке мало кому нравится.

Это самый минимум с которым в целом можно найти работу. Конечно тут много чего можно добавить. Отличным способом понять, что хочет нынче рынок - это пройтись по вакансиям и посмотреть требования. И исходя из них уже делать упор на те или иные области. В догонку на них еще откликаться и получать тестовые задания, там так же можно многому научиться.

→ Ссылка