Android

Итак, вы решили научиться разрабатывать приложения под Android? Отлично! Но нужно понимать, что без труда не вынешь и рыбку из пруда. Программирование — это крайне обширная и трудная для изучения область. Зачастую, элементарно не знаешь с чего начать. Скорее всего у вас возникнут некоторые вопросы, на которые необходимо дать ответ, прежде чем вы начнете свое обучение.

  • Какой язык программирования мне необходимо выучить?
  • Где я смогу выучить выбранный язык?
  • Как только я разобрался с основами, в какой программе мне писать код?

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

Выбирайте

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

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

Языки, которые вы можете изучить, чтобы разрабатывать приложения под Android:

  • Java: Java является официальном языком программирования для платформы Android и поддерживается Android Studio. Однако у данного языка крутая кривая обучаемости.
  • Kotlin: С недавних пор, Kotlin стал вторым официальном языком программирования для платформы Android. Во многом Kotlin очень похож на Java, но его кривая обучаемости менее крутая.
  • C/C++: Android Studio поддерживает язык программирования C ++, но только при совместном использовании с Android NDK.
  • C#: Это более удобная и дружелюбная к новичкам альтернатива C или C++. Код на С#, как правило, выглядит проще и лаконичнее. Данный язык поддерживают такие инструменты, как Unity и Xamarin, которые отлично подходят для кроссплатформенной разработки игр и приложений.
  • BASIC: Его стоит изучить для того, чтобы попробовать IDE от Anywhere Software, под названием B4A (Basic4Android). Это простой, но достаточно мощный инструмент. При разработке приложений используется множество нативных библиотек.
  • Corona/LUA: Кроссплатформенный инструмент, основанный на языке программирования Lua. Corona сильно упрощает процесс создания приложений и позволяет вызвать любую нативную библиотеку.
  • PhoneGap (HTML, CSS, JavaScript): С помощью PhoneGap вы можете создать кроссплатформенное приложение с помощью JavaScript, используя HTML и CSS для разметки. То есть вы создаете свое приложение, также как создаете обычный веб-сайт.

Java

Любой, кто имеет дело с разработкой приложений на Android, ответит вам, что самый популярный язык программирования в их сфере — это Java. Данный язык является официальным языком разработки на Android, то есть он имеет наибольшую поддержку со стороны Google и большинство приложений в Google Play написаны именно на нем.

Самый простой способ начать разрабатывать приложения — скачать Android Studio.

Android Studio — это интегрированная среда разработки (IDE), разработанная компанией Google. В комплекте с этой IDE идет Android SDK (набор инструментов для упрощения и ускорения разработки приложений), что позволит вам, без лишних усилий, сразу же сесть и начать работать.

 

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

Сам язык Java был выпущен компанией Sun Microsystems в далеком 1995 году. Код Java можно выполнить на любом устройстве, так как сначала он транслируется в специальный байт-код, независимый от платформы, а затем этот байт-код выполняется виртуальной машиной JVM.

К сожалению, Java довольно сложен, поэтому я бы не рекомендовал его, в качестве “первого языка для изучения”. Java — это объектно-ориентированный язык, включающий в себя такие сложные темы, как конструкторы, NullPointerException, проверяемое исключение и т.д. Вам придется использовать очень много шаблонного кода (boilerplate code), который занимает ненужное место и отвлекает внимание, и все ради выполнения одной минимальной задачи. Также, разработка с помощью Java потребует от вас базового понимания таких понятий, как Gradle, манифест приложения и язык разметки XML.

Но все вышеперечисленное вовсе не означает, что Java — это плохой язык. Вообще нельзя называть, какой бы то ни было, язык плохим. Все недостатки Java существуют для нашего же с вами блага и способствуют написанию чистого кода. Именно по этой причине многие люди так любят Java, а еще потому что он очень универсален и используется по всему миру. Согласно рейтингу PYPL (PopularitY of Programming Languages), Java является самым востребованным языком программирования среди работодателей.

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

 

Каков вердикт? Для тех, кто хочет испытать полное погружение в Android-разработку, Java — идеальный вариант для начала. Ну а для тех, кого отталкивает написание сложного и объемного кода, существует визуальный редактор и шаблонный код. Если вы новичок и хотите создать игру, либо просто хотите создать несколько проектов с нуля для портфолио и профессионального опыта — я советую вам начать с чего-нибудь попроще и вернуться к Java и Android Studio, когда вы будете более уверено чувствовать себя в мире мобильной разработки.

