tutorial español developer apple xcode resources interface-builder

xcode - español - swift ios



Estructura y organización de recursos del proyecto Xcode (4)

Hola chicos, soy relativamente nuevo en Xcode y una cosa que me ha molestado es que cuando agrego un recurso, se agrega al directorio de nivel superior del directorio de mi proyecto. Entonces, por ejemplo, en este momento, todas mis imágenes están en el directorio de nivel superior y hace que las cosas se vean desordenadas. Preferiría, por ejemplo, tener una carpeta de imágenes / y luego subcarpetas dentro de esa para almacenar imágenes para ciertas cosas, como tab-bar / icons. es posible? ¿O es una convención simplemente mantener todo en el directorio de nivel superior?

Alguien en el canal #iphonedev en freenode me dijo algo sobre la regla del proceso de compilación o algo así, parecía demasiado complicado, pensé que no debería molestarme, y que la mayoría de la gente simplemente guardaba las cosas en su directorio raíz considerando la complejidad de la solución. Sin embargo, quizás no sea tan complicado, simplemente sentí que debería ser más fácil.

Por ejemplo, también me gustaría tener una subcarpeta para mis vistas, como views / that almacena todos mis archivos de punta; actualmente están todos en el directorio de nivel superior. Y lo mismo ocurre con mis listas de propiedades.

Le agradecería si pudiera decirme qué es la convención, dudo que sea solo almacenar todo en el directorio de nivel superior. Y me refiero al sistema de archivos actual, no simplemente crear ''carpetas virtuales'' en Xcode para organizar cosas, porque el directorio de nivel superior de mi proyecto seguirá siendo un desastre. Y si es posible organizar las cosas mejor, agradecería cualquier ayuda detallada sobre cómo lograrlo.

Creo que he escuchado que en la compilación final, toda la estructura de archivos queda aplastada en el directorio raíz. No me importa mucho eso, solo quiero que las cosas se organicen mientras trabajo en mi proyecto. Creo que aquí es donde entra en juego la regla de ''construir'', pero no estoy seguro de cómo o qué hacer.

¡Gracias!


Aquí hay un poco más de explicación de la sugerencia de Graham:

  • Crear un directorio de imágenes
  • Crear un grupo de imágenes en Xcode
  • Haga clic con el botón derecho en el grupo y obtenga información
  • "Elija ..." para configurar el directorio del grupo como su directorio de imágenes

Ahora, todo lo que coloque en el grupo de imágenes irá automáticamente al directorio de imágenes. Eso es cierto si arrastra / suelta desde Xcode, desde otros proyectos o desde Finder, o si agrega Nuevo ... haciendo clic derecho en el directorio de imágenes. (Esto supone que deja la configuración predeterminada de "relativa al grupo" en el panel de información).

Esto funcionará para todo lo que pongas en ese grupo (NIB, etc.).

Para imageNamed: usted acaba de dar el nombre base.

Mi recomendación es mantener un pequeño número de directorios del sistema de archivos, y en su mayoría organizar con grupos en Xcode. Pero estoy de acuerdo, una pequeña cantidad de directorios del sistema de archivos son muy útiles. Puse todo mi código fuente en un directorio de Clases (solo porque Apple usó ese nombre, habría elegido "Fuentes" o algo así). También tengo un directorio de Recursos en el nivel superior y generalmente creo imágenes y directorios de audio debajo de eso. Pero generalmente no creo muchos directorios reales más allá de eso. Esto mantiene las cosas un poco más ordenadas, pero facilita grep y comodín con el shell.

Más allá de las herramientas de shell, la gran ventaja de organizarse por grupos en lugar de directorios es el impacto en los sistemas de control de versiones como la subversión. Cuando de repente se da cuenta de que su grupo "Vistas" es demasiado grande, puede reorganizarlo sin tener que tomar el enorme impacto de mover archivos.


En realidad, es muy fácil llegar desde donde se encuentra hasta donde quiere estar. Crea la carpeta images/ y coloca todas las imágenes en ella. Ahora en la ventana del proyecto en Xcode, los archivos de imagen se han puesto rojos porque ya no están en su lugar. Obtenga información sobre ellos y "Elija ..." la nueva ubicación.

Tenga en cuenta que solo porque haya movido el archivo en el sistema de archivos fuente (conocido como $SRCROOT ), no hay cambios en la forma en que se usa el archivo en el producto. Si se copió en Contents/Resources/ antes de mover el archivo, ahí es donde se copiará después. No se agregará ninguna subcarpeta en el destino.


La respuesta aceptada no funcionó para mí en Xcode 4.3.2. Parece que eliminaron la opción de menú "Obtener información". En cambio, hice esto:

  1. Creé el directorio en el disco donde lo quería.

  2. Fui al menú de archivo

  3. Haz clic derecho en el grupo que quería agregar a

  4. Seleccionado "Agregar archivos a PROJECTNAME"

  5. Agregué los archivos del directorio que creé en (1)


La vida es difícil para IDEs. Tienen que mediar entre un mundo de sistemas de archivos , donde el compilador, con sus archivos fuente en vivo, y el mundo de la interfaz de usuario , donde trabajan los programadores.

En los viejos tiempos que formaban la cultura de codificación contemporánea, todo el mundo, los compiladores y las personas solían vivir juntos en el sistema de archivos. Así que hoy todavía tenemos una tendencia a pensar que queremos controlar dónde residen las fuentes y los recursos en el disco. Eso es bueno, porque es posible que necesitemos saber exactamente qué comen los compiladores.

De todos modos, si cree que su IDE es solo la interfaz de un sistema de base de datos gracioso de código fuente y si realmente tiene plena confianza sobre sus capacidades y características (que rara vez es el caso), puede llegar a la conclusión de que si simplemente se pone No te importa el sistema de archivos, puedes tener una vida mejor como programador (y como ser humano).

Tienes razón, porque Xcode no es muy bueno ni amigable con la organización del código del sistema de archivos y las personas que son (correctamente) exigentes aprenderán a mover archivos en su carpeta correcta en el disco y en su grupo correcto de Xcode. Eso, si usa "Crear referencias de carpeta para cualquier carpeta agregada", tiene una relación 1: 1.

Pero verá muchas personas, y muchos ejemplos de proyectos de Apple itsef, que usan un simple árbol de archivos plano con todo en la misma carpeta.

Mi consejo es que al menos agrupe encabezados públicos y recursos en diferentes carpetas, algo a la Java / Maven, pero no hay una convención universal.