Как разработка iPhone сравнивается с разработкой Symbian?

Потратив несколько лет на разработку Symbian C++, я бы хотел узнать, как разработка iPhone сравнивается с разработкой для Symbian.

Мне интересны ответы людей, которые потратили некоторое время на работу на обеих платформах.

Чтобы уточнить: Примеры: Как сравнить следующие:

  • Symbian C++ vs Objective C - первое это противный ИМХО.
  • Библиотеки Symbian против библиотек iPhone
  • эмулятор - насколько близко эмулятор к реальному устройству - эмулятор Symbian действительно симулятор, так как библиотеки Symbian модифицированы для работы на Win32. Например, процесс - это поток в эмуляторе Symbian, а не процесс Symbian. Эмулятор является отдельной целью сборки.
  • IDE - как они сравниваются (например, eclipse или codewarrior против релевантной iPhone IDE)
  • Документация - как сравнивается документация - Документация Symbian оставляет желать лучшего.
  • поддержка сообщества
  • фрагментация - существует множество версий и телефонов Symbian OS, которые могут стать потенциальными жертвами - это может стать настоящим кошмаром при разработке и обслуживании. Плюс различные вкусы пользовательского интерфейса.
  • развертывание приложений - например, подписанные Symbian / частные API / операторы против чего? на iPhone

1 ответ

Я никогда не занимался разработкой для iPhone, но я хотел бы отметить несколько событий в мире Symbian, которые касаются некоторых ваших моментов:

Symbian C++ vs Objective C - первое это противный ИМХО.

Это, конечно, не всем по вкусу! Для разработки приложений Symbian C++ будет становиться все менее и менее актуальным, поскольку Qt (который обычно рассматривается как очень удобный для пользователя набор библиотек) будет использоваться для следующего поколения уровней инфраструктуры приложений / пользовательского интерфейса. Нижние уровни ОС будут продолжать использовать диалект Symbian C++, но библиотеки Qt для таких функций, как мультимедиа, местоположение и обмен сообщениями, добавляются - поэтому разработчикам приложений вряд ли придется напрямую вызывать API-интерфейсы нативной платформы.

эмулятор - насколько близко эмулятор к реальному устройству - эмулятор Symbian действительно симулятор, так как библиотеки Symbian модифицированы для работы на Win32. Например, процесс - это поток в эмуляторе Symbian, а не процесс Symbian. Эмулятор является отдельной целью сборки.

Ваше описание эмулятора (один хост-процесс, отдельная цель сборки) является правильным. Из-за этого эмулятор по сути является портом ОС для совершенно другой платформы (в данном случае x86), поэтому совсем не моделирует телефон. К счастью, его постепенно прекращают и заменяют симулятором, подобным тем, которые уже включены в SDK для iPhone и Android. (Фактически, симулятор основан на той же технологии - QEMU - используемой Android). Поскольку симулятор переводит инструкции ARM в инструкции, понятные настольному компьютеру, одни и те же двоичные файлы могут быть развернуты как на симуляторе, так и на самом устройстве.

Симулятор включает в себя "модель платы", состоящую из ряда виртуальных периферийных устройств, каждая из которых отображает часть хост-машины, поэтому, например, аудиоустройство симулятора может быть подключено к звуковой карте рабочего стола. Поскольку эта модель платы может быть модифицирована, среда симулятора может быть адаптирована для очень точного моделирования конкретного устройства, поэтому ожидайте, что производители устройств отправят симулятор в свой SDK, который очень похож на соответствующее физическое устройство.

IDE - как они сравниваются (например, eclipse или codewarrior против релевантной iPhone IDE)

CodeWarrior - довольно старая и довольно скрипучая среда разработки. Carbide (который основан на Eclipse) лучше и предлагает достаточно развитую поддержку отладки на устройстве (хотя и не столь удобную для решения XCode / iPhone). IDE, включенная во все Qt SDK ( Qt Creator), вероятно, самая хорошая, и была сравнена с XCode с точки зрения удобства использования.

фрагментация - существует множество версий и телефонов Symbian OS, которые могут стать потенциальными жертвами - это может стать настоящим кошмаром при разработке и обслуживании. Плюс различные вкусы пользовательского интерфейса.

Определенно верно в прошлом. Надеюсь, в будущем станет лучше. Там, где когда-то было несколько пользовательских интерфейсов (S60, S80 и UIQ), теперь есть только один (в настоящее время на основе S60; собирается заменить на пользовательский интерфейс на основе Qt).

Другие вопросы по тегам