Scientific journal
International Journal of Applied and fundamental research
ISSN 1996-3955
ИФ РИНЦ = 0,593

RESEARCH OF SOFTWARE TOOLS OF DEVELOPERS OF MOBILE APPLICATIONS

Tlembaev A.A. 1 Danenova G.T. 1 Kokkoz M.M. 1
1 Karaganda State Technical University
4128 KB
IT technologies occupy one of the leading positions in the development of today’s world. Computers, smartphones, all kinds of gadgets have become an inherent part of our lives and we can’t manage without them. Small and large companies, economists, scientists, ordinary users, all of them use a variety of «devices» to achieve the target goals. The mobile applications occupy an exceptional position among information technologies. The current generation of «smart phones» easily solves many tasks of different directions, from viewing media files and entertainment to organizing business processes and education. Today, anyone can try to become a mobile application developer, because there are many ways to achieve this goal. A wide range of specialized courses allows you to test yourself in this new and demanded area. A large variety of software tools for various categories of programmers can serve as a basis for implementation of both small individual projects and for complex solutions useful for large companies. Questions about features of mobile app developers’ training are presented in this article. Essential basic terms and foundations for portable software developers are considered. Necessary tools and skills are considered.
рrogramming language
mobile software
mobile application
iOS
Android
Integrated Development Environment (IDE)

Одну из лидирующих позиций в развитии сегодняшнего мира занимают IT-технологии. Компьютеры, смартфоны, всевозможные гаджеты настолько проникли в нашу жизнь, что мы не можем уже обходиться без них. Небольшие и крупные компании, экономисты, ученые, рядовые пользователи – все они используют разнообразные «девайсы» для достижения поставленных задач. Особое положение среди информационных технологий занимают мобильные приложения. Еще совсем недавно мобильные устройства не могли обрабатывать сложную графику, быть системами под ресурсоемкие приложения и т.д. В недалеком 2008 году под Anroid (самой популярной ОС на мобильные устройства на сегодняшний день) работал всего один аппарат – T-Mobile G1. Однако уже по прошествии 2009 года число производителей Andoird устройств было больше восемнадцати, а сами устройства варьировались от сотовых телефонов и нетбуков до e-ридеров [1]. Нынешнее поколение «умных телефонов» с легкостью решает множество задач разной направленности, от просмотра медиафайлов и развлечений до организации бизнес-процессов и образования. Есть мобильные игры, позволяющие скоротать время и развлечься, и сейчас это одно из наиболее перспективных направлений мобильной разработке. Есть мобильные версии популярнейших социальных сетей, а также мессенджеры, что используются практически всеми обладателями смартфонов. Бизнес-приложения, контент-приложения, прикладные приложения, все эти App (от англ. Application, приложение) призваны удовлетворить нужды потребителей и принести доход и известность своим создателям. Каждый день их количество растет, некоторые из них стоят миллиарды (к примеру, популярный мессенджер WhatsApp). По данным информационного портала Statista, валовый годовой доход от мобильных приложений на смартфоны и другие портативные устройства превысит $189 млрд [2]. Потому нет ничего удивительного в том, что все больше молодых специалистов устремляются в эту область.

Сегодня освоить профессию программиста гораздо проще, чем 8–10 лет назад. Профессия разработчика ПО любого плана может быть изучена повсеместно, от классического обучения в университете или академии до самообразования. Доступность и обилие всевозможных интернет-ресурсов позволяют даже далекому от данной сферы человеку попробовать свои силы в программировании и разработке собственного ПО. Особенно это касается мобильной разработки программного обеспечения. Как правило, крупные проекты требуют усилий множества людей, слаженной координации их действий, немалых финансовых вложений и достаточного опыта каждого из членов. Нельзя сказать, что при разработке разного ПО на смартфоны (в независимости от его целевой функции, будь то мессенджер или игра) неприменимы эти правила, но начинающий разработчик вполне может освоиться в этой сфере самостоятельно за считанные месяцы и извлекать выгоду даже из бесплатного приложения за счет рекламы или другого непрямого способа монетизации (покупки внутри программы, «премиум» функции и т.д.) без крупных финансовых вливаний и сложных организационных схем. Конечно, за столь малый срок начинающий разработчик не сможет разработать что-то действительно весомое и значимое для рынка мобильных приложений, но сможет набраться необходимого опыта для дальнейших проектов уже более сложного характера.

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

Необходимые навыки и умения

