una studio res programacion móviles desarrollo curso crear como celular carpeta archivos aplicaciones android code-organization

studio - Proyecto de Android: Cómo organizar mejor los archivos



manual de programacion android pdf (2)

Estoy construyendo mi primera aplicación de Android, y ya está un poco desordenada. Estoy usando patrones de lista / detalle porque son lo que encaja con las circunstancias, pero porque estoy desarrollando tanto para el móvil como para la tableta, se está saliendo un poco de las manos. Para cada pantalla (Lista / detalle siendo una pantalla), se crean cuatro archivos. ListActivity, ListFragment, DetailActivity, DetailFragment. Teniendo cuatro pantallas hasta ahora, y literalmente comenzando el proyecto, tengo 12 archivos, más tres archivos de ayuda para una tabla de base de datos.

Lo que pregunto es cuál es la mejor manera de organizar esto. Estoy usando Android Studio y parece que no puedo ordenar los archivos en carpetas sin colocarlos en paquetes separados. Entonces, ¿hago algo como com.domain.app.screen1. (Fragments | Actividades), com.domain.app.screen2. (Fragments | Actividades) y así sucesivamente? ¿O simplemente lo aguanto? ¿O hay una mejor manera de hacer esto?

Si no estoy seguro, házmelo saber e intentaré aclararlo.


Buena explicación por @Eric Oestrich:

Escribir una aplicación de Android mediana o grande requiere tener una estructura de código. Al crear nuestro último proyecto de desarrollo de Android, encontré una estructura que me ha ayudado.

Código Java:

  • com.example

    • ocupaciones

      Contiene todas las actividades. Las clases se nombran todas con Actividad al final. De esa manera, puede saber de inmediato lo que es cuando lee un código Java que no tiene su nombre completo de paquete.

    • adaptadores

    Contiene todos los adaptadores.

    • autenticador

    Contiene cualquier clase relacionada con la firma de un usuario. Creo que crear una cuenta local y tener todas las clases relacionadas juntas es muy útil.

    • datos

    Contiene todas las clases relacionadas con la administración de datos, como ContentProvider y SQLiteHelper.

    • data.migrations

    Contiene todas mis migraciones de SQLite.

    • fragmentos

    Contiene todos los fragmentos.

    • ayudantes

    Contiene clases de ayuda. Una clase auxiliar es un lugar para colocar el código que se usa en más de un lugar. Tengo un DateHelper por ejemplo. La mayoría de los métodos son estáticos.

    • interfaces

    Contiene todas las interfaces.

    • modelos

    Contiene todos los modelos locales. Al sincronizar desde una API HTTP, analizo el JSON en estos objetos Java utilizando Jackson. También coloco filas de cursor en estos modelos también.

    • preferencias

    Contiene todas las clases para preferencias personalizadas. Al crear las preferencias, necesitaba un PreferenceDialog personalizado así como una PreferenceCategory personalizada. Ellos viven aqui.

    • sincronizar

    Contiene todas las clases relacionadas con la sincronización. Utilizo un SyncAdapter para extraer datos de una API HTTP. Además del SyncAdapter, se requiere un SyncService, así que creé un paquete.

Diseños:

  • El nombre del diseño de la actividad comienza con la actividad_
  • El nombre de la fila del diseño del adaptador comienza con row_
  • El nombre del diseño de fragmento comienza con fragmento_

Que yo sepa, no hay ninguna convención, pero aquí hay un ejemplo de cómo puedes poner tus archivos en paquetes:

  • paquete principal
    • LauncherFragment
    • LauncherActivity
    • Mi aplicación
  • uiPackage
    • DetallesFragmento
    • DetallesActividad
    • OtroTabletFragment
  • viewPackage
    • vistas personalizadas
  • paquete de base de datos
    • MainContentProvider
    • MainDBHelper
    • SecondContentProvider
    • SecondDBHelper
  • paquete de datos
    • Adaptador personalizado
  • utilsPackage
    • xmlUtils
    • textUtils

Y muchos otros. Puedes buscar proyectos de android en GitHub y echar un vistazo.