Файл: Критерии выбора средств разработки мобильных приложений.pdf
Добавлен: 05.04.2023
Просмотров: 261
Скачиваний: 3
СОДЕРЖАНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
1.1 Сущность мобильных приложений и основные этапы их разработки
1.2 Критерии выбора технологии разработки мобильных приложений
ГЛАВА 2. ОБЗОР СРЕДСТВ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ ДЛЯ РАЗЛИЧНЫХ УСТРОЙСТВ
2.1 Средства разработки мобильных приложений для Android
Преимуществами веб-приложений являются:
- охват платформ;
- время разработки. В целом, если учитывать охват сразу нескольких платформ, время разработки может быть ниже. Но, поскольку, веб-приложения, в целом, проще, чем нативные, это преимущество может быть спорным;
- наличие специалистов;
- документация и поддержка.
К недостаткам веб-приложений относятся:
- скорость работы и производительность. В целом производительность ниже чем у нативных, т.к. появляется дополнительная прослойка в виде веб-браузера
- отладка. Процесс разработки веб-приложения достаточно прост. Первоначальная отладка может быть сделана на компьютере разработчика в обычном браузере. Отладка же на устройствах зачастую затруднена и ограничивается использование всплывающих сообщений (т.н. caveman debugging — примитивная отладка)
- использование аппаратных ресурсов устройства. Веб-приложения имеют доступ только лишь к небольшому набору сервисов — постоянное хранилище (localstorage), гео-координаты. Ни файловая система, ни фото-камера не доступны.
Идея использования веб-технологий действительна очень привлекательна. Разработав приложения один раз, потенциально можно распространить его сразу на множество платформ, так как веб-браузеры встроены по умолчанию во все современный мобильные операционные системы. Учитывая, что фреймфорки и инструменты для разработки мобильных HTML5-приложений постоянно совершенствуются, то многие программисты, знакомые с веб-технологиями, могут начать разрабатывать мобильные приложения прямо здесь и сейчас.
Однако, многим приложениям хотелось бы читать и сохранять файлы на SD-карте, делать снимки через фото-камеру, получать сообщения о системных событиях и т.д. Веб-приложения, запущенно в обычном браузере, таких возможностей не имеет.
В связи с этим появились инструменты, позволяющих разрабатывать логику и интерфейс на HTML и JavaScript, имея при этом доступ к ресурсам устройства. Практически все SDK мобильных платформ предоставляют специальный компонент браузера для внедрения в нативное приложение — WebView в Андроид, UIWebView в iOS и т.д. Это тот же веб-браузер, но с возможностью передать в веб-приложение (в JavaScript-код) вызовы из нативного кода, а также принимать сообщения из JavaScript обратно в нативную часть приложения. Таким образом, веб-приложения, «обернутое» в нативное, может получить доступ ко всем аппаратным ресурсам устройства.
На описанном подходе основана работа Phonegap — популярного инструмента для создания гибридных приложений. Он позволяет в полуавтоматическом режиме упаковывать веб-приложение в нативное, делая это сразу для нескольких платформ.
Phonegap поддерживает создание расширений. Любая функциональность может быть добавлена путем разработки плагина на соответствующем нативном языке. Существует большое количество уже готовых плагинов, поэтому разработка своего собственного скорее всего, не понадобится.
По многим данным, технология гибридных приложений становится все более популярной, особенно в корпоративном секторе. Связано это видимо, прежде всего, с большой популярностью веб-технологий вообще. Также, гибридные приложения потенциально могут поддерживать сразу несколько платформ, что может быть решающим аргументом в их пользу. Поскольку для корпоративных польвателей отзывчивость интерфейса приложения и общая производительность не стоит на первом месте, применение данной технологии может быть действительно оптимальным выбором.
Достоинствами гибридных мобильных приложений являются:
- поддержка платформ. В частности, phonegap заявляет о поддержке более чем семи платформ;
- наличие специалистов;
- время разработки. Правда, иногда процесс доводки под конкрентую платформу может привести к пересмотру архитектуры проекта и свести на нет данное преимущество.
В тоже время очевидны следующие недостатки:
- производительность. Нужно постоянно искать компромиссы, чтобы приложение не останавливать из-за незватки памяти или чтобы его интерфейс не застывал в процессе обработки большого дерева элементов.
- отладка. Веб-приложение, упакованное в нативную обертку, как никакое другое трудно в отладке и сопровождении.
Разделение между гибридными и кроссплатформенными средствами разработки достаточно условное. Под кроссплатформенными понимаются приложения, компилируемые в нативный код или сразу в исполняемый файл. При этом существует возможность повторного использования значительной части кода.
Как правило, повторно используется код, овечающий за бизнес-логику. Интерфейс пользователя может (иногда и должен) быть разработан отдельно. Лучшей практикой может быть привлечение разных специалистов для доводки под разные платформы. Кроссплатформенные приложения стоят где то между нативными и гибридными. От первых они берут производительность, от вторых — повторное использование кода.
В данной категории можно упомянуть два инструмента.
Первый — Appselerator Titanium. Код приложения пишется на JavaScript. Затем он компилируется в нативный код для платформ (поддерживаются всего три — iOS, Android и BlackBerry). Далее, можно собрать этот код в установочный файл приложения для каждой мобильной операционной системы. У Titanium есть собственная среда разработки Titanium Studio c возможностью отладки собственного кода на JavaScript. Titanium, также как и Phonegap, поддерживает расширения на Java или Objective-C для добавления необходимой функциональности.
Второй набирающий популярность инструмент — MonoTouch от компании Xamarin. Это действительно многообещающий инструмент. В качестве языка разработки используется язык C#, что может стать решающим фактором при выборе технологии для разработчиков с опытом работы в .NET.
MonoTouch компилирует проект на C# сразу в нативное приложение. Кроме того, Mono поддерживает визуальное создание интерфейса iOS-приложений с помощью InterfaceBulder-а , что позволяет использовать файлы nib из нативного редактора X-Code.
MonoTouch может позиционироваться не только как инструмент кроссплатформенной разработки, но и как просто возможность разрабатывать полностью нативные приложения на знакомом\любимом языке C#. При этом, однако, появляется возможность переиспользования кода для разных платформ. Например, если приложение содержит большое количество бизнес- и инфраструктурной логики, не относящегося напрямую к интерфейсу пользователя, то, по некоторым данным, переиспользование кода может достигать 80%.
Преимущества кроссплатформенных технологий являются:
- Скорость работы;
- Время разработки;
- Поддержка платформ.
А недостатками:
- наличие специалистов. Действительно, ввиду большей специфичности, разработчиков с опытом разработки в, например, MonoTouch найти еще сложнее, чем разработчиков для нативных SDK
- удобство отладки. В Titanium можно отлаживать только свой код, и нельзя получить доступ в исходниках самого фреймфорка, что затрудняет поиск проблем. Что касается MonoTouch, то, видимо ввиду недостаточной зрелости инструмента, у многи разработчиков возникают постоянны проблемы при отладке и запуске приложения.
Все рассмотренные технологии имеют свои естественные преимущества и недостатки. В качестве основного вывода можно рассмотреть некоторые виды приложения и насколько та или иная технология подойдет для каждого из этих видов.
Если нужно максимально быстро выпустить функциональный прототип сразу на несколько платформ, то выбор может быть однозначно в пользу гибридных приложений. Иногда полезно протестировать на потенциальной целевой аудитории новую идею, прежде чем вкладываться в разработку полноценного нативного приложения.
Для разработки мобильной версии онлайн-магазина, интернет-сервиса хорошим вариантом будет, конечно, веб или гибридное приложения. Предоставляя все необходимые функции своим пользователям, владелец сервиса также обеспечивает максимальный охват платформ в сравнительно небольшие сроки.
Для автоматизации бизнес-процессов предприятия на первое место выходит стабильность, возможность работы при отсутствии соединения с сервером.
Если планируется использовать устройства на одной конкретной платформе, то лучшим выбором тут будет нативное приложение. Либо, если требуется поддержка нескольких платформ, то стоит обратить внимание в сторону кроссплатформенных решений.
Естественно, гибридная технология вряд ли подойдет для мультимедии и графики. Тут выбор лежит между нативными и кроссплатформенными технологиями и зависит, скорее, от личных предпочтений и наличия соответствующих специалистов. В обоих случаях получится приложение, которое будет скомпилировано под соответствующую ОС и в итоге будет выполняться нативно. Так или иначе, для окончательной доводки под конкретную платформу нужно привлекать отдельного специалиста. Найти одного человека, который одинаково хорошо разбирается хотя бы в двух платформах, довольно сложно.
ГЛАВА 2. ОБЗОР СРЕДСТВ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ ДЛЯ РАЗЛИЧНЫХ УСТРОЙСТВ
2.1 Средства разработки мобильных приложений для Android
Затрагивая самую обширную область в разработке, начнем с обзора средств для Android. Здесь в разработке ПО есть две основные IDE: проект Eclipse и, разработка компании JetBrains, среда Intellij IDEA.
Eclipse - это проект с открытым кодом (рис.1).
Рис. 1. Среда разработки Eclipse
В качестве инструмента сборки проекта выступает Ant. Данное IDE легко настраивается, интегрируется с необходимыми для разработки компонентами, такими как SDK Android, NDK (Native Developer Kit) и Java машиной. После успешной интеграции создать свой первый проект не составит труда. Уже после выбора нового проекта под Android, автоматически создается пустой "Hello World" проект, который можно запустить на реальном девайсе. В качестве языка используется Java. Данная IDE очень проста в работе, поэтому новичкам в разработке советуют именно ее.
Более серьезным инструментом является Intellij IDEA (рис.2).
Рис. 2. Среда разработки bitellij IDEА
Не зря продукты JetBrains называют «Умная IDE». Казалось бы, такие мелочи как автоматическое закрытие скобок после условия, групповые перезаписи методов и автоматическое создание шаблонных классов (Interface, Singleton) на первый взгляд не очень важны. Тем не менее, по статистике за год на одних только операциях 'rename' экономится порядка 120 часов рабочего времени! Самая главная дилемма программистов - «как назвать переменную» - в данной IDE решена. К примеру, если у вас есть базовый класс "Item", и вы создаете из данных элементов массив, то среда разработки автоматически предложит назвать их "Items". Вроде бы мелочь, а приятно.
При подставлении цвета из файла ресурсов он отображается слева (рис.3).
Рис. 3. Отображение цвета из файла ресурсов в среде разработки bitellij IDEА
Немаловажной является возможность изменения темы оформления. При длительной работе (8 часов в день) светлый фон намного сильнее утомляет глаз, чем темно-серый.
Стоит заметить, что данный проект не является открытым, однако команда разработчиков практически еженедельно выпускает обновления с исправлением ошибок.
Также стоит остановиться и на таком важном элементе в разработке как графический редактор интерфейса. Возможность создавать интерфейс путем Drag-and-Drop намного упрощает задачу и ускоряет ее выполнение. Результат можно сразу увидеть на эмулируемом устройстве.
Кроме того, следует охарактеризовать среду разработки Android Studio. Это результат сотрудничества JetBrains и Google, ориентированный на разработку приложений Android. По большому счету, это та же самая IDEA, за исключением того, что в качестве сборщика используется Gradle, а не Ant. Все изменения которые вносятся в Android Studio через некоторое время появляются в IDEA, и наоборот. Google рекомендует именно Android Studio для разработки приложений.
Рис. 4. Графический редактор интерфейса в среде разработки bitellij IDEA
2.2 Обзор средств разработки для iOS
XCode - это базовая IDE для разработки приложений для iOS, так что не имеет смысла приводить ее аналоги (рис.5).
Рис. 5. Среда разработки XCode
Зачастую сторонние IDE заимствуют некоторые функции из XCode. К примеру, в проекте AppCode (продукт Jet Brains) нет визуального редактора интерфейсов. Разработчики из этой компании советуют изначально создавать интерфейсы в XCode, однако, никто не мешает пользоваться другими «умными средствами» Jet Brains. В отличие от открытой ОС Android, iOS накладывает своеобразную «монополию» на выбор средств для разработчика. Тем не менее, данная IDE по праву занимает первое место среди инструментов для разработки приложений. Это один из немногих инструментов, с которым хочется работать.