Ответ 1
Вы можете определенно использовать С++ на iOS и Android. Я написал свои собственные игровые движки для обоих.
Xcode является нормальной IDE для iOS и поддерживает "Objective-C ++" (компилятор поддерживает как Objective-C, так и C++). Вам нужно будет написать тонкую оболочку в Objective-C для взаимодействия с ОС, но вы можете написать все остальное на С++, если хотите. Если вы загружаете инструменты командной строки Xcode, вы также можете создавать из сценариев.
Eclipse - обычная IDE для Android, и если вы загрузите NDK, вы можете использовать JNI. для взаимодействия между Java и С++. Как и в iOS, вам потребуется хотя бы оболочка Java для взаимодействия с ОС.
Однако вы не ограничены Eclipse и Xcode. Например, вы можете использовать emacs и/или использовать CMake, чтобы вы могли попытаться консолидировать настройки проекта немного. Emacs - очень мощная и гибкая среда разработки, но она имеет очень крутую кривую обучения и не очень проста в установке. Если вы сделаете это на Mac, я бы рекомендовал emacsformacosx и установить ECB и автозаполнение. CMake - это в основном кросс-платформенная система сборки, которая позволяет вам создавать много разных файлов проекта (Visual Studio, Xcode, Eclipse и т.д.) Из одного дерева источников. Подобно emacs, это супермощная, но довольно крутая кривая обучения. Если вы хотите сразу же вскочить, вы, скорее всего, захотите начать с Xcode и Eclipse. Если вы работаете на ПК, вам понадобится Mac VM или Hackintosh, чтобы использовать Xcode и cygwin для использования NDK для Android (пользователи Macbook Pro могут сразу же повеселиться с небольшими хлопотами).
Разработка Android для Android, безусловно, намного сложнее. Не только у вас есть гораздо больше сегментирования устройств, с которыми можно бороться, но встроенная отладка не очень проста. Вы должны запустить сервер GDB на устройстве и подключиться к нему, чтобы установить точки останова, и многие люди делают это из командной строки. Я слышал, что некоторые люди добились успеха с помощью Tegra Tools для Eclipse, если вы хотите использовать IDE на основе графического интерфейса.
Я бы определенно рекомендовал сначала разрабатывать iOS, так как у вас есть более мощные инструменты в вашем распоряжении от IDE. Вы можете отслеживать утечки памяти, код профиля, легко устанавливать точки останова;) и т.д. После разработки функции на iOS вы можете бороться с файлами .mk и другой добротой разработки на базе Android.
Ниже приведена информация о основных объектах и жизненном цикле для iOS:
и для Android:
Пока вы хорошо играете с ОС и уважаете жизненный цикл приложения, вы можете совершать звонки на логику С++. Вы можете сделать это напрямую с помощью iOS, но с Android вы должны разблокировать вызовы через JNI. Если вы инкапсулируете специфику платформы, вы можете делиться логикой С++ между обеими платформами.
Я большой сторонник С++, но выбор его использования зависит от ситуации для этих платформ. С++ не является популярным выбором для этих платформ, и поэтому вы не найдете столько документации (по своему усмотрению большую часть времени). Сложность может немного возрасти, если вы не очень хорошо знакомы с С++ (знаете ли вы RAII, дизайн паттерна, STL?).
Вот несколько ситуаций, где это может иметь смысл:
- Если вам нужно использовать библиотеку, созданную на C/С++
- Если вы хотите создать собственную платформу агностической платформы для своих приложений или игр
- Если вы работаете с критическими приложениями реального времени/производительности, такими как игры
Я не говорю, что вы ДОЛЖНЫ использовать С++ в этих ситуациях, так как многие люди разработали игры в Objective-C. Я просто говорю, что может быть что-то рассмотреть, если вам нужно максимально использовать аппаратное обеспечение, или вы просто хотите что-то более портативное.