Qual è il modo migliore per strutturare un'applicazione Android?

26

Sto avviando una nuova applicazione Android. Qual è la migliore struttura da usare?

Sto pensando di renderlo un design multi-pacchetto come segue:

  1. Pacchetto principale, inclusa l'attività
  2. Livello di servizio e dati
  3. Pacchetto entità, inclusa la classe di entità.

    Qualche consiglio?

posta Basbous 16.01.2012 - 22:50
fonte

2 risposte

11

In primo luogo, dipende dall'applicazione che stai facendo.

dovresti fare una descrizione testuale o schematica su come un utente lavorerà con l'applicazione. Risolve tutti gli scenari possibili. Metti giù esempi che verranno utilizzati in seguito per i test.

Decidere cosa appartiene alla funzionalità e cosa - alla configurazione mutevole. Estrarre funzionalità e entità dati da scenari.

Dagli scenari puoi decidere quale sarà la tua app. Servizio, attività, widget, persino un fornitore di contenuti o un sistema complesso, inclusi alcuni componenti diversi. Metti alla prova la tua decisione rispetto agli scenari.

Nel caso del sistema complesso, distribuire le funzionalità e le entità di dati tra i componenti dell'applicazione. Crea un elenco di componenti e cosa sono (attività o altro).

Rendi la lista dei componenti dell'interfaccia utente con la descrizione di ciò che fanno (non ancora COME) Questi saranno widget e attività o frammenti o layout in seguito.

Crea bozze di layout per i componenti dell'interfaccia utente. Fai semplici passaggi da uno all'altro. Guarda l'interfaccia utente. Torna agli scenari e riproducili tutti con la tua UI bozza. Tutti i componenti e le classi dell'interfaccia utente vengono inseriti in una gerarchia di pacchetti o pacchetti.

Crea un elenco di entità di dati. Decidi cosa sarà in cosa. Pianificarli come raccolte o tabelle in DB o DB diversi. Creale come classi, inseriscile in un'altra gerarchia di pacchetti o in un altro pacchetto. Qui si trovano anche gli helper DB: classi che parlano con DB tramite SQL.

Crea una classe di test (JUNIT o Better TestNG) per riempire l'interfaccia utente e le entità dati con i dati di test e avviarli.

Gli adattatori non devono essere pubblici, poiché vengono utilizzati solo nella GroupView padre. Quindi, nessun file per gli adattatori di solito.

Fai non metti tutti i globali in classi statiche speciali: è una cattiva pratica. Stai mescolando così il codice e la configurazione. Utilizza questa soluzione molto interessante . Per ora, è il migliore che io conosca per Android.

I dati di configurazione dovrebbero essere messi in risorse. Se alcuni di questi sono complessi, usa sorgenti XML e parser (s). Rendere i lettori dei dati delle risorse in variabili globali. Non tutti saranno statici! Potrebbero appartenere all'istanza di attività principale, ad esempio.

Non utilizzare costanti non configurabili nel codice! Può essere, solo il tuo nome :-). Ogni costante diventa non costante a volte.

Dall'altro lato, se alcuni di voi non sono normali java, ma scripts - un mix di dati e lingua, allora potete e dovete mischiare dati e codice.

Fai sempre così: scrivi qualcosa - collega qualcosa a una massa - aggiungi i test per questa nuova cosa - prova questo nuovo - prova il grosso - ripeti. Solo piccoli passi!

Modifica. È inoltre possibile utilizzare lo sviluppo basato su test - scrivere test prima del codice appropriato. In questo modo, eseguendo dei test prima che il codice sia pronto, hai un doppio test, quindi controlli se i test reagiscono veramente al codice errato.

    
risposta data 19.01.2012 - 12:42
fonte
7

Sì, è facile da sviluppare se le categorie funzionano basandosi sul loro lavoro. Sei nella giusta direzione. In Android, se sviluppi un'applicazione, userò la seguente struttura, qualcosa sarà simile a te

  1. Pacchetto principale con tutte le attività sullo schermo
  2. Classi dell'adattatore se sto usando ListView, GridView che necessita di BaseAdapter ecc.
  3. Assistente di analisi se utilizzato
  4. Database
  5. Classi di entità e classi per memorizzare la variabile statica
  6. Servizio e ricevitore
risposta data 19.01.2012 - 10:12
fonte

Leggi altre domande sui tag