IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Développement Ipod/Ipad en C++


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut Développement Ipod/Ipad en C++
    Bonjour à tous,

    Étant depuis quelque temps passé au C++, je me posés la question s'il était possible de développer des applications en C++ pour les supports Ipod/Ipad ?

    j'imagine que oui puisqu'il existe un compilateur GCC pour Mac, mais pour rendre ma question plus précise, existe il un framework ou des documents permettant d'acquérir des notions sur ce type de développement ?

    A l'heure actuelle, toutes mes recherches me retourne vers des doc pour de l'objective C, mais je ne sais pas s'il est possible de s'appuyer sur ces doc.

    Merci par avance pour vos réponses,
    Doki.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Doki95 Voir le message
    Bonjour à tous,

    Étant depuis quelque temps passé au C++, je me posés la question s'il était possible de développer des applications en C++ pour les supports Ipod/Ipad ?

    j'imagine que oui puisqu'il existe un compilateur GCC pour Mac, mais pour rendre ma question plus précise, existe il un framework ou des documents permettant d'acquérir des notions sur ce type de développement ?

    A l'heure actuelle, toutes mes recherches me retourne vers des doc pour de l'objective C, mais je ne sais pas s'il est possible de s'appuyer sur ces doc.

    Merci par avance pour vos réponses,
    Doki.
    L'Objective-C sert à faire la "glue" entre l'interface utilisateur définie en InterfaceBuilder et votre code qui utilise les frameworks Apple (parce qu'il permet le "late binding" ce que C++ ne fait pas…), une fois dans votre code vous pouvez aussi appelez du C++ : la compilation Objective-C++ est activée automatiquement si votre fichier source a l'extension .mm
    ce qui vous permet d'avoir les avantages des deux.

    Voir
    http://developer.apple.com/library/m...01163-CH10-SW1

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut
    Bonjour JeitEmgie et merci pour ta réponse.

    Tu réponds parfaitement a ma question.
    Après avoir posté mon message, j'ai continué mes recherches et vu ce type de solution. Le lien que tu fournis est bien plus clair et mieux expliqué.

    Je souhaiterai quand même poser une autre question.
    Le fait que le langage C++ ne soit pas supporté "nativement" par les Ipod/Ipad, y a-t-il certains piège à éviter ? Je parle notamment de la gestion de la mémoire, des connexions réseaux, etc.

    Merci,
    Doki.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Doki95 Voir le message
    Bonjour JeitEmgie et merci pour ta réponse.

    Tu réponds parfaitement a ma question.
    Après avoir posté mon message, j'ai continué mes recherches et vu ce type de solution. Le lien que tu fournis est bien plus clair et mieux expliqué.

    Je souhaiterai quand même poser une autre question.
    Le fait que le langage C++ ne soit pas supporté "nativement" par les Ipod/Ipad, y a-t-il certains piège à éviter ? Je parle notamment de la gestion de la mémoire, des connexions réseaux, etc.

    Merci,
    Doki.
    Comment çà "pas supporté nativement" ?
    Qu'est-ce que vous avez cru comprendre ?

    Qu'est-ce que la gestion mémoire qui est un problème de design de code vient faire là-dedans ?

    Les connexions réseaux : c'est une question sur les API disponibles… les frameworks Objective-C d'iOS ne sont que des wrappers sur des fonctionnalités de base de l'OS… en dessous on trouve les librairies POSIX habituelles…

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut
    Mes questions peuvent sembler étrange, je l'accorde. Je ne les formules pas forcément de la bonne manière.

    Mais j'ai continué mes recherches, et effectivement, je ne vois pas de contrainte particulière a développer en C++ sur les iOS.

    Autant pour moi donc concernant les dernières questions posées.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par JeitEmgie Voir le message
    Qu'est-ce que la gestion mémoire qui est un problème de design de code vient faire là-dedans ?
    (...) J'en reste sans voix ! Faut-il comprendre que la gestion mémoire c'est juste pour faire joli dans le code ???

    Les connexions réseaux : c'est une question sur les API disponibles… les frameworks Objective-C d'iOS ne sont que des wrappers sur des fonctionnalités de base de l'OS… en dessous on trouve les librairies POSIX habituelles…
    C'est vrai, mais POSIX c'est du C et non C++...
    Donc si tu ne souhaites pas faire de GUI, le C / C++ sont tout à fait utilisable, si tu souhaites faire des applis avec une GUI, un conseil passe à l'Objective-C, tu verras ce n'est pas si horrible (ce que certains voudrait faire croire).

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Fabllot Voir le message
    (...) J'en reste sans voix ! Faut-il comprendre que la gestion mémoire c'est juste pour faire joli dans le code ???
    la gestion mémoire n'a rien à voir avec la question à l'origine du thread :
    "s'il était possible de développer des applications en C++ pour les supports Ipod/Ipad ?"

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut
    Bonjour à vous deux.

    Tout d'abord, je vous remercie de l'intérêt que vous portez à mes questions, soit dit en passant, questions pour le moins mal posées.

    Cependant, je pense qu'ouvrir un troll sur ce sujet n'est pas une bonne idée.

    A présent, je vais utiliser le lien de JeitEmgie pour découvrir le développement sur plateforme iOS. De cette manière, en cas de problème, mes questions seront plus précises.

    Pour répondre à Fabllot, je ne dis pas que l'objective C est horrible, cependant, je souhaiterais approfondir mes connaissances en C++ et j'ai quelques idées de développement fonctionnant sur iOS.

    Merci à vous,
    Doki.

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par JeitEmgie Voir le message
    la gestion mémoire n'a rien à voir avec la question à l'origine du thread :
    Pas directement mais la remarque de Doki95 n'était pas ininterressante:
    y a-t-il certains piège à éviter ? Je parle notamment de la gestion de la mémoire, des connexions réseaux, etc.
    Pour y répondre: non il n'y a pas de pièges particuliers. Comme dans tout programme, c'est celui qui alloue la mémoire qui la détruit. Si tu es en Obj-C/C++ et que tu fais un "alloc" alors tu devras faire un "release". Si tu fais un "new-C++" (en Objective-C++ ou C++) alors tu devras faire un "delete-C++"...

    A présent, je vais utiliser le lien de JeitEmgie pour découvrir le développement sur plateforme iOS. De cette manière, en cas de problème, mes questions seront plus précises.
    C'est une bonne idée !
    Pour répondre à Fabllot, je ne dis pas que l'objective C est horrible
    Je ne pensais pas à toi !
    cependant, je souhaiterais approfondir mes connaissances en C++ et j'ai quelques idées de développement fonctionnant sur iOS.
    En fait c'est plutôt là que je ne te suis pas.
    Je ne pense pas que l'iOS soit une plateforme idéale pour apprendre ou approfondir le C++.
    Je m'explique : Si tu développes des applis iPhone, tu seras obligé d'utiliser l'obj-C, et du coup le risque de confusion C++/Obj-C est grand... Pour être très familier des 2 langages, on ne code pas de la même manière avec chacun...
    Alors de deux choses l'une, ou tu souhaites perfectionner ton C++ et tu développes sur des plateformes qui te permettent de réaliser des programmes 100% C++ (c'est mieux pour l'apprentissage), ou tu souhaites faire des applis iPhone, et là je te conseille sans retenus de ne pas utiliser le C++ mais uniquement les frameworks Apple en Obj-C.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut
    Citation Envoyé par Fabllot Voir le message
    En fait c'est plutôt là que je ne te suis pas.
    Je ne pense pas que l'iOS soit une plateforme idéale pour apprendre ou approfondir le C++.
    Je m'explique : Si tu développes des applis iPhone, tu seras obligé d'utiliser l'obj-C, et du coup le risque de confusion C++/Obj-C est grand... Pour être très familier des 2 langages, on ne code pas de la même manière avec chacun...
    Alors de deux choses l'une, ou tu souhaites perfectionner ton C++ et tu développes sur des plateformes qui te permettent de réaliser des programmes 100% C++ (c'est mieux pour l'apprentissage), ou tu souhaites faire des applis iPhone, et là je te conseille sans retenus de ne pas utiliser le C++ mais uniquement les frameworks Apple en Obj-C.
    En effet, la relation n'est pas forcément simple a faire. A vrai dire, j'ai déjà réalisé un jeux du taquin en c++. C'est une application qui fonctionne dans un environnement bureautique "classique" (windows dans mon cas).
    Je voudrais justement porter ce jeux (à titre d'exercice) sur une plateforme mobile. Et donc quand je dis approfondir mes connaissances, c'est surtout être capable de m'adapter sur une autre plateforme le tout en C++ justement.

    Dans ce cas, peut être qu'utilisé un ipod n'est pas la meilleur solution. Mais c'est le seul support dont je dispose chez moi

  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    L'Objective-C est un must pour développer l'interface en ayant comme objectif principal de respecter le "look-and-feel" de la plate-forme et de s'intégrer au maximum avec l'environnement, quoique cet aspect soit plus fondamental dans le cas d'applications Mac OS X que dans le cas d'applications iOS :
    l'utilisateur d'un mobile a moins de besoin d'intégration d'applications que l'utilisateur d'un ordinateur.

    Vous pouvez donc développez des applications 100% en Objective-C mais vous devez être conscient du fait que l'Objective-C est un langage qui est basé sur un runtime car il applique un principe fondamental de la programmation OO qui est le "late binding"; ce que C++ ne fait pas, et qui est d'ailleurs une des raisons pour laquelle Alan Kay - l'inventeur du terme "Object Oriented" - ne considère pas C++ comme étant OO à part entière…
    Le prix à payer - malgré de nombreuses techniques d'optimisation du runtime - est un coût de dispatching des messages aux objets (les appels de méthodes).
    Dès lors, il n'est pas conseiller de développer en Objective-C les parties d'une application qui nécessitent une performance optimale, et donc si vous avez besoin de taxonomie type OO dans cette partie à optimiser, le C++ s'impose assez vite. (Mais sous Mac OS X vous pourriez très bien lié votre UI Objective-C à des calculs en FORTRAN ou un moteur d'inférence en Prolog…)
    Toutefois, il est clair que cette différence de performance ne sera visible que sur des algorithmes relativement lourds (l'IA d'un "gros" jeu , ou des jeux hautement interactifs, des calculs lourds, du CAD-CAM, …) donc pas nécessairement des applications que l'on rencontre tous les jours sur une plate-forme mobile.

    D'autre part, si vous désirez développer le "core" de votre application dans l'idée d'une réutilisation possible et maximale du code sur d'autres environnements mobiles ou desktop, il n'est pas non plus recommandé d'utiliser l'Objective-C au-delà du strict nécessaire (càd respect du "look and feel", etc.).
    Par contre, la position défendue par certains c... dans d'autres forums ici, de rechercher à tout prix un code 100% portable sur toutes les plate-formes, est tout aussi absurde dès que cette portabilité implique une détérioration de l'expérience de l'utilisateur final et qu'elle induit des compromis qui vont du tristement pathétique au lamentablement ridicule… Car à moins d'avoir un marché captif (genre solutions verticales…), une UI inadaptée à la plate-forme se paiera par une piètre succès commercial, ce qui relativise toute économie que le code "100% portable" est censé apporter lors du développement…

    Donc, entre un jeu OpenGL-ES qui n'aurait que 2% en Objective-C et le reste en C ou C++ (donc très facilement portable sur d'autres mobiles…), et une application du genre AddressBook qui serait à 98% en Objective-C pour offrir la meilleure intégration possible, vous avez une très large palette de variantes…

    À vous de bien estimer vos besoins et utiliser les outils au mieux en fonction de vos objectifs et d'un minimum de bon sens…

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par JeitEmgie Voir le message
    Par contre, la position défendue par certains c... dans d'autres forums ici, de rechercher à tout prix un code 100% portable sur toutes les plate-formes, est tout aussi absurde dès que cette portabilité implique une détérioration de l'expérience de l'utilisateur final et qu'elle induit des compromis qui vont du tristement pathétique au lamentablement ridicule… Car à moins d'avoir un marché captif (genre solution verticales…), une UI inadaptée à la plate-forme se paiera par une piètre succès commercial, ce qui relativise toute économie que le code "100% portable" est censé apporter lors du développement…
    +1

Discussions similaires

  1. [WD16] Développement sur iPad possible ?
    Par gardangel dans le forum WinDev
    Réponses: 7
    Dernier message: 07/07/2011, 20h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo