Programmare applicazioni mobili con flutter

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Salve a tutti,

sono alle prime armi con la programmazione di applicazioni per dispositivi mobili, e ringrazio l'utente @pabloski per la consulenza specifica a riguardo.

Dunque ho scelto flutter come IDE su ubuntu. Già dall'installazione sto avendo alcuni problemi. Ho scaricato sia flutter sia android studio per ubuntu e copiati nella cartella home, inserito le variabili d'ambiente in .bashrc e fin qui tutto bene. Poi nella prima apertura di android studio, ho scaricato e installato le SDK e mi ha suggerito di usare l'accelerazione hardware in quanto disponibile sul mio pc, come mostrato qui:
Schermata da 2020-06-18 16-38-25.png
Quindi sono andato alla pagina https://developer.android.com/studio/run/emulator-acceleration#vm-linux dove mi indica di eseguire un comando per installare alcuni componenti su ubuntu, ma ricevo errore:
Codice:
root@fisso:/home/mic# apt install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
E: Impossibile trovare il pacchetto ia32-libs-multiarch
E questo è il primo errore, poi ricevo anche questo risultato come diagnosi di flutter:
Codice:
mic@fisso:~$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.17.3, on Linux, locale it_IT.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
[!] Android Studio (version 4.0)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

Posso capire che mi dà problemi in quanto non ho ancora connesso nessun dispositivo android al pc, ma flutter e dart non installati non riesco a capire il perché, appena apro android studio ho questa schermata:
Schermata da 2020-06-18 18-11-11.png

Ora non so come proseguire, e sono ancora a pagina 1 della guida di installazione.

Chiedo supporto a voi

Grazie
 

pabloski

Utente Èlite
2,868
916
Dunque ho scelto flutter come IDE

Non è un IDE. E' un framework. L'IDE ti servirà comunque per scrivere i programmi. E vale quanto detto nell'altra discussione. Io consiglio Visual Studio Code.

Personalmente uso VIM ovunque, ma parliamo di un software che richiede mesi per essere padroneggiato. Non consigliato a chi già deve imparare altro e non ha tempo da perdere.


Ma non usavi Windows?

Quindi sono andato alla pagina https://developer.android.com/studio/run/emulator-acceleration#vm-linux dove mi indica di eseguire un comando per installare alcuni componenti su ubuntu, ma ricevo errore:
Codice:
root@fisso:/home/mic# apt install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch
[/quote]

Mi sa che questi sono fermi a prima della guerra. Il pacchetto ia32-libs-multiarch è stato rimosso dai repo nel 2011!!! Comunque sia, non serve. Toglilo, riesegui il comando e vedrai che andrà tutto bene.

[QUOTE="hddsfortuna, post: 7666502, member: 304031"]
[CODE]mic@fisso:~$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.17.3, on Linux, locale it_IT.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
[!] Android Studio (version 4.0)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

Intanto sono warnings e non errori. Non è che non funziona se non provvedi.

Poi lì dice che mancano i plugin per Flutter e Dart in Android Studio. Apri Android Studio e installali. C'è scritto configure in basso a quella finestra. E' lì che bisogna andare. Poi riesegui flutter doctor e vedrai che quell'avviso sarà sparito.

Per i device, non sei obbligato a collegare uno smartphone. Del resto c'è l'emulatore.
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Non è un IDE. E' un framework. L'IDE ti servirà comunque per scrivere i programmi. E vale quanto detto nell'altra discussione. Io consiglio Visual Studio Code.

Personalmente uso VIM ovunque, ma parliamo di un software che richiede mesi per essere padroneggiato. Non consigliato a chi già deve imparare altro e non ha tempo da perdere.

Ma non usavi Windows?
Dato che comunque un IDE l'ho installato, android studio, posso usare quello. Ho scelto ubuntu in quanto già lo uso per programmare i siti internet, usando il semplice gedit. Ubuntu mi fa montare cartelle remote e salvare in tempo reale su remoto, dove invece su windows non so come si fa. Poi su ubuntu ho anche un server locale LAMP per prove, che posso usare per provare la controparte php dell'app.
Posso usare il semplice gedit anche per l'app?

Intanto sono warnings e non errori. Non è che non funziona se non provvedi.

