При проектировании нового приложения разработчик первым делом определяется с вопросом: будет ли его приложение нативным (то есть специально собранным под данную платформу с использованием рекомендованных сред разработки и компиляторов) или это будет платформонезависимое web приложение. От ответа на этот вопрос будут зависеть все последующие стадии разработки. Именно он определяет, каких людей стоит привлекать к проекту и на какие платформы стоит ориентироваться и сколько в конечном итоге все это будет стоить. Возможно имеет смысл разработать приложение для одной платформы, а портирование отдать на аутсоурс, например в ElifTech.
Говоря о нативных и web приложениях трудно обойти стороной гибридные решения, которые сегодня существуют на рынке. Например, Adobe PhoneGap позволяет написать приложение на скриптовом языке, которое затем фактически запускается в браузере и поставляется вместе с ним, как единое нативное приложение. Проект Xamarin - другой пример гибридного подхода. Приложение разрабатывается на C# или Java, а потом конвертируется в нативный код и собирается под конкретную платформу. Платой за мультиплатформенность является более высокие, по сравнению с нативным приложением, требования к памяти и процессору. Не зависимо от того, каким инструментом гибридной разработки вы будете пользоваться, фактически универсальной является лишь часть вашего приложения. Кроме того, вы жестко ограничены предопределенными элементами управления. Может случиться, что создание требуемого вам элемента пользовательского интерфейса потребует огромного количества времени, и проще написать нативное приложение.
Интернет сегодня служит ярким доказательством тезиса, что однажды созданная удачная технология может с успехом применяться различными людьми в самых разных ситуациях. Web приложения являются развитием этой идеи. Фактически, это сайты, которые открываются на мобильных устройствах и функционально способны заменить обычные приложения.
В отличие от нативных приложений, которые взаимодействуют с операционной системой устройства, web приложения взаимодействуют с браузером. Это существенно расширяет аудиторию программы, поскольку она может работать практически на любом современном устройстве. Адаптивный HTML позволяет легко подстраивать дизайн под размер экрана. Главным недостатком web приложений являетcя их низкая производительность.
Нативные приложения демонстрируют на порядок лучшую производительность. Кроме того, разрабатывая нативное приложение, вы можете использовать все специфические возможности платформы. К сожалению, нативные приложения работают только на одной платформе. Если Вы захотите перенести свое Windows приложение на iOS или Android, то Вам придется полностью переписать его. Это требует значительных расходов на команду разработчиков. Именно поэтому сегодня многие крутые приложения доступны всего на одной платформе.
Выбор между web, нативным или гибридным приложением во многом определяется потребностями вашего проекта. Цена и универсальность, конечно важные факторы, но отнюдь не единственные. Следующие три вопроса помогут Вам сделать правильный выбор:
Нативные приложения предоставляют разработчику большие возможности, однако web приложения намного дешевле и проще с точки зрения развертывания и поддержки на широком парке устройств. К сожалению, эта формула справедлива только для функционально не очень сложных web-программ. Гибридные решения в теории объединяют достоинства обоих подходов, однако на практике написание сложного и универсального приложения без использования нативного кода возможно далеко не всегда.
Если Вы имели опыт разработки web или гибридных приложений, поделитесь в комментариях. Тема актуальна и интересна.