Możesz zdecydowanie użyć C++ na iOS i Android. Napisałem własne silniki do gier dla obu.
Xcode jest normalnym IDE dla iOS i natywnie obsługuje rozwój "Objective-C++" (Kompilator obsługuje zarówno Objective-C, jak i C++). Będziesz musiał napisać cienką powłokę w Objective-C, aby wchodzić w interakcje z systemem operacyjnym, ale możesz napisać wszystko inne w C++, jeśli chcesz. Jeśli pobierzesz narzędzia wiersza poleceń Xcode, możesz także budować ze skryptów.
Eclipse jest zwykle standardem IDE dla systemu Android, a po pobraniu NDK można używać interfejsu JNI do komunikacji między językiem Java i C++. Podobnie jak iOS, będziesz potrzebował co najmniej opakowania Java do interakcji z systemem operacyjnym.
Nie jesteś jednak ograniczony do Eclipse i Xcode. Można na przykład użyć emacs i/lub zatrudniać CMake, aby umożliwić nieco skonsolidowanie ustawień projektu. Emacs to bardzo wydajne i elastyczne narzędzie IDE, ale ma bardzo stromą krzywą uczenia się i nie jest łatwe do zainstalowania. Jeśli zrobisz to na Macu, polecam emacsformacosx i zainstaluję również ECB i autocomplete. CMake to w zasadzie wieloplatformowy system kompilacji, który pozwala budować wiele różnych plików projektu (Visual Studio, Xcode, Eclipse itp.) Z jednego drzewa źródłowego. Podobnie jak emacs jest to bardzo potężna, ale nieco stroma krzywa uczenia się. Jeśli chcesz od razu zacząć grę, prawdopodobnie zaczniesz od Xcode i Eclipse. Jeśli pracujesz na komputerze, potrzebujesz Mac VM lub Hackintosh, aby korzystać z Xcode i cygwin do korzystania z NDK dla Androida (użytkownicy Macbook Pro mogą się dobrze bawić bez problemów).
Natywny rozwój Androida jest zdecydowanie trudniejszy. Nie tylko masz do czynienia z większą segmentacją urządzeń, ale rodzime debugowanie nie jest proste. Musisz uruchomić serwer GDB na urządzeniu i połączyć się z nim, aby ustawić punkty przerwania i wiele osób robi to z wiersza poleceń. Słyszałem, że niektórzy ludzie osiągnęli sukces dzięki Tegra Tools dla Eclipse, jeśli chcesz mieć IDE oparte na GUI.
Zdecydowanie zaleca się rozwijanie systemu na iOS, ponieważ masz do dyspozycji znacznie wydajniejsze narzędzia z IDE. Możesz śledzić wycieki pamięci, kod profilu, łatwo zestawiać punkty przerwania;) itd. Po opracowaniu funkcji na iOS możesz zmagać się z plikami .mk i innymi dobrami rozwoju natywnego Androida.
Oto kilka informacji na temat cyklu życia obiektów podstawowych i dla iOS:
i dla Androida:
Dopóki grasz dobrze z OS i przestrzegasz cyklu życia aplikacji, możesz wykonywać połączenia z logiką C++. Możesz to zrobić bezpośrednio w iOS, ale w przypadku Androida musisz przekazywać połączenia przez JNI. Jeśli obudujesz specyfikację platformy, możesz podzielić się logiką C++ między obiema platformami.
Jestem zwolenniczką C++, ale wybór jej użycia zależy od sytuacji na tych platformach. C++ nie jest popularnym wyborem dla tych platform i jako taki nie znajdziesz zbyt wielu dokumentów (twoja własna przez większość czasu). Złożoność może wzrosnąć nieco, jeśli nie znasz się dobrze na C++ (Czy znasz się z RAII, design patters, STL?).
Oto kilka sytuacji, w których może to mieć sens:
- Jeśli trzeba wykorzystać biblioteki, który został utworzony w języku C/C++
- Jeśli chcesz zbudować własny agnostic platformy ramy aplikacje lub gry
- Jeśli pracujesz z realtime/wydajności krytycznych aplikacji, takich jak gry
nie mówię ci KONIECZNIE używa C++ w tych sytuacjach, ponieważ wiele osób rozwinęło gry w Objective-C. Mówię tylko, że może to być coś, co należy wziąć pod uwagę, jeśli chcesz w pełni wykorzystać sprzęt lub po prostu chcesz czegoś bardziej przenośnego.
Czy najpierw próbowałeś wyszukać w Google? – crashmstr
Nie wiem o systemie iOS, ale Android jest w istocie java i dlatego może używać kodu C++ przez JNI. – Motes
Jeśli nie masz nic przeciwko C#, możesz użyć Xamarin http://xamarin.com/monotouch – AedonEtLIRA