2,

Я хочу стать Android-разработчиком — какие языки программирования нужно знать

Операционная система Android с каждым годом становится не только годной ОС для обычных пользователей, но и мощной платформой для разработчиков. Что ж поделать: Google всегда идёт навстречу девелоперам, предоставляя широкие возможности и мощный инструментарий, приправленный информативной документацией.
К тому же не стоит выпускать из внимания тот факт, что «зелёный робот» является лидером по популярности среди мобильных операционных систем. Это говорит о том, что, программируя под Android, вы будете иметь широкую аудиторию, которая впоследствии может принести прибыль. В общем, Android — своеобразный «оазис» для разработчиков. Поэтому мы подготовили для вас специальную подборку языков программирования, а также сред разработки для этой ОС.
Внимание, небольшое наставление новичкам
: программирование на Android может поначалу показаться сложным или слишком монотонным. Совет: предварительно рассмотрите ссылки на полезные документации прежде чем браться за дело, и тогда программирование на Android не станет для вас проблемой.

Java — основное средство для Android-разработчика


Среды разработки: Android Studio (IntelliJ IDEA), Eclipse + плагин ADT
Подойдёт для широкого спектра задач
Java — основной язык для программистов под Android, обязательный маст-хев для новичков. Основной исходный код Android написан именно на этом языке, так что легко понять, почему большинство выбирают именно этот язык. Приложения, написанные на Java, запускаются в Android с помощью виртуальной машины ART (или Dalvik в Jelly Bean и более ранних версиях Android) — аналога виртуальной машины Java, из-за которой у Google присутствуют серьёзные судебные тяжбы с Oracle.
Google на данный момент официально поддерживает достаточно мощную среду разработки Android Studio, которая собрана на основе Intellij IDEA от JetBrains. Также не стоит забывать про очень подробную документацию от Google, в которой разбирается всё: от match_parent и wrap_content до конструкторов, констант и основных методов класса JavaHttpConnection — обязательно стоит почитать.

Кроме того, не стоит забывать о Eclipse — очень популярной среде для Java-программистов. С официальным плагином ADT от Google этот тулкит станет мощным и легковесным оружием в ваших руках. Но ребята из Маунтин-Вью ещё с лета прошлого года перестали поддерживать Eclipse, уступив место свежей Android Studio. Рекомендуется использовать на слабых ПК.

Своё путешествие в мир Android рекомендуется начинать именно отсюда: любой androi разработчик знаком с Java и понимает все немалочисленные плюсы и минусы этого языка.

Необходимая документация:

С++ — мощный инструмент в руках мастера


Основные среды разработки: Android Studio (версия 1.3 и выше), Visual Studio 2015, QtCreator
Подойдёт для игровых движков и ресурсоёмких приложений.
С++ — немолодой, но очень мощный язык программирования, отметивший в прошлом году своё тридцатилетие. Был изобретён в 1985 году благодаря стараниям товарища Бьёрна Страуструпа и до сих пор занимает верхние позиции самых популярных языков программирования. «Плюсы» предоставляют вам полную свободу действия, ограничивая вас лишь рамками разумного.
За всё существование Android было создано немало фреймворков и средств разработки для C++. Особенно хочется выделить широко известный Qt и IDE QtCreator, позволяющие разрабатывать кроссплатформенные приложения для Windows, Windows Phone, Windows RT, iOS, SailfishOS и Android (когда-то в этот список входил ещё и Symbian). Кроме того, вы получаете удобную библиотеку контейнеров, алгоритмов и шаблонов Tulip, впитавшую в себя всё лучшее из Java и Android. Ну и, наконец, вы получаете множество различных QT-модулей для высоко- и низкоуровневой работы с системой. Ваш покорный слуга кодит именно в связке C++ и Qt.

В прошлом году на конференции Windows: The Next Champter было уделено широкое внимание достаточно популярной среде разработки Visual Studio 2015. Одним из главных нововведений стала поддержка разработки приложений как под Windows Phone, так и под Android — Microsoft пыталась хоть как-то увеличить количество приложений для своей ОС.

Нельзя также не упомянуть о том, что официальный Android Studio стал поддерживать NDK. С помощью NDK вы сможете использовать при работе с Android графику OpenGL. Если вам нужна быстрота и эффективность — выбирайте NDK! Этот способ разработки отлично подойдёт для игровых движков, требующих большой производительности.

Android разработка на C или C++ может показаться более простой чем на Java, но, несмотря на то, что язык предлагает вам полную свободу производимых действий и не ограничивает вас в ваших шагах, он имеет некоторые специфические особенности, на изучение которых уйдёт немало времени — недаром C++ сравнивают с нунчаками (превосходным оружием, которое, к сожалению требует огромного мастерства). Тем не менее разработка приложений под Android на C и C++ может оказаться занятным делом.

Необходимая документация:

Другие языки


Теперь самое время рассказать о других менее популярных, но тоже интересных языках и фреймворках для них. Однако по многим причинам вы не сможете добиться такого успеха как с Java и C++.


Corona (LUA Script)


Подойдёт для создания игр и простых приложений
Если вам по каким-то причинам не хочется изучать Java или разбираться в построении интерфейса через XML, то вы можете выбрать для себя данное IDE. Corona — это достаточно легковесная среда разработки, код в которой необходимо писать на достаточно лёгком LUA (любители Pascal оценят по достоинству).

Данный тулкит поможет вам при написании простых 2D-игр, для коих здесь присутствуют библиотеки для 2D=объектов, звуков, сети и игрового движка. Созданные игры работают с OpenGL, что означает высокую эффективность. Отлично подходит для новичков, возможно, именно на нём вы сможете создать своё первое мобильное приложение на Android!


