Разработка мобильных приложений остаётся трендом и в 2020 году, но вот какими знаниями и навыками должен обладать современный специалист? Нужно ли учить Java или уже все пишут на Kotlin? RxJava или корутины? А может пора учить Flutter? В этой статье я приведу пошаговый чек-лист навыков и знаний, необходимых Android-разработчику в 2020 году.
Kotlin vs Java
Первое, что вам необходимо сделать, чтобы стать хорошим разработчиком – выучить язык программирования на котором вы будете писать. Если вы не знаете ни одного, мой совет – все таки сначала освоить Java. Во-первых Java для новичков, на мой взгляд проще чем Kotlin и даёт хорошее понятие основных языковых конструкций и понятий, которые вы потом сможете с лёгкостью перенести на другие языки программирования. Android SDK написан на Java – если вам нужно посмотреть какие-то внутренние механизмы реализации – то вы не будете путаться между Kotlin и Java. Кроме того многие проекты до сих пор используют Java как основной язык, и на мой взгляд пока таких проектов большинство. Kotlin вы можете выучить потом параллельно работе или на своём pet-проекте. Из книг здесь можно посоветовать
Изучаем Java | Сьерра Кэти, Бэйтс Берт
Effective Java, Joshua Bloch
Java. Библиотека профессионала – Кей С. Хорстманн
Тут важно уяснить – не важно сколько книг вы прочтете, практика – самое главное. Пробуйте запрограммировать примеры из книг, упражняйтесь в написании кода.
Если вы все-таки решили изучать Kotlin, то могу порекомендовать книгу:
Книга «Kotlin. Программирование для профессионалов»
Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использовать его возможности, а также позволяют освоить среду разработки IntelliJ IDEA от JetBrains.
Android SDK
После того как вы уже понимаете отличия класса от интерфейса, конструктора от метода, то приступайте к изучению Android. На самом деле тут все просто – делайте как можно больше практических примеров. Как в рекламе Nike – Just do it. Придумайте проект для себя и сделайте его. Потом выкиньте его и сделайте еще один. После 3 раза уже появится примерное понимание. Важно! Не паникуйте если чего-то не понимаете! Первое время вы не будете понимать вообще ничего и это нормально. Сначала копируйте код из туториалов и просто пытайтесь его запустить. Потом поиграйтесь с исходником – поменяйте текст, цвет кнопки, дизайн. Придумайте свой проект и реализуйте его, вот список проектов которые можно сделать, если у вас нет идей:
- Сделать прототип твиттера или Вконтакте – у них есть публичные API, используя которые вы сможете получить данные и сделать свой новостной feed.
- Приложение для поиска кинофильмов. Есть публичный API, содержащий огромное кол-во информации о фильмах Themoviedb
- Приложение прогноз-погоды. Для получения прогноза погоды есть тоже большое количество API
- Приложение для просмотра котировок, новостей
Тут, как я уже сказал самое главное практика. Пишите свой проект и старайтесь каждый день улучшать его. В конце вы можете его залить на гитхаб и попробовать приложить его к резюме. Кандидат со своим pet-проектом всегда лучше кандидата без него. Это показывает что вы хотите развиваться и у вас хватает фантазии придумать проект а не тупо жаловаться на отсутствие идей.
По технологиям: учите Android SDK (Activity/Fragments/Service/Broadcast Receiver). Взаимодействие с сетью (Retrofit/OkHttp), GSON. Разработка UI и различные типы Layouts. Способы хранения данных (SharedPrefences/SQLite/ROOM). По книгам рекомендую серию Big Nerd Ranch и сайт https://www.raywenderlich.com/android Я рекомендую делать проекты – потому что в проектах вы сможете попробовать разные аспекты разработки мобильного приложения: UI, БД, сеть – в связке вы лучше поймете что к чему если будете делать отдельные туториалы, хотя поначалу делайте туториалы – сможете потом соединить их в проект.
Библиотеки и фрэймворки. Gradle
Когда вы уже можете создать небольшой твитер клиент или создать небольшую ленту новостей из Вконтакте – приступайте к изучению библиотек: почитайте зачем нужен Dagger2, Koin, RxJava, корутины. Скорее всего на предыдущем шаге, вы так или иначе уже что-то из этого пробовали, но на этом шаге попробуйте изучить подобные инструменты более глубоко.
Способы публикации, CI/CD, Firebase, Crashlytics
Тут уже идут инструменты, необходимые для публикации и поддержки приложений, чаще всего из используют в продакшене большие компании – но никто не запрещает вам почитать статьи, или попробовать настроить CI/CD и опубликовать свой pet-проект в Google Play.
Собеседования и тестовые задания
После 3-6 месяцев интенсивной работы вы уже сможете попробовать устроиться на роль стажера или джуниор-разработчика. Проходите собеседования и выполняйте тестовые задания. И не переживайте если не пройдете с 1 или 5-го раза. После каждого собеседования выписывайте вопросы, заполняйте пробелы в знаниях и пробуйте, рано или поздно у вас получится!
Если кратко, то тут основные шаги для изучения разработки Android-приложений. К статье прикладываю Roadmap развития, на который вы можете ориентироваться. Подробный roadmap
Понравилась статья?! Подписывайся на телеграмм-канал и заходи в группу вконтакте.