Domanda Flutter o Kotlin?

JackSbirrow

Utente Gold
30 Luglio 2013
669
33
182
293
Salve ragazzi, spero sia la sezione giusta per una discussione del genere. Vengo da una programmazione "scolastica" di qualche anno fa lato Android con Java, solo che non ho mai avuto la piacevole esperienza di imparare Swift per iOS. Quindi ero propenso ad imparare una delle nuove tecnologie moderne, e ho sentito molto parlare di Flutter. Ho anche sentito parlare di Kotlin, ma di più per Android, come sostituzione a Java. Quindi vi chiedo, quale dei due converrebbe imparare come futura programmazione mobile per un domani? Vedo che Flutter sta andando molto bene sul web, quali sono i pro ed i contro di entrambi? Li usate già? Qualsiasi cosa a riguardo su di loro è ben accetta!
 
Ultima modifica da un moderatore:
Salve ragazzi, spero sia la sezione giusta per una discussione del genere. Vengo da una programmazione "scolastica" di qualche anno fa lato Android con Java, solo che non ho mai avuto la piacevole esperienza di imparare Swift per iOS. Quindi ero propenso ad imparare una delle nuove tecnologie moderne, e ho sentito molto parlare di Flutter. Ho anche sentito parlare di Kotlin, ma di più per Android, come sostituzione a Java. Quindi vi chiedo, quale dei due converrebbe imparare come futura programmazione mobile per un domani? Vedo che Flutter sta andando molto bene sul web, quali sono i pro ed i contro di entrambi? Li usate già? Qualsiasi cosa a riguardo su di loro è ben accetta!
Secondo me Java, è ormai storico come linguaggio e probabilmente sarà sempre il più usato per app android, kotlin ultimamente sta avendo la sua parte ed è quello che ti consiglio anche se secondo me dovresti continuare con Java
 
Salve ragazzi, spero sia la sezione giusta per una discussione del genere. Vengo da una programmazione "scolastica" di qualche anno fa lato Android con Java, solo che non ho mai avuto la piacevole esperienza di imparare Swift per iOS. Quindi ero propenso ad imparare una delle nuove tecnologie moderne, e ho sentito molto parlare di Flutter. Ho anche sentito parlare di Kotlin, ma di più per Android, come sostituzione a Java. Quindi vi chiedo, quale dei due converrebbe imparare come futura programmazione mobile per un domani? Vedo che Flutter sta andando molto bene sul web, quali sono i pro ed i contro di entrambi? Li usate già? Qualsiasi cosa a riguardo su di loro è ben accetta!

Sia Java sia Kotlin sono limitati ad Android. Impara Dart (linguaggio usato da flutter) che se vieni da Java è abbastanza semplice e le app potranno essere compilate sia per iOs sia per Android.
 
Secondo me Java, è ormai storico come linguaggio e probabilmente sarà sempre il più usato per app android, kotlin ultimamente sta avendo la sua parte ed è quello che ti consiglio anche se secondo me dovresti continuare con Java
Grazie per il consiglio.

Sia Java sia Kotlin sono limitati ad Android. Impara Dart (linguaggio usato da flutter) che se vieni da Java è abbastanza semplice e le app potranno essere compilate sia per iOs sia per Android.
Infatti stavo dando un'occhiata, non ho ancora visto la sintassi. La cosa che mi motiva è che posso sviluppare per entrambi i sistemi con un solo codice, al contrario di Java e Swift.
 
In quanto sviluppatore di applicazioni ho avuto modo di usare sia linguaggi nativi (Java/Kotlin e OBJ-C/Swift) che cross-platform fra cui rientra Flutter.

La scelta di quale approccio utilizzare non è semplice perchè ci sono pro e contro in entrambe. Sicuramente scegliendo un approccio nativo impari a sviluppare applicazioni con un livello di performance migliori di un cross-platform. Inoltre potrai sempre lavorare in anteprima sulle versioni in uscita, cosa che con il cross non è possibile perchè spesso effettuano la portabilità delle API solo dopo il rilascio al pubblico.
D'altro canto ti tocca studiare due sistemi completamente diversi tra loro e metterci il doppio del tempo siccome dovrai scrivere due codici diversi. Con il cross il codice è unico, anche se altri framework diversi da Flutter richiedono la conoscenza di HTML e CSS per fare la parte grafica (se li conosci bene puoi creare cose fighissime)

Se sei da solo a sviluppare forse ti conviene il cross per questioni di tempo. Se siete in due vi consiglio il nativo tutta la vita.
In generale la mia filosofia è: progetto piccolo va bene il cross, progetto grande e complesso vince il nativo. A casa mia le performance e la distribuzione di codice aggiornato vincono quasi sempre. Ovviamente se arriva un cliente che vuole spendere poco la scelta ricade sul cross, poi sono cazzi suoi se per 6 mesi non supporterà l'ultimo sistema operativo iOS e/o Android.

Sulla scelta del linguaggio nativo vai direttamente con Kotlin, lascia stare Java perchè la versione usata per Android è nettamente inferiore alla potenza e funzionalità che ti offre Kotlin. Per iOS ovviamente vai con Swift (per la precisione usa il framework SwiftUI. Lascia stare le storyboard).
Ti svelo un segreto che non molti sanno: Kotlin e Swift (Scade) possono essere usati anche come linguaggi cross :asd:
 
In quanto sviluppatore di applicazioni ho avuto modo di usare sia linguaggi nativi (Java/Kotlin e OBJ-C/Swift) che cross-platform fra cui rientra Flutter.

