Come diventare uno sviluppatore full-stack: parte 3
Pubblicato: 2017-12-02Questo post è il terzo e ultimo della serie sul diventare uno sviluppatore full-stack. Questo articolo parla in modo specifico dello sviluppo di app mobili. Leggi qui per ulteriori informazioni sullo sviluppo di frontend e backend.
Quando Steve Jobs ha introdotto l'iPhone nel 2007, ha inaugurato la più grande rivoluzione al mondo dai tempi della stampa. Gli smartphone sono riusciti a penetrare in quasi tutti i paesi del mondo. Anche i più poveri sembrano possederne uno tanto che la vita senza di loro sembra inconcepibile.
Motivazione
Ci sono alcune app che hanno senso solo quando sono in esecuzione su un telefono. Prendi Uber, per esempio. Uber ha bisogno di conoscere la tua posizione esatta tramite GPS. Un'app Uber per desktop non avrebbe molto senso.
Un altro problema è che la maggior parte del tuo pubblico aprirà la tua app tramite un telefono, anche se è stato creato per i browser. In questi casi, è fondamentale assicurarsi che l'esperienza sia senza interruzioni e che non vengano consumati troppi dati. Infine, ci sono sottili differenze tra l'interazione con i clic del mouse e il tocco. La tua app deve garantire che si comporti bene in entrambi gli scenari.
Tenendo a mente tutte queste considerazioni, ha senso avventurarsi fuori dal browser e creare app mobili. Ciò ti assicura di sfruttare al massimo le funzionalità che un tipico smartphone ha da offrire, rendendo allo stesso tempo l'esperienza dell'utente un piacere. Di seguito sono riportati i passaggi per un rapido sviluppo di app mobili. Per la prima parte diventare uno sviluppatore full stack sullo sviluppo di frontend e backend.
Sommario
Passaggio 12: scegli una piattaforma
Il primo passo sarebbe scegliere una piattaforma in cui desideri creare la tua applicazione. A meno che tu non faccia parte di un team ragionevolmente grande, è estremamente improbabile che creerai app da zero su tutte le principali piattaforme. Lo scenario più probabile è che codificherai sulla tua piattaforma preferita e quindi lo porterai semplicemente sulle altre.
Le principali piattaforme per smartphone oggi sono iOS, Android e Windows. Usano linguaggi e IDE drasticamente diversi. Ad esempio, iOS utilizza Swift e XCode, Android utilizza Java e Android Studio e Microsoft operano con C# e Visual Studio.
Il mercato oggi è dominato da Android e iOS, quindi la scelta si riduce davvero a questi due. Alcune cose che potresti dover considerare prima di fare una scelta sono la quota di pubblico per la tua app. Credo che abbia senso per gli affari creare app iOS se ti trovi in un paese del Primo Mondo poiché i dispositivi Apple sono estremamente popolari lì. Al contrario, in un paese come l'India, Android sarebbe una scelta più ovvia in quanto la quota di mercato degli iPhone è estremamente ridotta a causa del suo prezzo esorbitante.
Se prevedi di guadagnare con la tua app, tieni presente che gli utenti iOS hanno maggiori probabilità di aprire i loro portafogli per acquisti in-app rispetto alle loro controparti Android. Ciò potrebbe essere dovuto al fatto che gli utenti iOS di solito tendono ad avere più reddito disponibile rispetto ai mercati del terzo mondo in cui domina Android.
Lo sviluppo iOS richiede che tu disponga di una macchina di sviluppo Mac. Inoltre, le licenze dell'Apple App Store sono vendute al dettaglio a $ 99 all'anno rispetto alla tariffa una tantum di $ 25 di Google Play. In altre parole, lo sviluppo di iOS è notevolmente più costoso.
In questo post, tratterò come viene fatto oggi lo sviluppo di app mobili: app Android native, app iOS native e app mobili ibride.
Passaggio 13: Java e XML
Java è il linguaggio più popolare per lo sviluppo Android (Google ha recentemente introdotto anche il supporto per il linguaggio di programmazione Kotlin).
I fondatori di Android pensavano che Java fosse una scelta appropriata e si sono attenuti ad essa sin dal suo inizio. E se la loro traiettoria è qualcosa da seguire, è stata a dir poco una decisione straordinaria.