Чтобы стать разработчиком мобильных приложений, требуются знания и навыки в области разработки программного обеспечения. Хорошим вариантом может быть получение степени бакалавра в университете в области компьютерных наук или некоторого смежного направления (системы управления информацией, к примеру). Альтернативой являются посещение специализированных академий или курсов, обучающих по данному направлению. Однако, если имеется ввиду именно разработка программного обеспечения, базовые навыки, что должны быть освоены, включают:

  • принципы безопасного, стабильного проектирования ПО;
  • понимание процесса разработки ПО и его жизненного цикла, включающего цикл разработки, тестирования, реализации и поддержи ПО, а также долгосрочную поддержку и сопровождение ПО;
  • знакомство и понимание некоторых методологий разработки (Agille, Scrum и т.д.), регулирующих процесс разработки, роли разработчиков, являющихся своеобразными «каркасами» разработки;
  • знание необходимых платформ, сред разработки;
  • знание двух или более языков программирования, желательно востребованных, таких как SQL, Java, JavaScript, C# /C++, Python, PHP, Ruby, iOS (Swift). В таблице ниже представлены языки, ранжированные по количеству требований для работы с Indeed.com за 2016 год.

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

Языки программирования мобильных приложений

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

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

tlemb1.tif

Список наиболее требовательных языков

Python

Python – один из самых популярных языков для разработки мобильных приложений. Тем не менее его использование не ограничено только программами на мобильные устройства. «Питон» также крайне распространен в среде разработки Web-приложений. Это одна из причин, почему изучение Python так распространено по миру. «Питон» имеет широкое применение как язык и навыки и умения, полученные в нем, могут быть легко перенесены на другие платформы.

Язык строится на простоте. В нем делается акцент на однозначности и простоте, что возводит читабельность в приоритет языка. Python идеально подходит для учащихся и дает хорошее понимание сложности процесса разработки программного обеспечения. Он не делает различий в разработке между двумя главными операционными системами, Android и iOS, и позволяет создавать программы с нуля.

Хорошим примером разработки приложения на Python будут Spotify и Instagram, показывающие, насколько универсален язык. Оба приложения работают на iOs, Android, Windows phone.

Corona

Если дело касается разработки исключительно Android приложения, то Corona может стать неплохой альтернативой. SDK (Software Development Kit, средства разработки По) «Короны» построен на языке программирования LUA. Это влечет за собой несложный процесс создания программ и может сильно упростить создание приложений на Anroid.

У Corona своя ниша среди языков, как правило, он используется для создания игр, но его применение также не ограничивается только развлекательными продуктами. Язык имеет неплохую поддержку в соответствующих сообществах и может стать простым альтернативным решением для Android разработок.

Ruby

Ruby является одним из самых быстроразвивающихся языков программирования ввиду своей простоты. Он позволяет достаточно быстро создавать мобильные приложения. Ввиду своей популярности, язык имеет широкую сеть поддержки для изучающих создание програм на Android, Windows, iOS или OS X. Стоит отметить, что для Ruby требуется определенный «фреймворк», программная платформа, такая как Rhodes или RubyMotion.

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

Php

PHP или Hypertext Pre-processor был создан в 1995 году. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и т.д. Более 20 лет он использовался как язык написания web-сайтов, но сегодня его возможностей хватает и для написания мобильных приложений на Android и iO. Создатель языка Zend Technologies подтверждает, что их язык может быть использован как для написания web-сайтов, так и для мобильных приложений.

Swift

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

Разработанный компаний Apple Swift – это язык программирования, созданный главным образом для iOS и OS X[3]. Это отличный вариант для тех, кто хочет специализироваться исключительно на разработке мобильных приложений. Язык очень неплохо понимается теми, кто знаком с Objective-C, к тому же Swift более простой в понимании, чем последний.

QML

QML, известный как Qt Meta / Modeling Language, является языком программирования, который обладает возможностями кроссплатформенной разработки. V-Play фреймворки часто используют QML вместе с JavaScript, что делает его хорошим выбором для написания игровых приложений. Важно отметить, что знание JavaScript важно для программирования в QML.

Он отлично подходит для мобильных приложений, которым требуется плавная анимация, сенсорный ввод и высокая степень участия пользователей. Строительные блоки QML позволяют объединить язык для создания сложных компонентов, что позволяет поставлять некоторые действительно хорошо разработанные сложные приложения.

Java

Java, объектно-ориентированный язык программирования низкого уровня, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Java, как и Python, находится среди самых популярных языков для написания мобильных приложений. К его плюсам можно отнести кроссплатформенность, распространенность, многопоточность.

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

Не только представленные выше языки годятся для разработки мобильных приложений. Также неплохим выбором для разработчика мобильного ПО могут стать: JavaScript, С++, С#, Objective-C, HTML, Perl.

Среды разработки

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

Интегрированная среда разработки, ИСP (англ. Integrated development environment – IDE), – комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО). IDE в своем составе имеют текстовый редактор, компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Как правило, IDE поддерживают несколько языков программирования, такие как IntelliJ IDEA, NetBeans, Eclipse, Xcode или Microsoft Visual Studio, однако есть решения под один определенный язык – Visual Basic, Delphi, Dev-C++. Возможности некоторых сред разработки также можно расширить за счет сторонних фреймворков.

