programacion - ¿Consejos para organizar proyectos de Android más grandes?
manual de programacion android pdf (5)
Mi proyecto actual se está volviendo muy grande. Tengo docenas de actividades, adaptadores, fragmentos, xmls de diseño y otros recursos.
En mis proyectos anteriores (más pequeños) organicé cosas con un estilo de 1 paquete / 1 categoría. Así que tuve com.stuff.xy.adapter, com.stuff.xy.activity, y así sucesivamente. Ahora estos paquetes contienen demasiados elementos, y me encuentro perdiendo una cantidad considerable de tiempo buscando una clase específica en la jerarquía de paquetes.
Uso Eclipse, y hay algunos métodos abreviados que se pueden usar (ir a la definición de clase, por ejemplo), pero tienden a ser situacionales (no puedo usar eso para saltar rápidamente a una definición de diseño XML).
¿Podrías compartir algunos consejos para organizar proyectos a gran escala de manera eficiente? ¿O algunos plugins para esto quizás? (Podría ser útil, por ejemplo, si pudiera agrupar los archivos de origen que se ocupan de una pantalla de aplicación específica: adaptadores, diseños, actividad y código de fragmento, para poder abrirlos rápidamente)
EDIT: Después de muchos meses desarrollando grandes proyectos.
Primero intenté ir con sets de trabajo con Eclipse. En realidad, no fue un problema para mí, mi problema era que nuestro proyecto único de Android era simplemente demasiado grande, contenía muchos recursos, clases, interfaces, etc. Creo que son principalmente útiles para organizar proyectos en un solo espacio de trabajo.
A la larga, separamos nuestro gran proyecto individual en muchos proyectos más pequeños de bibliotecas de Android y un solo proyecto de "aplicación principal" que dependía de todos estos proyectos más pequeños. De esta manera, podríamos dividir los recursos entre estos proyectos de biblioteca (había muchos diseños, valores, estilos que solo se usaron en ciertas partes de la aplicación) y el código, por supuesto. También creé una biblioteca base, de la que dependían todas las demás bibliotecas, y contenía recursos y clases (base) que cada parte de la aplicación necesitaba.
En Eclipse, puede utilizar Conjuntos de trabajo para filtrar los archivos de origen / diseño / recursos en la vista Explorador de proyectos. Esto es un poco más poderoso que los paquetes, ya que opera en todos los archivos, incluidos los activos de diseño e imagen, no solo los archivos fuente de Java.
Por ejemplo, puede crear un conjunto de trabajo Inicio que contenga HomeActivity.java, HomeAdapter.java, res / layout / home.xml, res / drawable / home_icon.png, etc.
Para todos mis proyectos de Android, prefiero ordenar código en la siguiente estructura:
com.company.projectname
es el paquete de la aplicación. Paquetes subyacentes:
model
- todos mis objetos de negocio
logic
- servicios y objetos implementando lógica empresarial
screens
- todas las actividades del proyecto. Si las actividades requieren adaptadores, etc., cada actividad se coloca en un paquete separado en el paquete de pantallas y las cosas relacionadas se colocan en el mismo proyecto.
tools
- paquete con clase de utilidad. AjustesUtil y así sucesivamente.
En la raíz del paquete por lo general tengo la interfaz Constants.java con constantes.
Sólo otro consejo.
Use Ctrl-Shift-R para abrir rápidamente un recurso (obtendrá un menú desplegable de autocompletar) y Ctrl-Shift-T para abrir rápidamente una clase Java. La lista también se llenará automáticamente con los archivos abiertos más recientes.
Tal vez un consejo : para ir rápidamente a una declaración en Eclipse
Mantenga presionada la tecla Ctrl mientras se desplaza sobre una clase o método. Después de 1 segundo, aparece una ventana emergente con declaración abierta / implementación abierta.
Muy útil en grandes proyectos.
Por lo demás, recomiendo que sea intuitivo y ordene todas las Actividades en un paquete, así como todos los cálculos, por ejemplo.
para su preocupación "No puedo usar eso para saltar rápidamente a una definición de diseño xml", puede hacer clic en el nombre del diseño xml, luego ctrl + shift + R lo llevará a esa página de definición.