freeCodeCamp/docs/i18n/italian/how-to-setup-freecodecamp-m...

17 KiB
Raw Blame History

Segui questa guida per impostare l'app mobile di freeCodeCamp localmente sul tuo sistema. È altamente raccomandato se vuoi contribuire regolarmente.

Alcune procedure per contribuire come sistemare bug nel codebase necessitano di eseguire l'app di freeCodeCamp localmente.

Come preparare la macchina locale

Inizia installando i prerequisiti software per il tuo sistema operativo.

Prerequisiti:

Prerequisito Versione Note
Flutter 3.x -
Dart (viene fornito in dotazione con Flutter) 2.x Usiamo la versione in dotazione con Flutter.

[!ATTENTION] Se hai una versione diversa, per favore installa la versione raccomandata. Possiamo supportare solo i problemi di installazione per le versioni consigliate.

Se Flutter è già installato sulla macchina, eseguire i seguenti comandi per convalidare le versioni:

flutter --version
dart --version

[!TIP] Raccomandiamo vivamente di eseguire gli aggiornamenti all'ultima versione stabile dei software elencati qui sopra.

Una volta che avrai installato i prerequisiti, dovrai preparare il tuo ambiente di sviluppo. Questo è comune a molti flussi di lavoro di sviluppo, e si dovrà fare solo una volta.

Segui questi passaggi per preparare il tuo ambiente di sviluppo:
  1. Installa Git o il tuo client Git preferito, se non lo hai già. Aggiorna alla versione più recente; la versione fornita con il tuo sistema operativo potrebbe essere obsoleta.

  2. Configura Android Studio e Android Emulators con l'ultima versione Android disponibile. Consigliamo di utilizzare Pixel 3a XL e Nexus One(per simulare schermi più piccoli).

  3. (Opzionale per MacOS) Configura Xcode e iOS Simulator con l'ultima versione iOS disponibile.

  4. (Opzionale ma raccomandato) Imposta una chiave SSH per GitHub.

  5. Installa un editor di codice di tua scelta.

    Consigliamo vivamente di utilizzare Visual Studio Code o Android Studio. Consigliamo anche di installare le estensioni ufficiali.

Fare il Fork del repository su GitHub

Fare il fork è il passaggio grazie a cui ottieni la tua copia del repository (repo) su GitHub.

Questo è essenziale, in quanto consente di lavorare sulla propria copia dell'app di freeCodeCamp su GitHub, o di scaricare (clonare) il tuo repository per lavorare localmente. Più tardi, potrai richiedere che le tue modifiche siano integrate (pull) nel repository principale dal tuo fork tramite una pull request (PR).

[!TIP] Il repository principale su https://github.com/freeCodeCamp/mobile è spesso indicato come il repository upstream.

Il tuo fork che si trova a https://github.com/YOUR_USER_NAME/mobile è spesso chiamato il repository origin. YOUR_USER_NAME è sostituito dal tuo nome utente GitHub.

Segui questi passaggi per effettuare il fork del repository https://github.com/freeCodeCamp/mobile:

  1. Vai al repository freeCodeCamp mobile su GitHub: https://github.com/freeCodeCamp/mobile

  2. Fai clic sul pulsante "Fork" nell'angolo in alto a destra dell'interfaccia (Maggiori dettagli qui)

  3. Dopo che è stato creato un fork del repository, sarai portato alla tua copia del repository su https://github.com/YOUR_USER_NAME/mobile (YOUR_USER_NAME è sostituito dal tuo nome utente GitHub.)

Clonare il tuo fork da GitHub

La Clonazione consiste nello scaricare una copia di un repository da una posizione remota che è di proprietà tua o di qualcun altro. Nel tuo caso, questa posizione remota è il tuo fork del repository di freeCodeCamp che dovrebbe essere disponibile su https://github.com/YOUR_USER_NAME/mobile. (YOUR_USER_NAME è sostituito dal tuo nome utente GitHub.)

Esegui questi comandi sulla tua macchina locale:

  1. Apri un terminale / prompt dei comandi / Shell nella directory dei progetti

    cioè: /yourprojectsdirectory/

  2. Clona il tuo fork di freeCodeCamp, sostituendo YOUR_USER_NAME con il tuo nome utente GitHub

    git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git
    

Questo scaricherà l'intero repository mobile freeCodeCamp nella directory dei tuoi progetti.

Nota: --depth=1 crea un clone superficiale del fork, con la sola cronologia dei commit più recente.

Impostare la sincronizzazione dal genitore

Ora che hai scaricato una copia del fork, dovrai configurare un upstream remoto che punti al repository genitore.

Come già accennato, il repository principale fa riferimento al repository upstream. Il tuo fork fa riferimento al repository origin.

