Разработка под android для веб-программиста — с чего начать?
Более пяти лет я являюсь веб-разработчиком, в последнее время в основном это back-end на PHP.
Знаю и понимаю шаблоны проектирования, различные подходы к разработке, работаю с системами контроля версий и т.д.
В принципе спокойно читаю java-код в тех же примерах реализации классических шаблонов проектирования.
В данный момент я заинтересовался разработкой мобильных приложений под andoid, первым делом начал штудировать официальную документацию, поставил andoid studio и запустил hallow world из примеров.
Смута настигла меня после изучения требований к разработчикам в вакансиях на позиции мобильных разработчиков, в частости - java memory model и вообще все, что относится к многопоточности.
В комментариях к статьям натыкался на обсуждения, например, различного поведения приложения при том же развороте экрана - насколько я понял, в данном примере происходит переинициализация activity, которая является основным классом приложения, вследствие чего возникает много тонкостей, связанных с работой с потоками.
Понял, что в плане теоретической подготовки до спокойного программирования с периодическим изучением мануалов мне далеко, в связи с чем прошу подсказать, что и в какой последовательности хорошо бы изучить до того, как я начну писать свое первое учебное приложение под данную платформу?
Сore Java - первый и кусочек второго тома
Effective Java Джошуа Блоха - обязательно
Java Concurrency in Practice Браяна Гоетса - обязательно
из серии Pragmatic Programmer
Programming Concurrency on the JVM: Mastering Synchronization
Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions
Pragmatic Unit Testing in Java 8 with JUnit
Большое спасибо за ссылки! В принципе, я никуда не спешу и есть возможность спокойно почитать. Практиковаться, я так понимаю, на данном моменте лучше в консоли - не браться пока что за android api?
Пока будет достаточно прочитать, хотя бы поверхностно просмотреть первые 3 книжки.
Нужно разобраться с Gradle, и почитать чего-нить по андроиду. Лучше всего запустить студию и начать ковырять самостоятельно - чем раньше, тем лучше. Много чего можно глянуть тут startandroid.ru/ru , хотя там описаны не самые оптимальные методы "не по гайдлайнам" как говорится и для 5го нужно сидеть-разбираться.
Если речь про экспресс погружение: то пока книги не читайте, начните с ютуба (только не зацикливайтесь на стартандроид), статей на хабре, встроенных семплов Android Studio, изучите жизненные циклы (например тут https://github.com/xxv/android-lifecycle), сделайте десяток простых приложений + можно сразу контроль версий пощупать вкупе (bitbucket например) и только после этого садитесь за чтение Java Core, ООП, Git Pro и тщательное изучение https://developer.android.com/index.html
P.S. Если что-то не получается старайтесь искать правильные ответы сразу на SO.