Создание мобильного приложения с существующего веб-сайта

Я уже разработал полностью функционирующий веб-сайт, и наша команда хочет экспортировать этот сайт в приложение для iPhone (и, в конечном итоге, другие платформы). Лучший пример, который я могу дать, - это в основном сделать Facebook, теперь я хочу сделать приложение Facebook (тот, который запускается с главного экрана iPhone, а не из браузера). Итак, очевидно, что у нас уже есть функциональность, и нам просто нужно преобразовать ее в другую платформу. Насколько это сложно? Должны ли мы сделать совершенно новую часть программного обеспечения и в основном игнорировать весь существующий PHP-код, который у нас уже есть? Приложение в основном будет таким же, как на веб-сайте, за исключением нескольких изменений макета. Возможно, нам захочется, чтобы он смог получить доступ к функции камеры и определенно смог загрузить изображение, которое, я думаю, исключало бы мобильное приложение? Я до сих пор не понимаю разграничение между мобильным приложением и приложением, которое запускается с главного экрана iPhone. У вас есть какие-то предложения относительно того, с чего начать, и насколько это будет сложно? Если мы сможем получить нужную нам функциональность и упростим для себя, используя существующий код, мы будем в восторге.

Спасибо

Ответ 1

Давайте начнем с основ.

Мобильный сайт - это веб-сайт, доступ к которому осуществляется через веб-браузер телефона. HTML-страницы подаются с веб-сервера (и пользовательский интерфейс оптимизирован для макета телефона).

Собственное приложение (часто называемое "приложением" ) - это, по сути, исполняемое приложение, которое загружается на телефон. Для iPhone они написаны в Objective-C. Для Android они написаны на Java. Для Windows Mobile они написаны на С# и т.д.

Вот плохая новость, с которой вы сталкиваетесь:

- Чтобы приложение запускалось с "домашнего экрана" iPhone, оно должно быть скомпилировано с использованием Objective C. То же самое с Android/Java.

- Чтобы получить доступ к камере, ее необходимо скомпилировать с помощью Objective C (или Java для Android).

Итак, вот вам хорошая новость:

-Вы можете легко написать свое родное приложение, чтобы быть чисто интерфейсом пользовательского интерфейса и вызвать существующий код на стороне сервера, используя модель REST API для бизнес-логики. Вам просто нужно разоблачить те функции, которые вам нужно предоставить в приложении. Таким образом, один способ повторного использования существующей базы кода и упростить приложение. Есть хорошие рамки Objective C, такие как RESTKit, которые делают это довольно легко.

-Вы могли бы сделать ваше приложение действительно сырым и по сути сделать его веб-браузером на вашем сайте, но это может не одобрить Apple, если вы не настроите его для iPhone несколько. И это будет плохой опыт для пользователей iPhone, которые ожидают, что приложение будет работать как приложение. Я бы не рекомендовал это.

-Если вы планируете выпустить на несколько платформ или действительно не хотите поддерживать проект Objective C (и проект Java в будущем), вы можете использовать что-то вроде PhoneGap, Appcelerator Titanium или Sencha Touch. Это обертки, которые возьмут приложение, написанное в веб-технологиях (HTML 5), и скомпилируют их в родные приложения. Эти приложения HTML 5 могут получить доступ к камере и т.д. Вашим существующим разработчикам не нужно изучать Objective-C и использовать свои навыки HTML/JavaScript, которые у них уже есть. Для этих технологий существует большой потенциал. Недостатком является то, что ваше приложение не будет выглядеть и чувствовать себя так же хорошо, как родное приложение, или использовать любые "крутые" функции телефона. Он будет выполнять сортировку как хороший мобильный сайт. Если у вас хорошие пользовательские интерфейсы/дизайн, вы можете создать что-то очень хорошее, используя эти веб-технологии. Но если вы просто хотите подражать сайту в родном приложении (а не создать следующую игру-убийцу), то это, вероятно, лучший выбор по ряду причин.

Если вы используете родное приложение google или phonegap (или sencha touch), есть масса информации о плюсах и минусах. Это, вероятно, хорошее место для вас, чтобы начать обучение.

Ответ 2

В дополнение к хорошему отклику @Joel, вы должны сначала понять, какие функции вы должны предложить пользователю, если основная функция будет доступна только для просмотра веб-сайта с помощью UIWebView, чтобы иметь возможность распространять приложение в магазине, так как @Teofilo сказал это не разрешено. В настоящее время существуют различные решения для разработки кросс-платформенных приложений (например, PhoneGap), которые позволяют разрабатывать приложения для разных платформ с использованием технологий таких как html5, ajax и т.д. через UIWebViews.
Это зависит от типа функциональности, которую вы хотите предложить пользователю, производительность, безусловно, будет лучше в случае собственной разработки, потому что у вас больше контроля над приложением и на устройстве, но все равно может быть удобно использовать крест -платформенное решение, если общие функции легко реализовать, чтобы получить тот же результат на разных платформах. Также не так важно, какую технологию вы используете на задней панели, важно использовать стандартные форматы/протокол для связи (например, http/json). Это только моя точка зрения, я надеюсь, что кто-то может дать свою точку зрения на эту тему, потому что я заметил, что это очень актуально сегодня. Хороший вопрос.

Ответ 4

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