Indietro

Consigli utili per iniziare a sviluppare su iOS

il 

La penetrazione degli smartphone e il numero delle app presenti sul mercato è in continua crescita e al contempo cresce anche il numero di persone che progettano di creare la loro app da soli, lanciandosi nel mondo della programmazione. 

Il processo di sviluppo di un'app può apparire molto complicato, per questa ragione la mia collega Sara, ha deciso di intervistare due dei nostri migliori sviluppatori iOS, Mathieu Fancello e Alex Manzella .
Lo scopo dell'intervista era di scoprire quali sono i requisiti base richiesti per entrare nel mondo dello sviluppo iOS, e poi condividerli con voi.

Cosa serve per diventare sviluppatori iOS?

Per iniziare a sviluppare su iOS dovete avere una conoscenza base di algoritmi e Object Oriented Programming.

Imparare l'Objective C  può essere un po' complicato se avete appena incominciato ad approcciarvi al linguaggio di programmazione. È meglio incominciare con qualcosa di più classico come il C per poi passare all'OOP (Object Oriented Programming ).

Se invece siete dei ninja e volete passare direttamente all'ultimo livello, potete trovare dei riferimenti all'utilizzo dell'Objective C nei framework di Apple .

Quali sono le principali differenze tra lo sviluppo su desktop e quello su mobile?

Lo sviluppo su mobile e quello su desktop, potrebbero sembrare simili, in realtà sono due mondi completamente differenti.

Durante lo sviluppo su mobile bisogna prestare maggior attenzione alle risorse del sistema; È molto importante gestire al meglio la memoria in quanto smartphone e tablet non sono ancora potenti come i computer, anche se li stanno raggiungendo molto velocemente.

Gli utenti vogliono app veloci e reattive, bisogna perciò utilizzare il multithreading  per ridurne il tempo di caricamento. Infine bisogna conoscere un po' di nozioni di asynchronous programming .

Durante la creazione dell'app dovrete generare, contemporaneamente, la user interface e un processo di caricamento veloce dei contenuti. Il multithreading vi permetterà di creare un app in grado di scaricare i contenuti in background e al tempo stesso di progettare la UI  (user interface ).

Servono solo competenze tecniche?

Ovviamente no! :) Bisogna avere anche qualche conoscenza di design e UX (user experience).

Durante lo sviluppo, come detto sopra, dovrete creare anche la UI e progettarla in modo che sia user friendly.
Mettetevi per un momento nei panni dei vostri utenti, provate ad immaginare come essi si muoveranno all'interno della vostra app, e fate del vostro meglio per rendere l'esperienza piacevole.

Riflettete sulla differenza d'interazione con i vari tipi di device. Per esempio, utilizzando uno smartphone non avete a disposizione un mouse, ma solo il vostro dito sul touchscreen, in più gli schermi mobile sono molto più piccoli rispetto a quelli dei computer perciò, quando andrete a creare la vostra app dovrete utilizzare su mobile una UX differente rispetto a quella utilizzata per l'app desktop.

Perché scegliere iOS rispetto ad un altra piattaforma?

Kantar U.S. ci fornisce alcuni dati sulla popolarità di iOS. Il 43.5% degli smartphone venduti durante il 2013 è iOS; il 52.3% è Android. In più, iOS gode di un alta percentuale di traffico mobile e di uno store che conta più di 800.000 app.

All'inizio, lo sviluppo su iOS potrebbe sembrare più difficile rispetto a quello su Android, ma in realtà non è così! Android infatti è molto più frammentato di iOS.

Java è più polare dell'ObjC è per molti sviluppatori anche più semplice. Ma una volta che avrete imparato a scrivere codici in ObjC, scoprirete che non è poi tanto difficile e che i framework di Apple sono ben progettati e rendono molto più semplice sviluppare. In ogni caso, online troverete sempre un vasta documentazione che vi sarà d'aiuto durante la programmazione (UIKit, ...).

I nostri consigli...

Tra tutti i consigli che potremmo darvi vogliamo sottolineare uno in particolare, il più importante:
Non iniziate con le storyboards.

Secondo Apple :
" A storyboard is a visual representation of the user interface of an iOS application, showing screens of content and the connections between those screens. A storyboard is composed of a sequence of scenes, each of which represents a view controller and its views; scenes are connected by segue objects, which represent a transition between two view controllers."

Solitamente i principianti iniziano a sviluppare su iOS utilizzando le storyboard, cosa che può risultare controproducente in quanto si finisce per imparare a programmare utilizzando uno schema. I problemi iniziano a sorgere quando ci si approccia a cose più complicate che richiedono di uscire da quello schema.

Imparare a sviluppare utilizzando unicamente il codice, o perlomeno limitare al minimo l'utilizzo delle storyboard,vi permetterà di migliorare il vostro utilizzo dei framework, ObjectiveC e runtime. Tutto ciò vi sarà molto di aiuto quando dovrete risolvere problemi complessi. 
Una volta diventati più esperti potrete scegliere di utilizzare le storyboard se ritenete che possano agevolarvi il lavoro. Noi crediamo di no :)
Spero che questo articolo vi sia stato di aiuto, ma se avete qualche domanda o vi serve aiuto o un consiglio non esitate a lasciarci un commento qui sotto :)