Основы программирования для android. Программирование для Android - это просто! Android для начинающих ч.I

Для Андроид 13.10.2018
Для Андроид

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

Совсем недавно на GeekBrains мы затрагивали для мобильных платформ, но в этот раз остановимся поподробнее на Android. Вот 10 языков, которые позволят вам создать мобильное приложение любого типа и сложности:

Java

Не будет большим преувеличением назвать Java официальным языком Android. Во всяком случае, почти вся образовательная документация, все интернет-курсы основаны на этом. А еще это самый популярный язык по оценке TIOBE, второй по количеству исходников на GitHub, да и вообще большой красивый язык. Именно поэтому изучение Java должно быть первоочередной задачей для любого Android-разработчика. Пусть это будет непросто (все-таки языку 22года, а легкость никогда не была его коньком), пусть теоретически можно обойтись более современными языками, помните - невозможно добиться существенных успехов на Android, абсолютно не понимая Java, не говоря уже о конкретных исходниках.

C#

При всем нескончаемом скепсисе, направленным в сторону продуктов Microsoft, стоит признать, что C# этого не заслуживает. Это прекрасный язык, вобравший в себя всё лучшее от Java, при этом учтя и исправив многие недостатки.

Что касается разработки приложений под Android, то здесь к вашим услугам одни из самых функциональных сред Visual и Xamarin Studio . А еще знание C# станет для вас приятным бонусом, когда доберетесь до использования Unity 3D . С таким набором возможности будут безграничны.

Python

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

Самым популярным фреймворком является Kivy , который без труда поможет вам создать приложение для Play Market на чистом Python. А если нет, то помогут добрые разработчики в чате . Если вы еще не овладели им, рекомендуем пройти .

Kotlin

В тексте про я уже пытался объяснить, почему Kotlin сам по себе отличный язык, а в связке с Java он ещё лучше. Действительно, официально выпущенный лишь год назад, Kotlin очень быстро завоевывает сердца разработчиков по всему миру практически полным отсутствием недостатков.

С его помощью (точнее с помощью родной среды IntelliJ IDEA) вы не будете чувствовать никаких проблем в разработке нативных приложений для Android. При этом спрос на специалистов Kotlin пока низок, а значит, получив опыт работы с ним, вы рискуете в будущем получить конкурентное преимущество.

Языки веба

Стандартный языковой набор работника веба: HTML, CSS и JavaScript. Не зная эти 3 языка, вы сведете себя к разработке приложений достаточно узкой направленности. Даже если вы непосредственно веба в будущей работе касаться не хотите, то гибридных приложений избежать получиться вряд ли.

Работать с HTML, CSS и JavaScript можно используя среды PhoneGap Build или, в более специализированном случае, Adobe Cordova . Больших знаний они от вас не потребуют, а результат обеспечат. Или вот из последнего, React Native от Facebook - это уже следующий уровень удобства взаимодействия, но опыта и документации скопилось мало. В общем, выбирайте, благо есть из чего.


Lua

Язык, который старше Java, куда менее популярный, но всё равно востребованный. У него есть ряд преимуществ, вроде динамической типизации, относительно простого синтаксиса, но до наших дней он дожил благодаря задействованности в играх. Именно удобство создания программной прослойки между движком и оболочкой открыло перед Lua двери в мир карманных гаджетов.

Corona SDK - среда для разработки мобильных кроссплатформенных приложений, преимущественно игр, где главным инструментом является Lua. С 2015 года она распространяется бесплатно, рассчитана на начинающих разработчиков, плюс ко всему вы можете найти много полезной информации, как в англоязычном, так и русскоязычном сегменте интернета.

C/C++

На самом деле Google предоставляет разработчиков две среды разработки: SDK, предназначенная для работы с Java, и NDK , где нативными языками являются C/C++. Да, конечно вы не напишете целое приложение с использованием лишь этих языков, но с их помощью вы можете создать библиотеку, которую впоследствии при помощи Java подключите к основному телу программы.

Несмотря на то, что подавляющему большинству разработчиков нет никакого дела до NDK, тем не менее задействовав этот инструмент вы получите лучшие результаты по производительности и использованию внутренних ресурсов. А это именно то, что на Android отличает хорошую идею приложения от хорошей реализации.

А на каких языках пишете вы?

Мы подготовили для вас подборку мобильных приложений, благодаря которым вы сможете изучать программирование где угодно. Делитесь приложениям, которые не попали в этот список, в комментариях!

Udacity


Khan Academy

SoloLearn

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

Coursera: Online courses

Бесплатные курсы ведущих университетов мира на Coursera теперь доступны и в виде приложений для Android и iOS .