Примечание: Java также можно использовать с Unity. Я расскажу о движке Unity в разделе C#. Просто знайте, что можно выучить Java, вместо C# и использовать с Unity, а затем перейти к разработке, с помощью Android Studio.

Kotlin

Совсем недавно Kotlin стал официальным языком программирования для платформы Android. Некоторые предполагают, что он может стать чем-то вроде языка Swift, но для Android.

Kotlin, как и Java, компилируется в байт-код JVM. Он полностью совместим с Java, то есть мы можем взять любой Java-код, написанный раньше, и вызвать в Kotlin, либо же наоборот. Отличие заключается в том, что Kotlin требует гораздо меньше шаблонного кода “boilerplate code”, поэтому его синтаксис читается легче. Также, в отличие от Java, Kotlin null-безопасен, то есть при попытке присваивания или возвращения null-код не скомпилируется. В общем, если вы только учитесь разрабатывать приложения под Android, Kotlin — замечательный выбор.

 

Kotlin определенно заслуживает звания отправного языка программирования для начинающих, а тот факт, что с ним можно использовать Android Studio — большой плюс. Но в то же самое время C# вкупе с Unity —  более подходящий выбор для новичков. К тому же комьюнити Kotlin только недавно начало сформировываться. Выбор за вами.

C/C++

Справедливости ради скажу, что новичкам все же не стоит выбирать этот язык, в качестве первого для Android-разработки. Android Studio предлагает поддержку языка C/C ++, но только при использовании Android NDK (Native Development Kit). Это означает, что код, написанный на C и C++ нельзя выполнить на JVM, но можно выполнить непосредственно на самом устройстве, что дает больший контроль над такими вещами, как, например, память. Для требовательных приложений это поможет выжать из устройства максимум производительности. Кстати, вы сможете использовать библиотеки, написанные на C или C++.

 

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

C#

C# — это более простой, более удобный объектно-ориентированный аналог языков C и C++, разработанный компанией Microsoft. Он сочетает в себе мощь C++, удобство Visual Basic, а также многие особенности синтаксиса Java. Как и в Java, в C# реализована функция сборки мусора (garbage collection), которая периодически освобождает память, удаляя объекты, не востребованные приложениями, поэтому вам не придется беспокоиться о таких вещах, как утечка и освобождение памяти.

Если вы хотите быстро и без особых усилий начать разработку приложений под Android — я рекомендую сочетание C# и Unity. Unity — это и игровой движок, и IDE. Unity —  это бесплатный инструмент, который позволяет за считанные часы и несколько строк кода создать полноценную игру. Без преувеличения. Помимо легкости в использовании, Unity очень мощный движок, именно поэтому его используют многие игровые студии в Google Play Store. Кстати, забыл упомянуть про его кроссплатформенность. Помимо всего прочего, разработка приложений, с помощью C# и Unity, поможет вам лучше понять объектно-ориентированное программирование (поскольку “объекты” на самом деле являются объектами большую часть времени).

 

Каковы же минусы? Unity — идеальный вариант для разработки игр, но для создания стандартных Android-приложений, типа калькулятора, плохо подходит, особенно если вы собираетесь соответствовать материальному дизайну (material design) от Google. Если вы планируете стать профессиональным Android-разработчиком, вам лучше на время забыть про C# и Unity, так как это ограничит ваши возможности для трудоустройства, однако если ваша цель стать именно разработчиком игр — C# и Unity ваш путь в будущее.

Не заинтересованы в Unity? Тогда вам стоит рассмотреть Unreal Engine(графика в разы лучше, чем у Unity, но данный движок мало подходит для разработки мобильных игр) или же донельзя упрощенный движок GameMaker Studio.

C# также можно использовать, при помощи Xamarin через Visual Studio. Данный способ очень похож на традиционный способ разработки Android-приложений (при помощи Android Studio), но с добавлением функции кроссплатформенности (один и тот же исходный код для Android и iOS). C# и Xamarin — бессмысленный вариант для новичков в сфере разработки приложений под Android, но для небольшой компании, желающей создать приложение и для iOS, и для Android —  это имеет смысл, поскольку большое количество информации в Интернете по тем или иным вопросам, а также сплоченное комьюнити поможет в этом нелегком деле.

