Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Zenfone 11 Ultra ha tantissime qualità interessanti, fra cui potenza da vendere, un display di primissimo livello, un comparto audio potente e prestazioni di connettività fra le migliori della categoria. Manca però dell'esclusività del predecessore, che in un settore composto da "padelloni" si distingueva per le sue dimensioni compatte. Abbiamo provato il nuovo flagship ASUS, e in questa recensione vi raccontiamo com'è andata.
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Abbiamo partecipato ad Appian World 2024, evento dedicato a partner e clienti che si è svolto recentemente nei pressi di Washington DC, vicino alla sede storica dell’azienda. Nel festeggiare il 25mo anniversario, Appian ha annunciato diverse novità in ambito intelligenza artificiale
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Primo contatto con il monitor Lenovo ThinkVision 3D 27 che grazie a particolari accorgimenti tecnici riesce a ricreare l'illusione della spazialità tridimensionale senza che sia necessario utilizzare occhialini
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-01-2020, 09:35   #1
acronalb
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
acronalb è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2020, 11:11   #2
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da acronalb Guarda i messaggi
in futuro probabilmente anche per ios
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:
Originariamente inviato da acronalb Guarda i messaggi
conosco le basi di C,php e javascript ma nulla che possa permettermi lo sviluppo di un'intera applicazione
Ottimo. Se tu fossi stato un programmatore JS, ti avrei consigliato React Native senza pensarci su. In fondo lo scopo di questi strumenti è quello di poter riutlizzare le proprie conoscenze.

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:
Originariamente inviato da acronalb Guarda i messaggi
Ho capito che react native è un framework javascipt ma non capisco come possa diventare un'app compatibile con piu' piattaforme!
Oddio, RN usa JSX. Però si, alla fine ti servono html, css e js ( oltre a conoscenze specifiche di jsx, ma niente di drammatico ).

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 ).
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2020, 15:48   #3
acronalb
Senior Member
 
Iscritto dal: Nov 2012
Messaggi: 427
Quote:
Originariamente inviato da pabloski Guarda i messaggi

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.
Prima di trovare react native mi ero proprio imbattuto in apache cordova e ionic ma facendo ricerche varie ero arrivato alla conclusione che, basandosi su webview, l'app sarebbe risultata meno performante delle native.
Successivamente mi sono imbattuto in react native e da qui le idee si sono complicate



Quote:
Originariamente inviato da pabloski Guarda i messaggi

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!".
Flutter non lo conoscevo ma facendo qualche ricerca ho notato che è abbastanza nuovo e in forte crescita.
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.
acronalb è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2020, 16:45   #4
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da acronalb Guarda i messaggi
Prima di trovare react native mi ero proprio imbattuto in apache cordova e ionic
Francamente non so a cosa possano servire ionic, cordova e compagnia. Ormai le progressive webapp consentono di portare le webapp direttamente su mobile e vanno pure meglio di cordova e soci.




Quote:
Originariamente inviato da acronalb Guarda i messaggi
unica cosa che mi fa storcere il naso è proprio il fatto che sia così recente!
Il framework si, il linguaggio Dart no. Comunque è spettacolare e non soffre di bug particolarmente gravi.

Al massimo c'è poca roba di terze parti in giro.

Quote:
Originariamente inviato da acronalb Guarda i messaggi
cosa che per il momento non noto per dart (correggimi se sbaglio).
C'è meno casino.

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:
Originariamente inviato da acronalb Guarda i messaggi
quindi non volevo imbattermi in qualche cosa di troppo complicato che potrebbe poi risultare inutile.
In generale la programmazione è sempre complicata. Per esempio è vero che React Native ha dalla sua l'ecosistema JS e gazillioni di libri, tutorial, blog, ecc... Ma è pur vero che, ben presto, scoprirai che l'incasinato ecosistema JS è pieno di librerie che funzionano e non funzionano, crash dovuti all'aggiornamento di dipendenze, difficoltà nel debug ( dovute alla natura stessa del linguaggio ).




Quote:
Originariamente inviato da acronalb Guarda i messaggi
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?
Dart è l'evoluzione di JS. Ovvero è come Google pensa che JS sarebbe dovuto essere. Considera che oggi moltissima gente non usa JS, ma Typescript, Coffeescript, Clojurescript, ecc...

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à.
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2020, 17:17   #5
acronalb
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
acronalb è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone' Recensione Zenfone 11 Ultra: il flagship ASUS ri...
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA Appian: non solo low code. La missione è ...
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini Lenovo ThinkVision 3D 27, la steroscopia senza o...
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
eFootball taglia il traguardo dei 750 mi...
MS-DOS 4.0 diventa open source: Microsof...
Micron riceverà 6,1 miliardi di d...
STALKER 2 Heart of Chornobyl: nuovo trai...
Google: ancora un rinvio per lo stop ai ...
Lotus Evija X è la seconda auto elettric...
NIO e Lotus annunciano una grossa novit&...
Esclusive PlayStation su Xbox? Sì...
CATL: una nuova batteria per auto elettr...
TikTok al bando negli USA? Biden firma, ...
Taglio di prezzo di 150 euro per SAMSUNG...
Utenti Amazon Prime: torna a 148€ il min...
Microsoft sfiora i 62 miliardi di dollar...
Coca-Cola al cloud con un pizzico di IA:...
Prodotti TP-Link Tapo in offerta: videoc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www3v