EdX - Online Courses


Мы не смогли пройти мимо этих замечательных ресурсов, которые также нацелены на обучение программированию в увлекательной форме.

CodeCombat

Одна из самых популярных игр, обучающих программированию. Приложение часто используется в образовательных учреждениях для обучения разработке. Содержит курсы для всех возрастов.


CodeWars

Сервис , в котором можно соревноваться в программировании с другими участниками. Пользователям доступны различные языки для написания кода и задания, которые необходимо выполнить.


Если эти ресурсы показались вам интересными, советуем ознакомиться с нашей бесплатных онлайн игр, которые обучат вас программировать.

К операционной системе №1 на рынке мобильных устройств в мире (см. публикацию , статью Википедии ) сегодня приковано внимание широкого круга ИТ-специалистов, в том числе и разработчиков программного обеспечения (ПО). В настоящее время в хранилище Google Play доступно более 700 000 различных приложений, многие из которых распространяются бесплатно, обеспечивая популярность этой операционной системе среди пользователей. Без преувеличения можно сказать, что секрет успеха этой свободной мобильной платформы - сплав удобства и надежности использования системы с развитыми и современными средствами разработки.

Несмотря на свою молодость, Android дает разработчику широкие возможности по использованию в своих проектах самых современных технологий. Это и стандарты связи - GSM/EDGE, CDMA, UMTS, Bluetooth, Wi-Fi, LTE, WiMax, USB, графическая библиотека 2D/3D, основанная на OpenGL, реляционная СУБД SQLite, различные медиа-форматы - H.263, H.264, MPEG4, AMR, AAC, MP3, MIDI, OGG, WAV, JPEG, PNG, GIF,BMP, потоковое видео, технологии Multi-touch и Multitasking, Google Maps и GPS и многое, многое другое.

Целью нашей статьи будет обзор инструментария для тех, кто интересуется программированием и хочет начать писать приложения для Android. А может это и действительно не так сложно!?

Рис.1 Симпатичный дроид от Google - Всегда готов быть запрограммированным! (рисунок с презентации возможностей работы с интерфейсом USB в Android)

Сразу скажем, что тем, кто имеет базовые навыки программирования на языке Java повезло, так как именно этот язык был выбран в качестве основы API (Application Programming Interface) - прикладного интерфейса программирования ОС Android. Для этого была разработана виртуальная машина Dalvik, специально оптимизированная для мобильных устройств (см. ). Однако тем кто не слишком знаком с Java не стоит отчаиваться, можно знакомиться с языком по ходу изучения «материала» (примеров решения различных задач), двигаясь от простого к сложному и постепенно повышая свой уровень. Ведь как говорит пословица: «Аппетит приходит во время еды». Именно по такому принципу построены занятия курса

В сети Интернет можно легко найти материал различного уровня сложности, посвященный нашей теме. При этом нельзя не упомянуть первоисточник - сайт Google для разработчиков Android (на английском) . Из русскоязычных сайтов, можно порекомендовать уникальный, в своем роде, ресурс , где подобран отличный практический материал, и его можно скачать, к тому же, в pdf формате. Для любителей печатных изданий скажу, что разобраться во многом, в том числе с ресурсами Android-приложений, поможет книга С.Хашими . (прим. Спустя несколько лет после написания этих строк, можно добавить, что литературы и ресурсов в Интернет по Андроид-программированию теперь достаточно, литературу можно подобрать согласно своему уровню в книжном магазине или учиться с помощью запросов в поисковике).

Однако практически весь материал в сети и в литературе ориентирован на использование интегрированной среды разработки (IDE) Eclipse, а точнее плагина для нее - ADT или Android Developer Tools (см. ). Хотя преимущества среды разработки IDE Eclipse очевидны (мощный редактор кода, интерактивная справка, мастера для создания проектов и классов, различные варианты представлений информации, компоновки, плагины и проч.). Но познакомившись поближе с Android SDK (Software Development Kit - комплект средств разработки) и с работой утилит SDK в командной строке начинаешь глубже понимать весь процесс создания приложения. Ведь различные IDE используют незаметно для нас именно эти утилиты, а некоторые разработчики (в основном работающие в Unix/Linux) неспроста предпочитают традиционные vi/Emacs, подключая к текстовому редактору мощь shell-скриптов и конвейерной обработки этих операционных систем.

Установка SDK и обзор инструментария

