- Как начать программировать под Android? Пошаговый план
- Изучаем язык
- Kotlin
- Изучаем Android SDK
- Изучаем популярные библиотеки
- Для многопоточного программирования
- Библиотеки для Dependency injection
- Библиотеки для сетевого взаимодействия
- Библиотеки для обработки изображений
- Библиотеки для работы с Json
- Библиотеки для хранения данных
- Как стать Android-разработчиком с нуля: дорожная карта
- Авторизуйтесь
- Как стать Android-разработчиком с нуля: дорожная карта
- Java или Kotlin?
- Начало работы
- Система контроля версий
- Android Architecture
- Создание приложений
- Продвинутая разработка
- Заключение
- Android-разработчик: почему все ринулись изучать мобильную разработку и что на самом деле ждет новобранца
- Стоит ли идти в мобильную разработку
- Кому стоит идти в мобильную разработку
- Какие требования к «железу» для мобильной разработки и нужно ли знать английский
- Как выбрать курс и нужно ли учиться в университете
- Как перейти в мобильную разработку и стоит ли бросать работу
- Как пройти собеседование и найти работу
- Насколько легко в разработке и влияют ли кризисы
Как начать программировать под Android? Пошаговый план
В этой статье мы рассмотрим, как начать программировать под Android. Пошаговый план с ссылками на ресурсы, курсы и книги и типичные вопросы, которые задают на собеседованиях на позицию junior Android-разработчика. Ну а если вы хотите быстро за 12 занятий вникнуть в азы Android — то приглашаю на практический онлайн-интенсив где вы с наставником разработаете собственный проект.
Итак, вы решили начать программировать под операционную систему Android. Для начала, вам нужно изучить язык программирования. В мире Android на момент написания статьи (март 2020) года используются как Java, так и Kotlin, однако второй официально рекомендован компанией Google и набирает всё большую популярность, так что, если вы не знаете ни одного языка программирования — то можете изучать Kotlin, если же вы уже знаете какой-либо объектно-ориентированный язык программирования, то изучить Java или Kotlin для вас не составит труда. На рынке тренд идет в сторону Kotlin.
Изучаем язык
Kotlin
Чтобы освоить Kotlin, вам могут пригодиться, следующие ресурсы:
- Try Kotlin — набор примеров и заданий по Kotlin cразу с консолью, в которой можно ввести код и проверить
- Kotlin Bootcamp for Programmers — туториал от Google
- Android Kotlin Fundamentals Course — набор мини-курсов для быстрого старта в Android — разработке
- Книга «Kotlin. Программирование для профессионалов» — Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использовать его возможности
- Kotlin Bootcamp for Programmers — хороший видеокурс, объясняющий основы программирования на Kotlin
Чтобы освоить Java, вам могут пригодиться, следующие ресурсы:
- Изучаем Java Сьерра Кэти, Бэйтс Берт — эта книга не только научит вас теории языка Java и объектно-ориентированного программирования, она сделает вас программистом. В ее основу положен уникальный метод обучения на практике. В отличие от классических учебников информация дается не в текстовом, а в визуальном представлении.
- Become a Java Developer — курс от Udacity, который поможет вам изучить Java
- Джошуа Блох: Java. Эффективное программирование — эта книга является классикой для Java-программистов. Для новичков может быть несколько сложновата, но постарайтесь прочитать ее хотя бы половину и вернитесь к ней через годик, все сразу станет на свои места. Кстати, многие вопросы на собеседовании по Java взяты именно отсюда, так что не ленитесь, почитайте.
- Java. Библиотека профессионала. Том 1. Основы | Хорстманн Кей С. — Эта книга давно уже признана авторитетным, исчерпывающим руководством и практическим справочным пособием для опытных программистов, стремящихся писать на Java надежный код для реальных приложений. Быстро освоить основной синтаксис Java, опираясь на имеющийся опыт и знания в программировании.
Изучаем Android SDK
Как только вы освоили базовый синтаксис и поняли базовые концепции, переходите к изучению Android SDK, параллельно читая перечисленные выше книги. Изучение Android SDK вы можете начать с таких ресурсов как:
- Android Kotlin Fundamentals — набор туториалов для начинающих Android-разработчиков от Google на языке программирования Kotlin. Из курса вы узнаете об основных компонентах Android SDK, таких как Activity, Intent, BroadcastReceiver и других.
- Become an Android Developer — курс на Udacity, где за 6 месяцев вам расскажут от том как разрабатывать мобильные приложения под Android
- Школа мобильной разработки — набор лекций об устройстве Android от Яндекс. Часть материала немного устарела, но даже сейчас будет очень полезна как начинающим, так и уже более-менее опытным разработчикам.
- Android Programming: The Big Nerd Ranch Guide — достаточно понятная книга для новичков, чтобы понять программирование под Android OS
- The Busy Coder’s Guide to Android Development — книга, которая уже, наверное стала классикой для Android — программистов, один из самых полных источников знаний по Android OS
Это далеко не полный список, материалов огромное количество, но изучив вышеперечисленные ресурсы, вам с запасом хватит знаний для программирования под Android. Главное — не забывайте ежедневно практиковаться, общаться с наставником или ментором чтобы быстрее понимать свои ошибки и учиться на них.
Изучаем популярные библиотеки
Итак, вы неплохо знаете синтаксис языка, понимаете ООП, умеете применять наследование там где оно нужно и ваши приложения более-менее работают. Возможно, еще без применения архитектуры (MVP/MVVM/VIPER/RIBs) и без навороченных библиотек или фрэймворков. Самое время изучить и их.
В этом разделе я приведу список наиболее популярных библиотек, который используются в большинстве Android — проектов. Изучив их, вы смело сможете претендовать на звание junior или даже middle — разработчика.
Для многопоточного программирования
- RxJava 2 — видеокурс введение в RxJava на Stepic или бесплатный базовый курс по RxJava
- Kotlin Coroutines — набор туториалов и документация по корутинам от Jet Brains
- Основы работы с WorkManager— туториал по работе с WorkManager
- Advanced Coroutines with Kotlin Flow and LiveData — туториал от Google как рабоать с корутинами и LiveData
Библиотеки для Dependency injection
Библиотеки для сетевого взаимодействия
- Retrofit — пошаговый туториал, где вы создадите приложение для поиска фильмов
Библиотеки для обработки изображений
Библиотеки для работы с Json
Библиотеки для хранения данных
- Room — мини-курс, который поможет понять основы Room + LiveData
- Realm
Изучив, материалы из этого списка вы уверенно сможете претендовать на роль джуниор-разработчика, а в следующем посте мы рассмотрим наиболее часто задаваемые вопросы на собеседованиях. А прямо сейчас приглашаю вас на онлайн-интенсив по разработке
Источник
Как стать Android-разработчиком с нуля: дорожная карта
Авторизуйтесь
Как стать Android-разработчиком с нуля: дорожная карта
Как стать разработчиком Android-приложений с нуля, с чего начать и куда развиваться — поможет понять дорожная карта:
Java или Kotlin?
Мы уже проводили сравнение Java и Kotlin, в ходе которого пришли к выводу, что оба языка важны. Так, без знания Java будет сложно разобраться в Kotlin, который всё ещё использует JVM. С другой стороны, Kotlin сделал большой шаг вперёд и ориентируется именно на Android-разработку, тогда как Java используется также для бэкенда, десктоп-приложений и Big Data.
Начало работы
Скачайте Android Studio и разберитесь с данной IDE.
Теперь настало время поближе познакомиться с выбранным языком. Если вы решили со старта взяться за Kotlin, имейте в виду, что документация предполагает хотя бы базовое знание Java.
Что Kotlin, что Java являются полноценными ООП языками, поэтому освойте принципы объектно-ориентированного программирования.
ОТР , Удалённо , По итогам собеседования
Изучите структуры данных и алгоритмы, подкрепите теорию практикой.
Скачайте систему автоматической сборки Gradle, потому как ручная сборка проектов с указанием нужных библиотек и фреймворков — процесс трудоёмкий.
Система контроля версий
Если вы ещё не работали с VCS, самое время начать. Изучите возможности и основные команды Git, выберите для себя один из веб-сервисов для хостинга проектов и попрактикуйтесь на первых репозиториях.
Android Architecture
Различные паттерны разработки позволяют повысить качество кода, сделать его более понятным и масштабируемым. К основных паттернам относятся:
- MVVM (Model–View–ViewModel);
- MVI (Model-View-Intent);
- MVP (Model-View-Presenter).
Подробнее о них можно узнать из статьи.
Создание приложений
А здесь самое интересное.
Activity в Android — это по сути окно приложения. Простые приложения состоят из одного окна, сложные — из двух и более. Жизненный цикл Activity включает в себя шесть коллбэков:
- onCreate() — создание активити;
- onStart() — подготовку к отображению на экране;
- onResume() — отображение на экране;
- onPause() — приостановку процессов;
- onStop() — состояние невидимости;
- onDestroy() — завершение работы.
Далее изучите создание гибких интерфейсов с использованием фрагментов и начните выполнять отладку с помощью Android Studio Debugger.
Для работы с компонентами используйте такие инструменты, как Room, Navigation, WorkManager, LiveData, Data Binding. Из сторонних библиотек будут полезны Glide, Retrofit, GSON и Firebase.
Разберитесь с Intent для взаимодействия между объектами Activity и объектом Context, который предоставляет доступ к ресурсам и другим объектам, в том числе к Activity.
Ну и как стать Android-разработчиком с нуля без практики? Следуйте инструкциям из данного видеоурока и подключитесь к NASA через API, чтобы получить доступ к фотографиям из космоса:
Продвинутая разработка
Продолжайте развиваться, осваивая безопасную разработку. Для тестирования подойдут фреймворки JUnit и Espresso, для управления зависимости — библиотеки Dagger и Koin. Дополнительно почитайте о параллелизме и многопоточности, узнайте, что это и как используется в создании Android-приложений.
Заключение
Так как же стать Android-разработчиком с нуля? Определитесь с языком программирования, научитесь работать с Android Studio, Gradle и веб-сервисом для хостинга проектов. Вам предстоит разобраться в основных паттернах и их отличиях, изучить создание гибких интерфейсов, а также подключаться к другим сервисам через API. Продвинутая разработка предполагает тестирование, управление зависимостями, работу с параллелизмом и многопоточностью.
Источник
Android-разработчик: почему все ринулись изучать мобильную разработку и что на самом деле ждет новобранца
Количество мобильных устройств растет, люди все больше проводят времени с гаджетами. На данный момент у 66% населения планеты есть телефон, 89% из них — смартфоны.
Такое положение вызвало серьезный спрос на специалистов в сфере мобильной разработки. К тому же на фоне пандемий, актуальность еще больше увеличилась, ровно как и уровень ЗП таких специалистов.
Статистика пользования мобильными телефонами, соцсетями и интернетом в мире, Digital 2020
Многие украинцы также подумывают сменить свою профессию на Android- или iOS-разработчика, так как иностранные заказчики охотнее отдадут заказ нам, чем специалисту из Европы и США.
Всему причина — ценник за работы. В Украине он сравнительно ниже, а качество практически не уступает. И все бы ничего: и зарплата высокая, и стабильность, НО с чем на самом деле сталкивается новичок осваивая желанную профессию?
Владимир Анисимов — Mobile App Developer, Android-разработчик
Об этом честно согласился рассказать Владимир Анисимов — Mobile App Developer, практикующий Android-разработчик с более чем 4-летним опытом в кроссплатформенной разработке: Android, iOS, Web, Flutter. Владимир дал интервью и ответил на самые волнующие вопросы.
Стоит ли идти в мобильную разработку
Владимир, скажите: Почему все пошли в мобильную разработку?
Как и любая технология, мобильная разработка сначала не была массовой, но сейчас смартфоны становятся дешевле, и их количество растет.
Если сравнить стоимость мобильного телефона 7 лет назад и сегодня, то сегодня он стоит… скажем, как 15–20 кг мяса. Это не такие большие деньги — отсюда массовость.
Больше мобильных устройств — нужны приложения, отсюда спрос.
Действительно ли спрос такой большой или нас в этом пытаются убедить создатели курсов?
Спрос на мобильную разработку не раздутый, наоборот — неудовлетворенный.
Люди все больше пользуются мобильными телефонами, планшетами, умными часами, играют в игры, сидят в соцсетях. Кому-то все эти программы нужно писать. Поэтому спрос тут — реальный.
Почему выбирают именно мобильную разработку, в чем ее преимущество перед другими IT-специальностями?
Главное преимущество мобильной разработки — она находится в золотой середине по скорости изменений и сложности кода.
Для сравнения, в Web-разработку легко войти, задачи сравнительно несложные, но изменения происходят примерно каждые 2–3 месяца. Не изучили вовремя новые технологии — ваши знания устарели.
Если брать программирование на языках вроде Java и C# — нужно много думать, все логично, структурировано. Но стать таким специалистом непросто.
К тому же, технологии тут не меняются годами, а разработчик часто не видит конечного результата своей работы. Это может демотивировать разработчика, сделать работу скучной для него.
Мобильная разработка находится посредине.
Она сложнее Web-разработки, но не настолько, как C++, чистая Java, C#. При этом проекты не такие большие, чтобы устаревать. Мы находимся на пике технологий но они меняются не раз в 2 месяца, а, например, раз в год.
И вы сразу видите результаты своей работы — приложение на экране своего смартфона.
Что выбрать: Android или iOS?
Я бы не стал говорить, что одно лучше, другое — хуже.
Преимущество Android в том, что его используют в 70% устройств, значит, больше спрос.
Плюс, в iOS есть сложности на старте. Для разработки нужна техника Apple. Чтобы создать и поддерживать аккаунт разработчика, нужно платить примерно $100 в год.
Я бы рекомендовал начать с Android, а позже — доучиться разработке на iOS или кросс-платформенной разработке.
Кому стоит идти в мобильную разработку
Можно ли начать обучаться с 0, не имея опыта и технического образования?
Нужно. Найти свое место может даже гуманитарий: в работе с интерфейсом, дизайном. Конкретно меня некоторые клиенты ценят в том числе за то, что я могу кроме программирования сделать дизайн без привлечения еще одного специалиста-дизайнера.
На первых этапах, конечно, нужно прокачивать технический скил. Когда доходите до уровня Middle, возникает больше требований к гуманитарным вещам: структуре, взаимодействию с командой, поиску информации, креативным решениям.
Стоит ли переходить в мобильную разработку тем, кто уже в программировании?
Если человек выучил старый язык программирования, но понимает, что развития нет, тогда можно перейти, изучить современную технологию.
Когда вы — успешный IT-шник и вас тянет — тоже вперед.
Если текущая область IT приносит удовольствие и финансы, то нет смысла.
Какие требования к «железу» для мобильной разработки и нужно ли знать английский
Какие есть требования к «железу», чтобы разрабатывать мобильные приложения?
Для старта можно использовать компьютер с 4 ГБ оперативной памяти. Нужен будет любой телефон на Android, чтобы на нем запускать и отлаживать программу.
Средний уровень — это 8 ГБ оперативной памяти. В этом случае вы сможете работать с эмулятором, запускать программу на нем, и телефон на Android вам не понадобится.
Процессор рекомендую i3 или i5 любого поколения.
Нужно ли разработчику знать английский?
Если устраиваться в компанию — английский нужен.
Вся документация на английском, на английских ресурсах больше информации.
Второй фактор — нужно общаться с заказчиками, а хорошие заказчики — зарубежные заказчики.
Английский очень важен, но на первых этапах будет достаточно знать его на уровне чтения и перевода. Со временем, чтобы расти, надо будет доучивать.
Как выбрать курс и нужно ли учиться в университете
Насколько хорошо учат программистов в университете?
Мое отношение к университетскому образованию айтишников — среднее. Это не бесполезно, но после университета вы еще не готовы быть разработчиком.
За те 5 лет, которые вы будете учиться в университете, уже 2–3 раза изменятся технологии. Поэтому университет надо рассматривать, как базу, которая учит мыслить и дает фундамент. Потом надо будет доучиваться на курсах.
На что стоит смотреть при выборе курсов?
Я бы смотрел в первую очередь на программу. Второе — познакомился бы с человеком, который будет меня обучать, посмотрел, нравится он мне или нет.
На бренд я бы не рекомендовал смотреть. Есть крупные школы, которые ругают, есть маленькие — которые хвалят.
Что должно быть в курсе, чтобы человек вышел хорошим специалистом?
Должна быть основа, базовая теория, чтобы люди научились программировать в целом. Но обязательно должно быть много практики. Хорошо, если на курсе вы напишете конкретные программы, которые можно положить в портфолио.
Как перейти в мобильную разработку и стоит ли бросать работу
Как выглядит переход в мобильную разработку, какие сложности?
Я сам свитчер. До мобильной разработки преподавал в вузе по специальности, не связанной с программированием.
В какой-то момент решил попробовать. Начал учить Java для саморазвития. Через месяц задумался: куда можно применить знания.
Увидел возможность в Android-разработке. Начал ходить по компаниям, получать опыт, понимать, что от меня требуют и что я недоучил, учиться дальше.
Мой первый проект был волонтерским, я не получил за него денег. Но получил опыт, который у меня просили.
Было долго и не просто. Во время поиска первой работы я уже думал все бросить, но у меня была мотивация, было интересно.
Как можно было бы пройти этот путь эффективнее?
Если бы кто-то мне сказал: это учи, а это надо просто знать, я бы быстрее прогрессировал. Тогда учил все подряд.
Второй момент — важна поддержка, чтобы не бросить. Это необязательно наставник. Может быть друг, который занимается тем же.
Можно учиться параллельно с работой?
Не нужно бросать работу, пока вы еще не зарабатываете, как разработчик. Если вы решили переходить в разработку, нужно просто облегчить рабочий процесс.
На работе — просто выполнять обязанности и ничего сверх. Или найти временную работу, которая будет приносить деньги, чтобы вы могли год спокойно жить и учиться 2–4 часа в день.
Как пройти собеседование и найти работу
Насколько сейчас легко найти работу и стоит ли идти на фриланс?
Надо определиться, чего вы хотите. Если нравится фриланс, нужно идти на фриланс, но там хорошо зарабатывать сложнее. Если нравится в компании — идите в компанию.
Важно понимать, что путь не будет легким. Сначала нужно будет пройти толкучку: когда вы еще молодой специалист, вас много, надо попасть в компанию.
Тем не менее, находить работу становится легче. Если 3 года назад среди Junior’ов была бешеная конкуренция, то сейчас ее меньше. Работы становится больше, люди осмысленнее подходят к тому, хотят ли они стать разработчиками.
Сколько в среднем может уйти времени на поиск первой работы?
От начала обучения 1–1,5 года.
Нельзя играть в быструю: возьму отпуск на 4 месяца и стану программистом. Так не получится. Но если не бросать и заниматься этим, то где-то за год — реально.
Сколько может заработать разработчик мобильных приложений?
Junior — от $800 до $1500.
Не надо пугаться, что это мало. Junior — это не навсегда.
Уже через год можно стать Middle и получать $1500–3500
Senior получает от $5000 до $10 000.
Средняя зарплата Android-разработчика в Украине, по данным портала Work.ua
Как пройти собеседование и получить работу?
На собеседовании смотрят на 3 вещи:
навыки в программировании: на первом этапе важно не ответить на все вопросы, главное — показать, что знания есть;
знание английского: на Junior английский можно знать не в идеале, на старшие позиции он нужен;
психология: если вы супер-программист, хорошо по-английски говорите и понимаете, но на собеседовании видят, что вы конфликтный — ваши шансы уменьшаются.
А чтобы выбрать хорошую компанию, смотрите, как с вами общаются. Если спрашивают, как вы относитесь к переработкам, то с высокой вероятностью они будут.
Насколько легко в разработке и влияют ли кризисы
Получится ли работать удаленно и путешествовать? Правдива ли философия свободной жизни?
Можно работать в путешествиях, отдыхать, работать с Бали. Но люди видят только позитив. Они не думают о том, что на пляже фото красивое получается, а интернет может быть так себе.
Это больше миф о том, что можно сидеть не напрягаясь на пляже или в ресторане. График будет более свободный, вы сможете выходить работать в другие места, работать параллельно с отдыхом, брать заказы или не брать, но не постоянно.
Насколько программирование подвержено кризисам? Можно сказать, что эта сфера — стабильное плато?
Практика показывает, что эта отрасль действительно стабильная. Коронавирус даже в некоторой степени помог нам.
В целом, сфера IT не пострадала, а может даже и выросла.
Когда пришел коронавирус, начался локдаун — люди начали больше проводить времени с телефонами и планшетами. Программы для них создают разработчики. Поэтому на них был большой спрос.
Какое напутственное слово можете сказать тем, кто собирается в мобильную разработку?
Когда вы думаете, хотите или не хотите идти, попробуйте написать что-то на любом языке программирования. Если плохо от этого не стало, тогда идите.
Второе — если решили идти, не ждите быстрого эффекта. Работайте спокойно, планомерно, запаситесь терпением — тогда все получится.
Третье — не мотивируйте себя только деньгами. Если вам нравится еще что-то: проект, формат работы, сфера и плюс деньги, тогда хорошо.
А так — в любом случае нужно развиваться. Пробуйте, если вам это интересно.
Источник