Poi lì dice che mancano i plugin per Flutter e Dart in Android Studio. Apri Android Studio e installali. C'è scritto configure in basso a quella finestra. E' lì che bisogna andare. Poi riesegui flutter doctor e vedrai che quell'avviso sarà sparito.

Per i device, non sei obbligato a collegare uno smartphone. Del resto c'è l'emulatore.
Per installare i plugin di flutter e dart in android studio devo creare un progetto nuovo? Purtroppo non l'ho mai usato.
Per quanto riguarda i dispositivi, ho a disposizione 3 cell e 1 tablet con la versione minima richiesta di android (api 16), quindi vorrei usarli, anche per provare i vari componenti fisici (gps, movimento, fotocamera, ecc...).

Poi, sempre se possibile, posso avere un progetto esempio (anche uno vecchio che hai tu)?

Grazie
 

pabloski

Utente Èlite
2,868
916
Posso usare il semplice gedit anche per l'app?

Naturale.

Per installare i plugin di flutter e dart in android studio devo creare un progetto nuovo?

No.

Poi, sempre se possibile, posso avere un progetto esempio (anche uno vecchio che hai tu)?

Ci sono interi siti fatti di esempi in Flutter. Tipo questo http://www.flutterbyexample.com/ sezione 3 "Flutter UI Example Apps".

Oppure quello ufficiale https://flutter.github.io/samples/
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Per ora sono riuscito a risolvere i problemi del flutter doctor:
Codice:
mic@fisso:~$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.17.3, on Linux, locale it_IT.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)

• No issues found!
Però, nella guida di installazione, alla sezione "Set up your Android device" punto 4, non ho capito il senso della frase. Se ho un telefono un po' datato, ma comunque con la minima versione richiesta, devo fare qualche modifica nel computer?

E poi nella sezione del primo test, mi mette a disposizione come editor android studio, visual studio code e terminale. Qui penso di poter usare gedit.
Dato che hai sicuramente più esperienza di me, almeno per iniziare vado con android studio o gedit?

Grazie
 

pabloski

Utente Èlite
2,868
916
Però, nella guida di installazione, alla sezione "Set up your Android device" punto 4, non ho capito il senso della frase. Se ho un telefono un po' datato, ma comunque con la minima versione richiesta, devo fare qualche modifica nel computer?

"Enable Developer options and USB debugging on your device". Tutto qui. Se lo smartphone non consente di attivare le opzioni per sviluppatori, sei fregato. Lato computer non va fatto niente su Linux. Su Windows bisogna installare dei driver.

E poi nella sezione del primo test, mi mette a disposizione come editor android studio, visual studio code e terminale. Qui penso di poter usare gedit.
Dato che hai sicuramente più esperienza di me, almeno per iniziare vado con android studio o gedit?

Grazie

Android Studio è un IDE, complesso e quindi va studiato un attimino.

Gedit è la soluzione più semplice per scrivere il codice, ma non ti offre niente riguardo ricompilazione, hot reload, gestione dei progetti, ecc... Per esempio, sai quale comando dare per compilare l'app? Quale comando dare per inviare allo smartphone per il test?

Quindi perchè non usare qualcosa che ti semplifica la vita?
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
"Enable Developer options and USB debugging on your device". Tutto qui. Se lo smartphone non consente di attivare le opzioni per sviluppatori, sei fregato. Lato computer non va fatto niente su Linux. Su Windows bisogna installare dei driver.
L'ho fatto su un telefono con android 5.1.1 e non ha dato problemi, invece sul mio cell mi dà questo errore:
Codice:
Error 1 retrieving device properties for ro.product.cpu.abi:
adb: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information

Launching lib/main.dart on b11a3c58 in debug mode...
Running Gradle task 'assembleDebug'...
✓ Built build/app/outputs/apk/debug/app-debug.apk.
adb: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information
Installing build/app/outputs/apk/app.apk...
Error: ADB exited with exit code 255
Performing Push Install
adb: error: failed to get feature set: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information
Error launching application on b11a3c58.
Eppure ho abilitato opzioni sviluppatore e debug usb allo stesso modo su entrambi i telefoni.

Android Studio è un IDE, complesso e quindi va studiato un attimino.