Начнем с того, что на машине, предназначенной для экспериментов, должен быть установлен JDK 6 или выше, затем нужно скачать сам SDK для своей ОС. В зависимости от операционной системы (Linux, MacOS, Windows), это может быть архивный или exe-файл (для Windows). Установив SDK или распаковав нужный файл в удобный каталог, можно начать исследование инструментария для работы программиста. В операционной системе Linux после распаковки архива в каталог ~/android, для удобства, чтобы не вводить полный путь к командам, следует добавить такой путь к переменной окружения PATH в файл ~/.profile:

PATH="$HOME/android/android-sdk-linux/tools:$HOME/android/android-sdk-linux/platform-tools:$PATH"

После установки SDK в распоряжении программиста находятся три основные утилиты командной строки, но они умеют «почти все»:

Android Emulator (tools/emulator) - запускает приложения на эмуляторе платформы в виртуальных устройствах (Android Virtual Devices - AVDs). Эмулятор позволяет тестировать программы не загружая их на реальное устройство, что существенно сокращает время разработки.

Android (tools/android) - эта утилита создает проекты и управляет виртуальными устройствами с помощью графической утилиты AVDs Manager.

Android Debug Bridge (platform-tools/adb) - интерфейс с виртуальным устройством AVD или реальным устройством Android, подключенным к компьютеру. Позволяет устанавливать приложения, получать доступ к командной строке и выполнять различные команды на устройстве (обеспечивает shell-доступ).

Основные этапы разработки

Установив SDK, мы выполнили первый шаг в разработке ПО для Android (см. Таблица 1 и ресурс ). Инженеры Google условно разбили создание приложения на следующие этапы:

Таблица 1. Этапы разработки Android-приложения

Установка Установка нужного инструментария Инсталляция Android SDK, Android Development Tools, настройка переменных среды
Установка AVDs и подключение устройств Создание виртуальных устройств (Android Virtual Devices) и подключение реальных устройств для тестирования
Разработка Создание приложения Создание проекта используя Java-код, ресурсные файлы, файл манифеста
Тестирование и отладка Построение и запуск приложения Построение и запуск приложения в режиме отладки
Отладка приложения Отладка приложения с использованием инструментов отладки
Тестирование приложения Тестирование приложения с помощью инструментария Android и дополнительных инструментов
Публикация Подготовка приложения к публикации Построение и тестирование приложения в режиме релиза
Выпуск приложения Попытка подарить всем или продать приложение

На этапах разработки, отладки и публикации приложения SDK активно использует следующие вспомогательные утилиты: Ant (Apache Ant) - для автоматизации процесса сборки установочного apk-файла, Keytool и Jarsigner (входят в состав JDK) - для генерирования ключа и создания цифровой подписи apk-файла. Именно такой формат принят для распространения программного обеспечения в данной операционной системе и используется для размещения на Google Play.

Создание среды исполнения

Последний подготовительный этап разработки - создание виртуального устройства для запуска и тестирования будущего приложения. Фактически AVD (Android Virtual Devices) - это конфигурация эмулятора Android, отражающая параметры реального устройства. Простейший способ создать виртуальное устройство в эмуляторе - набрать в консоли команду:

Эта команда запускает графическую оболочку инструмента AVD Manager. Отсюда можно создать, запустить или изменить параметры виртуального устройства (см. рис.2)


Рис.2 Окно создания (изменения параметров) виртуального устройства AVD Manager

Вы можете менять выбрать параметры виртуального устройства самостоятельно (для примера см. рис.2) или выбрать на вкладке Device Definitions окна AVD Manager конфигурацию для создания виртуального устройства его из шаблона, соответствующего параметрам реального планшета или телефона.

Отметим также, что эти же действия по созданию виртуального устройства можно с успехом осуществить из консоли с помощью такой команды:

$android create avd -n em1 -t 1 -c 512M

Параметры этой команды: -n - имя устройства, -c - размер карты памяти в байтах, -t - среда исполнения (target runtime), значение параметра необходимо устанавливать в зависимости от нужной для программиста версии Android. Узнать его можно с просмотрев вывод:

$android list targets

Созданное устройство запускается из AVD Manager. Для этого нужно его выделить его и нажать “Start”, или то же самое можно сделать с помощью командной строки:

Где “em1” имя нашего устройства. В результате мы на экране монитора увидим эмулятор Android в действии (см. рис. 3). Не упустите шанса посмотреть погоду в «виртуальном устройстве браузере» через поиск от Google!


Рис.3 Эмулятор от Android SDK

Вы знаете, как стать программистом Android всего за 8 месяцев и получать не менее 100 000 рублей в месяц, работая из дома и без конца путешествуя? Хотите открыть собственный бизнес и чтобы вас все уважали и ценили?

Тогда я хочу в какой-то мере предостеречь вас от попытки заняться самообразованием с помощью многочисленных платных интернет-курсов, на которых очень часто разводят лохов. Если вы интересуетесь поисковой оптимизацией, веб-дизайном и программированием, то вам необходимо понимать простую вещь...