Hai bisogno di un riferimento dal tuo clone locale al repository upstream oltre che al repository origin. In questo modo potrai sincronizzare le modifiche dal repository principale senza bisogno di fare ripetuti fork e clonazioni.

  1. Spostati nella directory mobile:

    cd mobile
    
  2. Aggiungi un riferimento remoto al repository freeCodeCamp mobile:

    git remote add upstream https://github.com/freeCodeCamp/mobile.git
    
  3. Assicurati che la configurazione sia corretta:

    git remote -v
    

    L'output dovrebbe apparire simile al seguente (sostituendo YOUR_USER_NAME con il tuo username di GitHub):

    origin    https://github.com/YOUR_USER_NAME/mobile.git (fetch)
    origin    https://github.com/YOUR_USER_NAME/mobile.git (push)
    upstream    https://github.com/freeCodeCamp/mobile.git (fetch)
    upstream    https://github.com/freeCodeCamp/mobile.git (push)
    

Eseguire l'app mobile freeCodeCamp localmente

Ora che disponi di una copia locale dell'app mobile, potrai seguire queste istruzioni per eseguirla localmente.

Se incontri un problema, fai prima una ricerca del problema sul web per vedere se ha già una risposta. Se non riesci a trovare una soluzione, ti preghiamo di fare una ricerca nelle nostra pagina delle Issues su GitHub per trovare una soluzione o segnalare il problema se non è ancora stato fatto.

E come sempre, fai liberamente le tue domande nella categoria 'Contributors' sul forum o sul server di chat.

[!NOTE] La directory mobile contiene le cartelle mobile-api e mobile-app. mobile-api contiene il codice delle API utilizzate per i podcast. mobile-app contiene l'app Flutter ed è dove dovresti trovarti per seguire i passaggi successivi.

Configurare le dipendenze

Step 1: Impostare il file delle variabili d'ambiente

Le chiavi API predefinite e le variabili d'ambiente sono memorizzate nel file sample.env. Questo file deve essere copiato in un nuovo file chiamato .env a cui si accede dinamicamente durante la fase di installazione. Ricordati di spostarti nella directory mobile-app prima di eseguire i seguenti comandi.

# Crea una copia di "sample.env" e chiamalo ".env".
# Popolalo con le chiavi API e i segreti necessari:

macOS/Linux

cp sample.env .env

Windows

copy sample.env .env

Non è necessario cambiare le chiavi nel file .env per eseguire l'applicazione localmente. Puoi lasciare i valori predefiniti copiati da sample.env così come sono.

Step 2: Installare le dipendenze

Questo passaggio installerà le dipendenze richieste per l'esecuzione dell'applicazione:

flutter pub get

Step 3: Avviare l'app mobile freeCodeCamp

Avvia un emulatore di tua scelta (Android o iOS) e aspetta il processo di avvio per completare.

Ora puoi avviare l'app eseguendo il seguente comando:

flutter run

[!TIP] Se stai usando VSCode o Android Studio puoi avviare facilmente l'app senza eseguire comandi dal terminale. Maggiori informazioni qui.

Apportare modifiche a livello locale

Ora puoi apportare modifiche ai file e inviare le modifiche al clone locale del tuo fork.

