Duplication de projet

maxi_moussemaxi_mousse Membre
décembre 2009 modifié dans Vos applications #1
Bonjour tout le monde.

Alors je requiert vos yeux d'experts (pour la plupart ^^) afin d'avoir quelques conseils. Je m'explique. J'ai un projet X-Code, quasi fini, qui était sensé être une application soumise à  l'AppStore contenant des biens et services touristiques, à  choisir pour l'utilisateur parmi une liste de régions touristiques. Hors, le projet est complètement chamboulé, et je me retrouve à  devoir chercher une solution afin de créer UNE application par région touristique contenant pour chacune d'elles leur biens et services (ces clients arriveront au fur et à  mesure, mais il va y avoir danger lorsqu'ils commenceront à  être nombreux)... sachant que la plupart du code devrait rester sensiblement le même dans chacune de ces applis, et que seules quelques fonctionnalités différeront selon la volonté du client (Aà¯e aà¯e aà¯e) ainsi que les graphismes.

Ainsi, après de multiples recherches infructueuses (comme notamment savoir si on peut gérer UN projet avec une gestion de partage et de récupération de composants permettant d'être intégrés à  l'application, possible sous androà¯d, mais pas sur iPhone), je ne vois que la solution de dupliquer mon projet X-Code et changer sur chacun des projets dupliqués les infos tels que l'Icone de l'app, l'image d'écran de chargement, et le nom de l'exe... + le code à  adapter au client  B)

Voyez-vous autre chose de + approprié à  ma problématique, ou sinon, est-ce qu'il y a un(des) moyens quelconques de faciliter ces manipulations de copier/coller de projets ?

Un peu ardu tout ça n'est-ce pas ?

Réponses

  • AliGatorAliGator Membre, Modérateur
    03:24 modifié #2
    Je vois plusieurs solutions :
    1) Utiliser les #define pour isoler les morceaux de code qui doivent être utilisés dans une version de l'appli et pas dans l'autre
    2) Créer plusieurs Targets pour ton projet : c'est fait pour justement, chaque target correspondant à  un exécutable généré, et ça te permet de customiser chaque exécutable avec des paramètres de compilation différents en plus si tu le souhaites, d'intégrer certains fichiers pour un target et pas pour d'autres, de définir des directives de compilation genre #define pour certains targets et pas pour d'autres, et donc là  encore d'isoler certains bouts de code...


    Du coup avec ce méncanisme de target, si tu peux tout à  fait n'avoir qu'un seul projet qui va te générer 10 applications différentes, chacunes avec des fonctionnalités différentes pour certaines parties communes pour d'autres.

    Sinon, une autre solution c'est de prévoir un projet par application, et de réutiliser les composants communs pour dans chaque projet (tu dis que c'est possible avec Android mais pas avec iPhone, d'où tu tiens ça ? Il est tout à  fait possible de créer une classe et de la réutiliser dans plusieurs projets si tu réutilises les mêmes fichiers bah quand tu le changeras dans un projet ça changera sur l'autre puisque c'est le même fichier, etc)...

    Enfin, tu peux aussi créer des librairies (bon, des librairies statiques uniquement sur iPhone, qui ne supporte pas les librairies dynamiques pour une raison de validation Apple pour éviter les possibilités de débordements de personnes mal intentionnés) et utiliser chaque libriairie dans plusieurs projets.

    Mais bon, vu ton cas je te conseille un projet et plusieurs targets, c'est le plus adapté je pense. C'est jamais très simple à  gérer ce genre de cas (genre si tu rajoutes un fichier à  ton projet, faut penser à  cocher les targets / binaires générés pour lesquels tu veux intégrer ce fichier et celles où tu ne veux pas l'inclure, selon ce que tu demande le client et donc s'il faut intégrer cette fonctionnalité dans un cas ou dans l'autre... Mais bon, ça c'est les joies de gérer plusieurs projets en parallèle sans s'emmêler les pinceaux :D
  • maxi_moussemaxi_mousse Membre
    décembre 2009 modifié #3
    Merci Ali ! Quelle promptitude ! :)

    En effet oui, cette solution de gérer plusieurs targets semble intéressante. Cela-dit, je me pose encore la question de la maintenabilité d'un projet qui gère 30 ou 40 targets, car à  terme, il risque fort d'y avoir un grand nombre de clients...

    dans 1260193179:

    Sinon, une autre solution c'est de prévoir un projet par application, et de réutiliser les composants communs pour dans chaque projet (tu dis que c'est possible avec Android mais pas avec iPhone, d'où tu tiens ça ? Il est tout à  fait possible de créer une classe et de la réutiliser dans plusieurs projets si tu réutilises les mêmes fichiers bah quand tu le changeras dans un projet ça changera sur l'autre puisque c'est le même fichier, etc)...


    Je parlais ici justement de composants Objective-C que l'iPhone irait chercher -au sein de l'appli lancée- sur des serveurs tiers (selon un ID), qui justement (ces composants) ne seraient pas passés par validation Apple. ... solution qui est concevable sur Android

    Bref, pour cette histoire de targets, je vais faire des tests sur un petit projet bidon, et je reviens à  la charge si j'ai un soucis...

    Merci !
  • maxi_moussemaxi_mousse Membre
    03:24 modifié #4
    Bon bin voilà , après quelques tests, je crois que c'est ok pour les Targets. Finallement on vient de m'annoncer que les clients n'auront que peu de choix pour personnaliser leur appli, du genre l'écran de chargement, l'icône de l'app, le code couleur, etc ... enfin ça ne touche pas vraiment au code.

    Du coup je vais créer un dossier de Ressources par Target et relier chaque dossier à  son target. Comme ça facile à  gérer pour les éléments qui changent (comme l'image d'un bouton dans une vue), ils peuvent garder le même nom.

    Encore merci Ali :D
  • ipodishimaipodishima Membre
    03:24 modifié #5
    Hello !

    Juste en passant comme ça, j'avais eu affaire à  ce problème avec les ebooks estampillés iPuP et je viens aujourd'hui de voir un nouveau menu sous XCode sous snow leopard : project / rename. Méga pratique ! Avant je mettais une bonne demi heure pour tout renommer et cocher le bazar, maintenant 10 s !

    +
Connectez-vous ou Inscrivez-vous pour répondre.