Per creare semplici app si puo’ utilizzare React Native
, tenendo pero’ presente che allo stato attuale (Maggio 2018)
questa teconologia risulta ancora in fase di sviluppo, con cambi anche drastici tra una release e l’altra.
E’ consigliabile utilizzare react-native
(Nodejs) in congiunta a:
Expo, per avere un feedback immediato anche su Device
react-redux
, per la gestione di uno stato globale che verra’ aggiornato
http://graphql.org/learn/queries/ come interfaccia API
https://sentry.io/signup/ , sistema di logging
Per sfruttare al meglio redux
l’app verra’ strutturata suddividendo le Componenti
in due grandi categorie:
dumb
, ovvero componenti presentazionali pure che utilizzano solo proprieta’.
smart
, estendono le dumb
e contengono parte della logica di buisness: esse sono componenti che vengono connesse allo store
via Redux
.
Le dumb
NON DEVONO contenere alcuna logica di Business: servono solo da interfaccia,
in questo modo potranno essere riutilizzate anche in altre applicazioni.
Le smart
invece si connettono tramite redux
allo store
, di conseguenza loro provvederanno ad aggiornare le proprieta
della componente dumb
, e tramite il dispatcher dello store
propagheranno i cambiamenti di stato dell’applicazione mediante actions
.
Se non di default, ricordarsi che per utilizzare il
dispatcher
e’ necessario settare la middlewareredux-thunk
.Il
dispacher
risulta necessario in caso di operazioni asyncrone come chiamateajax
ofetch
.
Costruzione app
Nozioni generali
Da questa issue si evince il sunto delle middleware:
next(action)
si fa in modo che l’azione venga successivamente passata alla middleware successiva e cosi’ via fino a raggiungere i reducers
che aggiorneranno lo stato.
return
The return value
from the middlewares bubbles up through the middleware stack, and is ultimately accessible as the return value
of Store.Dispatch()
.
For example, if one of the middlewares returns null
, the return value of Store.Dispatch()
will also be null, whereas if all middlewares return next(action)
, then the return value will be the returned value of next
midlleware.
Quindi se una middleware ritorna una promessa, e tutte le precedenti middleware ritornano next(action)
, allora viene ritornata la Promessa!
Per esempi vedere la documentazione sopra citata (middleware return).