Разработка мобильных приложений уже давно перестала быть новым направлением в сфере IT. Она настолько популярна, что нередко мобильные приложения разрабатываются намного раньше, чем сами вебсайты. И по мере того как мобильная связь становится все более доступной, способов разработки приложений для использования в абсолютно любых обстоятельствах становится все больше. Нас часто спрашивают, какой метод разработки мобильного приложения самый лучший – а в ответ мы тоже задаем вопрос. Или, если быть точнее, вопросы:
«Какая цель у вашего приложения и каковы его основные функции? На какого пользователя оно рассчитано? Наконец, какой у вас бюджет?»
Естественно, у каждого метода есть свои плюсы и минусы – и какой из них лучше именно для вашего приложения, определят только ваши потребности и цели. В Coherent Solutions/ISsoft мы чаще всего используем один из следующих подходов к разработке мобильных приложений:
- Отзывчивый веб-дизайн;
- PhoneGap;
- Платформа Xamarin;
- Нативный.
Давайте рассмотрим достоинства и недостатки каждого из них.
Адаптивный веб-дизайн
Данный метод чаще всего используется, когда у организации есть вебсайт, однако ей требуется сделать его более читабельным и простым в навигации на маленьком экране. В частности, корпоративный сайт Coherent Solutions разработан именно по методу адаптивного дизайна. На самом деле, сложно назвать данный вид продукта мобильным приложением — это, скорее, просто вебсайт. Именно поэтому он очень сильно зависит от мобильного подключения по сотовой связи или же Wi-Fi.
Cамое большое достоинство адаптивного дизайна заключается в том, что для создания мобильной версии сайта вы используете уже имеющуюся платформу вашего сайта, а также хорошо известные вам инструменты (JavaScript, HTML, Java, .NET и любой другой язык) – и это серьезно экономит ваши средства. Страница может сужаться в зависимости от размера экрана и, подстраиваясь к мобильной среде, может измениться до неузнаваемости: с уменьшенным количеством текста на странице или же упрощенным содержимым.
Такой вид разработки мобильных приложений отлично подходит для приложений с управлением простой информацией, которые обладают ограничениями по вводу данных и представлению информации. Данный подход также хорош тем, что он обходится без необходимости следования процессу распространения приложения путем публикации его в app store. А это облегчает процессы обновлений и делает их, в некоторой степени, более целостными для восприятия пользователей. К тому же, с точки зрения техподдержки, всегда удобно знать, что у всех пользователей загружена одна и та же версия вашего приложения – именно та, которая находится на сервере. Безусловно, это упрощенное описание данного подхода, ведь, в зависимости от местонахождения, специфики партнерского договора и т.д., может быть выпущена абсолютно другая версия приложения.
У данного подхода, конечно же, есть и недостатки. Помимо того, что приложения, разработанные с помощью отзывчивого дизайна сайтов, очень сильно зависят от качества подключения к интернету, они являются веб-приложениями, а это серьезно сужает список возможностей устройств доступных приложению. В частности, разработчики могут использовать только те возможности для мобильных приложений, которые входят в стандарты HTML5 и поддерживаются мобильным браузером (камера, микрофон, сервисы гео-локации, внутренняя база данных и т.д.).
PhoneGap
Phonegap продолжает быть одним из самых популярных фрэймворков для кросс-платфоменных приложений не только благодаря его цене (бесплатный, т.к. open-source), но также и потому, что он обладает очень большим и разнообразным набором возможностей. PhoneGap «оборачивает» приложение, разработанное на таких хорошо известных языках WEB-программирования, как JavaScript, HTML и CSS, и это позволяет вашему продукту работать на самых разнообразных мобильных платформах: iOS, Android, Windows и др. В сущности, с помощью PhoneGap приложение становится нативным, при этом используя функциональность web-view для пользовательского интерфейса.
В основном, преимущества PhoneGap включают в себя возможности иметь один код на всех платформах, а также взаимодействовать с нативными компонентами для получения функциональности, которая фреймворком не поддерживается (напр. соединение по Bluetooth). Однако, будучи зависимым от web-view для пользовательского интерфейса, приложение работает не так быстро и гладко, как нативное, а унифицированное оформление и подход к дизайну означают, что некоторые элементы рекомендованного подхода к дизайну для конкретной платформы могут игнорироваться, как, к примеру, прозрачность в iOS 7.
Платформа Xamarin
Xamarin – это кросс-платформенный фреймворк, который позволяет разрабатывать нативные iOS, Android и Windows приложения на языке C#. Xamarin разработчики могут использовать один имеющийся C# код на нескольких платформах. Таким образом, база подходящих разработчиков расширяется, ведь у них есть возможность работать с хорошо известным языком программирования.
Несмотря на то что Xamarin утверждает, что разработчики могут объединить 70-75% кода разных мобильных платформ, из моего опыта объединить можно лишь около 20-50%. Однако, разработка с помощью Xamarin Forms может помочь достигнуть более высоких процентов за счет повторного использования пользовательского интерфейса. Также, платформа Xamarin создает для пользователя более целостное восприятие, сохраняя всю функциональность мобильного устройства, поскольку приложение использует нативный фрэймворк для UI, а не web-view. Однако Xamarin является коммерческим продуктом и поэтому он обновляется в зависимости от потребностей компании, а также требует определенных расходов, как, к примеру, оплаты лицензий разработчиков. Также, Xamarin использует технологию Mono, и среда выполнения Mono необходима для платформы Android, что, в свою очередь увеличивает размер вашего приложения.
Нативный
Нативные приложения создаются для соответствующих мобильных устройств, работая быстро, целостно и используя их полную функциональность, включая Bluetooth, NFC и любые другие функции, которые когда-либо на них появятся, например, такие, как датчики температуры, давления и влажности. Однако, так как и iOS, и Android занимают очень высокие позиции на рынке мобильных устройств, нативные приложения чаще всего должны быть разработаны для обоих видов платформ, что удваивает время и расходы разработки. А для тех разработчиков, которые хотят учесть абсолютно все виды устройств на рынке (Windows, BlackBerry), количество расходов еще больше. Тем не менее, отличаясь высокой функциональностью, надежностью и производительностью, нативные приложения продолжают быть очень востребованы для некоторых целей.
Как видите, у каждого метода разработки мобильных приложений есть свои плюсы и минусы. В Coherent Solutions/ISsoft, перед тем как рекомендовать какой-либо определенный метод, мы внимательно учитываем требования и цели клиентов – ведь, метод разработки определяется сугубо индивидуально.
Максим Белов, Chief Technology Officer, Coherent Solutions