La scelta di quale approccio utilizzare non è semplice perchè ci sono pro e contro in entrambe. Sicuramente scegliendo un approccio nativo impari a sviluppare applicazioni con un livello di performance migliori di un cross-platform. Inoltre potrai sempre lavorare in anteprima sulle versioni in uscita, cosa che con il cross non è possibile perchè spesso effettuano la portabilità delle API solo dopo il rilascio al pubblico.
D'altro canto ti tocca studiare due sistemi completamente diversi tra loro e metterci il doppio del tempo siccome dovrai scrivere due codici diversi. Con il cross il codice è unico, anche se altri framework diversi da Flutter richiedono la conoscenza di HTML e CSS per fare la parte grafica (se li conosci bene puoi creare cose fighissime)

Se sei da solo a sviluppare forse ti conviene il cross per questioni di tempo. Se siete in due vi consiglio il nativo tutta la vita.
In generale la mia filosofia è: progetto piccolo va bene il cross, progetto grande e complesso vince il nativo. A casa mia le performance e la distribuzione di codice aggiornato vincono quasi sempre. Ovviamente se arriva un cliente che vuole spendere poco la scelta ricade sul cross, poi sono cazzi suoi se per 6 mesi non supporterà l'ultimo sistema operativo iOS e/o Android.

Sulla scelta del linguaggio nativo vai direttamente con Kotlin, lascia stare Java perchè la versione usata per Android è nettamente inferiore alla potenza e funzionalità che ti offre Kotlin. Per iOS ovviamente vai con Swift (per la precisione usa il framework SwiftUI. Lascia stare le storyboard).
Ti svelo un segreto che non molti sanno: Kotlin e Swift (Scade) possono essere usati anche come linguaggi cross :asd:
Ciao, grazie per la risposta dettagliata. Ieri ho avuto modo di conoscere un po' la sintassi di Dart, mentre per quanto riguarda utilizzare direttamente Flutter sono fermo, visto che ci sono molte cose basi che devo ancora imparare (tipo lo Scaffold, Widgets ecc...). Sono riuscito ad impostare lo sviluppo del codice su VS Code, invece di Android Studio, e runnare tutto da console sull'emulatore di Android Studio, e questa cosa mi garba molto.

La cosa che non mi è aspettavo è che qui, se non ci sono cose nascoste a me, non c'è il concetto di "trascinare un widget" graficamente come su Java. Qui è molto simile al lato web, dove i widget li crei via codice e li sposti come fosse un css, correggimi se sbaglio. Io sono "solo", sto studiando tutto per conto mio e mi piacerebbe veramente molto saperne il massimo per poterlo utilizzare in futuro, quindi se dovessi fare un'app per conto mio andrei di certo con Flutter a questo punto, perché in passato non mi andava l'idea di pubblicare un'app sul Play Store, mentre gli Apple rimanevano a guardare perché non conosco nè Swift nè Objective-C.

Kotlin lo sconosco pure, c'erano delle ambiguità su chi diceva che Kotlin stesse superando Java, mentre c'è che dice che Java non morirà e si utilizzerà ancora quello in futuro. E' tutto ancora un mistero, ma di certo so che mi conviene imparare Flutter, anche perché non potrei nemmeno sviluppare con Swift non possedendo un dispositivo Apple su cui farlo, quindi vado di cross.
 
Mi introduco in questa discussione dato che programmo mobile da vari anni e nell'ultimo ho iniziato con Flutter.
Reputo personalmente Flutter uno dei migliori se non il migliore strumento di sviluppo cross-platform del momento quindi ti consiglio vivamente di partire con quello.
Sicuramente per avere un approccio più professionale in futuro dovrai guardare anche a Kotlin e Swift non tanto per saper programmare nativo quanto per il fatto che puoi integrarli ad un progetto fatto in dart e quindi fare cose più specifiche. Ma questo va bene pensarci dopo...

Per il momento in flutter le UI si costruiscono con i widget da codice modificandone gli attributi "come una sorta di css" come dici tu.
 
Mi introduco in questa discussione dato che programmo mobile da vari anni e nell'ultimo ho iniziato con Flutter.
Reputo personalmente Flutter uno dei migliori se non il migliore strumento di sviluppo cross-platform del momento quindi ti consiglio vivamente di partire con quello.
Sicuramente per avere un approccio più professionale in futuro dovrai guardare anche a Kotlin e Swift non tanto per saper programmare nativo quanto per il fatto che puoi integrarli ad un progetto fatto in dart e quindi fare cose più specifiche. Ma questo va bene pensarci dopo...

Per il momento in flutter le UI si costruiscono con i widget da codice modificandone gli attributi "come una sorta di css" come dici tu.
Allora chiedo a te una cosa che non ho ben capito. Se dovessi lavorare con un database in Flutter, come dovrei comportarmi? In Java mi bastava creare delle pagine php e collegarmi tramite loro al database, ma qui? Ho sentito qualcosa tipo Firebase, non l'ho mai usato anche se so che è molto famoso, che potenzialità ha?
 
  • Mi piace
Reazioni: Hyla
Allora chiedo a te una cosa che non ho ben capito. Se dovessi lavorare con un database in Flutter, come dovrei comportarmi? In Java mi bastava creare delle pagine php e collegarmi tramite loro al database, ma qui? Ho sentito qualcosa tipo Firebase, non l'ho mai usato anche se so che è molto famoso, che potenzialità ha?

Firebase è molto ben integrato in Flutter, per quanto riguarda le "pagine in php" penso che tu intenda lo sviluppo di una sorta di API.

Sta a te decidere l'approccio che vuoi avere, con le API puoi universalizzare la cosa e utilizzare quello che ti pare dietro la struttura dell'API, con Firebase devi attenerti al DB nosql di Firestore o Realtime Database (Cosa che ti consiglio per fare test / prototipi, è talmente ben integrato in Flutter che è questione di minuti realizzare una cosa che in SQL ti porta via delle ore).