Разработка сложного приложения для iPhone? - PullRequest
5 голосов
/ 04 декабря 2009

Я пришла из корпоративной Java-организации, где мы занимались разработкой в ​​хорошо разделенных многократно используемых слоях. Уровни постоянства, уровни обслуживания и т. Д. И т. Д.

Теперь я ищу примеры приложений для iPhone или документацию по архитектуре сложных проектов iPhone. Большинство книг и примеров Apple показывают очень ограниченный код и архитектуру. Они не пригодны для использования. Imo.

Я также ищу информацию о том, как настроить систему сборки с непрерывной интеграцией, которая выполняет все мои модульные тесты при проверке кода и сообщает результаты модульных тестов в систему, где мы можем видеть результаты. Для наших java-проектов мы используем svn, mvn & sonar. Какой яблочный эквивалент для этой настройки? Это вообще возможно?

Итак, подведем итог моим вопросам:
Q1: Есть ли примеры или книги по сложной архитектуре проекта iPhone?
Q2: Как настроить систему сборки с непрерывной интеграцией?

Ответы [ 2 ]

6 голосов
/ 05 декабря 2009

Какой сложный пример вы бы хотели? Этот вопрос связан с рядом приложений для iPhone с открытым исходным кодом, не принадлежащих Apple, включая мое собственное . Некоторые приложения там довольно сложны.

Что касается дизайна, я очень рекомендую книгу Какао-шаблоны . Хотя это не строго для iPhone (учитывая начало Cocoa в NeXT и более недавнее присутствие на Mac), рассматриваемые шаблоны проектирования являются ядром архитектуры каркасов Cocoa и приложений Cocoa.

Я бы также порекомендовал заплатить за видео WWDC 2009 и посмотреть сеансы «Дизайн пользовательского интерфейса iPhone», «Эффективная архитектура приложения iPhone» и «Прототипирование пользовательских интерфейсов iPhone». На этих сессиях есть много хороших предложений по созданию приложений для iPhone.

Я использовал модульные тесты с моими приложениями, но я не делал никаких форм непрерывной интеграции. Тем не менее, этот вопрос содержит много полезной информации о непрерывной интеграции с XCode.

5 голосов
/ 04 декабря 2009

Наследие iPhone восходит к OpenStep от NeXT Computer. Некоторое время основным направлением NeXT были пользовательские корпоративные приложения. Технологии, которые используются в iPhone, хорошо зарекомендовали себя в корпоративной среде. NeXT был одним из первых сторонников технологии объектов, шаблонов и MVC, в частности.

Тем не менее, часть того, что раньше было доступно в Openstep, теперь исчезло. В NeXT была радикально усовершенствованная система ORM (Enterprise Objects Framework - http://en.wikipedia.org/wiki/Enterprise_Objects_Framework)), которая, хотя все еще используется внутри Apple и поддерживает iTunes / etc, в настоящее время не рекомендуется для пользователей, использующих Objective-C (версия на Java все еще существует) Облегченный ORM, Core Data (http://developer.apple.com/macosx/coredata.html), занял свое место и теперь доступен на iPhone. SQLite (что потрясающе) также поставляется на iPhone и доступен для разработчиков.

Еще одна ложка дегтя заключается в том, что текущая версия XCode для iPhone имеет ограниченное понимание подпроектов / структур, поэтому разделить повторно используемый код сложнее, чем раньше. Тим Вуд из Omni предоставляет некоторые подробности о том, как управлять фреймворками в XCode на iPhone (http://blog.omnigroup.com/2008/10/01/using-frameworks-in-iphone-applications/) К сожалению, этот процесс не так прост, как следовало бы.

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

svn и mvn доступны / связаны в OS X. Есть также опции для загрузки других пакетов с открытым исходным кодом через такие системы, как fink или MacPorts:

Существует также несколько вариантов инфраструктуры, которые поддерживают TDD. Тест управляемый дизайн для iPhone родных приложений

Это не похоже на сонары Groks Objective-C в это время. В зависимости от ваших возможностей, может быть, вы могли бы разработать модуль для этого?

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