Короче говоря, C++ отлично подходит для программ OS X и iOS и довольно хорошо работает с Objective-C.
Подробнее:
Однако я также хотел бы заняться программированием графики; OpenFrameworks и Cinder — две библиотеки, которые бросаются в глаза, но мы находимся в стране C++.
Я не буду говорить об этих библиотеках напрямую.
Чтобы ответить на ваш вопрос в более общих чертах: C++ отлично подходит для вашего приложения, поскольку C, C++, ObjC и ObjC++ являются первоклассными языками разработки для приложений iOS.
Я работаю с Java/Swing/Processing... мало что знаю о семействе C. Насколько эффективно вы можете вызывать библиотеки C и C++, такие как Cinder и OF, из родного Cocoa?
Objective-C++ позволяет использовать C, C++ и Objective-C в одном переводе. Не стесняйтесь использовать/комбинировать C++, C или ObjC, где это необходимо. Время компиляции увеличится, и есть некоторые ограничения*, если вы выберете этот путь. В остальном поддержка очень хорошая. Даже Apple использует большое количество C++ в своих приложениях/библиотеках.
И бонусные баллы: будет ли подобное решение работать на iPhone или iPad?
Определенно. Поддержка c++11 для iOS и OS X в настоящее время немного отстает. Тем не менее, команда clang очень быстро добавила его поддержку. Скорее всего, будут некоторые проблемы, если вам нужны новейшие функции, поэтому я бы посоветовал воздержаться от новейших функций C++ и компилятора, если ваш проект зависит от этого. Конечно, не помешает попробовать вашу программу с использованием новейших функций clang в каждом выпуске, чтобы определить, насколько хорошо она работает с вашими программами.
Обновление: на данный момент (8 ноября 2011 г.) clang может обрабатывать почти весь код C++ 2003, который я ему добавляю. Скорость и размер кода различаются по сравнению с GCC+LLVM. Я бы не хотел отказываться ни от того, ни от другого на данный момент, но оба компилятора хорошо работают для меня с C++ 2003, а Apple GCC не будет поддерживать C++11, поэтому самое время начать тестирование clang, если вам нужны функции C++11. в ближайшем будущем.
- C++ идеально подходит (IMO) для общей разработки критически важной производительности на iOS, если ваша команда знает, как его использовать.
- Смешивание C, ObjC и C++ очень эффективно, если вы используете правильные функции каждого языка по правильным причинам, и существует хорошая совместимость. Это восходит к OS X несколько лет назад (хотя в то время компилятором был GCC).
*ограничения: это разумные ограничения - все функции, которые вам нужны, существуют, но есть некоторые вещи, которые люди могут ожидать, но которые невозможны. наиболее распространенным, вероятно, является невозможность получения типов различных объектных моделей. то есть вы не можете разумно не создавать тип C++ из типа objc, но вы можете свободно объявлять ivars нескольких типов в любом типе объекта.
person
justin
schedule
01.07.2011