Как начать программировать под Android? Пошаговый план
В этой статье мы рассмотрим, как начать программировать под Android. Пошаговый план с ссылками на ресурсы, курсы и книги и типичные вопросы, которые задают на собеседованиях на позицию junior Android-разработчика. Ну а если вы хотите быстро за 12 занятий вникнуть в азы Android — то приглашаю на практический онлайн-интенсив где вы с наставником разработаете собственный проект.
Итак, вы решили начать программировать под операционную систему Android. Для начала, вам нужно изучить язык программирования. В мире Android на момент написания статьи (март 2020) года используются как Java, так и Kotlin, однако второй официально рекомендован компанией Google и набирает всё большую популярность, так что, если вы не знаете ни одного языка программирования — то можете изучать Kotlin, если же вы уже знаете какой-либо объектно-ориентированный язык программирования, то изучить Java или Kotlin для вас не составит труда. На рынке тренд идет в сторону Kotlin.
Изучаем язык
Kotlin
Чтобы освоить Kotlin, вам могут пригодиться, следующие ресурсы:
-
— набор примеров и заданий по Kotlin cразу с консолью, в которой можно ввести код и проверить — туториал от Google — набор мини-курсов для быстрого старта в Android — разработке — Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использовать его возможности — хороший видеокурс, объясняющий основы программирования на Kotlin
Чтобы освоить Java, вам могут пригодиться, следующие ресурсы:
-
— эта книга не только научит вас теории языка Java и объектно-ориентированного программирования, она сделает вас программистом. В ее основу положен уникальный метод обучения на практике. В отличие от классических учебников информация дается не в текстовом, а в визуальном представлении. — курс от Udacity, который поможет вам изучить Java — эта книга является классикой для Java-программистов. Для новичков может быть несколько сложновата, но постарайтесь прочитать ее хотя бы половину и вернитесь к ней через годик, все сразу станет на свои места. Кстати, многие вопросы на собеседовании по Java взяты именно отсюда, так что не ленитесь, почитайте. — Эта книга давно уже признана авторитетным, исчерпывающим руководством и практическим справочным пособием для опытных программистов, стремящихся писать на Java надежный код для реальных приложений. Быстро освоить основной синтаксис Java, опираясь на имеющийся опыт и знания в программировании.
Изучаем Android SDK
Как только вы освоили базовый синтаксис и поняли базовые концепции, переходите к изучению Android SDK, параллельно читая перечисленные выше книги. Изучение Android SDK вы можете начать с таких ресурсов как:
-
— набор туториалов для начинающих Android-разработчиков от Google на языке программирования Kotlin. Из курса вы узнаете об основных компонентах Android SDK, таких как Activity, Intent, BroadcastReceiver и других. — курс на Udacity, где за 6 месяцев вам расскажут от том как разрабатывать мобильные приложения под Android — набор лекций об устройстве Android от Яндекс. Часть материала немного устарела, но даже сейчас будет очень полезна как начинающим, так и уже более-менее опытным разработчикам. — достаточно понятная книга для новичков, чтобы понять программирование под Android OS — книга, которая уже, наверное стала классикой для Android — программистов, один из самых полных источников знаний по Android OS
Это далеко не полный список, материалов огромное количество, но изучив вышеперечисленные ресурсы, вам с запасом хватит знаний для программирования под Android. Главное — не забывайте ежедневно практиковаться, общаться с наставником или ментором чтобы быстрее понимать свои ошибки и учиться на них.
Изучаем популярные библиотеки
Итак, вы неплохо знаете синтаксис языка, понимаете ООП, умеете применять наследование там где оно нужно и ваши приложения более-менее работают. Возможно, еще без применения архитектуры (MVP/MVVM/VIPER/RIBs) и без навороченных библиотек или фрэймворков. Самое время изучить и их.
В этом разделе я приведу список наиболее популярных библиотек, который используются в большинстве Android — проектов. Изучив их, вы смело сможете претендовать на звание junior или даже middle — разработчика.
Для многопоточного программирования
-
или бесплатный базовый курс по RxJava — набор туториалов и документация по корутинам от Jet Brains
- Основы работы с WorkManager— туториал по работе с WorkManager — туториал от Google как рабоать с корутинами и LiveData
Библиотеки для Dependency injection
- Dagger2
- Koin — пошаговый туториал для изучения основ
Библиотеки для сетевого взаимодействия
-
— пошаговый туториал, где вы создадите приложение для поиска фильмов
Библиотеки для обработки изображений
- Picasso
- Glide
Библиотеки для работы с Json
- GSON
- Jackson
- Moshi
Библиотеки для хранения данных
-
— мини-курс, который поможет понять основы Room + LiveData
- Realm
Изучив, материалы из этого списка вы уверенно сможете претендовать на роль джуниор-разработчика, а в следующем посте мы рассмотрим наиболее часто задаваемые вопросы на собеседованиях. А прямо сейчас приглашаю вас на онлайн-интенсив по разработке
Как заниматься программированием на телефоне

Дорожная карта по Android-разработке с нуля

Java или Kotlin?
Android Architecture
- MVVM (Model–View–ViewModel);
- MVI (Model-View-Intent);
- MVP (Model-View-Presenter).
- onCreate() — создание активити;
- onStart() — подготовку к отображению на экране;
- onResume() — отображение на экране;
- onPause() — приостановку процессов;
- onStop() — состояние невидимости;
- onDestroy() — завершение работы.

- Дьявольски неудобная мобильная клавиатура — очень тяжело ставить скобки и нужные кавычки.
- Писать код можно, а исполнять кто будет? Не на все языки и не на все платформы есть интерпретаторы или компиляторы кода.
- Берёте iPad Pro последнего поколения с USB-C.
- Берёте Raspberry Pi четвёртого поколения, желательно в корпусе.
- Устанавливаете на Raspberry Pi нужные вам среды разработки, компиляторы и интерпретаторы (скорее всего, они и так будут в вашей сборке).
- При необходимости устанавливаете на Raspberry Pi программу VNC Server — она позволяет управлять Raspberry Pi в режиме удалённого монитора.
- На Айпаде устанавливаете VNC Client.
- Соединяете проводом Айпад и Raspberry Pi. Когда последний загрузится, стучитесь к нему через VNC (придётся погуглить, как назначить ему правильный IP-адрес).
- У вас получается почти полноценный Линукс с экраном и клавиатурой от Айпада.
iPhone 6S — минимум для мобильной разработки под iOS.
Android
Samsung Galaxy A01 — стартовый аппарат в линейке, на котором можно проверять любые приложения под Android.
Работать без сервисов Google — непростая задачка.
Meizu M3 — классический пример странной работы с памятью и уведомлениями.
Программирование под Android для начинающих. Часть 1
Здравствуйте. Сегодня на глаза попался пост о курсе программирования под Android на сайте Linux Foundation, а вместе с ним — и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.
Программирование под Android для начинающих. Часть 1
Смартфоны и планшеты на Android все чаше встречаются в наших сумках и карманах, и программирование под Android также становится все популярнее. Это отличная платформа для разработки — API прекрасно документирован и прост в использовании, да и просто интересно создать что-то, что вы cможете запустить на своем смартфоне. Изначально вы можете обойтись и без него, создав и протестировав код с помощью эмулятора на вашем Linux ПК. В первой из двух частей этого введения объясняется как создать простое приложение с таймером, а также даются начальные сведения о Android API. Курс подразумевает наличие начальных представлений о Java, XML и технологиях программирования, но тем не менее не стесняйтесь попробовать даже если вы имеете об этом очень смутное представление.
Начало работы и среда разработки
Немного о версиях: последней версией Android является 4.2 (Jelly Bean), но, как можно выдеть по этой диаграмме, она еще недостаточно распространена. Лучше всего начинать разработку под одну из версий: 4.0 (Ice Cream Sandwich) или 2.3 (Gingerbeard), особенно с учетом того, что версии Android поддерживают обратную совместимость (т.е. ваш код для версии 2.3 будет работать и на 4.2), а приложения, разработанные для более поздней версии, не всегда будут работать и на старой. Приведенный здесь код должен работать на версиях 4.0 и 2.3.
Простейший способ получить среду разработки — установить Android Bundle, который можно скачать здесь. Также вам понадобится JDK 6 (не только JRE). Не забудьте что Android не совместим с gcj. Если вы уже используете Eclipse или другую IDE, то вы можете попробовать настроить ее под Android. Как это сделать — описано здесь. Теперь создайте проект под именем Countdown с помощью Eclipse, или из командной строки. Я установил в настройках BuildSDK 4.0.3 и minimum SDK 2.2, и (в Eclipse) использовал шаблон BlankActivity. 
Мой первый проект под Android: интерфейс
Первой нашей программой под Android будет таймер, показывающий обратный отсчет от 10 секунд после нажатия кнопки. Прежде чем писать код, нужно создать интерфейс — то, что пользователь увидит, запустив наше приложение. Нужно открыть res/layout/activity_countdown.xml и создать XML шаблон — с помощью редактора Eclipse или текстового/XML редактора ввести следующее:
Обратите внимание на string/start и string/__00_30. Их значения будут расположены в res/values/strings.xml:
Это общепринятый способ обращения к ресурсам в Android: лучше использовать ссылки на строковые переменные, чем жестко заданные строки.
Мой первый проект под Android: код
Теперь откроем в редакторе файл CountdownActivity.java — и мы готовы писать код нашего приложения. Вы должны увидеть автоматически сгенерированную «заглушку» метода onCreate(). Он всегда вызывается как только создается объект Activity, и в него вы можете поместить какие-либо функции, которые должны выполняться при запуске приложения. (Eclipse также может создать пустой метод onCreateOptionsMenu(), но мы пока не будем обращать на него внимания). Введите следующий код:
Вы видите как просто оказалось создать наш первый проект: Android API включает в себя CountDownTimer, который мы можем использовать. Мы объявили его и поле отображения обратного отсчета как закрытые (private) свойства класса Activity. В методе onCreate() мы использовали метод setContentView, чтобы подключить наш XML-шаблон. Такой R.foo.bar синтаксис — это стандартный способ обращения к XML-ресурсам в Android, и мы встретимся с ним еще много раз.
findViewById — это еще один метод, который вы будете часто использовать. Здесь он возвращает ссылки на поле вывода таймера и кнопку Start, описанные в XML-шаблоне. Для кнопки, чтобы мы могли обработать ее нажатие, должен быть задан «перехватчик» OnClickListener, и его метод onClick(). Здесь он просто вызывает метод showTimer() c заданным числом миллисекунд (сейчас жестко заданным в коде).
Итак, что делает showTimer():
Класс CountDownTimer делает за нас почти всю работу, что очень приятно. В начале мы проверяем, существует ли уже таймер, и, если он есть, то сбрасываем его. Далее мы создаем новый таймер с заданным числом миллисекунд для обратного отсчета (из параметра метода showTimer()) и с заданным числом миллисекунд между интервалами отсчета. По истечении времени между интервалами вызывается метод onTick().
CountDownTimer — абстрактный класс, и методы __onTick() и __onFinish() должны быть реализованы в его подклассе. Мы переопределяем метод onTick(), уменьшающий выводимое число на единицу по истечении каждого интервала, и метод onFinish(), выводящий на дисплей сообщение о окончании обратного отсчета. Потом start() запускает таймер.
С помощью команды «Run» в Eclipse вы можете запустить созданное приложение, при этом будет автоматически запущен эмулятор Android. Посмотрите документацию по Android если вы хотите узнать больше о настройке эмулятора, или о запуске приложений из командной строки.
Поздравляем, вы только что создали свое первое приложение под Android. Во второй части этого введения мы более подробно рассмотрим структуру Android-приложения, и сделаем некоторые улучшения нашей программы: ввод времени обратного отсчета, кнопку Stop и меню. Также мы запустим его на реальном устройстве, а не на эмуляторе.
Более подробную информацию вы можете найти в разделе Android Development Training сайта The Linux Foundation’s Linux training website.
Программирование на телефоне – зачем, как и почему?
Программирование на телефоне – почему люди задаются таким вопросом?
Люди всё чаще начинают задавать вопрос, как это – программирование на телефоне? Может удобно или нет? Все эти вопросы задавал себе наверное каждый начинающий программист, который стремится к знаниям и хочет программировать везде и всегда. Безусловно на это повлияло и столь быстрое развитие технологий. За небольшой промежуток времени печатные машинки заменились ноутбуками и ПК, которые способны решить очень сложные задачи.
Если мы посмотрим на развитие телефонов в целом, то они также очень быстро начали развиваться. Сначала сенсорные телефоны не восприняли так как надо, а сейчас такой смартфон неотъемлемая часть каждого человека. Это и есть ответ на вопрос: “Программирование на телефоне – откуда у людей такие вопросы и мысли“. Практически каждый человек, который хоть как то знаком с программированием скажет, что программирование на смартфонах Android или Apple – крайне неудобно и ненужно. Они будут отчасти правы, однако это всё же возможно и давайте разберемся как и зачем?
Программирование на телефоне – разберемся?
Как это? Программирование на телефоне с помощью различных сервисов и ПО.
Существует множество сервисов, которые помогают программировать на чем угодно. Главное, это доступ в Интернет и дисплей со средством ввода. Одним из таких сервисов является очень популярные Ideone.
Ideone – это онлайн-компилятор и инструмент для отладки, который позволяет вам компилировать исходный код и выполнять его онлайн в более чем 60 языках программирования.

