2011-10-04 18 views
6

¿Alguien puede proporcionar algunas estrategias para organizar mi proyecto para que esté limpio? Digamos que tengo muchas actividades; ¿Es bueno colocarlos a todos en un paquete separado, mientras se colocan otras clases (como Adaptadores personalizados) en otro paquete para separar mejor la "lógica"?Organizar archivos de código/XML para SDK de Android

Además, al crear archivos XML para diseños, ¿cómo separaría lógicamente los archivos XML de diseño si tengo algunos diseños que son para ciertas actividades y otros archivos de diseño XML para "filas" personalizadas (para usar con un adaptador) I No quiero simplemente incluirlos en res/layout: se convertiría en una gran molestia cuando el proyecto se vuelva realmente grande.

Respuesta

8

Di que tengo un montón de actividades; ¿Es bueno colocarlos a todos en un paquete separado de , mientras coloca otras clases (como adaptadores personalizados ) en otro paquete para separar mejor "lógica"?

no estoy seguro de lo que son las mejores prácticas, pero aquí es cómo organizo mis aplicaciones: tiendo a poner mis actividades en com.foo.appname.activity, proveedores de contenidos, servicios en com.foo.appname.content en com.foo.appname.service y utilidades genéricas en com.foo.appname.utils.

Para las clases de ayuda como Adapters que solo utilizan una actividad, normalmente las hago clases internas estáticas. Si se utilizan en múltiples actividades, les daría visibilidad a nivel de paquete en el paquete de actividades.

Yo no quiero sólo tirar a todos en res/layout

No creo que los res directorios se les permite tener subdirectorios, así que lo mejor que puede hacer es venir con un buen esquema de nombres. Normalmente prefijo el archivo de diseño con el tipo: activity_foo.xml, fragment_foo.xml, etc.

+0

Esto es bueno, gracias Erich! – volk

2

Todas estas sugerencias, por supuesto, son su elección. Pero cuando desarrollo algo, utilizo para separar la capa lógica de capas y clases "visibles". Quiero decir que yo uso diferentes paquetes para

a) Activites 
b) Classes or Objects 
c) Interface classes 
d) Database classes 
e) Interaction with Database 

también puedo crear diferentes paquetes para todos ellos, para que pueda organizar mejor. Pero esta es siempre tu elección.

Y con su diseño ... No sé si puede organizar mejor el diseño. Cuando generas tu proyecto, si ves, en tu carpeta gen está la clase R.java. Esa clase autodetecta carpetas como diseño, dibujable, sin formato ... Pero no estoy seguro de si puede hacer subcarpetas dentro de ella.

Cuestiones relacionadas