на чем делают мобильные приложения
8 языков программирования для Android-разработчика
Авторизуйтесь
8 языков программирования для Android-разработчика
Android-разработчики пишут не только на Java и Kotlin: в этой статье разберём 8 популярных языков программирования, которые подходят для разработки Андроид-приложений, расскажем, насколько востребованапрофессия кем работать» rel=»dofollow»> профессия и где её освоить.
Это официальный язык для разработки под Android, который поддерживается Android Studio и является основой для изучения Kotlin.
Вообще, когда начинаются споры о том, что лучше, Java или Kotlin, следует помнить, что Kotlin — это обёртка над Java. Чтобы понять документацию Kotlin и получить помощь в процессе разработки мобильных Android приложений, следует знать именно Java.
Kotlin
Ещё один официальный и не менее популярный язык. Также поддерживается Android Studio, характеризуется синтаксическим сахаром и предоставляет корутины, что упрощает асинхронную работу.
Синтаксис Java заочно предполагает более громоздкий код, чем в случае с Kotlin. Например, так Android-разработчик будет присваивать текст полю на этих двух языках программирования:
Java
Kotlin
helloTextView.text = «Hello world»
Как видим, Kotlin позволяет написать то же самое, но гораздо быстрее, с использованием меньшего количества строк.
Главные преимущества Kotlin в разработке под Android:
Примечание Следующие языки рекомендуем рассматривать как альтернативные варианты, а не базу для Android разработки.
Python
Да, энтузиастам удалось приспособить один из самых популярных языков программирования под Андроид разработку. Реализовано это с помощью Kivy и BeeWare:
Будем откровенны, Android-разработчик, который пишет мобильные приложения на языке программирования Python, — большая редкость. В основном это что-то для себя или проекты молодых амбициозных фирм.
Если вы знаете Python, попробовать определённо стоит.
C-языки позиционируются как высокопроизводительные, и это важно, особенно если мы говорим о чём-то тяжеловесном вроде мобильной 3D-игры.
Но стоит сразу оговориться, что прибегнуть к Java всё-таки придётся: без этого языка вам не создать полноценное мобильное приложение. Android NDK позволит написать на C/C++ только часть приложения, например библиотеку, которую через Java можно подключить к программе.
JavaScript
А вот Android-разработка на JS более жизнеспособна.
С фреймворком React Native вы можете создавать мобильные приложения с многофункциональным мобильным UI. При этом такие программы полностью нативны, то есть не являются мобильными веб-приложениями. Всё потому, что React Native использует те же компоненты, что и простые приложения для Android.
Flutter — относительно новая технология от Google, полноценный SDK, выпущенный в 2018 году.
По ряду параметров считается более удачным решением, чем React Native. Позволяет писать кроссплатформенные приложения, поэтому эффективен в разработке приложений для Android с общей базой кода на языке Dart.
Dart позиционируется как альтернатива JavaScript. Он компилируется в бинарный код, за счёт чего достигается высокая скорость выполнения операций. Вместо XML Dart использует так называемые деревья макетов.
Основные преимущества Dart:
Программирование на Андроид с использованием C# подразумевает платформу Xamarin. С её помощью можно создавать одну логику приложения на C# для Android и iOS.
Схематическое представление работы Xamarin:
Как видно, пользовательский интерфейс разрабатывается индивидуально для обеих платформ, при этом бизнес-логика остаётся общей.
Но, как и в случае с языком программирования Python, Андроид разработчик, пишущий на C#, — это, скорее, исключение, чем правило. Такое решение подойдёт тем, кто знает язык и хочет попробовать себя в мобильной разработке.
Стоит ли становиться Android-разработчиком?
По данным IDC за конец 2020 года, доля ОС Android на рынке смартфонов составила 85%:
По всему миру насчитывается почти 3 миллиарда устройств на этой системе. Можно смело заявить, что Android-разработчик —профессия кем работать» rel=»dofollow»> профессия востребованная.
По данным hh.ru, в России насчитывается порядка 7000 соответствующих вакансий, а в США — 12 000, согласно LinkedIn.
Кроме того, мобильная разработка позволяет также зарабатывать на собственных приложениях. Для наглядности: выручка маркета Google Play в 2020 году составила около 38,6 млрд долларов.
Выводы
Несмотря на весь спектр языков, обучение Android-программированию должно начинаться с Java и Kotlin, как двух официальных языков.
Начинающим Android-разработчикам и просто новичкам в программировании отлично подойдут онлайн-курсы Android, в ходе которых можно и теорию освоить, и поучаствовать в реальных проектах.
Как выбрать язык программирования для создания Андроид — приложения
Привет, Хабр! представляю вашему вниманию перевод статьи «Top Programming Languages for Android App Development» автора Mohit Maheshwari.
Бурное развитие информационных технологий в последнее время привело к появлению множества новых различных устройств и технологий, в том числе планшетов, смартфонов, смарт-часов и других гаджетов. Они все более прочно входят в нашу жизнь и становятся привычным делом. Лидирующей платформой среди таких устройств является операционная система Android.
Выбор языка программирования
В настоящее время Java является самым популярным языком программирования для мобильной разработки на Android. Хотя Google активно продвигает Kotlin как язык, который должен будет заменить Java. Также приложения под Android пишут и на других языках.
Изучение разных видов языков поможет Вам сформировать четкое представление о том, какой язык программирования необходимо выбрать для создания определенных видов приложений.
Ниже кратко описаны языки программирования, которые используются для разработки Android:
Java является официальным языком для разработки Android и поддерживается Android Studio.
Kotlin является официальным и самым последним введенным языком Android; он похож на Java, но во многих отношениях немного легче.
Также Android Studio поддерживает C++ с использованием Java NDK, что может быть удобно для игр.
C# несколько удобнее для начинающих в отличие от C или C++. Он поддерживается некоторыми очень удобными инструментами, например Unity и Xamarin, которые отлично подходят для разработки игр и кросс-платформенных приложений.
BASIC невероятно приятен в использовании и является идеальным началом для обучения кодированию.
Corona — еще один кроссплатформенный инструмент, использующий язык Lua (скриптовый язык программирования, по идеологии и реализации ближе всего к JavaScript) для реализации логики приложений, он значительно упрощает процесс сборки приложений и позволяет вызывать собственные библиотеки.
PhoneGap (HTML, CSS, JavaScript) — если Вы знаете, как создавать интерактивные веб-страницы, то можете использовать эти знания с PhoneGap для создания простого кросс-платформенного приложения.
Ознакомимся подробнее с инструментами и языками
Android Studio
Лучший способ разработать приложение для Android — это пойти и установить Android Studio. Android Studio — это интегрированная среда разработки (IDE) для работы с платформой Android.
Android Studio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, — официальное средство разработки Android приложений. 17 мая 2017, на ежегодной конференции Google I/O, Google анонсировал поддержку языка Kotlin, используемого в Android Studio, как официального языка программирования для платформы Android в добавление к Java и С++.
Android Studio это часть программного обеспечения, называемая IDE, или интегрированной средой разработки. Он предлагается в виде пакета с Android SDK, который представляет собой не что иное, как набор инструментов, используемых для облегчения разработки Android. Здесь сосредоточено все, что требуется, чтобы начать создавать приложения под Android. Такие функции, как визуальный конструктор, делают процесс более плавным, в то время как расширенные, мощные функции добавляются все время, чтобы предоставить разработчикам доступ к таким вещам, как облачное хранилище.
Для любого разработчика мобильных приложений на Android, первым и наиболее предпочтительным языком программирования пока остается Java, так он поддерживается компанией Google и большинство приложений в Google Play построены именно на нем.
Сама Java была разработана компанией Sun Microsystems (в последующем приобретённой компанией Oracle) еще в 1995 году, и она до сих пор используется для широкого спектра программных приложений. Код Java выполняется виртуальной машиной, которая работает на устройствах Android и интерпретирует код.
Для новичков Java может показаться немного сложным. Это становится препятствием, с которым сталкиваются люди, которые планируют попасть в разработку приложений для Android.
Но, если Вы новичок, и с нетерпением хотите сделать игру, или просто начать учиться ради обучения, то лучше начать с чего-то проще, но вернуться к Java, как только вы получили немного больше опыта.
Kotlin
Kotlin недавно появился в качестве «другого» официального языка для разработки Android. Как и Java, Kotlin работает на виртуальной машине Java. Он полностью совместим с Java и не вызывает никаких препятствий или увеличения размера файлов.
Основное отличие заключается в том, что Kotlin требует меньше «шаблонного» кода, т.е. более простая для чтения система. Он также устраняет такие ошибки, как исключение нулевого указателя, и даже освобождает Вас от необходимости заканчивать каждую строку точкой с запятой. Это отличный язык программирования, если вы только учитесь разрабатывать приложения для Android.
Kotlin является более легкой отправной точкой для начинающих, и тот факт, что можно использовать Android Studio, является большим плюсом.
Что действительно не стоит выбирать новичку для разработки приложения для Android так это C / C++. Android Studio поддерживает C / C++ с помощью Android Native Development Kit. Это значит, что написанный код будет работать не на виртуальной машине Java, а на самом устройстве и даст больше контроля над такими вещами, как память. Например для 3D-игр, это позволит выжать дополнительную производительность с устройства.
C# — это более простая, чисто объектно-ориентированная версия разработки C и C+ от Microsoft. Основная цель Microsoft заключалась в том, чтобы объединить мощь C++ и простоту Visual Basic. Этот язык для разработки Android-приложений часто приходится по вкусу многим разработчикам, особенно сочетание C# и Unity.
Unity
Unity — межплатформенная среда разработки компьютерных игр. Unity позволяет создавать приложения, работающие под более чем 20 различными операционными системами, включающими персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие. Выпуск Unity состоялся в 2005 году и с того времени идёт постоянное развитие.
Основными преимуществами Unity являются наличие визуальной среды разработки, межплатформенной поддержки и модульной системы компонентов. К недостаткам относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних библиотек.
Это инструмент с открытым исходным кодом, который позволяет невероятно легко создавать свои собственные игры. С помощью всего лишь нескольких строк кода, у вас есть игра написанная менее чем за час.
Кроме того, разработка таким образом обеспечивает очень практичный способ изучения объектно-ориентированного кодирования, потому что объекты в этом случае фактически являются объектами большую часть времени.
C# также можно использовать с Xamarin через Visual Studio. Это похоже на традиционную разработку Android с преимуществом кросс-платформенности, которая имеет кодовую базу для Android и iOS.
BASIC
То, что мы узнали о C#, было попыткой соединить силу C с легкостью Visual BASIC. Это потому, что BASIC (Beginners All-Purpose Symbolic Instruction Code) невероятно приятен в использовании и является абсолютно идеальной отправной точкой для обучения кодированию.
К сожалению, он официально не поддерживается Android Studio, и его нельзя использовать в Unity. Но есть менее известный вариант для разработки приложений для Android в BASIC под названием B4A (BASIC 4 Android), который позволяет создавать приложения для Android с помощью BASIC.
Corona
Corona предлагает еще один простой вариант для разработки приложений для Android. Вы будете кодировать в LUA, который уже намного проще, чем Java. Он поддерживает все собственные библиотеки, что позволяет публиковать данные на нескольких платформах.
Corona подходит для тех, кто хочет создать что-то относительно простое и не так озабочен развитием своих навыков кодирования или становлением профессионалом. Если вы хотите использовать такие функции, как покупка в приложении, то вам нужно будет заплатить. То же самое касается использования собственных API для Android.
PhoneGap
Наконец, последний простой вариант, который вы можете выбрать для разработки Android-приложений, — это PhoneGap.
PhoneGap работает на Apache Cordova и позволяет создавать приложения, использующие код, который вы обычно используете для создания веб-сайта: HTML, CSS и JavaScript.
Пришло время, чтобы сделать собственный выбор!
Разработка мобильных приложений: с чего начать
В нашей работе мы проходим все стадии жизненного цикла создания мобильного приложения, и я бы хотел поделиться нашим опытом в этой сфере. Под катом — рассказ об основах мобильной разработки: от выбора платформы до создания, размещения в магазине и последующего мониторинга.
Тенденции
Чем пользуются владельцы мобильных телефонов?
Статистика
За 2012 год в РФ продано порядка 12,6 миллионов смартфонов: Россия считается одной из быстроразвивающихся в этом плане стран.
Если взглянуть на такой же график по всему миру, то увидим, что и тут Android в авангарде с ¾ рынка.
За второй квартал 2012 года по всему миру было продано 104 миллиона телефонов Android — как население довольно крупной страны. Но нас как мобильных разработчиков интересует не только наличие смартфона, но и то, как с ним работают. Существенная доля обладателей устройств на Android пользуется ими как обычными телефонами: SMS, звонки — и все. Они не активируют устройство в Google Play, не скачивают приложения.
Не все люди обзавелись телефонами в 2012 году, поэтому реальное распределение сил среди мобильных операционных систем демонстрирует наша внутренняя статистика. В эту статистику входят Россия и страны СНГ: Украина, Белоруссия, Казахстан, Узбекистан.
Установка приложений
При выборе платформы, под которую будет разрабатываться приложение, важно знать статистику по уже существующим приложениям. Графики исследовательской компании App Annie от сентября 2012 года показывают, как растут два конкурирующих магазина Apple и Google.
По количеству скачиваний на первом месте Google Play: больше устройств, больше скачиваний, больше трафика и рост при этом +66% по сравнению с январем 2012 года. Рост iOS оказался в два раза меньше, порядка 30%. Но главный график – какую выручку приносят пользователи. И здесь ситуация в корне иная. Проще зарабатывать на iOS, но деньги есть и в Google Play, если уметь их забирать.
Типы мобильных приложений
На практике можно разделить приложения для мобильных устройств на три типа.
Мобильные сайты, веб-приложения
Это самый распространенный тип приложений для мобильных устройств. Современные смартфоны в состоянии отобразить обычный сайт. Им доступно все то, что мы привыкли видеть в десктопных приложениях — поддержка HTML5 делает свое дело. Помните, что веб-приложения отлично подходят для стартапа: именно они позволяют получить большой результат за маленькие деньги и за небольшой срок. Еще один плюс мобильного сайта по сравнению с другими мобильными приложениями – это кроссплатформенность. Однако есть и минус, притом весомый: с ними достаточно сложно заработать.
При таком подходе вы получаете доступ ко всем плюсам API операционной системы: приложение обрастает push-уведомлениями и другими приятными плюшками, кроме того, теперь ваш продукт можно размещать в сторах. При этом основной контент все еще представляет собой платформонезависимую страничку с версткой, размещенную на сервере. Это позволяет вносить косметические изменения в продукт без выпуска новой версии: достаточно залить изменения на сервер. Гибридные приложения – отличное решение для тех, кто начинает бизнес или хочет проверить свою идею, показать ее инвестору, друзьям.
Этот вид приложений самый ресурсоемкий, но вместе с этим он позволяет по максимуму использовать возможности, предлагаемые каждой конкретной операционной системой. Как следствие, нативные приложения выигрывают как по функционалу, так и по скорости работы у других типов мобильных приложений. Именно к такому подходу сейчас приходят те компании, которые делали комбинированные приложения. Например, Facebook начинала с комбинированного приложения: нативные контролы (переключатели, вкладки и так далее) и веб-страница в качестве контента. Несмотря на то, что это неплохое решение, проблемы с производительностью приводят к тому, что разработчики отходят от комбинации с вебом.
Статистика
Приведу статистику скачиваний на примере наших мессенджеров.
Во-первых, у нас есть приложение ICQ, которое постоянно развивается: среди последних изменений стоит отметить аудиозвонки. Второй мессенджер Mail.Ru Group – Агент. В Агенте реализован примерно тот же функционал, и, хотя у него была немного другая история развития, мы выпускаем версии практически под все платформы и его можно найти в любом сторе.
Основная разница между двумя этими приложениями – это их аудитория. ICQ – это международный продукт. Программа скачивается не только в России, им активно пользуются жители Европы, Латинской Америки. Агент же изначально делался в России и для русскоязычных пользователей.
Тем интереснее сравнить статистику скачиваний из магазинов.
Большая часть 62% иностранной аудитории идет в Google Play. Примерно 1/5 идет в AppStore, 14% — в Ovi Store. И уже оставшиеся 5% делят магазины для платформ Windows Phone (4%) и Samsung Bada (1%). С Агентом ситуация в корне другая: доли Google Play и Ovi примерно одинаковые. Ну а 10% AppStore наглядно демонстрируют любовь к «яблочной» продукции в нашей стране.
Процесс создания мобильного приложения
Итак, перейдем к самому вкусному: процессу разработки мобильного приложения.
Прежде всего, необходимо определить, что и для кого мы пишем. Ответы на эти вопросы оформляются в User Story. На картинке вы можете посмотреть на реальный тикет в нашем трекере. Он описывает, как существующий пользователь ICQ может войти в приложение, и какие проблемы он может встретить. На этом этапе важно проработать все возможные сценарии, чтобы не было неприятных сюрпризов на более поздних этапах разработки.
Важно понимать, что за каждым пунктом в вашем to-do листе скрывается огромный айсберг функционала. Старайтесь фрагментировать и конкретизировать задачи. Крупные хотелки лучше всего разделить на несколько этапов (релизов в стор). Однако это тема отдельной дискусии, вернемся к этапам создания приложения.
Проектирование и дизайн
После составления User Story начинается проектирование и разработка дизайна.
На этом этапе мы используем прототипы, которые мы вешаем на доску и стрелочками показываем, как будет происходит навигация.
При разработке дизайна обязательно используются гайдлайны.
Гайдлайн в общем понимании – это документ, который выпускает компания, и по которому дизайнеры и разработчики понимают принцип построения взаимодействия приложения с пользователем. Условно говоря, для iOS кнопки надо делать круглыми, а для Windows Phone – квадратными. Однако мы используем и внутренние гайдлайны для разработчиков. Таким образом результат работы дизайнера чаще всего состоит из макетов, гайдлайнов и нарезки графики.
Макеты лучше всего подавать «перелинкованными», например с помощью ProtoTypr, чтобы была понятна логика переходов. Гайдлайны содержат в себе информацию об отступах, размерах, визуальных эффектах, механике анимации и пр. Этот этап можно пропустить, если в вашем проекте один дизайнер и один разработчик, сидящие рядом друг с другом. Третья часть результата — нарезка графики — должна содержать минимум необходимых графических ресурсов (заботимся о весе приложения), иметь версии для разных разрешений экранов. Чаще всего мы рисуем для ретины и xhdpi-экранов. Далее идет подготовка для неретины и mdpi автоматизированными средствами (если допустимо их использование). Чаще всего руками приходится готовить hdpi-ресурсы.
Передача в разработку. Обсуждение и необходимые правки описания
После получения макетов, гайдлайна и нарезки, начинается работа разработчика. Мы передаем в разработку все то, что придумали, и ожидаем ранний результат. Это не значит, что работа над архитектурой и пользовательским интерфейсом закончена. Иногда у разработчиков появляются интересные идеи, которые вносят коррективы в изначальный план. Когда разработка завершена, наступает стадия тестирования.
Существует немалое количество способов протестировать приложение.
В мобильной разработке тестировщик – это человек, вокруг которого одни телефоны. У нас есть огромный шкаф, в котором лежат как старые телефоны, так и самые свежие новинки. Внутри мы стараемся тестировать по тест-кейсам. Если внедряется новая фича, по ее описанию составляется тест-план.
Существуют сервисы, помогающие в тестировании. Мы используем HockeyApp – приложение, позволяющее раздавать наш продукт бета-тестерам. Мы пишем в социальных сетях: «Ребята, у нас новое крутое приложение. Кто хочет попробовать?» Желающие получают билд, пользуются приложением, а сервис собирает статистику, составляет креш-репорт и отправляет все это нам.
Также есть сервисы, позволяющие протестировать приложение на разных операционных системах — например, все Android-прошивки версии 2.1 или 2.3. Вы отдаете приложение, сервис скриншотит весь путь, который вы задали, присылает картинки вам на почту, и вы проверяете, все ли в порядке.
Итак, вы разработали, протестировали приложение, залили его в стор. Для отслеживания статистики скачиваний можно использовать сервис Distimo. Он показывает статистику по пользователям, которые приходят в стор, чтобы скачать приложения, и агрегирует комментарии.
Важно понимать, что люди более склонны оставлять негативные комментарии. Если у человека все хорошо, он чаще всего просто пользуется приложением, не комментируя. При стабильной работе наших приложений мы получаем 40-50 комментариев ежедневно. В день ошибки количество записей может доходить до 400 на одной платформе. Поэтому имейте в виду, что комментарии – это не полная оценка вашей работы, скорее еще один баг-трекер.
Изменить ситуацию может довольно распространенных «хак» — окно Rate Us. С предложением оставить положительный комментарий в сторе, а в случае проблем написать разработчику. Эффект достаточно сильный, главное — правильно продумать алгоритм показывания диалога юзеру.
Помимо комментариев Distimo показывает количество скачиваний, заработанные деньги, а также откуда скачивают ваши приложения.
Еще один интересный мониторинговый сервис – Flurry. Он помогает собирать клиентскую статистику. Flurry предоставляет отчет о том, что делает пользователь в вашем приложении: сколько раз он нажал на кнопку, сколько раз возвращался в приложение и более общие параметры — аудитория, география, пол, возраст и пр.
В некоторых мобильных продуктах мы также используем подсчет клиентской статистики с помощью Google Analytics. Разницы при сравнении с Flurry нет практически никакой. Минусы в скорости работы и обработки логов есть в обоих случаях, однако, если вы привыкли работать с гугловским интерфейсом, можете использовать этот инструмент.
Несмотря на большое количество сторонних сервисов, у нас есть собственная статистика. Какими бы хорошими не были внешние источники, их нужно проверять. Мы способны сами оценивать статистику, но для этого необходимо строить инфраструктуру для генерации отчетов, еженедельной отправки отчетов по email и других вещей, упрощающих жизнь. Поэтому нам проще использовать такие сервисы, как Flurry и Distimo, а к внутренним логам обращаться при возникновении вопросов. Наша практика показывает, что такой подход оправдан: периодически наши данные и данные сервисов несколько разнятся. Если вы склонны проверять статистику, используйте разные источники.
Специфика
Заключение
Я постарался рассказать вам о базовых особенностях и подводных камнях мобильной разработки, которые встречались нам на нашем пути. Надеюсь, пост оказалась вам полезным. Если у вас остались вопросы по теме, или вы знаете что-то, что может быть полезно нам, давайте обсудим это в комментариях.