Android основан на ядре Linux версии 2.6, но сама система не является Linux- системой в чистом виде. Система Android имеет некоторые отличия и содержит дополнительные расширения ядра Linux, специфичные для Android – свои механизмы распределения памяти, взаимодействие между процессами и т.д. [4]. Android Studio – появившаяся в 2013 году IDE для разработки программного обеспечения для ОС Android, основанная на другой среде разработки, IntelliJ IDEA. Android Studio работает под Windows, Mac OS и Linux. Как сказано на сайте разработчиков, Android Studio – официальное средство разработки ПО для операционной системы Android. Используемые языки – Java, C++, реже Kotlin.

IDE можно загрузить и пользоваться бесплатно. В ней присутствуют макеты для создания UI ( User Interface), с которых, как правило, начинается разработка приложения. В Android studio можно разрабатывать приложения как для смартфонов и планшетов, так и нестандартное ПО для Android TV, Android Wear, Android Auto, Glass [5]. IDE имеет мощный потенциал для разработки как программистом-одиночкой, так и большими командами разработчиков с GIT или иными системами управления версиями. Возможности среды разработки можно расширить с помощью сторонних фреймворков. К примеру, кроссплатформенный фреймворк LibGDX увеличивает пригодность IDE для разработки игровых приложений, добавляя множество новых возможностей, вроде логики поведения частиц и дополнительных возможностей рисования графического интерфейса.

Для разработки приложений на iOS и OS X используется IDE Xcode, интегрированная среда разработки от Apple. Данная среда разработки использует языки Swift и Objective-C. С помощью Xcode можно разрабатывать приложения под iPhone, iPad, Mac, Apple Watch и Apple TV. Последняя, восьмая версия Xcode 8 появилась в сентябре 2016 года. С ней появились новые редакторские расширения. Опция Runtime Issues оповещает о дефектах, которые автоматически обнаруживает IDE. Thread Sanitizer отслеживает изменение данных. Проверку интерфейса осуществляет View Debugger – обновляющийся инструмент с высокой визуальной точностью. Memory Debugger оповещает об «утечках памяти» и скрытых багах. Xcode также подойдет индивидуалистам, код можно проверять в репозитории Git. Apple также предоставляет платную проверку проектов, созданных на Xcode, и осуществляет техническую поддержку по телефону.

В целом эти две IDE являются основными для разработки приложений под Android и iOS. Однако это не единственные среды разработки, что можно использовать для написания мобильного ПО. Xamarin studio – достаточно известный инструмент для написания приложений, работающих под Windows Phone, Android и iOS. Использует С#. Является кроссплатформенной средой разработки, но уже готовые приложения перенести на IDE бывает проблематично. Eclipse также подойдет для разработки Android приложений, имеет множество модулей для расширения возможностей, но не имеет единого сообщества разработчиков. Также могут быть использованы для разработки программного обеспечения на мобильные платформы IntelliJ IDEA, Appcelerator Titanium, Netbeans. Последний работает со многими языками, такими как C, C++, Java, JavaScript, Python, PHP.

Заключение

Хотя мобильные технологии уже давно плотно вошли в нашу жизнь, нельзя сказать, что уже используются все их возможности. В прошлом, когда возможности телефонов были невелики, программирование на мобильные платформы было достаточно ограниченным. Малые экраны, слабое железо и прочие ограничения не позволяли создавать сложные приложения. Но с развитием технологий разработка мобильных приложений поменялась кардинально. Сложные 3D игры, социальные сети, мессенджеры, контент-приложения и прочие стали нормой, к которой быстро привыкают. Обучаться на дому, работать удаленно от офиса, просматривать видео в высоком качестве, быстро и удобно просматривать страницы в интернете и многое другое стало возможно благодаря новому поколению смартфонов. Начиная с 2016 года бурными темпами идет развитие так называемых «чат-ботов». Эти программы являются виртуальными собеседниками, что могут выполнять функции различных сервисов, вроде заказа билетов на самолет, ответов на вопросы, бронирования гостиницы и многих других повседневных вещей. Вполне возможно, что их следующие поколения полностью изменят понимание разработки мобильного ПО, вытеснив многие другие приложения, что распространены сегодня. Как бы то ни было, развитие сегмента мобильной разработки в IT-технологиях не стоит на месте. Каждый день появляются новые приложения, и в этой ветви ПО есть еще много возможностей. Программисту требуется знать необходимый язык(и), платформу(ы), а в случае работы в команде разработчиков – методологии разработки для максимальной эффективности выполнения поставленных задач. Стоит всегда задавать вопрос «для чего будет создана эта программа?», «на чем будет разработана», «для кого?», «как наиболее эффективно добиться поставленной задачи?». Без проб и ошибок трудно добиться в этой области высот, но разработка мобильного ПО сегодня настолько быстро развивающийся сегмент, что материалов и способов обучиться навыкам мобильного разработчика приложений достаточно в любой сфере. Будет ли приложение работать на Android, iOS, Windows phone или на всем сразу, есть ли возможность изучения Objective-C или больше подходит более дружелюбный Swift, информации будет достаточно. Сегодня любой программист может влиться в мобильную разработку и каждый найдет что-то свое в этой области.