Le 9 migliori novità dai talk della Pragma iOS Conference 2016

Le 9 migliori novità dai talk della Pragma iOS Conference 2016

Pubblicato da IQUII il 19/10/2016 in Thinking

La #Pragma Conference è una delle maggiori conferenze in Europa dedicate allo sviluppo mobile iOS e MacOS, alla quale prendono parte importanti esperti del settore e aziende leader da tutto il mondo per fare il punto sulle ultime novità e metodologie.

Momento di condivisione di conoscenze, metodologie di lavoro e di risultati ottenuti, l’evento è anche l’occasione per scambiare opinioni e confrontarsi direttamente con alcuni dei migliori developer ed engineer a livello mondiale.

Il 13 e 14 Ottobre siamo stati a Verona per partecipare alla Pragma Conference 2016 e a evento concluso possiamo dire che ha superato le nostre aspettative, fornendoci innumerevoli spunti per i prossimi progetti e quelli in corso.

Focus della conferenza sono stati i nuovi pattern e le architetture volte al miglioramento delle performance e soprattutto della scalabilità multipiattaforma (iOS, macOS, tvOS) introdotti nell’ultimo WWDC e i talk degli speaker della #PragmaConf16 sono stati un interessante spunto di riflessione sull’introduzione di nuovi strumenti e nuovi paradigmi procedurali.

Abbiamo deciso allora di raccogliere e condividere con voi i 9 spunti che più ci hanno colpito durante questi due giorni:

1. Build Features not Apps di Natasha Murashev

Le abitudini degli utenti sono cambiate: il 60% degli utenti in 30 giorni non scarica nemmeno un’applicazione, mentre il 95% degli utenti abbandona una nuova app dopo 7 giorni dal download.

Estendere le funzionalità della propria app potrebbe però non essere la strada giusta per riconquistare gli utenti e aumentarne la retention.
Bisogna piuttosto puntare a creare punti di contatto tra utente e app durante l’intero ciclo dell’esperienza all’interno dell’OS.

Le extensions introdotte con iOS 10 permettono agli utenti di accedere alle funzionalità di un’app ed ai suoi contenuti in tutta iOS, aprendo a nuove modalità di coinvolgimento e di engagement degli utenti di un’applicazione mobile. Ad esempio è ora possibile:

  • far apparire la propria applicazione come un widget integrato in iOS;
  • offrire filtri fotografici custom all’interno dell’app Foto;
  • far visualizzare una nuova tastiera personalizzata integrata con le app di sistema;
  • implementare l’App Search direttamente da Spotlight o Google;
  • realizzare estensioni ad hoc per iMessage, come giochi o altri servizi.

L’esposizione di funzionalità integrate con iOS aumenta la qualità dell’esperienza e i punti di contatto per ingaggiare l’utente. Ad esempio Uber permette di prenotare una corsa attraverso un widget integrato nella tastiera, Zalando ha implementato l’App Search mentre Tinder ha integrato alcune delle sue funzionalità direttamente su iMessage.

2. Backend Driven UI di John Sundell

Il Lead iOS Developer di Spotify è stato la star della #PragmaConf2016. Ha conquistato subito l’attenzione dei presenti portando l’esperienza di gestione della UI da backend dell’app di Spotify.

Alcuni pattern architetturali di sviluppo come il classico MVC stanno lasciando il passo a nuovi approcci che permettono una maggiore dinamicità e flessibilità gestibile direttamente da backend. Uno degli approcci più interessanti è il MVVM (Model-View-ViewModel) nel quale a ogni elemento di interfaccia corrisponde un modello che ne definisce aspetto e posizione all’interno delle view.

La possibilità di comporre le viste direttamente da backend e offrire un json una volta atterrati su una vista apre a nuovi orizzonti, che permetteranno di cambiare l’aspetto di un’applicazione in tempi rapidi e garantendo il miglior risultato possibile.

Questo tipo di approccio, che abbiamo già cominciato a integrare in alcuni progetti come l’app della Federugby e l’app di #IBI16, ha come vantaggio principale la possibilità di rendere la vista mutevole e facilmente modificabile semplicemente decidendo ciò che si vuole visualizzare via backend. In maniera automatica il framework si adatterà, riducendo in questo modo al minimo l’intervento dello sviluppatore.
Questo approccio risulta estremamente conveniente anche per effettuare A/B testing ad esempio su viste, CTA o sulla UI della propria applicazione.

