Гибкий пользовательский интерфейс для разработки приложений для iPhone - PullRequest
1 голос
/ 03 сентября 2010

Я должен сделать приложение для iPhone для компании, которая имеет веб-систему и хочет стать мобильной. Заранее известно, что интерфейс экрана будет меняться довольно часто (добавляются новые метки, кнопки и т. Д.). Кроме того, многие элементы на экране имеют тип If (условие), то (видимый) else (скрытый) . Например, if (user.isMember) затем (showLoginButton) else (showRegisterButton) Все это довольно распространенный сценарий для компаний, которые хотят использовать свои предложения в качестве мобильного приложения.
Задача сейчас состоит в том, как написать гибкий интерфейс. Если я использую стандартный подход типа UIView и добавляю метки, кнопки и т. Д., Он становится статичным по своей природе. Кроме того, поскольку многие элементы (например, в приведенном выше примере, loginButton, registerButton, retrievePasswordButton) перекрываются (поскольку они должны находиться в точном месте на холсте), Интерфейсный конструктор выглядит загроможденным.

Одним из решений, которое я вижу, является использование содержимого HTML в UIWebView. Учитывая, что браузеры HTML были определены с учетом концепции Forms , это имеет логический смысл. При выполнении поиска / замены значений в локально сохраненном html-файле (сейчас называйте его шаблоном) будут некоторые накладные расходы, но предположите, что предоставленная гибкость будет того стоить.

Я хотел бы пригласить плюсы / минусы для этого подхода и любых других подходов, которые могли работать на вас в прошлом для создания гибких пользовательских интерфейсов.

1 Ответ

0 голосов
/ 03 сентября 2010

Есть как минимум два основных подхода, среди многих.

Первое, как вы упомянули, - это использовать хранимый HTML5 / CSS / Javascript для каждой формы и запускать их во встроенных UIWebViews. Но нет необходимости делать поиск / замену на устройстве. Вместо того, чтобы изменять шаблон, просто загрузите целую новую «веб-страницу» для любой формы, которую необходимо изменить или обновить. Очень гибкий, если все требуемые элементы эффективно «веб-доступны».

Второй подход - использовать управляемый данными пользовательский интерфейс (об этой технике есть видео Apple WWDC 2010). По сути, для каждого представления и каждого элемента пользовательского интерфейса вместо того, чтобы помещать его в кончик или создавать его из жестко закодированных параметров, вы читаете базу данных ar / w для всего, что нужно для создания элемента: размер, положение, заголовок, цвет, значение, что методы, которые он вызывает и т. д. Для изменения вы загружаете обновления в эту базу данных.

Если вам требуется обновляемый «родной» интерфейс пользователя плюс прикладная логика, вы можете использовать сочетание двух вышеупомянутых методов: движок интерфейса данных, управляемый данными, с необязательными строковыми параметрами, состоящими из Javascript для любого объекта, для вызова пользовательской логики, вычислений, изменения состояния и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...