Полезные материалы для начинающих Android разработчиков

Данную страничку подготовила компания CleverPumpkin, разработчик мобильных приложений на заказ. Наши актуальные вакансии можно найти на HeadHunter.

Общие рекомендации по обучению

Наши рекомендации для того, чтобы обучение Android проходило эффективнее и было приближено к разработке реального проекта:





  • Эффективнее отрабатывать полученные знания на собственном проекте, а не только на академических примерах. Подумайте, что вам интересно и начните свой pet-проект.
  • Работайте с макетами в Figma. Для этого есть публичные Figma файлы, которые можно использовать для тренировки. Кроме того, вы там можете найти классные идеи для своего приложения.
  • Изучайте и перечитывайте гайдлайны Google Material Design, применяйте их в разработке своих pet-проектов. Пробуйте добавлять различные компоненты в своем приложении.
  • Ищите интересные вам API и учитесь делать запросы от простых к сложным, создавайте для себя все более комплексные ситуации (ошибки, параллельные запросы, пагинация и т. д.).
  • Используйте в работе над pet-проектами git (например, храните свои проекты на GitHub). Для изучения работы с git может пригодится интерактивное онлайн руководство и книга Pro Git, написанная Скоттом Чаконом и Беном Штраубом, на русском языке.
  • Концентрируйте свое внимание не только на написании логики, но и следите за красотой кода с помощью кодстайла — kotlin style guide и coding conventions. А для того, чтобы вам в этом помогал еще и компилятор — используйте линтер.

Книги

Эти книги будут полезны не столько для Android разработки, сколько для общего развития как программиста. В них очень много универсальных знаний, которые применяются во всех сферах разработки

Общее
  • Clean Code / Чистый код. Роберт Мартин (ISBN: 978-5-496-00487-9)
  • The Clean Coder / Идеальный программист. Роберт Мартин (ISBN: 978-5-4461-1067-4)
  • Code Complete / Совершенный код. Стив Макконел (ISBN: 978-5-7502-0064-1)
  • The Pragmatic Programmer / Программист-прагматик. Энди Хант, Дейв Томас (ISBN: 5-85582-213-3)
  • Introduction to Algorithms / Алгоритмы: построение и анализ. Томас Кормен, Чарльз Эрик Лейзерсон, Рональд Линн Ривест, Клиффорд Штайн (ISBN: 978-5-907114-11-1)
Kotlin
  • Head First. Kotlin. Авторы: Гриффитс Дэвид, Гриффитс Дон (ISBN 978-5-4461-1335-4)

Статьи и другие материалы

Архитектура

Разбор MV(x) архитектур можно найти в материале на academy.realm.io или в переводе от RYGITAL на Хабре.

Для более подробного понимания тонкостей той или иной архитектуры стоит переходить на более глубокие статьи по конкретной архитектуре. Например:

Большой список статей по описанным выше архитектурам (и не только) можно найти в репозитории Awesome Android Architecture пользователя onmyway133 на github.

Платформа

UI

Для создания лейаутов рекомендуется использовать ConstraintLayout. С помощью него можно создавать сложные по дизайну экраны избегая излишней вложенности: статья ConstraintLayout 101 и новый редактор компоновок в Android Studio (Лайв Тайпинг) и Работа с ConstraintLayout через XML-разметку(Touch Instinct)).

Для работы с View стоит использовать ViewBinding. Для удобства работы можно использовать ViewBindingPropertyDelegate от Кирилла Розова.

Networking

Для работы с сетью чаще всего используется связка okHttp + Retrofit + Json конвертер.
Одной из самых популярных библиотек для работы с json является Gson, но стоит обратить внимание и на другие: Moshi, KotlinX Serialization, Jackson. При работе с данными библиотеками не стоит забывать использовать аннотацию @SerializedName (или аналогичную в других библиотеках для работы с json), чтобы избежать проблем при обфускации кода.

Image Loading

Для загрузки изображений существует достаточное количество удобных библиотек, таких как Glide, Picasso, Fresco, Coil. Последний весьма хорош, т.к. он полностью написан на Kotlin, использует корутины под капотом и достаточно прост в использовании. Почитать об этой библиотеке можно в статьях Taking a look at Coil (Kudzai Chasinda) и Introducing Coil: Kotlin-first image loading on Android (Colin White).

Async

Coroutines

Для работы с асинхронными задачами отлично подходят корутины. Отличный курс на StartAndroid и документация
Не стесняйтесь делиться этой страничкой с друзьями и коллегами, если считаете её полезной. Если у вас будет какой-то фидбек по этой страничке — напишите нам на почту .
Не стесняйтесь делиться этой страничкой с друзьями и коллегами, если считаете её полезной. Если у вас будет
какой-то фидбек по этой страничке — напишите нам на почту.