2011-05-27 5 views
5

J'ai ma première application iOS sous la ceinture (une application iPad relativement simple, à paraître dans un mois ou deux), mais maintenant je passe à quelque chose de plus ambitieux, et pourrait utiliser quelques conseils.Xcode 4 iOS questions de structuration de projet

Mon prochain projet sera en réalité deux applications iPad distinctes mais étroitement liées qui partageront un peu de fonctionnalités de base et un format de données commun. Donc mon instinct est de développer ces deux applications en conjonction avec le développement d'un framework de base partagé par les deux, et je voudrais que ce framework partagé utilise CoreData et fournisse aussi des éléments GUI (NIB, view controllers) qui peuvent être utilisés par le applications respectives. Mon instinct est donc de créer 3 projets Xcode: un projet d'application iOS pour l'application A, un deuxième projet d'application iOS pour l'application B et un troisième projet d'infrastructure CocoaTouch pour l'infrastructure partagée.

Questions:

1) Est-ce la bonne façon de structurer mon développement, ou est-il une meilleure façon de faire du développement simultané de deux applications étroitement liées et un cadre commun?

2) Un framework peut-il utiliser CoreData? (Je pose cette question parce que lors de la création d'un projet de framework CocoaTouch dans Xcode on ne lui offre pas l'option de l'utiliser CoreData - ni l'option d'avoir des tests unitaires - comme on le fait lors de la création d'un projet iOS). 3) Existe-t-il un moyen de "convertir" un projet d'application iOS en un projet de cadre, ou, de préférence, plutôt de construire un projet d'application dans une cible cadre? Cela me permettrait de créer le projet de framework avec tous les freebies d'installation de Xcode (NIB, core data, etc.), au lieu d'ajouter tout ça manuellement.

Merci!

Carl

Répondre

2

Pour répondre à la première question, je ne travaillerais pas de cette façon. Je créerais un projet avec trois cibles, deux cibles d'application et une cible de cadre. Peut-être qu'à l'avenir je déplacerais le framework vers son propre projet quand il se serait stabilisé et que j'allais l'utiliser pour encore plus d'applications iOS. Avoir toutes les cibles dans le même projet réduit les problèmes de synchronisation lorsque l'on travaille sur du code partagé entre les cibles.

Pour répondre à la question 2, Xcode n'inclut pas le support de modèle pour ajouter des tests de données de base et des tests unitaires à un projet de cadre de démarrage. Je ne vois pas pourquoi vous ne pouvez pas utiliser les données de base dans un cadre.

Pour répondre à la troisième question, ajoutez simplement une cible de structure à votre projet d'application iOS et déplacez les parties appropriées de votre application iOS vers l'infrastructure.

+0

Merci pour les réponses, particulièrement à # 1! Cela semble beaucoup plus facile à gérer. Je suis content d'avoir demandé! –