Необходимая документация:

Adobe PhoneGap (HTML5, JavaScript, CSS)


Подойдёт для создания нересурсоёмких приложений
Если вы уже знакомы с HTML, CSS и JavaScript, в качестве альтернативы вы можете попробовать PhoneGap. Это IDE позволит собирать полноценные приложения, разработанные на вышеупомянутых языках программирования и разметки.

На самом деле готовые приложения из PhoneGap представляют из себя простейшие WebView, оживлённые при помощи JavaScript. При помощи разнообразных API вы сможете использовать различный функционал устройства прямо как на нативных приложениях. Что интересно — приложения компилируются на сервере и затем уже доступны для использования на iOS, Android, Windows Phone, Web OS и BlackBerry OS. С такой широкой кроссплатформенностью разработка приложений может значительно ускориться.


Необходимая документация:

Fuse (JavaScript и UX)



Подойдёт для создания как простых, так и сложных приложений
Когда люди говорят о средствах разработки под Android, они часто вспоминают Fuse. Этот инструмент — один из удобнейших в своём роде, и он может представить перед разработчиком широкий спектр возможностей и преимуществ.

Основная логика Fuse-приложений строится на JavaScript — простом и понятном языке с низким порогом вхождения. Интерфейсный же фундамент представляет UX-разметка — интуитивно понятная каждому. Ну а «плюшки» среды позволят вам применять изменения прямо во время работы приложения на вашем устройстве или эмуляторе — прямо как в Android Studio 2.0 и выше. С помощью Fuse разработка приложений для Android может оказаться несложной и приятной.

Необходимая документация:

Слова «под занавес»

Конечно мы вам показали далеко не все существующие на данный момент инструменты разработки. Этой статьёй мы вам хотели объяснить, что стать Android-разработчиком не так уж и сложно, хотя это зачастую требует стараний и упорства. Мир разработки под мобильные платформы открыт для вас, но помните: первый шаг всегда за вами.
Последнее изменение:
 
artem24
artem24, 4 февраля 2016 - 14:45   (...)
Спасибо! Как раз для меня!
Ответить
Dimanaux
Dimanaux, 4 февраля 2016 - 15:22   (...)
Html и css не языки программирования
Ответить
NickMeller
NickMeller2, 4 февраля 2016 - 15:29   (...)
Это очень спорное высказывание, массы до сих пор спорят о его правильности.
Ответить
timblaer
timblaer44, 4 февраля 2016 - 16:02   (...)
Чего тут спорить, с помощью HTML/CSS уж точно не напишешь программу. Не думаю, что анимации в CSS можно назвать решением какой-нибудь задачи или проблемы — а именно этим и занимается программирование.
Ответить
NickMeller
NickMeller2, 4 февраля 2016 - 16:06   (...)
Они полностью попадают под определение языков программирования.
Ну и вот немножко Хабра:
__TCAPT__
Ответить
NickMeller
NickMeller2, 4 февраля 2016 - 16:07   (...)
Это виды ЯП если что
Ответить
timblaer
timblaer44, 4 февраля 2016 - 16:28   (...)
HTML — это Hypertext Markup Language, язык разметки. " Следует отметить, что язык разметки неполон по Тьюрингу и обычно не считается языком программирования." — эта же Википедия. HTML, он как TeX, служит для оформления и задач не решает. CSS — это формальный язык, он лишь дает описание к тому, что написано на HTML, никакой задачи при этом, опять-таки, не решая и полным по Тьюрингу не думаю, что является.
Ответить
NickMeller
NickMeller2, 4 февраля 2016 - 16:34   (...)
Формально это тоже язык программирования.
Ответить
timblaer
timblaer44, 4 февраля 2016 - 16:55   (...)
Обсуждаются два языка, «это» — это какой?
Ответить
TARANS_
TARANS_3, 4 февраля 2016 - 16:21   (...)
Гипертекстовый язык разметки. Каскадные таблицы стилей.
Ответить
Slava_Lev
Slava_Lev, 4 февраля 2016 - 15:39   (...)
ага, это протоколы.
Ответить
Valentyn474
Valentyn474, 4 февраля 2016 - 15:28   (...)
Очень хорошая и содержательная статья! Огромное спасибо автору!
Ответить
Slava_Lev
Slava_Lev, 4 февраля 2016 - 15:40   (...)
а так очень даже полезная статья.
Ответить
Dexter_Jr
Dexter_Jr, 4 февраля 2016 - 16:40   (...)
Классная статья
Ответить
Kenny778
Kenny778, 4 февраля 2016 - 17:54   (...)
Учу Java уже полгода, пока буду ее доучивать, посмотрю LUA Script, ибо Паскаль знаю очень даже хорошо и планировал начать делать что-то 2D-шное (чтобы народ залипал, как в Flappy Bird)
Ответить
SUPER_S
SUPER_S, 5 февраля 2016 - 10:46   (...)
А ты сам какие языки программирования знаешь?
Ответить
NickMeller
NickMeller2, 5 февраля 2016 - 12:30   (...)
C, C++,C#, Java
Это те, которые я действительно знаю, есть языки, с которыми я знаком лишь примерно: Python, например, или JavaScript.
Ответить
SUPER_S
SUPER_S, 5 февраля 2016 - 18:40   (...)
Ты по урокам учил или книги читал?
Ответить
NickMeller
NickMeller2, 5 февраля 2016 - 19:45   (...)
Использовал все возможные источники.
Ответить
Nicholas07
Nicholas07, 7 февраля 2016 - 08:33   (...)
Побольше бы таких статей на тему программирования
Ответить

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием