Come creare un'app di social networking per Android
- definire quali azioni gli utenti saranno in grado di eseguire.
- definire quali schermate saranno presenti nell'app
- disegnare i wireframe di ogni schermata e impostare le interazioni tra di esse utilizzando strumenti come JustinMind e invisionapp
- giocare con i prototipi fino a quando non si stabilisce la versione iniziale della vostra app
- considerando i comportamenti d'uso tipici di Android e il linguaggio di design di Google - Material Design, e incorporando anche i colori e i loghi del vostro marchio - creare il design effettivo delle schermate. Scegliere i font
- iniziare a modellare le entità primarie della vostra app, che sono soggetti di azioni o che possono fare qualcosa - un utente, un messaggio, una richiesta di amicizia, un oggetto - e definire le relazioni tra loro - queste saranno le vostre classi modello in Java
- in Android Studio, creare un progetto Android
- iniziare con una semplice funzione, e prima farla funzionare in una singola attività - la vista, il modello e la logica di business potrebbero essere nella stessa classe
- Pacchetto di classi per funzione e per livello. Non per tipo.
- quando lo fate funzionare, impiegate il pattern MVP per la vista, e poi fate tutte le operazioni di business logic in classi interactor basate su casi d'uso, che non dovrebbero preoccuparsi dell'ambiente di implementazione
- asciate fuori la logica del database, la logica di rete, la logica di accesso allo storage/file locale, usando interfacce contrattuali, stile Clean Architecture
- se non avete un server API pronto, usate i fake o i mocks, fino a quando non si ottiene uno sviluppatore di backend per configurare l'API (o la si programma pure)
- scrivere test unitari per ogni componente in isolamento
- scrivere test di integrazione per le interazioni tra i componenti
- utilizzare una libreria di terze parti per la funzione chat, o implementarla da soli
- impostare la messaggistica cloud utilizzando Google Firebase per inviare messaggi tra il telefono e il server
- impostare notifiche locali per notificare all'utente nuove azioni o messaggi nell'app
- utilizzare RecyclerView con CardViews per il feed, trovare modi per animare le interazioni dell'utente con il feed.
- utilizzare una libreria di terze parti per visualizzare le immagini nell'app e fare attenzione agli OutOfMemoryErrors e ai Memory Leaks. Puoi usare LeakCanary per aiutarti in questo.
- Usa Retrofit 2 per il tuo strato di rete
- Se vuoi usare una libreria per accedere a un database SQLite locale - hai molte opzioni - ActiveAndroid, GreenDAO, OrmLite, SQLBrite
- Se vuoi più flessibilità e potenza - usa l'accesso al database SQLite grezzo e scrivi tu stesso le operazioni
- Traccia i crash delle app con Crashlytics.
- Inviare le build agli stakeholder usando HockeyApp o Fabric Beta
- Se volete fare i capricci, usate RxJava per concatenare più operazioni su flussi di dati, e togliervi il carico dalle spalle quando si tratta di multithreading
- Utilizzate Dagger 2 se volete usare Dependency Inversion e separare la creazione di oggetti dalla logica di utilizzo degli stessi