Gedit è la soluzione più semplice per scrivere il codice, ma non ti offre niente riguardo ricompilazione, hot reload, gestione dei progetti, ecc... Per esempio, sai quale comando dare per compilare l'app? Quale comando dare per inviare allo smartphone per il test?

Quindi perchè non usare qualcosa che ti semplifica la vita?
Se android studio va studiato e per gedit non conosco i comandi, secondo me vado con android studio, in quanto sto seguendo la guida passo passo e sto andando bene. Giusto?

Grazie
 

icox

Utente Attivo
497
246
Ma lascia perdere gedit o qualunque editor di testi per cortesia... Usa Android Studio o qualsiasi altro IDE se questo non ti aggrada. Un'app si compone di decine di file (se e' piccola) ed il processo di compilazione non e' un semplice comando da dare al terminale, senza un IDE ti complichi inutilmente la vita IMHO...
 

pabloski

Utente Èlite
2,868
916
L'ho fatto su un telefono con android 5.1.1 e non ha dato problemi, invece sul mio cell mi dà questo errore:

Appunto. Sembra proprio che l'altro telefono non dia i permessi per accedere ad ADB. Probabile che visualizzi una notifica in cui ti chiede cosa vuoi fare. Prova ad attaccarlo con le opzioni sviluppatore e debug usb attivi e vedi se ti esce una notifica sul telefono.

In caso contrario, devi cercare un'opzione che riguarda l'installazione da fonti terze. Perchè non tutti i telefoni consentono di installare software al di fuori dello store.

Se android studio va studiato e per gedit non conosco i comandi, secondo me vado con android studio, in quanto sto seguendo la guida passo passo e sto andando bene. Giusto?

Siccome un mucchio di tutorial usano Visual Studio Code o Android Studio, mi pare abbastanza sensato usare uno dei due. Android Studio supporta tutto quello che serve per lo sviluppo Android. Impelagarsi con un editor di testo, non è una mossa particolarmente astusa. Soprattutto perdi tutto, compreso l'autocomplete/intellisense.
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Ho seguito la guida "test drive" e tutto funziona bene sul cell in tempo reale.
Ora sto seguendo questa guida sul sito di flutter e ho avuto intoppi al punto "Step 2: Use an external package" punti 1-4, come mostrato qui:
Schermata da 2020-06-20 17-29-52.png
Schermata da 2020-06-20 17-30-27.png

Ricevo errore di mancanza pacchetto english_words, quando invece ho seguito la procedura come descritta.

Cosa ho sbagliato?

Grazie
 

pabloski

Utente Èlite
2,868
916
Eh eh eh...non sono a priori contrario all'apprendimento by example, però dovresti leggerti qualcosina su Dart, altrimenti non so come possa riuscire a programmarci.

Mi riferisco a questo https://dart.dev/guides/packages

"The first time you get a new dependency for your package, pub downloads the latest version of it"

Quell'import fa delle cose e, per farle, ha bisogno di internet. Quando genererà l'app, ovviamente sarà tutto contenuto all'interno. Ma durante lo sviluppo scarica automaticamente le robe che gli servono.
 
  • Mi piace
Reazioni: Moffetta88

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Non ho mai scollegato la connessione ad internet fino ad ora, soprattutto perché sapevo che i pacchetti aggiuntivi venissero dal sito pub.dev
Non ho usato la console, se non per aprire android studio e fare flutter doctor, tutto il resto, compreso l'aggiunta di english_words, l'ho fatta aprendo il file pubspec.yaml in android studio e premendo "pub get".

Dove sta il problema?
 

pabloski

Utente Èlite
2,868
916
Nei file yaml devi prestare moltissima attenzione all'indentazione. Quell'english_words non è allineato con cupertino e il resto di quella sezione. Premi tab e mettilo al suo posto, esattamente sotto cupertino.
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Ho indentato english_words e ora funziona.
Ho provato ad aggiungere questo in main.dart:
Codice:
import "importazioni.dart";
E nel nuovo file, portate queste righe da main.dart (quindi poi rimosse in main.dart):
Codice:
import "package:flutter/material.dart";
import "package:english_words/english_words.dart";
Ma nella compilazione per vedere il risultato sul cell, mi dà errore che non trova alcune cose, come se il file importazioni non c'è.

Un'altra domanda: è possibile avere android studio in italiano?

Grazie
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!