2010-11-13 1 views
2

Моя компания построила собственное веб-приложение для управления проектами. Это как basecamp на стероидах. Основные характеристики этого приложения:Подход к разработке мобильного приложения, поддерживающего веб-приложение

  • создавать списки задач
  • поручают задания для членов команды
  • часов дорожки против элементов задачи

Я ищу для создания мобильных приложений (ы) в расширение для веб-приложения. Мобильные приложения (ы) должны:

  • воспроизводят особенности, упомянутые выше
  • подключиться к той же базе данных, как веб-приложения
  • сохранить возможности перетаскивания
  • обеспечивают богатый пользовательский опыт, эквивалентный или лучше чем веб-приложения
  • работы на Iphone, дроид и ежевика

Учитывая требования выше, хо w должен ли я подходить к разработке этого мобильного приложения? В моей компании около 20 пользователей смартфонов: 8 iphones, 7 дроидов и 5 ежевики.

Я слышал об основах разработки, таких как Phonegap, которые позволяют вам разрабатывать HTML, Javascript и CSS. Затем программное обеспечение выполняет кросс-платформу через ежевику, iphone и дроид. Если я программист среднего/чуть выше среднего, смогу ли я построить высококачественное кросс-платформенное мобильное приложение с помощью PhoneGap (или другой платформы разработки платформы x), которая соответствует вышеуказанным требованиям?

Или нужно ли создавать каждый iphone, droid и blackberry-приложение независимо?

Каков наилучший подход? Что такое компромисс?

ответ

3

Джон,

Ну это звучит, как у вас есть немного работы впереди вас! Когда у вас есть существующее веб-приложение, есть два основных подхода к тому, чтобы ваше приложение было доступно на любом конкретном устройстве: вы можете (1) написать собственное приложение, которое реализует функции, которые вы хотите для каждого устройства, которое вы хотите поддержать, или можете (2) напишите веб-«обертку» для вашего существующего приложения и передайте контент как HTML/CSS на те же устройства.

Вариант 1: Построить родное приложение для каждой платформы, которую вы хотите поддержать

Что касается первого подхода, выгоды могут быть большими. Используя собственные каркасы каждого устройства, у вас есть полная возможность и гибкость, чтобы использовать лучшие функции каждого устройства. Представления вашего приложения также могут отображаться быстрее, так как все, что вы будете получать с вашего сервера, это данные для заполнения представлений (например, вам не нужно загружать изображения, HTML-шаблоны или файлы CSS вообще).

Недостатком такого подхода является то, что он по своей сути требует, чтобы каждое устройство имело собственное приложение. Поэтому, если вы поддерживаете веб-приложение, приложение для iPhone, приложение для Android и приложение Blackberry, это означает, что у вас есть 4 полностью отдельных кодовых файла для поддержки.Если вы добавите какую-то новую функцию в свое веб-приложение (которое, предположительно, вы в какой-то момент), вам также придется реализовать эту новую функцию в трех других отдельных базовых кодах. Учитывая тот факт, что эти устройства могут иметь разные модели взаимодействия, это может создать проблему. Другим недостатком здесь может быть распространение (т. Е. Вам, возможно, придется пройти процесс обзора для чего-то вроде магазина приложений iPhone в зависимости от того, как вы хотите распространять свое приложение). Это также означает, что количество, которое вам нужно будет изучить, довольно велико, поскольку каждое устройство имеет свой собственный набор API и программирование «философия».

Вариант 2: Написать веб-«обертку» для вашего приложения (возможно, с использованием библиотеки)

Этот подход также имеет много преимуществ. Во-первых, если вы используете фреймворк вроде PhoneGap или Sencha Touch или Rhomobile, большое преимущество в том, что вы теоретически пишете код «мобильного приложения» один раз, и он работает на каждом из устройств, поддерживаемых каркасом. По сравнению с написанием родного приложения для трех платформ это намного меньше.

Недостатки следующие: Этот подход работает как веб-сайт в браузере устройства, поэтому у вас не будет доступа ко всем функциям каждого устройства. Все отличные вещи в iOS и Android API по определению не будут доступны вам. Вы также несколько ограничены здесь в отношении локального хранилища, но это может быть не очень важно для вас, учитывая ваше веб-приложение. Другим недостатком является то, что с вашего сервера будет больше полосы пропускания, поскольку вы обслуживаете все HTML, изображения и CSS, которые в противном случае вам не приходилось бы с помощью собственного приложения. В зависимости от количества пользователей и сложности страниц это может быть значительным для вас или нет. Еще один недостаток здесь заключается в том, что вы не можете перейти на весь экран (с iPhone в Mobile Safari, например, всегда есть панель инструментов внизу).

Общие проблемы

Одна вещь, что касалось меня читает ваш вопрос был ваш список требований. Воспроизведение функций и подключение к удаленному хранилищу данных - это то, что вы можете определенно сделать как с родными, так и с веб-мобильными приложениями. Но «сохранить возможности [drag] drag drop] - это не так. Например, с помощью iPhone вы можете использовать дескрипторы в UITableViewCell, чтобы обеспечить способ переупорядочения списков, но полное перетаскивание - это не то, что соответствует модели взаимодействия с пользователем мобильного устройства. Возможно, вам придется подумать об этом.

Требование «обеспечить богатый пользовательский опыт, эквивалентный или лучше, чем веб-приложение», также немного беспокоит. В то время как приложения на основе телефона могут действительно упростить способы доступа к данным и манипулировать ими, помните, что вы проектируете экран размером в несколько дюймов. Физически невозможно обеспечить такую ​​же широту информации организованным образом, как вы можете, с широкоэкранным монитором с диагональю 21 дюйма.

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

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

Удачи вам!

0

Дополнительный комментарий о том, что Neal L отправил выше, с Rhomobile вы можете получить доступ к собственным возможностям устройств, а также перетащить ваши взгляды.

Здесь представлено несколько учебных и примерных видеороликов: http://rhomobile.com/webinars/

Смежные вопросы