web-dev-qa-db-fra.com

Est-il possible de programmer un iPhone en C ++?

Je suis tout pour la diversité linguistique, mais l'objectif C est fou. Donc, je suis curieux: est-il possible de coder des applications iPhone avec C++ en utilisant l'API Cocoa, etc.?

125
Dmitri Nesteruk

Réponse courte, oui, en quelque sorte. Vous pouvez utiliser Objective-C++, sur lequel vous pouvez lire des informations sur Apple Developer Connection.

Si vous connaissez déjà le C++, apprendre Objective-C serait assez simple, si vous décidiez de l'essayer. De plus amples informations sur ce sujet sont également disponibles à l’ADC.

57
Robert S.

Bien qu'Objective-C semble effectivement être "fou" au départ, je vous encourage à le rester. Une fois que vous avez un "a-ha" moment, tout commence à avoir un sens. Pour moi, il a fallu environ deux semaines de concentration focalisée Objective-C pour vraiment comprendre les frameworks Cocoa, le langage et la façon dont tout cela s’allait. Mais une fois que je l'ai vraiment compris, c'était très très excitant.

Cela semble cliché, mais c'est vrai. Tenir le coup.

Bien sûr, si vous importez des bibliothèques C++ ou du code C++ existant, vous pouvez utiliser ces modules avec Objective-C/Objective-C++.

62
Mitch Haile

J'utilise Objective-C pour gifler l'interface utilisateur.
Mais le courage du code est toujours écrit en C++.

C’est l’objectif principal d’Objective-C d’interface utilisateur et de gestion des événements.
Et cela fonctionne très bien à cette fin.

J’aime toujours le C++ comme moteur du code (mais c’est principalement parce que j’aime le C++), vous pouvez également utiliser Objective-C très facilement pour le backend de l’application.

41
Martin York

Tout d'abord, dire qu'Objective-C est "fou" est humoristique - j'ai le livre C++ de Bjarne Stroustrup à côté de moi qui compte 1020 pages. Apple PDF sur Objective-C vaut 141.

Si vous voulez utiliser UIKit, il vous sera très difficile de faire quoi que ce soit en C++. Toute application iPhone sérieuse conforme à l'interface utilisateur d'Apple aura besoin que ses parties d'interface utilisateur soient écrites en Objective-C. Ce n'est que si vous écrivez un jeu OpenGL que vous pouvez vous en tenir presque entièrement au C/C++.

28
dnolen

Ayant une certaine expérience de cela, vous pouvez en effet utiliser du code C++ pour votre code "principal", mais vous devez utiliser Objective-C pour tout ce qui est spécifique à votre iPhone.

N'essayez pas de forcer Objective-C à agir comme C++. Au début, il vous semblera que cela est possible, mais le code résultant ne fonctionnera vraiment pas bien avec Cocoa, et vous serez très confus quant à ce qui se passe. Prenez le temps d'apprendre correctement, sans C++, à construire des interfaces graphiques et des applications pour iPhone, puis à établir des liens dans votre base C++.

14
Chris Jefferson

Vous devez utiliser Objective C pour vous connecter à l'API Cocoa, il n'y a donc pas d'autre choix. Bien entendu, vous pouvez utiliser autant de C++ que vous le souhaitez en coulisse (Objective C++ facilite cette tâche).

C'est un langage insensé, mais c'est aussi ... assez amusant à utiliser une fois qu'on y est un peu habitué. :-)

3
Frederik Slijkerman

Je ne suis pas sûr du C++, mais vous pouvez certainement coder les applications iPhone en C # à l'aide d'un produit appelé MonoTouch .

Vous pouvez voir ce post pour une discussion détaillée sur MonoTouch Vs Obj-C: Comment décider entre MonoTouch et Objective-C?

3
goblinjuice

Je suis en train de porter une application intensive en calcul Android app écrite en Java sur iOS6. Je le fais en portant les parties non graphiques de l'interface utilisateur from Java en C++, écrivant les parties d’interface utilisateur (minimales) dans Obj-C et encapsulant celles-ci dans une (petite) interface C à l’aide de la technique standard C/C++, afin qu’elle puisse être utilisée. accessible depuis Obj-C, qui est après tout un sur-ensemble de C.

Cela a été efficace jusqu'à présent et je n'ai rencontré aucun piège. Cela semble être une approche légitime, car Xcode vous permet de créer des classes C++ ainsi que des classes Obj-C, et certains exemples de code officiels font les choses de cette façon. Je n'ai pas eu à sortir d'une interface officiellement prise en charge pour le faire.

L'écriture de mon code d'interface utilisateur restant en C++ ne semble pas être très rentable, même si cela était possible, compte tenu de l'aide fournie par le générateur d'interface de Xcode. Je vous répondrais donc que vous pouvez utiliser le C++ pour presque toute votre application, ou autant que vous le jugez approprié/commode.

2
JulianSymes

Oui, mais penser que vous pouvez programmer chaque type de programme dans une seule langue est une idée fausse, à moins d'écrire des programmes très simples. Objective C est pour Cocoa comme C # est pour .NET, Utiliser le bon outil pour le bon travail, Essayer de faire interagir le C++ avec Cocoa en écrivant du code de pontage et essayer de faire en sorte que le code C++ se comporte conformément aux exigences de Cocoa n’est pas une bonne idée. la performance de l’objectif C est. Vous devriez essayer de concevoir la mise en page et l'architecture de l'application en gardant en vue les compétences existantes et déterminer quelle partie doit être écrite dans quelle langue puis construire en conséquence.

2
Bilal Ahsan

J'écris actuellement un framework Objective-C++ appelé Objective-X, qui rend possible la programmation PURE C++ iPHONE. Vous pouvez faire comme ça:

#import "ObjectiveX.h"

void GUIApplicationMain() {    
    GUIAlert Alert;
    GUILabel Label;
    GUIScreen MainScreen;

    Alert.set_text(@"Just a lovely alert box!");
    Alert.set_title(@"Hello!");
    Alert.set_button(@"Okay");
    Alert.show();

    Label.set_text(@"Ciao!");
    Label.set_position(100, 200, 120, 40);

    MainScreen.init();
    MainScreen.addGUIControl(Label.init());    
}

et compilez-le en utilisant les options de ligne de commande appropriées de GCC. J'ai déjà compilé cette application de helloworld et le w0rkX0rz comme un charme. ;-) Il sera bientôt disponible sur GoogleCode. Recherchez Objective-X ou visitez le site http://infotronix.orgfree.com/objectivex env. une semaine plus tard!

URL mise à jour (mais apparemment inactive): http://code.google.com/p/objectivex/

0
Arpad Goretity

C'est peut-être un peu décalé, mais quand même. Vous pouvez programmer c ++ directement sur les appareils iOS. Découvrez l'application CppCode ios - http://cppcode.info . Je crois que cela aide d’apprendre c et c ++ et d’objectif-c plus tard.

0
4ntoine