web-dev-qa-db-fra.com

Meilleure pratique pour une structure de groupes de projets Xcode?

Dans les didacticiels et les exemples qui fournissent des exemples de code, je constate parfois que les fichiers de projet dans le navigateur de projet de Xcode sont organisés par groupes suivant le modèle MVC ("Vues", "Contrôleurs", "Modèle"), et d'autres fois, ils sont organisés en groupes par fonctionnalité ("Connexion", "Liste de contrôle", par exemple).

Concernant iOS, existe-t-il une convention/recommandation d'Apple à ce sujet? Quelle devrait être la meilleure pratique?

15
AppsDev

Les développeurs organisent leurs groupes, leur code et leurs fichiers de plusieurs manières. Mais j'utilise quelque chose comme ceci:

  • CoreData : contient les classes DataModel et Entity.

  • Extension : contient une classe (par défaut Apple extensions de classe + extensions de classe de projet.)

  • Helper : Contient des classes/cadres tiers (par exemple SWRevealController) + des classes de pontage (par exemple. Obj C class in Swift = projet basé)

  • Modèle : Créez une classe singleton (par exemple, AppModel - NSArray, NSDictionary, String etc.) pour enregistrer les données. L'analyse et la mémorisation des données de réponse du service Web sont également effectuées ici.

  • Services : contiennent les processus de service Web (par exemple, vérification de connexion, demande/réponse HTTP)

  • View : Contient le storyboard, LaunchScreen.XIB et View Classes. Créer un sous-dossier Cellules - contenir UITableViewCell, UICollectionViewCell etc.

  • Contrôleur : contient la logique ou le code lié aux UIElements (par exemple, la référence UIButton + l'action cliquée)

Cette structure provient de n autre post Stack Overflow .

Ceux-ci peuvent également vous aider:

  1. http://akosma.com/2009/07/28/code-organization-in-xcode-projects/

  2. https://github.com/futurice/ios-good-practices/issues/28

  3. http://www.slideshare.net/MassimoOliviero/architecting-ios-project

17
Jamshed Alam

J'ai en fait créé un projet pour démontrer ce que je considère comme ma structure de projet Xcode pour une base de code petite ou moyenne. Vous pouvez le trouver ici .

En voici un aperçu:

  • Source - Tout le code source
    • Compte - Classes liées au compte (classes liées à la session, logique du compte, etc.)
    • Application - Classes liées à l'application. Délégué d'application, classes de configuration, etc.
    • Ajouts de base - Extensions et sous-classes issues des classes d'Apple
      • Utilitaires - Classes générales d'utilité. Extensions utiles, utilitaires de formatage, classes de commodité et autres
      • Dossiers basés sur les éléments - Dossier pour UIView, UITableViewCell, etc.
    • Persistance locale - Couche de persistance locale. Toutes les interactions avec la base de données locale (domaine, données de base)
      • Référentiels - Toute logique de persistance locale liée au modèle
    • Constantes - Toutes les constantes. URL, polices, couleurs, erreurs, etc.
    • Modèles - Tous les modèles (représentation des entités côté serveur). Nous jetterions aussi ici toute logique de mapping d'objets
    • Modules - Ici, nous pouvons trouver chacune des pièces de l'application divisée par fonctionnalité
      • Dossiers basés sur les modules - Chaque dossier contient tous les contrôleurs de vue, vues, délégués et classes connexes spécifiques au module
    • Mise en réseau - La couche de mise en réseau de l'application (par exemple, les classes chargées d'interagir avec les services Web)
      • Services - Toute la logique Web liée au modèle
  • Storyboards - Contient tous les fichiers de storyboard
  • Ressources - Toutes les ressources supplémentaires comme les médias, les documents, les fichiers de localisation et autres
6
Julian B.