Spotify ha quindi realizzato un framework open source, HUB Framework, che permette di sviluppare una backend-driven UI su iOS e grazie ad esso ha già convertito più del 56% delle viste della propria app.

3. Swift on Linux di Ben Scheirman

La community Swift si muove per creare soluzioni open source che permettano di utilizzare il linguaggio di programmazione per l’implementazione di backend e lo sviluppo di applicativi web con l’obiettivo di completare l’intero ciclo di sviluppo con un unico linguaggio.

Qualche mese fa avevamo già parlato delle opportunità di Swift come prossimo linguaggio Full Stack per web: organizzare backend e mobile con un unico linguaggio di programmazione permette a uno sviluppatore mobile iOS di occuparsi anche dello sviluppo server-side con le conoscenze già in possesso.

4. More presence, personality and pulse di Anton McConville

Con il Mobile le nostre esperienze e le modalità attraverso cui interagiamo, condividiamo, facciamo acquisti o soddisfiamo i nostri bisogni sono profondamente cambiate.

IoT e Mobile hanno generato e continuano a generare una mole di dati sempre maggiore e che, come ha illustrato il Digital Designer e Developer di IBM, sono riconducibili a 3 macro categorie:

  • Presence (Dove siamo – Città – Zona – Raggio di azione);
  • Personality (Chi siamo – Abitudini – Socialità – Comportamenti);
  • Pulse (Come siamo – Heath Data – Emotional Data – Movimenti – Obiettivi).

 

Pragma: presence, personality, pulse di John Sundell

 

L’aumento esponenziale dei contesti di azione e di raccolta dati permette oggi di creare esperienze contestuali iper-personalizzate e software che si adattano alle esigenze dell’utente e sono in grado di dare risposte imparando le abitudini, attraverso un ciclo continuo e reiterato:

Sense —> Learn -> Predict —> Produce

Attraverso una Natural Language Analysis è possibile infatti migliorare la qualità dell’esperienza per l’utente legandola sempre più al suo mobile personal context analizzando tutti i suoi comportamenti ed adattandosi al meglio ad essi.

Questo tipo di esperienza è possibile mediante l’uso di servizi cloud dedicati, spesso basati su linguaggio NodeJS, hardware connesso e dispositivi IoT, che consentono raccogliere, gestire e processare una mole di dati potenzialmente molto elevata in modo immediato e fornire quindi feedback in real-time all’utente.

Un’esperienza basata su preferenze, gusti, abitudini e comportamenti del singolo utente e in grado di apprendere nel tempo diventa predittiva e riesce ad anticipare i nostri bisogni ancora prima che si manifestino.

5. ‘I have a framework idea’ di Fabio Milano

In un ecosistema così avanzato come quello creato da Apple (tra macOS, tvOS, iOS, watchOS e extensions) creare un framework multipiattaforma abilita la condivisione di codice tra componenti di applicazioni universali.
Il passaggio allo sviluppo di framework e microservices nell’ambito dello sviluppo mobile è ormai completo e l’obiettivo è creare servizi e architetture in grado di comunicare tra loro.

A rendere così interessante questo approccio allo sviluppo mobile è la possibilità di avere servizi utilizzabili su tutte le piattaforme disponibili e accentrare allo stesso tempo in un unico punto bug fixing e refactoring.
L’approccio con framework modifica le modalità di progettazione dell’architettura di un’app permettendo di snellire funzioni che sono di differente implementazione in diversi OS.
Se infatti mediante approccio tradizionale uno sviluppatore si trova a dover sviluppare più volte lo stesso elemento in base all’OS (es. login):

Pragma: sviluppo per diversi os

L’utilizzo di un framework invece rende possibile una singola implementazione per abilitare il login per ogni OS:

Pragma: sviluppo tramite framework

Dal talk: “I have a framework idea” – Repeat less, share more. from Fabio Milano

 6. Model View Presenter di Jon Reid

È stato poi il momento del talk di Jon Reid di American Express dedicato all’approccio di sviluppo Model-View-Presenter e le differenze rispetto al pattern MVC.