La migliore risorsa per imparare Java sarebbe Head First Java. La lettura di questo libro ti fornirà un'introduzione completa al linguaggio e ai principi di programmazione orientata agli oggetti.
Per quanto riguarda XML, non credo che tu abbia bisogno di un tutorial concentrato sull'argomento. Hai già lavorato a lungo con un sottoinsieme di XML (HTML) e sarai in grado di capirlo abbastanza rapidamente, anche se dovessi passare direttamente allo sviluppo di Android. Non posso dire lo stesso per Java. Assicurati di avere una buona conoscenza della lingua prima di avventurarti in Android.


Passaggio 14: Android
Ora hai il know-how tecnico per creare app Android. È tempo di immergersi in profondità in questo rivoluzionario sistema operativo. Fai attenzione però che alcune pratiche Android differiscono da quelle che vedi di solito sul web. Le risorse che ho suggerito di seguito assicureranno che il tuo apprendimento non sia ostacolato da queste differenze.
Programmazione Android: la 2a edizione della Big Nerd Ranch Guide è un buon punto di partenza se conosci già Java. Assicurati di prendere la seconda edizione poiché è quella che utilizza Android Studio, che ora è lo standard del settore. La pratica di creare app in Eclipse è in gran parte obsoleta.
Intervista a Farooq Adam, co-fondatore, Fynd
Passaggio 15: iOS
Se sei più un appassionato di Apple e/o hai deciso che le app iOS hanno più senso per le tue aspirazioni di lavoro/carriera. Il primo passo sarebbe acquisire un Mac. XCode funziona solo su Mac e per pubblicare su App Store è necessario un Mac. Siamo spiacenti, VMware.
La risorsa che ho intenzione di suggerire per iOS è esattamente la stessa di quella per Android. Nerd Ranch ha una sua pubblicazione: iOS Programming: The Big Nerd Ranch Guide che si occupa di Swift e XCode, quindi è un buon punto di partenza.
Passaggio 16: app mobili ibride
Se sei uno sviluppatore solitario o lavori in un piccolo team, probabilmente non hai il tempo o le risorse per creare e gestire separatamente le app Android e iOS. Per alleviare il dolore dello sviluppatore di costruire per più piattaforme, è stato introdotto il concetto di app mobili ibride.
Il concetto è estremamente semplice e rivoluzionario. Se conosci Javascript, sai già come creare app web. Pertanto, se hai un'app in JS, deve esistere un framework che porti automaticamente la tua applicazione in Android, iOS e Windows. Incredibile ma vero.
La maggior parte dei framework ibridi raggiunge questo obiettivo utilizzando Cordova o React Native. Puoi pensare a Cordova come al ponte tra i browser e l'hardware nativo dello smartphone. Stabilisce una connessione tra i due utilizzando esclusivamente JS e aiuta a creare gli script di build nelle lingue native di ciascuna piattaforma.
I framework basati su Cordova, tuttavia, vengono rapidamente oscurati dalla potenza di Facebook, React Native. Il potere di React Native risiede nel fatto che mentre Cordova costruisce WebView, React Native ti consente di creare app native che creeresti utilizzando Java (per Android) o Swift (per iOS). In altre parole, Cordova è un sito Web camuffato da app mobile, ma React Native ti consente di creare la cosa reale .
Secondo me, puoi perdere Cordova e imparare invece React Native. È un investimento di carriera estremamente grande da fare. Il programma di sviluppo software di UpGrad e IIIT-B è un ottimo punto di partenza per iniziare il tuo viaggio con questa libreria rivoluzionaria che è già stata utilizzata da aziende come Facebook, Netflix e AirBnB per progettare le loro app.
Intervista a Farooq Adam, co-fondatore, Fynd
Conclusione
Con la conclusione delle app ibride, arriviamo al termine di questa serie. In sintesi, queste sono le cose che abbiamo trattato:

- Fondamenti di informatica.
- Strutture dati e algoritmi
- Interfaccia utente/UX
- HTML, CSS, JS
- Quadri di front-end
- Script lato server e database
- Strutture a stack completo
- Android e iOS
- App mobili ibride
Spero che ti sia piaciuto leggere questa serie tanto quanto io mi sono divertito a scriverla e, cosa più importante, ho trovato utili almeno alcune parti. Come sempre, i tuoi commenti e suggerimenti sono i benvenuti!


