Дополнительная информация
AidarПродолжаем.
Поздравляю, ты уже вышел из песочницы. Дальше станет еще интересней.
Обязательно изучить, рано или поздно все равно базовое знание понадобится
https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
Еще раз, в дальнейшем потребуется базовое знание SQL, понимание XML и JSON. И надеюсь ты уже освоил Github (это несложно)?
В: Я прошел курсы Udacity и другие, а дальше что?
О: После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite.
Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее, построить очередной Weather or ToDo must have list.
В: Не могу разобраться в потоках. Хендлеры - как быть?
О: http://codetheory.in/android-handlers-runnables-loopers-messagequeue-handlerthread/ - Хорошая статья, которая экономит время. После нее можно сразу переходить и тыкаться в хендлерах.
https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a - еще одна от миндоркса.
https://blog.nikitaog.me/2014/10/11/android-looper-handler-handlerthread-i/ - еще одна интересная.
В: Хочу изучать популярные библиотеки, что предложишь?
О: Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом, и в конце концов облажаешься.
Retrofit - стандарт для взаимодействия с сетью. Она идет в комплекте с okhttp3, начинаешь с неё, а потом переползаешь на сам ретрофит. Так же для справки можешь гуглить volley.
RxJava - одно из решений для выполнения кода в бекраунде.
Ниже ссылки, смотри и вникай:
1) https://www.youtube.com/watch?v=YPf6AYDaYf8 - RxJava идея с нуля
2) https://www.youtube.com/watch?v=3jdvLrYZfB4 - RxJava доставляет Артём Зиннатуллин
3) https://www.youtube.com/watch?v=0IKHxjkgop4 - Managing State with RxJava by Jake Wharton
4) https://coursehunters.net/course/master-klass-po-rxjava-s-mvvm-dlya-razrabotki-pod-android
5) https://www.youtube.com/watch?v=t34AQlblSeE - Making Retrofit Work For You by Jake Wharton
Далее, неплохо было бы и изучить MVP. Вообще его следует изучать сразу. Видишь MVP - сразу пиши нормальный код. Никаких асинтасков внутри активити. Для самообразования можно написать его голыми руками или прогуглить, как это делается.
https://github.com/ArturVasilov/AndroidSchool - здесь рассматривается архитектура, и как ее ели с 2011 года.
MVP:
https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh - для понимания
https://github.com/Arello-Mobile/Moxy - плюшка для поворотов экрана
https://github.com/sockeqwe/mosby - англоязычная плюшка
MVVM - костыли от гугла:
Для нормального понимания желательно знать AAC.
https://startandroid.ru/ru/courses/architecture-components.html - уроки
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f - для продвинутых.
Пример MVVM
https://github.com/ericmaxwell2003/MvvmTipCalculator
Вышеописанные два подхода - всего лишь обертки, чтобы вынести логику из views. Для более углубленно изучения рекомендуется почитать:
https://habr.com/company/mobileup/blog/335382/
Пример на котлине:
https://github.com/hitherejoe/GithubTrending
В: Хочу анимировать!
О: https://www.youtube.com/watch?v=dzB-1VlHJW8
Только теория. Первые двадцать минут покрывают больше половины статей, которые можно найти на медиуме и т.д.
Нужна практика? Здесь побольше практики на любой вкус: https://labs.ribot.co.uk/exploring-meaningful-motion-on-android-1cd95a4bc61d
Так же можно подробно почитать про смены сцен: https://blog.prototypr.io/applying-meaningful-motion-on-android-a271a873bd78
В: Почему мои приложения постоянно падают в проде и как этjфиксить?
О: Для этого придумали тесты. Для общего понимания читаешь короткую, но крайне годную статью https://medium.com/android-testing-daily/the-3-tiers-of-the-android-test-pyramid-c1211b359acd
В:Есть что-то кроме нативных приложений на Java/Kotlin?
О: Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Если ты совсем поехавший можешь начинать с него.
https://flutter.io/docs/ - документация
https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity
Остальные части:
1) ReactNative — JSво всей красе.
2) PhoneGap/Ionic/Titanium — имя им JS-младшие, принципы у них разные, кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити.
3) Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы).
4) Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Если интересно - то переходи с начального меню в C# ветку.
5) BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
Запаниковал, что нужно все это знать? Не стоит. Что точно надо знать написано в плане обучения(со шпаргалкой). Выдохни. Все получится. Главное делай, пробуй, работай, учись.