Il pattern Model-View-Controller è ormai uno dei più diffusi approcci di sviluppo in virtù dei suoi principali punti di forza, come il fatto che:

  • I Controller descrivono i comportamenti e possono quindi essere condivisi tra le diverse View;
  • I Controller possono essere responsabili della visualizzazione di determinate View.

Nel caso del Model-View-Presenter invece lo scopo è quello di organizzare il proprio sorgente in metodi che seguono una sola regola: “Tell, don’t ask”.
Ogni metodo ha lo scopo di comporre ogni componente della vista, definirne lo stato e cosa l’utente visualizza.

Pragma: MVC vs MVP

I principali punti di forza del pattern MVP sono allora che:

  • la View ha una connessione più debole con il modello. Il Presenter è responsabile del legame del modello alla vista;
  • è più facile effettuare Unit Test perché l’interazione con la View avviene attraverso un’interfaccia;
  • solitamente la View è in rapporto uno ad uno con il Presenter. View molto complesse possono avere più Presenter.

Tutto ciò permetterà di avere un codice pulito, leggero, facilmente manutenibile e self-documented.
Inoltre non è necessario utilizzare questo approccio a partire da un progetto totalmente nuovo, ma lo si può applicare anche in caso di refactoring di progetti già esistenti.
Unica regola: i test.

7. On AB Testing di Hector Zarate

Anche lo speech del Software Engineer di Spotify dedicato all’AB Testing è stato un momento di approfondimento su scopo e metodologie per un corretto AB Test su app mobile.
Lo scopo dell’A/B Testing è quello di implementare due (o più) interfacce per la propria app e far scegliere poi all’utente quale offre una migliore esperienza d’uso. Come si effettua un corretto mobile AB Test?

  • Una volta formulata l’ipotesi, si procede con la progettazione e lo sviluppo delle possibili interfacce.
  • Si creano quindi dei buckets di utenti, basati su criteri stabiliti tra tutti i team (design, marketing e sviluppo), e si lanciano le diverse versioni dell’app.
  • Segue una fase di analytics in cui si stabilisce quale tra le diverse proposte ha riportato performance e esperienze d’uso migliori.

Fondamentale è la capacità di abbandonare le proprie idee o le proprie sensazioni e assumere un approccio strutturato, basato sull’analisi dei dati raccolti.

In Spotify proprio a questo scopo hanno sviluppato uno strumento interno, conosciuto con il nome di ABBA, che permette di effettuare analisi e creazione di bucket di utenti in maniera automatica, prendendo in considerazione localizzazione, tipologia di utente, nazionalità, comportamenti e gusti musicali, basato su algoritmi di hashing sull’ID utente.

Quello che hanno scoperto? Ad esempio che l’abbandono dell’hamburger menù a favore della Tab Bar ha aumentato il numero di interazioni per alcune sezioni dell’app del 130%.

8. Automation to save time: Buddybuild di Dennis Pilarinos

Altri due temi di particolare importanza che abbiamo avuto modo di approfondire alla Pragma Conference sono stati il Continuous Delivery e la Continuous Integration e i tool che ne consentono una più facile gestione e implementazione.

Sintetizzando i concetti, il Continuous Delivery è un metodo di approccio alla programmazione in cui lo sviluppo di codice viene prodotto in piccoli cicli e porta ad avere sempre un software potenzialmente rilasciabile.
Questo permette di fare testing e releasing più frequentemente rispetto al normale approccio, abbassando tempi e costi di sviluppo grazie alla possibilità di effettuare dei fix più rapidi e di minore entità.

Per Continuous Integration si intende invece un approccio nel quale gli sviluppatori realizzano codice in repository condivise più volte al giorno, rendendo possibile una parallelizzazione dei task e una più semplice e veloce detection degli errori.

Il CEO di Buddybuild Dennis Pilarinos nel suo talk ha introdotto diverse novità di estrema utilità per il deployment e il testing di un’applicazione, dalla gestione rapida ed efficace dei certificati di provisioning a quella di di tutto ciò che concerne il deployment dell’applicazione come la creazione di build, l’invio di inviti ai testers e la gestione degli UDID dei dispositivi.