BASIC

BASIC (Beginners All-Purpose Symbolic Instructions Code) — это невероятно приятный в использовании язык, который идеально подходит тем, кто только начал свое знакомство с программированием.

 

Плохая новость заключается в том, что BASIC не поддерживается Android Studio, а также вы не сможете писать на нем в Unity или Xamarin. Но без хорошей новости мы вас не оставим — писать Android-приложения на BASIC все таки можно. Как? С помощью B4A от Anywhere Software. Аббревиатура расшифровывается как “BASIC 4 Android” и означает она, как вы уже поняли, разработку на BASIC для Android. Данный язык, конечно, не очень популярен для разработки приложений, но попробовать что-то новое всегда полезно.

B4A — это среда разработки, основанная на концепции RAD или Rapid Application Development (Быстрая Разработка Приложений). В B4A реализовано множество креативных решений для более легкой разработки приложений. Кроме того, у данной среды разработки очень сплоченное комьюнити, которое не оставит вас без помощи в трудную минуту.

BASIC и B4A — это отличный способ научиться программировать, к тому же он неплохо подходит для создания мощных и полезных приложений. Однако данный метод не совсем годится для создания высококлассных игр, потому что при нем теряется множество функций из-за того, что он является “неофициальным” вариантом для создания приложений и игр, и ему сложно соответствовать спецификациям материального дизайна от Google. В общем, вам будет сложно работать профессиональным разработчиком, используя один только BASIC. Другим большим недостатком является то, что B4A —  единственный вариант в списке, не являющийся бесплатным.

Corona

Corona предлагает пользователям гораздо более простой, по сравнению с Android Studio, способ разработки приложений под Android, при этом предоставляя солидную мощность и полный контроль над процессом. Вы будете писать на языке программирования LUA, синтаксис которого намного проще, чем у Java. Кроме того, вместе с Corona идет Corona SDK (набор инструментов для упрощения и ускорения разработки приложений), что позволит еще больше упростить вашу работу. Corona поддерживает огромное множество нативных библиотек и кроссплатформенность. В основном он используется для создания игр, но может быть использован и в ряде других способов. Для написания кода вам нужно будет использовать текстовый редактор, например Notepad ++, затем вы сможете запустить его на эмуляторе, без необходимости компиляции. Когда будете готовы создать и задеплоить APK-файл, воспользуйтесь Corona Simulator.

 

Corona потребует от вас базовых навыков в программировании, но взамен предложит приятный и легкий процесс разработки приложений. В то же самое время возможности Corona и LUA несколько ограничены, поэтому попасть на “территорию настоящих разработчиков приложений” будет трудно. Данный способ разработки больше подходит для тех, кто хочет создавать простенькие приложения и не заботится о развитии своих профессиональных навыков. Кстати говоря, если захотите использовать в своем приложении функцию встроенных покупок — нужно будет заплатить комиссию. То же самое касается использования нативных API Android.

PhoneGap

Наконец-то мы подошли к последнему варианту разработки приложений под Android. Поприветствуйте, PhoneGap! Данный фреймворк, основанный на Apache Cordova, позволяет создавать приложения, используя те же языки, которые мы обычно используем для создания веб-сайтов: HTML, CSS и JavaScript. Движок PhoneGap расширяет API браузера и предоставляет доступ к некоторым основным функциям телефона или планшета, вроде доступа к акселометру, камере, списку контактов, файловой системе и т.д.

 

По сути это ненастоящая разработка приложений под Android. Единственное, что здесь осталось от настоящего программирования — это JavaScript. Данный способ подойдет для выполнения многих базовых задач, но если вы хотите стать “настоящим, а не игрушечным” Android-разработчиком — наберитесь смелости и выберите другой вариант из данного списка.

Заключение

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

 

Независимо от того, что вы выберете, изучение языков программирования — невероятный опыт, который откроет для вас массу дверей. А изучение разработки приложений на Android — идеальный вариант, чтобы начать. Удачи!

 

Перевод статьи Adam Sinicki: I want to develop Android Apps — What languages should I learn?