Такие онлайн сервисы позволяет без проблем скомпилировать код, который вы можете там же и написать. Выбор языков программирования, как правило, обширный и постоянно обновляется. По крайней мере добавляются новые версии языков программирования.
Также, существуют узкоспециализированные программы, такие как Java Compiler и т.д. Их можно без проблем скачать на ваш смартфон. Программирование на телефоне и заключается в таких программах и сервисах, так как делать это в терминале, как на Linux будет крайне неудобно. Одним из лучших терминалов на Android является Termux.

Зачем программировать на телефоне. Удобство и заключительный ответ.
Как вы могли уже догадаться, программирование на телефоне – это крайне неудобно из-за маленького экрана и отсутствия полноценной клавиатуры. Конечно, вы можете подключить клавиатуру через OTG, но зачем? Почему не взять ноутбук в таком случае, ведь клавиатура у вас с собой вмещается?! Ещё одним фактором, который говорит против программирования на телефонах Android и Apple является отсутствие профессионального софта. Существуют только узконаправленные компиляторы или онлайн-IDE. Они, как вы понимаете, никогда не смогут заменить нормальное ПО для программиста.
Мое мнение такого, что программирование на смартфоне не имеет смысла, так как занимает много времени и концентрации. Это, безусловно, является возможным и может даже кому-то пригодится. Однако я считаю, что лучше учить материал, который может вам помочь в развитии, так как смартфон для этого подходить очень даже. По пути куда-то или лежа на диване, вы всегда сможете посмотреть видеокурс или прочитать книгу. Пользуйтесь гаджетами правильно, а я надеюсь, что смог дать вам ответ на это пусть и легкий, но очень популярный вопрос.
Если вы считаете, что программирование на телефоне не является чем-то неудобным, пишите об этом в комментариях. Подписывайтесь на обновления сайта, а также наш Telegram.