|
|
|
|
Strumenti |
13-01-2020, 09:35 | #1 |
Senior Member
Iscritto dal: Nov 2012
Messaggi: 427
|
react native o no?
Ciao a tutti, vorrei realizzare un' app per smartphone android, in futuro probabilmente anche per ios.
conosco le basi di C,php e javascript ma nulla che possa permettermi lo sviluppo di un'intera applicazione. Ho effettuato un po' di ricerche con google ed ero giunto alla conclusione di iscrivermi ad un corso Java, utile per android, ma mi sono imbattuto in un corso di react native che promette la creazione di app compatibile con piu' piattaforme tra cui android e ios. ho indagato un po' ma mi si sono incasinate ancora di piu' le idee. Ho capito che react native è un framework javascipt ma non capisco come possa diventare un'app compatibile con piu' piattaforme! Dato che devo comunque iniziare ad imparare un linguaggio dal principio, le applicazioni sviluppate con react native sono paragonabili ad app native o conviene sempre uno sviluppo ad Hoc usando java per android e object C per ios? Grazie
__________________
MB: asrock extreme 4 || CPU: intel i5 3570k || CASE: cooler master 430 elite ||HDD: seagate 1Tb || RAM: vengeance DDR3 1600 MHZ (2x4Gb) || ALI: antec hcg 620 || S.O: window 10 pro
|
13-01-2020, 11:11 | #2 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Il che già potrebbe portarti ad escludere qualsiasi soluzione non cross-platform. Cioè, potresti cominciare con Java/Kotlin e Android SDK, poi in futuro usare Swift/Cocoa o passare ad un framework multipiattaforma.
Ma tanto vale che cominci direttamente con uno multipiattaforma!! Quote:
Cioè Electron ( per esempio ) non è nato per sfizio, ma perchè qualcuno ha voluto consentire ai programmatori esperti di JS di scrivere programmi per desktop, senza dover imparare da zero altre tecnologie. Quote:
Come fa a creare app per ios/android/uwp? Semplice. Il compilatore contiene del codice Java, Swift, ecc... che rappresenta lo scheletero dell'app per la piattaforma specifica. Dentro ci ficca una virtual machine javascript, che esegue il codice js scritto da te. Dal tuo punto di vista, conta il fatto di poter scrivere l'app in js. [quote=acronalb;46572528 Dato che devo comunque iniziare ad imparare un linguaggio dal principio, le applicazioni sviluppate con react native sono paragonabili ad app native o conviene sempre uno sviluppo ad Hoc usando java per android e object C per ios? [/QUOTE] Ecco, questa è la parte fondamentale. Intanto cominci da zero in ogni caso e quindi non hai il bias dovuto ad una conoscenza pregressa. Detto questo, RN è discreto, ma c'è di meglio. Xamarin, Qt, Flutter. Poi Ionic, Cordova. E ce ne sono altri. I primi a comparire furono Cordova e i suoi figli. La tua app è una pagina web ( SPA nella parlata corrente dei programmatori js ) e gira in una webview. Ha limitata capacità di interagire col sistema operativo. E' lenta. Per questo motivo nacquero soluzioni come React Native e Nativescript ( un concorrente di RN ). Non usano la webview. Offrono moduli per interfacciarsi con tutte o quasi le funzionalità del sistema operativo. Sono discretamente veloci. Nessuna di queste due soluzioni batte quella nativa in termini di accesso diretto al sistema operativo e di performance. Poi però qualcuno penso di fare ancora meglio. Nacquero Xamarin ( che in verità è più vecchio di RN ), Qt fu portato su Android e iOS, nacque Flutter ( di Google ). Questi qui implementano praticamente tutto da zero. Usano il sistema operativo solo per le funzionalità base. Sono scritti in C/C++/C#. Pensa che implementano pure i controlli grafici ex novo. Sono più veloci ( in molti casi, non tutti, ma molti ) del nativo. Qt però è C++. Molto grosso e complesso. Basato su un'architettura anni '90. Xamarin non mi ha mai convinto più di tanto. Fa il suo lavoro, ma ha le sue pecche. Bug, architettura presa da .Net. E' valido se sei già un programmatori .Net. Flutter è imho la scelta migliore. Usa Dart come linguaggio, che è nato per sostituire JS ed è quindi molto espressivo e facile da usare. E' molto veloce. Ha un'architettura pensata per i moderni workflow. L'UI si definisce nel codice ( niente XML, XAML, designer WYSIWYG, ecc... ). Supporta l'hot reloading megli di RN ( che già lo supportano ottimamente ). Quindi, per me, dovresti puntare su Flutter. Ho usato un pò di tutto negli anni ed è stato uno dei pochi strumenti a farmi esclamare "Wow!". Inoltre lo stanno portando ovunque. Attualmente supporta le principali piattaforme mobile e il web. Stanno lavorando su Windows/Linux/macOS. E' un ottimo investimento pure in ottica futura. E sarà il framework di default per programmare su Fuchsia ( il futuro sistema operativo di Google ). |
||
13-01-2020, 15:48 | #3 | ||
Senior Member
Iscritto dal: Nov 2012
Messaggi: 427
|
Quote:
Successivamente mi sono imbattuto in react native e da qui le idee si sono complicate Quote:
unica cosa che mi fa storcere il naso è proprio il fatto che sia così recente! del resto dovrei iniziare praticamente a studiare da 0, per javascript o java ci sono tonnellate di libri, tutorial online e corsi, cosa che per il momento non noto per dart (correggimi se sbaglio). Ammetto che l'applicazione che devo realizzare è un po' un test per validare se la mia idea funziona ed è richiesta, in caso affermativo potrei anche pensare ad uno sviluppo sicuramente migliore e piu' accurato come nel caso della app native, quindi non volevo imbattermi in qualche cosa di troppo complicato che potrebbe poi risultare inutile. Comunque i principali "componenti" che dovrò usare sono il bluetooth, il GPS e molta geolocalizzazione, API di paypal, google maps e database quindi nulla di così sofisticato che richieda accesso diretto al sistema operativo. Ammetto che è molto allettante l'idea di imparare ad usare Flutter anche per un futuro sistema operativo fushia (sperando riesca ad affermarsi) ma, alla luce dei miei dubbi, dici che è semplice imparare l'accoppiata Flutter-dart per chi comincia da 0 con la programmazione o meglio un compromesso scegliendo l'abbinata javascript- react native anche se un po' meno performante e completa?
__________________
MB: asrock extreme 4 || CPU: intel i5 3570k || CASE: cooler master 430 elite ||HDD: seagate 1Tb || RAM: vengeance DDR3 1600 MHZ (2x4Gb) || ALI: antec hcg 620 || S.O: window 10 pro
Ultima modifica di acronalb : 13-01-2020 alle 15:57. |
||
13-01-2020, 16:45 | #4 | |||||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Quote:
Al massimo c'è poca roba di terze parti in giro. Quote:
C'è un ottimo libro che si chiama "Dart for absolute beginners". E c'è una guida succinta a vari aspetti del linguaggio https://dart.dev/guides/language/language-tour Imho il miglior punto di partenza è questo corso/tutorial https://da-bootcamp.firebaseapp.com/...ogramming_dart Per Flutter c'è un corso su Udacity. Poi una serie di tutorial qui https://codingwithjoe.com/learn/flutter/ C'è un canale reddit apposito https://www.reddit.com/r/FlutterDev/ Questo tizio ha compilato una guida per neofiti con link a tutorial, video, esempi e altro materiale https://medium.com/flutterdevs/roadm...s-ccb68718c84b Quote:
Quote:
Questo perchè JS ha delle pecche architetturali notevoli, che rendono difficile la programmazione di software robusto. Per cui ci si affida a linguaggi creati apposta per superarne i limiti. Typescript è quello che si è imposto di più e ha battuto Dart. Entrambi puntavano ad essere i sostituti di JS. Per cui, partendo da Flutter non è un lungo viaggio migrare a RN e viceversa. Chiaro che la disponibilità di gazillioni di documentazione di vario tipo, può aiutarti ad entrare con più facilità nel mondo mobile. Senza contare che RN è richiestissimo pure in ambito lavorativo. Per cui nessuno ti vieta di iniziare da quello e poi studiare Flutter con comodo, più in là. |
|||||
13-01-2020, 17:17 | #5 |
Senior Member
Iscritto dal: Nov 2012
Messaggi: 427
|
Do un'occhiata a tutti i tuoi link su dart e poi tiro le somme sul da farsi!
Grazie sei stato gentilissimo!
__________________
MB: asrock extreme 4 || CPU: intel i5 3570k || CASE: cooler master 430 elite ||HDD: seagate 1Tb || RAM: vengeance DDR3 1600 MHZ (2x4Gb) || ALI: antec hcg 620 || S.O: window 10 pro
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:35.