Segui questi passaggi:

  1. Controlla di essere sul branch main:

    git status
    

    Dovresti ottenere un output come questo:

    On branch main
    Your branch is up-to-date with 'origin/main'.
    
    nothing to commit, working directory clean
    

    Se non sei sul branch main o la directory su cui stai lavorando non è pulita, risolvi file e commit in sospeso e fai il checkout da main:

    git checkout main
    
  2. Sincronizza il tuo branch main locale con gli ultimi aggiornamenti dal branch upstream main:

    [!WARNING] Se hai delle pull request in sospeso fatte dal branch main del tuo fork, le perderai alla fine di questi passaggi.

    Prima di eseguire questo passaggio, dovresti assicurarti che un moderatore abbia eseguito il merge della tua pull request. Per evitare questa situazione, dovresti sempre lavorare su un branch che non sia main.

    Questo passaggio sincronizzerà le ultime modifiche dal repository principale di freeCodeCamp mobile. È importante che tu faccia un rebase del tuo branch utilizzando l'ultima versione di upstream/main quanto più spesso possibile per evitare conflitti successivamente.

    Aggiorna la tua copia locale del repository upstream freeCodeCamp mobile:

    git fetch upstream
    

    Fai un hard reset del tuo branch main con il branch main di freeCodeCamp mobile:

    git reset --hard upstream/main
    

    Fai un push del branch main al tuo origin per avere una cronologia pulita nel tuo fork su GitHub:

    git push origin main --force
    

    Puoi controllare che il tuo main attuale corrisponda con upstream/main facendo un diff:

    git diff upstream/main
    

    L'output risultante dovrebbe essere vuoto.

  3. Crea un nuovo branch:

    Lavorare su un branch separato per ogni problema ti aiuta a mantenere pulita la tua copia di lavoro locale. Non dovresti mai lavorare su main. Questo sporcherebbe la tua copia di freeCodeCamp mobile e potrebbe essere necessario ricominciare da capo con un nuovo clone o fork.

    Controlla di essere su main, come spiegato in precedenza, e crea un branch da lì:

    git checkout -b fix/update-guide-for-xyz
    

    Il nome del branch dovrebbe iniziare con un fix/, feat/, docs/, ecc. Evita di utilizzare i numeri delle issue nei branch. Tienili brevi, significativi e unici.

    Alcuni esempi di nomi buoni per un branch sono:

    fix/update-challenges-for-react
    fix/update-guide-for-html-css
    fix/platform-bug-sign-in-issues
    feat/add-guide-article-for-javascript
    translate/add-spanish-basic-html
    
  4. Modifica le pagine e lavora sul codice nel tuo editor di testo preferito.

  5. Una volta che sei soddisfatto delle modifiche, dovresti opzionalmente eseguire l'app mobile localmente per visualizzarle in anteprima.

  6. Assicurati di correggere eventuali errori e controlla la formattazione delle modifiche.

  7. Controlla e conferma i file che stai aggiornando:

    git status
    

    Questo dovrebbe mostrare un elenco di file unstaged che hai modificato.

    On branch feat/documentation
    Your branch is up to date with 'upstream/feat/documentation'.
    
    Changes were not staged for commit:
    (use "git add/rm <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in the working directory)
    
        modified:   README.md
        modified:   mobile-app/lib/main.dart
    ...
    
  8. Fai lo stage delle modifiche e crea un commit:

    In questo passaggio, dovresti contrassegnare solo i file che hai modificato o aggiunto tu stesso. Se necessario è possibile eseguire un reset e risolvere i file che non hai intenzione di modificare.

    git add path/to/my/changed/file.ext
    

    Oppure puoi aggiungere tutti i file unstaged all'area di staging:

    git add .
    

    Solo i file che sono stati spostati nell'area di staging verranno aggiunti quando effettui un commit.

    git status
    

    Output:

    On branch feat/documentation
    Your branch is up to date with 'upstream/feat/documentation'.
    
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    
        modified:   README.md
        modified:   mobile-app/lib/main.dart
    

    Ora, è possibile eseguire il commit delle modifiche con un breve messaggio come questo:

    git commit -m "fix: breve messaggio di commit"
    

    Alcuni esempi:

    fix: update guide article for Java - for loop
    feat: add guide article for alexa skills
    

    Facoltativo:

    Raccomandiamo caldamente di creare un messaggio di commit convenzionale. Questa è una buona pratica che vedrai su alcuni dei più popolari repository Open Source. Come sviluppatore, questo ti incoraggia a seguire le pratiche standard.

    Alcuni esempi di messaggi di commit convenzionali sono:

    fix: update HTML guide article
    fix: update build scripts for Travis-CI
    feat: add article for JavaScript hoisting
    docs: update contributing guidelines
    

    Mantieni questi messaggi brevi, non più di 50 caratteri. È sempre possibile aggiungere ulteriori informazioni nella descrizione del messaggio di commit.

    Questo non richiede tempo aggiuntivo rispetto a un messaggio non convenzionale come 'update file' o 'add index.md'

    Puoi sapere di più sul perché dovresti usare i commit convenzionali qui.

  9. Se ti accorgi di dover modificare un file o aggiornare il messaggio del commit dopo aver fatto un commit puoi farlo dopo aver modificato i file con:

    git commit --amend
    

    Questo aprirà un editor di testo predefinito come nano o vi dove potrai modificare il titolo del messaggio di commit e aggiungere/modificare la descrizione.

  10. Successivamente, è possibile inviare le modifiche al fork:

    git push origin branch/name-here
    

Proporre una Pull Request (PR)

Dopo aver fatto il commit delle tue modifiche, controlla qui per come aprire una Pull Request.

Risoluzione Dei Problemi

Problemi con l'installazione dei prerequisiti raccomandati

Sviluppiamo regolarmente sui sistemi operativi più nuovi o più popolari come macOS 10.15 o successivi, Ubuntu 18.04, e Windows 10 con WSL2.

Ti raccomandiamo di fare ricerche sui tuoi problemi specifici usando risorse come Google, Stack Overflow e Stack Exchange. C'è una buona probabilità che qualcuno abbia incontrato lo stesso problema e ci sia già una risposta alla tua domanda specifica.

Se sei su un sistema operativo diverso e/o continui ad avere dei problemi, visita ottenere aiuto.

Problemi con UI, errori di build, ecc.

Se si verificano problemi con l'interfaccia utente o errori di compilazione, una pulizia potrebbe essere utile:

flutter clean

Problemi nell'installazione delle dipendenze

Se incontri degli errori durante l'installazione delle dipendenze, assicurati di non essere in una rete ristretta o che le impostazioni del tuo firewall non ti impediscono di accedere alle risorse.

Sii paziente, dato che la prima configurazione può richiedere un po' di tempo a seconda della larghezza di banda della rete.

Ottenere Aiuto

Se sei bloccato e hai bisogno di aiuto, poni liberamente le tue domande nella categoria 'Contributors' sul nostro forum o nella chat room per i contributori.

Potrebbe esserci un errore nella console del browser o in Bash / Terminal / Linea di comando che ti aiuterà a identificare il problema. Fornisci questo messaggio di errore nella descrizione del problema in modo che gli altri possano identificare più facilmente il problema e aiutarti a risolverlo.