Во-первых, все отзывы вроде «Я продавал CD-диски в переходе, но купив доступ к лекциям на Geek brains, через 3 месяца упорного труда стал программистом. Ребята, главное, верить!» пишутся копирайтерами. Во-вторых, ни один из продавцов курсов не предупредит вас о том, какой уровень знаний уже нужно иметь, чтобы приступить к обучению. Велик шанс, что вы откроете учебники и…не поймёте даже то, как инсталлировать программу для создания кода. А деньги вам назад не вернут.

Говорят, что тот же сайт Java rush, где преподаётся Java в качестве игры и довольно сумбурно, может иметь какую-то пользу, но при условии, что вы уже…тут я попрошу минуточку, знаете другие языки программирования. Сколько лет нужно, чтобы изучить язык Java досконально? Профессиональный программист, получивший образование в институте, сказал мне, что пишет на нём и продолжает его учить уже 5 лет, но всё ещё не овладел им в совершенстве. За спиной уже собственный небольшой бизнес, знание нескольких других языков, множество реализованных проектов, а Java он всё учит и учит!

Ключевые навыки:

Знание Java Core

Знание Android SDK

Опыт работы в IntelliJ IDEA, Eclipse, Android Studio

Опыт разработки Android-приложений на Java

Опыт работы с XML, JSON, HTTP, sockets

Знание Android API, понимание архитектуры Android, пользовательский интерфейс, меню, диалоги, ресурсы, logcat, MVC

Intents, Fragments, Контент-провайдеры, бродкаст-ресиверы, Google Maps, виджеты, телефония, сенсоры, блютуз, графика и анимация

SQLite, Web, Concurrency

Базовое знакомство с гайд-лайнами Android последней версии

Понимание особенностей работы мобильного приложения в условиях слабого сигнала связи

Уверенное владение базовыми паттернами проектирования

Творческий подход к поставленным задачам

Умение писать чистый код и правильно создавать и использовать модульные тесты

Умение и желание приобретать новые навыки и осваивать новые технологии

Умение быстро разбираться в чужом коде‚ если это понадобится

А вот сколько денег обещают на Geek brains в итоге. То есть, они уверяют, что столько будут получать большинство из вас уже в процессе обучения:

Программист Android — 100 000 рублей

Мобильный разработчик — 130 000 рублей

Веб-разработчик — 100 000 рублей

Программист Java — 110 000 рублей

Разработка мобильных приложений под Android (Уровень 1, начальный):

Вы уже уверенно программируете на одном или нескольких языках и хотите разрабатывать приложения под Android? Сегодня это весьма престижная и хорошо оплачиваемая профессия, которая находится на пике популярности. Однако чтобы стать хорошим разработчиком, необходимо научиться писать качественные и функциональные приложения. Пройдя данный курс, вы получите практические навыки создания приложений и будете эффективно использовать возможности платформы и ресурсов Android.

Допустим, вы мечтаете стать программистом. Вы приходите и говорите:

— Запишите меня учиться на программиста Android!

А вам отвечают:

— Пока нет. Ну тогда запишите на Java SE8, а уже потом…

— А вы знаете Си и C++ ?

— Эээ…Нет.

— Запишите меня на Си!

— Если вы знаете основы программирования и баз данных и имеете эквивалентную подготовку…

Это означает, что до курса программирования Android вам придётся пройти ещё 3-5 разных курсов. И после прохождения вы уже сможете записаться на 6-й. Заметьте, это только первый уровень, начальный. Ни о каком трудоустройстве через полгода или год в качестве «программиста Android» речь вообще не идёт.

То есть, может получиться так, что вы пришли учиться писать стихи, но вас забыли предупредить, что для этого нужно знать хотя бы алфавит. О начальной подготовке на Geek Brains, разумеется, не говорят. Их цель - собрать деньги. Сайт полон пустышек-отзывов, причем, под одним и тем же именем (!) пишутся как комментарии с оценкой «средне» так и «отлично». Курсы при Бауманке работают больше двадцати лет. При этом, они не обещают зарплату по 130 тысяч рублей в месяц, мгновенное трудоустройство и совершенно честно пишут, что нужно очень много знать для прохождения курса программирования. Если вы никогда не учились программировать, то хвататься не то что за Java, а даже за Phyton, который считается самым пустяковым языком, — пустая трата времени и денег.

Веб-программист — 69 000 руб

Программист — 51 800 руб

Разработчик мобильных приложений — 60 000 руб



Рекомендуем почитать

Наверх