Nella Continuous Integration Buddybuild implementa un innovativo sistema di feedback: il tester può segnalare dei bug nell’applicazione con degli screenshot in cui può evidenziare le parti affette, le quali automaticamente verranno caricati nel portale del tool. In caso di crash dell’applicazione, vi è la possibilità di aprire direttamente ed in maniera automatica delle issues su Github, di visualizzare un video dell’applicazione dei 7 secondi precedenti al crash, di visualizzare il thread e la riga di sorgente che ne è affetto.

9. App Search API: Zalando di Kateryna Gridina

Una delle novità introdotte da iOS 10 è l’App Search, cioè la possibilità di cercare elementi contenuti all’interno di un’app direttamente dalla funzione di ricerca integrata in iOS.

Kateryna Gridina, iOS Developer di Zalando, ha spiegato nel suo talk i vantaggi dell’App Search in un settore come quello Retail.
Ad esempio nello specifico di Zalando, la ricerca su iOS di “scarpe Adidas” restituisce ora tra i risultati le scarpe Adidas in vendita nell’app e tappando su uno di essi si viene reindirizzati nella vista corrispondente in app.
Analogo comportamento avviene anche su Safari, dove i risultati indirizzano verso Zalando, vengono aperti direttamente nell’applicazione anziché in una web page.

Una volta indicizzati dei prodotti all’interno di un’app quindi, questi compariranno nei risultati di ricerca su Spotlight e Google mediante l’utilizzo di universal link.
Gli oggetti che si vogliono indicizzare vengono infatti inseriti come items all’interno di un array, il quale viene interrogato in fase di search nelle ricerche dello Spotlight.
L’App Search amplifica così la rilevanza che l’applicazione ha all’interno dell’OS, essendo raggiungibile da più parti e non solamente tappando l’icona dell’app.

 

Tirando le somme della nostra esperienza al Pragma e di quanto è stato detto dagli speaker di quest’anno, è sempre più evidente come si stia alzando tantissimo il livello di competenze necessarie per lo sviluppo di prodotti nativi di qualità.

Temi cardine dello sviluppo mobile, ormai imprescindibili per realizzare progetti e prodotti di qualità, sono e saranno sicuramente:

  • l’attenzione alla scalabilità soprattutto per multipiattaforma;
  • la crescente necessità di integrare nelle metodologie e nell’approccio allo sviluppo UI Test, Unit Test e refactoring, Continuous Delivery e Continuous Integration;
  • l’importanza di inserire le app all’interno di un più ampio ecosistema di servizi integrati (cloud, IoT, mobile, AI).

La prossima sfida per il mondo del software non sarà tanto quella di risolvere nuovi problemi quanto quella di migliorare l’esperienza.

Nei nostri progetti abbiamo già cominciato a integrare approcci, metodologie e nuovi strumenti che caratterizzeranno lo sviluppo mobile e l’ecosistema di tecnologie in grado di abilitare nuovi livelli di esperienza per utenti e aziende.

Nei prossimi mesi continueremo a crescere e a implementare soluzioni, framework e architetture innovative: se hai voglia di metterti in gioco su queste tematiche e entrare a far parte di un team di sviluppo fuori dal comune all’interno del quale sperimentare e progettare soluzioni tecnologiche integrate, candidati per la posizione di iOS Developer!

Antonio Ruscitti
Marco Sportillo
Federico Meloni

METTI IN ATTO LA TUA TRASFORMAZIONE DIGITALE

Inviaci un messaggio e ti ricontatteremo presto!



b95ab49676911f8236da252a962e5170?s=64&d=mm&r=g

IQUII

IQUII Srl è la Digital Consulting Company che guida le imprese operanti nei settori sport, finance, retail, nel percorso di trasformazione digitale offrendo una vasta gamma di servizi e soluzioni strategiche, tecnologiche e creative.


iquii_icon_footer.png IQUII S.r.l.Part of Be Group

Sede Legale: Viale dell'Esperanto 71 – 00144 Roma

P.iva 11289201003 - Cap.Soc. 10.000 €
Reg. Imprese di Roma REA n.1293642

Email. info@iquii.com

Sedi Operative
Roma - Milano - Bolzano

  • facebook.svg
  • twitter.svg
  • instagram.svg
  • linkedin.svg