2010-06-09 22 views
15

Sto facendo un'applicazione di e-commerce su Android e, poiché è il mio primo progetto serio, sto cercando di capire in anticipo l'approccio migliore per farlo.Buone linee guida per lo sviluppo di un'applicazione e-commerce

L'applicazione comunica con un servizio Web (magento api, ovvero soap o xml rpc, sfortunatamente) e ottiene tutti i contenuti sul telefono (categorie di prodotto, dettagli del prodotto, credenziali dell'utente, ecc.). Penso che dovrebbe fare il caricamento pigro o qualcosa del genere.

Così, stavo pensando di tenere le credenziali dell'utente in un oggetto personalizzato che verrà conservato in un SharedPreferences in modo che ogni attività cand facilmente accedervi. Userò un paio di ListView s per mostrare il contenuto e AsyncTask per recuperare i dati necessari. Devo tenere tutti i dati in memoria negli oggetti o dovrei usare una sorta di cache o un database locale? Inoltre, ho intenzione di utilizzare uno HashMap con SoftReferences per contenere le bitmap che sto scaricando. Ma questo non mangerebbe un sacco di memoria?

Come mai tutte le attività hanno accesso a tutti questi oggetti (carrello ecommerce, ecc.)? Sto pensando di passarli usando Intents ma questo non mi sembra giusto. È possibile utilizzare SharedPreferences per molti oggetti e vi sono problemi di concorrenza?

Qualsiasi suggerimento sarebbe molto apprezzato. Quali sono alcune buone linee guida? A quali classi dovrei esaminare? Conoscete eventuali risorse su Internet da verificare?

+0

sto per sviluppare l'applicazione per eCommerce per Android, quindi se potessi dare qualche consiglio sarebbe di grande aiuto @kaciula – Anitha

+0

@kaciula Ho appena iniziato a costruire un'app eCommerce ma sono stato bloccato. Penso allo stesso stadio in cui eri 5 anni fa :). Se puoi rispondere a questa domanda da solo, sarà molto utile per gli altri. – Abhigyan

risposta

12

Una domanda molto dettagliata farò del mio meglio per rispondere. Ho usato il seguente approccio nella mia domanda:

  • risparmio le credenziali utente nelle preferenze condivise. Le preferenze possono contenere solo oggetti personalizzati se sono serializzabili e la scrittura e la lettura dalla memoria flash richiede molto tempo. Quindi carico le preferenze all'avvio e le memorizzo.

  • Cerco di mantenere tutti i dati in memoria necessari in molti posti e in uno stato consistente, tutta l'altra memoria viene passata tramite serializzazione a json e passando attraverso un intent o ho passato solo id e sto recuperando dalla rete. (Esiste definitivamente una possibilità di incassare un database locale, ma lo sforzo di tenerlo aggiornato è lavorare molto al momento.) Per memorizzare oggetti che impiegano molto tempo per ricaricarsi dalla memoria interna o dalla rete e riutilizzarli, io uso una personalizzata application che contiene il riferimento ad alcuni oggetti controller che gestiscono la memorizzazione nella cache. L'applicazione rimarrà in memoria fino alla chiusura dell'app. Questo è conveniente ma può comportare il bisogno di molta memoria se non si presta attenzione.

  • Le bitmap scaricate dal mio programma sono memorizzate nella cache su due livelli. La prima volta che voglio accedere a un'immagine, creo un oggetto image manager all'interno del mio ambito di attività. Quell'oggetto proverà a trovare la bitmap in una mappa interna. Se non è presente, tenterà di caricarlo dalla memoria del telefono, se non è presente nella memoria del telefono, lo scaricherà dalla rete, lo memorizzerà nella cartella della cache della mia app e lo inserirà nella mappa. In questo modo la bitmap è accessibile finché l'attività viene eseguita e viene eliminata nel momento in cui l'utente passa a un'altra schermata. Fino ad ora questo è sufficiente per me.

Alla fine basta iniziare la programmazione e tornare se si incontrano altre domande o gli errori e inviare alcune domande più specifiche.

Problemi correlati