я начинающий программист, изучаю Java и хочу изучать разработку под Android. Проблема в том, что я не могу найти правильный подход к изучению, и меня это сбивает с толку. Правильней будет : изучать Java походу разработки Android приложения или прочекать всю теорию Java,а затем начинать что-то разрабатывать в Android Studio?
Сначала нужно прочитать любую книгу по java или пройти курс. Советую "Изучаем Java" Кэти Сьерра, Берт Бэйтс.
Советую ее, потому что она максимально быстро вводит в курс дела, читается легко, с картинками, то что нужно для начинающих. Примеры в книге делайте только, если не понимаете код этого примера. Эта книга дает азы java, которых хватит для android. Там есть раздел swing. Пропускайте его. Это 12 и 13 глава. 15 и 18 тоже можете пропустить, а можете и прочитать для развития. В андроиде все это не используется.
Ее можно быстро прочитать, получить основы. Я прочитал за месяц примерно, но читал всю.
Далее начинаете изучать android. Главные критерии ресурса: постоянные обновления и известность. Android очень быстро меняется, поэтому всегда нужно изучать самые свежие ресурсы. Все что старее 2016 лучше не смотреть. Есть три хороших ресурса:
startandroid
книга Android для профессионалов
курс от гугл на Udacity
Вот плотно изучайте эти ресурсы и параллельно делайте какое-то приложение. Вот и все.
Алгоритм можете быть такой: берете за основу udacity и делайте все по нему. В книгу смотрите, если не понимаете ничего на английском, или хотите решить какую-то специфическую задачу.
Startandroid - на сайте есть отличные пошаговые руководства по новым библиотекам, например: room, dagger , rxjava. В будущем они вам очень понадобятся, потому что сейчас они уже почти везде используются.
P.S. Почему не стоит углубляться в java?
Потому что android довольно однотипный и все нюансы java вам не нужны. Вам главная база, чтобы понимать, что происходит в коде. А нюансы вы уже будете изучать на своих приложениях в андроиде
P.S.S. Мое личное мнение
Старайтесь долго не застревать на обычных активити, фрагментах, интентах. Core Android большой и его можно долго изучать. Достаточно пару приложений на 2-3 экрана. Не делайте огромных приложений,которые вы будете разрабатывать по 3 месяца.Это будет тормозить ваш прогресс.
Стремитесь понять архитектурные паттерны и современные библиотеки, которые облегчат вам разработку больших приложений и помогут устроиться на работу. Вот примерный стек:
Архитектура: MVP, MVVM, SOLID, Clean Architecture, Architecture Components
Библиотеки-боссы(долго изучать): Rxjava2, Dagger
Библиотеки-ништяки: Retrofit, Okhttp, ButterKnife, Room, Picasso, GSON. Их изучать можно сразу же, потому что они облегчат вашу жизнь.
Приведу пример: вы можете прочитать все книги о том, как правильно ездить на
велосипеде. Вы даже можете посмотреть несколько видеороликов о том, как люди
ездят на велосипеде. Я мог бы прочитать лекцию о том, как правильно ездить на велосипеде, но, если вы никогда не ездили сами, вы упадете, как только сядете на
велосипед в первый раз. Вы можете знать о велосипедах все — и как правильно
ездить, и какие модели самые лучшие, но вы никогда не научитесь ездить на велосипеде, пока не примените знания на практике.
Почему же тогда многие разработчики берут книгу по языку программирования
или фреймворку и читают ее от корки до корки, надеясь впитать всю информацию?
В лучшем случае вы соберете всю информацию по теме, но не выучите ее. (с) Джон Сонмез, Путь программиста
Узнайте достаточно чтобы начать и действуйте
В общем то все просто. Чтобы начать изучать фреймворк Android вы должны сносно читать и понимать Java-код, принципы ООП, основные паттерны в Java (в частности интерфейс обратного вызова очень часто используется в Android) и тп. Иначе все примеры по разработке будут для вас непонятны, так как практически все материалы по Android объясняют особенности работы с самим фреймворком, а не реализующий их Java-код.
Не понимая написанного кода, вы сможете что то повторять, копипастить, но не писать свой код. На чужом же коде далеко не уйдешь.
Виртуальный выделенный сервер (VDS) становится отличным выбором
подскажите пожалуйста Как обновить c: forEach с помощью Ajax