Windows в iOS, лучший способ создать приложение для множества действий из Android? - PullRequest
0 голосов
/ 22 июня 2011

В настоящее время я занимаюсь разработкой приложения для Android и iOS, дело в том, что ... Я начал с Android, и в моем приложении есть несколько операций с разными макетами (экраны с разными графическими интерфейсами, если вы не знакомы с Android), большинство из них отображаются очень разные содержания; карты, списки с данными из баз данных, изображения, текстовые поля с кнопками и т. д. (и в большинстве случаев ориентация экрана изменяется).

Проблема возникает с iOS:

  • Как мне создать больше окон из IBActions? (Это правильный подход?).

  • Как только я создаю окно, как мне создать новый интерфейс? (Нужен ли мне другой файл .xib?)

  • Если пользователь завершает работу с одной Windows, остается ли предыдущее окно в памяти и может быть повторно открыто? (Могу ли я использовать вкладку навигации, хотя первые окна не использовались?) Это серьезная проблема, поскольку в iPhone нет кнопки «Назад», и Android во многом зависит от них ...

  • Кроме того, если я не могу разбить свою программу на несколько окон, разве мое приложение не использует много памяти для уничтожения и построения представлений?

Я новичок в разработке Какао, и я уже читал книгу о программировании на Objective C (которая учит только синтаксис и т. Д.), Еще одну о простых приложениях для iPhone (все они были сделаны в одном окне, меняя представления) программно) и сейчас я читаю еще один, но не могу найти простой ответ на мою проблему ...

Я имею в виду, что у меня есть Obj-C и как создавать приложения для iPhone (ну, вроде как), но, возможно, проблема в том, что я пришел к более прямолинейному развитию Android. Каждый раз, когда я вижу проект iOS, я вижу его как полный беспорядок, и документация на developer.apple.com тоже мало помогает, я не могу найти то, что хочу.

Надеюсь, что кто-то уже прошел через это и хочет указать мне правильное направление, спасибо!

Ответы [ 3 ]

1 голос
/ 22 июня 2011

Я рекомендую вам начать с Руководство по программированию View Controller на веб-сайте Apple для разработчиков. Я думаю, вы найдете это очень полезным.

Чтобы ответить на ваши вопросы, вы можете разработать каждый из ваших взглядов независимо. Вы, в зависимости от ваших целей, разрабатываете каждый из nib-файлов. В приложении, над которым я сейчас работаю, у меня есть некоторые, которые я разрабатываю программно, а некоторые - из файлов NIB. Все зависит от тебя. В упомянутом выше руководстве обсуждаются оба подхода.

Что касается загрузки представлений от нажатий кнопок, вы можете сделать это. В зависимости от используемого вами контроллера представления это может быть очень легко выполнено. Например, с помощью контроллера навигации вы просто создаете экземпляр представления и помещаете его в стек. Когда вы закончите просмотр, вы откроете его и вернетесь к предыдущему виду.

Что касается памяти, это всегда проблема. Возможно, вы захотите взглянуть на Руководство по программированию управления памятью .

Удачи. Я только начинаю с разработки под Android.

1 голос
/ 22 июня 2011

Крис уже дал отличный ответ, но я хотел бы добавить пару моментов, чтобы ответить на конкретные вопросы.

Приложения для iOS обычно имеют только одно окно UIWindow. В этом окне вы можете представить несколько видов.

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

Каждый экземпляр UIViewController имеет корневое представление, которое может содержать много подпредставлений. Предполагается, что представление UIViewController будет заполнять его окно или какой-либо кадр, предоставленный одним из классов контроллеров представления контейнера Apple (UINavigationController, UITabBarController, UISplitViewController и т. Д.). Вы не должны добавлять один вид UIViewController как подпредставление другого представления UIViewController.

UIViewControllers будет пытаться выгрузить свои представления, когда приложение получит предупреждение памяти, если представление не видно. Смотрите методы класса жизненного цикла, такие как -viewDidUnload. Вы должны поддерживать и использовать это поведение, чтобы уменьшить объем используемой памяти. Хранение UIViewControllers в памяти без загрузки их представлений должно иметь минимальные накладные расходы, позволяет сохранять некоторое постоянное состояние, и представление каждого контроллера может быть перезагружено при необходимости.

Обычно для перехода между представлениями элемент управления отправляет сообщение текущему контроллеру представления (часто через привязку IBAction). Затем текущий контроллер инициирует переход к другому контроллеру представления. Это можно сделать, создав новый контроллер представления и поместив его на текущий контроллер навигации или представив новый контроллер как модальный. Это может иметь ссылку на какой-то существующий контроллер и представить это. Он может удалить себя из стека навигации, чтобы показать предыдущий контроллер. Он может даже передавать сообщение вверх по иерархии контроллера, пока какой-либо родитель не переключит видимую вкладку, не отклонит или не представит модальное и т. Д.

Вы также можете запускать меньшие переходы, отвечая на IBAction, добавляя, удаляя, скрывая или перемещая подпредставления корневого представления UIViewController.

0 голосов
/ 22 июня 2011

Flash Builder 4.5.1 Теперь позволяет создавать одно приложение и компилировать его на несколько устройств

ОБНОВЛЕНИЕ: попробуйте XAMARIN, это часть Visual Studio: https://www.xamarin.com/

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