fbpx

L’Unicorno Isterico 🦄

È iniziata una nuova avventura e si chiama Unicorno Isterico 🦄!
Abbiamo rinnovato il nostro canale youtube con una rubrica che affronterà tanti temi. Obiettivo?  Concretezza e zero fuffa.

Quanto costa un’app? Ho un’idea mi aiutate a svilupparla? Ho una startup ma non ho soldi per investire, come posso fare? É meglio un’app e una web app? Che differenza c’é tra un’app ibrida e un’app nativa? Sviluppate per Huawei? Mi consigliate di realizzare la mia app soltanto su una piattaforma?

Le domande che ci vengono fatte ogni giorno sono moltissime, queste che vi abbiamo riportato qua sopra sono solo le più gettonate, la verità è che la nostra professione, il mercato, l’epoca in cui stiamo vivendo, ci hanno imposto di avere una formazione a 360° sul mondo del digitale. Sempre più spesso infatti chi si rivolge a noi non ha bisogno soltanto di un braccio tecnologico per sviluppare il software, i clienti hanno bisogno oggi di qualcuno che gli supporti e li segua in un percorso che non è puramente tecnologico ma che passa dalla costituzione di una attività imprenditoriale, dall’affinare l’idea iniziale con dei processi ben definiti, dal reperimento di fondi di finanziamento, dalla progettazione del branding e dall’integrazione del software all’interno dei loro sistemi e dei loro processi.

L’unicorno isterico nasce proprio con l’intento di fornire un supporto a chi per necessità, vocazione o slancio imprenditoriale si trova a interagire con il digitale, in questa rubrica andremo ad affrontare infatti molti aspetti differenti che viaggiano però nella stessa direzione e con lo stesso obiettivo, formare futuri imprenditori, informare le aziende, mettere in guardia da possibili problemi e fregature per avere un rapporto sano, equilibrato e profittevole degli strumenti digitali.

Perché l’abbiamo chiamato “L’Unicorno Isterico”? Ve lo spieghiamo in questo primo video dove andiamo a presentare il progetto!

La prima App in SwiftUI

Oimmei_LAB_SwiftUI_featuredimage

Durante il WWDC del 2019 Apple ha presentato la sua versione di un linguaggio di sviluppo dichiarativo sulla falsa riga di React. Ovviamente basato su Swift e con la principale caratteristica di essere veloce, fluido e sopratutto utilizzabile su tutte le sue piattaforme. Lo stesso codice scritto in SwiftUI può essere utilizzato quindi su iOS, iPadOS, WatchOS e MacOS.

SwiftUI nasce per la costruzione di interfacce utente in maniera semplice, veloce e soprattuto uniforme tra tutte le diverse piattaforme Apple. Lo stesso componente infatti verrà renderizzato e si comporterà automaticamente nella maniera più appropriata a seconda del dispositivo dove viene utilizzato. Questo permetterà agli sviluppatori di preoccuparsi meno dei diversi aspetti di ciascuna piattaforma (ovviamente alcune distinzioni andranno sempre fatte, ci sono cose che si possono fare su MacOS mentre su WatchOS no ad esempio) e focalizzarsi maggiormente sulle funzionalità delle proprie applicazioni.

SwiftUI si basa su due principi fondamentali: una sintassi dichiarativa e un nuovo sistema per l’aggiornamento delle informazioni che dovranno aggiornare l’interfaccia. 

Differentemente da quanto accade normalmente in UIKit, invece di raccogliere gli eventi e decidere come modificare l’interfaccia utente con una sintassi dichiarativa, è necessario descrivere a priori che cosa dovrà fare l’interfaccia e come dovrà comportarsi. Al variare dei dati l’interfaccia semplicemente si aggiornerà per riflettere tali cambiamenti. Come scritto in uno dei primi esempi forniti da Apple, sarà possibile scrivere che volete visualizzare una lista di elementi formata da una label per il titolo e una per il sottotitolo, descrivere la font, l’allineamento e il colore per ciascun componente. 

Queste informazioni rappresentano la descrizione di ciascuna View, che verrà renderizzata e rinfrescata automaticamente da SwiftUI al variare delle condizioni di stato definite. Lo stato infatti è il cuore centrale di una View, quello che Apple definisce Source of Truth (fonte della verità), ciascuna View deve avere almeno un oggetto che funga da Source of Truth e che ne scateni gli aggiornamenti automatici (a meno di non voler disegnare una view completamente statica che è una casistica plausibile). Ad esempio uno Switch (chiamato Toggle in SwitftUI) varierà automaticamente il suo stato “grafico” da On a Off al variare di una variabile booleana a cui è agganciato e viceversa, quindi modificare a codice la stato della variabile porterà SwiftUI a ridisegnare la view per aggiornare lo switch mentre l’utente che manualmente effettua un tap sul componente aggiornerà il valore della variabile a cui è agganciato.

Questo ci porta al secondo principio su cui si basa SwiftUI, Combine un nuovo framework, introdotto sempre durante il WWDC del 2019, che come SwiftUI si prefigge di descrivere in modo dichiarativo come i valori vengano modificati nel corso del tempo. Scopo di questo articolo non è approfondire i concetti dietro Combine, che può essere usato anche con il buon vecchio UIKit, anche perchè fortunatamente Apple ha già reso compatibile con Combine numerosi framework di base.

Dopo questa lunga introduzione credo che il modo migliore per capire come funzioni SwiftUI sia quello di creare una semplice applicazione e provare a capire come si costruiscono e si possa interagire con le view. Ed essendo programmatori ho pensato di creare un’app che ci permetta di visualizzare e scegliere il nostro carburante preferito, il caffè. Essendo io un amante del caffè di Starbucks ho pensato di raccogliere le informazioni presenti su alcuni dei loro prodotti, presenti sul sito ufficiale, e creare una piccola App che mi permetta di visualizzare i caffè e scegliere i miei preferiti. Per l’occasione ho preparato una lista in json di alcuni esempi di caffè e le relative immagini da associare.

Scaricate il file zip con gli asset e siamo pronti a partire: DevelopersFuel Materiale

Iniziate aprendo Xcode, create un nuovo progetto e selezionate Single View App. 

La prima App in SwiftUI_01

Nella schermata successiva come product name scrivete DeveloperFuel facendo attenzione a scegliere SwiftUI come User Interface. Rimuovete dalle spunte Use core data, Include Unit Tests e Include UI Tests.

La prima App in SwiftUI_02

Se è la prima volta che provate ad usare un template per SwiftUI noterete che l’interfaccia è notevolmente diversa dai progetti UIKit a cui siete abituati. Infatti la parte sinistra di Xcode è riempita da una vasta porzione che mostra in tempo reale un preview della vostra applicazione, e quando dico in tempo reale intendo che man mano che scriverete il codice l’interfaccia del preview si aggiornerà e, viceversa, aggiungendo componenti al preview il codice viene aggiornato di conseguenza. 

La prima App in SwiftUI_03

A questo punto aprite lo zip con il materiale che avete precedentemente scaricato, troverete una cartella Images che contiene le immagini da visualizzare dei nostri preziosi caffè. Trascinate tutte le immagini all’interno dell’Asset Catalog di default. 

All’interno della cartella Model troverete 3 files: BundleJsonHelper.swift, Coffee.swift e coffees.json, aggiungete anche questi tre files al progetto Xcode e siamo pronti per iniziare. Si tratta di un file json che contiene il nostro modello dati iniziale, la definizione della classe Coffee e un helper per semplificare il caricamento del file json all’interno del modello dati. 

Aprite il file Coffee.swift e date un occhiata a come sarà strutturato il nostro modello: ci sono 2 oggetti CoffeeType e Coffee, il primo raggrupperà un certo numero di caffè. Per ogni caffè sono definite alcune proprietà come nome, descrizione, foto e ingredienti. Prestate particolarmente attenzione alle ultime righe del file, viene creata un istanza statica chiamata CoffeeExample di un oggetto Coffee, questo risulterà fondamentale durante la costruzione delle nostre view.

SwiftUI nasce intorno all’idea della composizione e riusabilità delle singole View, invece di descrivere un’interfaccia complessa nella sua interezza è preferibile (e sopratutto molto più leggibile) scomporla in tanti piccoli blocchi atomici da comporre a nostro piacimento ed eventualmente riutilizzare in altre parti dell’App. La nostra App dovrà per prima cosa presentare una lista di diversi tipi di caffè (altrimenti cosa mi sono messo a copiare in file json tutte quelle informazioni dal sito di Starbucks?!?), e per fare questo per prima cosa abbiamo bisogno di rappresentare un singolo elemento di questa lista, che per semplicità chiameremo CoffeeRow.

Create un nuovo file da aggiungere al progetto, e dalla sezione User Interface selezionate SwiftUI View. Chiamate il file CoffeeRow e proseguite:

La prima App in SwiftUI_04

La prima di cui abbiamo bisogno è una proprietà che contenga i dati da visualizzare, aggiungete quindi subito dopo la definizione della struct:

var coffee: Coffee

Immediatamente il compilatore si arrabbierà indicando che manca il parametro coffee all’interno del preview. Del preview? Si esatto, perchè i preview in tempo reale che vedete sulla sx non sono altro che strutture particolari di SwiftUI che vengono compilate e renderizzate mentre modificate il codice. In alcuni casi, quando le modifiche sono troppo sostanziose per essere calcolate durante la scrittura del codice, il preview viene messo in pausa automaticamente, una volta terminate le modifiche è possibile farlo ripartire premendo il pulsante resume in alto a sinistra oppure option+command+p sulla tastiera.

Risolviamo subito il problema modificando la riga di errore da CoffeeRow() in CoffeeRow(coffee: Coffee.coffeExample). Questa è l’istanza statica che avete notato nel modello dati precedentemente. Non appena modificata la dichiarazione l’errore scomparirà e il preview si aggiornerà mostrando il confortante Hello World!, se questo non dovesse succedere avviate a mano il resume del preview.

Una view con il testo hello world però non è la più utile delle view, iniziamo quindi a mostrare alcuni dettagli che possono essere utili ai nostri utenti (o noi stessi) quando visualizziamo una lista di caffè tra cui scegliere.

Il componente principale di ciascuna View in SwiftUI è la variabile body, che deve necessariamente ritornare un oggetto di tipo View. Questa è quella che rappresenterà la nostra interfaccia utente a runtime. É importante notare che deve ritornare un singolo oggetto View, quindi non è possibile ad esempio inserire un secondo oggetto Text() sotto a quello presente, perchè appunto sarebbero 2 view. 

Ricordate il concetto di composizione di cui abbiamo parlato prima? Gli oggetti possono essere però contenuti in altri oggetti, e per questo abbiamo dei contenitori che ci permettono di raggruppare i nostri elementi di interfaccia… gli Stack!

Iniziamo creando uno stack verticale, racchiudendo il nostro testo in esso:

VStack {
    Text(“Hello World”)
}

Non un grande cambiamento per adesso ma questo è solo il primo passo. Adesso è giunto il momento di visualizzare qualcosa di vero, sostituiamo quindi il contenuto di Text con Text(coffee.name). Immediatamente nel preview la scritta Hello World! verrà sostituita con Caffè Mocha, proprio il nome del caffe che abbiamo inizializzato durante la creazione del nostro preview.

Si inizia già ad intravedere le potenzialità di SwiftUI ma ancora la nostra interfaccia non è ne carina ne esaustiva. Proviamo ad aggiungere la descrizione sotto il nome, aggiungiamo quindi un’altra Text sotto quella già presente e stavolta mostriamo la descrizione. 

var body: some View {
     VStack {
       Text(coffee.name)
       Text(coffee.description)
    }
  }

A questo punto la nostra preview dovrebbe essersi aggiornata con il titolo e la descrizione del caffe, perfettamente centrate una sotto l’altra… centrate? Avete mai visto una lista con titolo e sotto titolo centrate? Questo perchè di default un VStack ha un allineamento centrato, ma ovviamente è possibile modificare questa impostazione molto semplicemente.

Per farlo vi mostrerò un’altro modo di interazione con l’interfaccia di Xcode, tenendo premuto option cliccate su VStack nell’editor e dal menu contestuale selezionate Show SwiftUI Inspector:

La prima App in SwiftUI_05

Si aprirà l’inspector con le proprietà per lo stack verticale, un ottimo modo per scoprire che cosa sia possibile personalizzare e modificare per ciascun componente. Modificando le impostazioni di allineamento (alignment) sia il codice che il preview si aggiorneranno, mostrando i cambiamenti scelti. 

La prima App in SwiftUI_06

Selezionate leading e chiudete. Adesso è molto meglio!

Iniziamo adesso ad applicare un po’ di stile alla nostra cella, in SwiftUI si fa aggiungendo dei modificatori (view modifiers appunto) a ciascuna view. Ogni tipologia di view ha i suoi modificatori particolari, più ovviamente quelli ereditati dalle classi padre, in particolare per le nostre textview sarà possibile modificare font, colore, numero di linee, etc…

Per prima cosa modifichiamo il nome del caffè perché risalti di più, cambiando la sua font da body (la standard) a headline:

Text(coffee.name)
     .font(.headline)

E allo stesso tempo rendiamo meno importante la descrizione limitandone anche il numero di linee visualizzate:

Text(coffee.description)
     .font(.subheadline)
     .foregroundColor(.secondary)
     .lineLimit(2)

I view modifiers possono essere concatenati tra di loro, ma attenzione perché l’ordine è importante. In questo caso non sarebbe cambiato niente, ma con altri modificatori si possono ottenere risultati molto diversi in base all’ordine con cui vengono applicati.

var body: some View {
    VStack(alignment: .leading) {
      Text(coffee.name)
        .font(.headline)
      Text(coffee.description)
        .font(.subheadline)
        .foregroundColor(.secondary)
        .lineLimit(2)
    }
  }

Nel nostro preview iniziamo a vedere già una versione molto più accattivante di quella che potrebbe essere un elemento di una lista di caffè ma quello che manca è l’immediatezza del colpo d’occhio, è il momento giusto per inserire una bella immagine! Vogliamo la nostra immagine alla destra del titolo e della descrizione, ma i nostri componenti sono racchiusi in uno stack verticale che ci permette di impilare gli oggetti uno sopra l’altro… fortunatamente alla fine anche uno stack è una view, e può essere incapsulata in un’altra view. Inseriamo quindi lo stack verticale in uno stack orizzontale, che conterrà la nostra immagine e lo stack verticale con nome e descrizione:

HStack {
      VStack(alignment: .leading) {
        Text(coffee.name)
          .font(.headline)
        Text(coffee.description)
          .font(.subheadline)
          .foregroundColor(.secondary)
          .lineLimit(2)
      }
   }

Prima del VStack aggiungiamo un immagine:

HStack {
      Image(coffee.photo)
        .resizable()
        .frame(width: 60, height: 60)
      …

E’ importante notare che abbiamo dovuto aggiungere il modificatore .resizable(), altrimenti la foto avrebbe occupato tutto lo spazio necessario per le sue dimensioni e solo dopo abbiamo potuto specificare le esatte dimensioni che occuperà. 

Il risultato è già ottimo e in pochissime righe di codice, ma non sarebbe più professionale se le foto avessero una maschera circolare come in tutte le migliori applicazioni? Niente di più semplice, ogni View ha un modificatore per “clippare”, ovvero ritagliare l’oggetto in base ad una maschera lungo i bordi, aggiungiamo quindi:

Image(coffee.photo)
       .resizable()
       .frame(width: 60, height: 60)
       .clipShape(Circle())

Finita! Il nostro elemento di lista è pronto per essere utilizzato!

import SwiftUI

struct CoffeeRow: View {
  var coffee: Coffee

  var body: some View {
    HStack {
      Image(coffee.photo)
        .resizable()
        .frame(width: 60, height: 60)
        .clipShape(Circle())

      VStack(alignment: .leading) {
        Text(coffee.name)
          .font(.headline)
        Text(coffee.description)
          .font(.subheadline)
          .foregroundColor(.secondary)
          .lineLimit(2)
      }
    }
  }
}

struct CoffeeRow_Previews: PreviewProvider {
  static var previews: some View {
    CoffeeRow(coffee: Coffee.coffeeExample)
  }
}

Aprite adesso di nuovo il file ContentView.swift, dove di nuovo il template aveva generato un meraviglioso Hello World, questo è il file che viene mostrato all’apertura dell’App, e qui è dove andremo ad inserire la nostra lista. Prima di visualizzare una lista è necessario avere degli oggetti da mostrare, occorre quindi caricare l’elenco dei caffè presenti nel file json che avevo preparato. Aggiungete prima del body 

let menu = Bundle.main.decode([CoffeeType].self, from: "coffees.json")

Per semplicemente caricare il nostro modello dati con il contenuto del file json, questa volta non essendo una variabile ma una costante il compilatore non avrà di che lamentarsi e il preview continuerà a funzionare come prima. Adesso sostituite la text View con questo:

List {
         ForEach(menu) { menuItem in
           Section(header: Text(menuItem.name).font(.title)) {
             ForEach(menuItem.coffees) { coffee in
               CoffeeRow(coffee: coffee)
             }
           }
         }
       }

Come per magia nel preview apparirà una lista, divisa in sezioni, con ciascuna sezione riempita con i caffè che contiene. Vediamo come questo sia possibile: abbiamo aggiunto una List, l’equivalente di una UITableView, al suo interno abbiamo scorso tutti gli elementi del menu con il costruttore ForEach. Se vi ricordate il nostro modello aveva un certo numero di tipi di caffè e ciascun tipo conteneva i suoi caffè. Abbiamo chiamato ciascun tipo menuItem e lo abbiamo usato per costruire la sezione corrispondente. 

La view Section ha come parametri opzionali header e footer, noi abbiamo deciso di utilizzare l’header, che come al solito si aspetta una View (composizione, composizione, composizione): per semplicità abbiamo passato una Text con il nome del tipo di caffè modificandone la font perché sia più grande. Nella closure della sezione è necessario passare gli elementi che la compongono, di nuovo è necessario scorrere tutti gli elementi della sezione corrente e ritornare la view da visualizzare, in questo caso proprio l’oggetto CoffeeRow che abbiamo creato prima.

Sebbene sia già abbastanza manca ancora qualcosa, la barra del titolo! In UIKit questo si può ottenere utilizzando un NavigationController, in SwiftUI possiamo dire che il suo equivalente è la NavigationView. Racchiudete la List all’interno di una NavigationView in questo modo

NavigationView {
      List {
         ForEach(menu) { menuItem in
           Section(header: Text(menuItem.name).font(.title)) {
             ForEach(menuItem.coffees) { coffee in
               CoffeeRow(coffee: coffee)
             }
           }
         }
      }
    }

e nel preview comparirà immediatamente una Navigation Bar…. vuota! Ovviamente è perché non abbiamo dato nessun nome alla nostra view, qui le cose diventano un pochino più confusionarie. Per quello che abbiamo visto fino ad ora ci si aspetterebbe di aggiungere un modificatore alla NavigationView, impostando i parametri che vogliamo (titolo, pulsanti, etc…). Ricordate però che una NavigationView è l’equivalente di un NavigationController, ogni successiva view che verrà aggiunta dovrà avere il suo titolo e i suoi pulsanti. Aggiungere dei modificatori direttamente alla NavigationView significherebbe applicarli a tutte le successive view che conterrà durante il  suo life cycle, per questo è necessario applicare i modificatori direttamente agli elementi che contiene.

Quindi direttamente alla List aggiungete

List {
        ForEach(menu) { menuItem in
           Section(header: Text(menuItem.name).font(.title)) {
                     ForEach(menuItem.coffees) { coffee in
                            CoffeeRow(coffee: coffee)
                     }
           }
        }
     }
     .listStyle(GroupedListStyle())
     .navigationBarTitle(Text("Choose your fuel"))

e anche il titolo di questa View verrà correttamente visualizzato. Già che c’eravamo ho aggiunto lo stile Grouped per un effetto visivo migliore.

E’ giunto il momento di verificare il lavoro fatto (il Preview in tempo reale è bellissimo, ma vedere girare l’App è tutta un’altra cosa). Selezionate un simulatore dalla lista e lanciate l’App. Adesso abbiamo una meravigliosa lista di caffè, realizzata in pochissimo tempo, che però è completamente inutile!  😊

Navigare verso un dettaglio migliore

Non sarebbe meglio se una volta scelto il nostro caffè, potessimo vedere nel dettaglio la sua descrizione e magari avere un lista degli ingredienti principali? Iniziamo quindi a disegnare la nostra View che ospiterà il dettaglio del caffè: per prima cosa mostreremo la foto più grande, poi il nome, la descrizione e l’elenco degli ingredienti.

Create un nuovo file SwiftUI e chiamatelo CoffeeDetail. Per visualizzare i dati di un caffè occorre averlo, create quindi una variabile chiamata coffee che verrà popolata a runtime con quello selezionato dalla lista.

import SwiftUI
struct CoffeeDetail: View {
    var coffee: Coffee
    var body: some View {
        Text("Hello, World!")
    }
}

struct CoffeeDetail_Previews: PreviewProvider {
    static var previews: some View {
        CoffeeDetail(coffee: Coffee.coffeeExample)
    }
}

Abbiamo detto di voler visualizzare prima la foto e sotto il resto delle informazioni. Avremo bisogno quindi di un Vertical Stack con all’interno la nostra foto. Sostituite a Text(“Hello World”) :

VStack {
   Image(coffee.photo)
      .resizable()
      .clipShape(Circle())
}

Nel preview comparirà l’immagine centrata, ritagliata fino ad occupare tutto lo spazio in orizzontale del device. Forse un pochino troppo, provate ad inserire in po di padding orizzontale in questo modo:

VStack {
    ….
    ….
}
.padding(.horizontal)

meglio… ma c’è qualcosa che ancora non va… il caffè non è molto invitante, forse perché l’immagine ha un aspect ratio sbagliato. Aggiungete sotto il modificatore resizable() .aspectRatio(contentMode: .fit) e immediatamente il nostro caffè diventerà molto più invitante.

var body: some View {
        VStack {
            Image(coffee.photo)
                .resizable()
                .aspectRatio(contentMode: .fit)
                .clipShape(Circle())
        }
        .padding(.horizontal)
    }

Dovremmo però cercare di far risaltare un po’ di più la nostra immagine, magari aggiungendo un bordo e un po di ombreggiatura… niente di più semplice in SwiftUI! Magari potrebbe anche essere utile in futuro riutilizzare questo tipo di immagine da altre parti nell’App, quindi invece di modificare direttamente la nostra view ne creeremo una specializzata nel visualizzare le immagini.

Create un nuovo file SwiftUI e chiamatelo RoundImage, aggiungente una variabile per contenere il nome dell’immagine che dovrà essere visualizzato e aggiungente un componente Image che la carichi.

import SwiftUI

struct RoundImage: View {
    var imageName: String
    var body: some View {
        Image(imageName)
    }
}

struct RoundImage_Previews: PreviewProvider {
    static var previews: some View {
        RoundImage(imageName: "Americano")
    }
}

Adesso aggiungiamo il clip circolare, il resize e l’aspectRatio come prima. Per ottenere un effetto migliore possiamo aggiungere un bordo, in SwiftUI semplicemente aggiungendo un overlay alla nostra immagine definendone lo shape e lo stroke:

.overlay(Circle().stroke(Color.gray, lineWidth: 4))

E per dare l’effetto “pop” magari aggiungiamo un’ombra:

.shadow(radius: 10)

Perché si veda l’ombra cambiate il colore dello stroke in bianco:

var body: some View {
        Image(imageName)
            .resizable()
            .aspectRatio(contentMode: .fit)
            .clipShape(Circle())
            .overlay(
                Circle().stroke(Color.white, lineWidth: 4))
            .shadow(radius: 10)
    }

Sostituiamo adesso all’immagine di CoffeeDetail la nostra nuova RoundImage in questo modo:

var body: some View {
        VStack {
            RoundImage(imageName: coffee.photo)
        }
        .padding(.horizontal)
    }

e otterremo immediatamente un effetto più cool per la nostra View. Adesso non resta che aggiungere le altre informazioni necessarie, come la descrizione, l’elenco degli ingredienti e ovviamente il nome.

Per poter visualizzare il nome del caffè in stile iOS conviene metterlo nel titolo della Navigation Bar, che come detto in precedenza è un modificatore della View stessa. Aggiungente quindi ai modificatori del VStack :

.navigationBarTitle(coffee.name)

Per vedere il risultato direttamente nel preview dovete ricordarvi di incapsulare la view renderizzata per il preview in un proprio NavigationView, questo perché è un elemento statico slegato dal flusso dell’App, ovviamente nel lifecycle normale dell’App questa sarà all’interno del navigation view che avete impostato nella Lista.

struct CoffeeDetail_Previews: PreviewProvider {
    static var previews: some View {
        NavigationView {
            CoffeeDetail(coffee: Coffee.coffeeExample)
        }
    }
}

Sotto l’immagine possiamo andare ad inserire la descrizione ed un divisorio per dare più aria alla sezione che conterrà gli ingredienti:

var body: some View {
        VStack(alignment: .leading) {
            RoundImage(imageName: coffee.photo)
            Text(coffee.description)
                .font(.body)            
            Divider() 
        }
        .padding(.all)
        .navigationBarTitle(coffee.name)
    }

Modificate anche l’allineamento dello Stack in .leading, in questo modo gli oggetti non saranno centrati nella view ma allineati a sinistra.

Gli ingredienti sono costituiti nel nostro modello dati da un array di stringhe, per migliorare un po la loro visualizzazione potremmo trasformarli in un elenco puntato, creiamoci un componente apposito per questo. Create un nuovo file SwiftUI e chiamatelo IngredientsList, aggiungete una variabile ingredients che conterrà il nostro array di stringhe come di seguito:

struct IngredientsList: View {
    var ingredients: [String]    
    var body: some View {
            }
}

Per visualizzare un elenco occorre uno Stack verticale, un identificatore e il testo… iniziamo inserendo al posto del placeholder Text un VStack, specificandone l’allineamento .leading, all’interno del quale dobbiamo renderizzare una riga per ciascun ingrediente. Come per la lista dei caffè possiamo utilizzare il ForEach per scorrere tutti gli elementi dell’array di ingredienti, l’unica differenza è che stavolta occorre specificare un identificativo univoco per ciascun elemento. Mentre i nostri oggetti CoffeeType implementano il protocollo Identifiable ciò non è direttamente vero per le stringhe, quindi è necessario comunicare a SwiftUI che ciascuna stringa è univoca:

struct IngredientsList: View {
    var ingredients: [String]    
    var body: some View {
        VStack(alignment: .leading) {
            ForEach(ingredients, id: .self) { ingredient in
                ….
            }
        }
    }
}

Utilizzando il parametro id: e assegnandoli .self abbiamo risolto il nostro problema.

Ogni riga avrà poi un immagine e un testo, occorre quindi un HStack per allinearli correttamente:

struct IngredientsList: View {
    var ingredients: [String]    
    var body: some View {
        VStack(alignment: .leading) {
            ForEach(ingredients, id: .self) { ingredient in
                HStack {
                    Image(systemName: "largecircle.fill.circle")
                    Text(ingredient)
                        .fontWeight(.semibold)
                }
                .font(.subheadline)
            }
        }
    }
}

Per l’immagine abbiamo usato una di quelle fornite all’interno dei simboli di sistema, che hanno il vantaggio di essere trattate come vere e proprie font, per questo abbiamo potuto applicare il modificatore .font direttamente a tutto l’HStack, di fatto applicandolo a tutti gli elementi che contiene.

Terminato il nostro componente possiamo utilizzarlo nel dettaglio, aprite di nuovo il file CoffeeDetail e aggiungete:

struct CoffeeDetail: View {
    var coffee: Coffee
    var body: some View {
        VStack(alignment: .leading) {
            RoundImage(imageName: coffee.photo)            
            Text(coffee.description)
                .font(.body)               
            Divider()            
            Text("Ingredients")
                .font(.headline)            
            IngredientsList(ingredients: coffee.ingredients)            
        }
        .padding(.all)
        .navigationBarTitle(coffee.name)
    }
}

Manca solamente un piccolo dettaglio per completare la View, non tutti i dispositivi hanno la stesse dimensioni, sopratutto in altezza. Contenuti come questi possono variare di molto anche in base alla mole dei dati che visualizzano, è necessario quindi che vi sia la possibilità di scrollare la view quando i dati non riescono ad essere rappresentati per intero. Notoriamente utilizzare una ScrollView su UIKit è sempre stato un incubo, fortunatamente in SwiftUI è una manna dal cielo, l’unica cosa da fare è racchiudere il VStack in una ScrollView, senza preoccuparsi di altro.

struct CoffeeDetail: View {
    var coffee: Coffee    
    var body: some View {
        ScrollView {
            VStack(alignment: .leading) {
                RoundImage(imageName: coffee.photo)                
                Text(coffee.description)
                    .font(.body)              

                Divider()                

                Text("Ingredients")
                    .font(.headline)                

                IngredientsList(ingredients: coffee.ingredients)              
            }
            .padding(.all)
            .navigationBarTitle(coffee.name)
        }
    }
}

Adesso non manca che visualizzare il dettaglio corretto quando viene selezionato un elemento dalla lista, il NavigationLink è l’elemento preposto per questo scopo, a noi occorre un NavigationLink specifico per ciascun elemento della lista. In ContentRow sostituite la riga contente CoffeeRow con:

NavigationLink(destination: CoffeeDetail(coffee: coffee)) {
                                CoffeeRow(coffee: coffee)
                            }

Immediatamente nel preview comparirà il classico disclosure indicator per ciascuna cella lista. 

Provata a far partire l’App sul simulatore e adesso potete navigare avanti e indietro tra tutti i caffè della lista.

In breve tempo siamo riusciti a creare un’App, seppur semplice, ma che ha la struttura classica della maggior parte delle App per iOS. Spero di avervi fatto percepire le enormi potenzialità di SwiftUI, che pur essendo agli inizi già è in grado di velocizzare notevolmente la creazione delle interfacce. Ancora non è possibile utilizzare SwiftUI per sviluppare qualsiasi tipo di applicazione, ci sono ancora molti casi in cui è più semplice utilizzare UIKit per lo stesso task, ma già dalla versione 2.0 presentata quest’anno al WWDC sono stati introdotte notevoli migliorie e nuovi componenti, indicando che la strada tracciata è la stessa intrapresa diversi anni fa con Swift. 

Ovviamente ci sono ancora moltissimi aspetti di SwiftUI che andrebbero affrontati, ma questa voleva semplice essere una introduzione per eventualmente stimolare la vostra curiosità ad andare più a fondo, perché se non sarà tra un anno o due, la sensazione è che “questa è la via”. 😉

Noi in Oimmei siamo stati abbastanza “folli” da utilizzare SwiftUI per una delle ultime applicazioni che ci hanno richiesto, Kil0, sinceramente non è stato semplice, ma abbiamo imparata veramente tanto. Se me la sentirei di consigliare adesso lo sviluppo di un’App completa e “complessa” come Kil0? Sinceramente io fossi in voi aspetterei di poter supportare da iOS 14 in su… ma iniziate subito a prendere familiarità con la tecnologia, create un widget, utilizzate SwiftUI per alcune view o parti della vostra app in UIKit, e sicuramente ne sarete ripagati.

Simone Figliè

Perché installare Immuni e cestinare FaceApp

ImmuniVSFaceApp_feautured

Lockdown di 2 mesi? Focolai di Covid nel Bel Paese? E’ davvero tutto passato?
A leggere i dati dei downloads dell’App Immuni sembrerebbe di sì, solo 8 italiani su 100 l’hanno scaricata, per adesso quindi un flop colossale e le innumerevoli polemiche sui ritardi (quando la paura faceva 90) naufragate sulle spiagge italiane.
E’ davvero tutta colpa della privacy? E allora come la mettiamo con il caso privacy di FaceApp? Proviamo a fare un pò di chiarezza.

A partire dal 15 giugno il garante della protezione dei dati personali ha autorizzato l’utilizzo di Immuni, l’app nata dall’esigenza di avere un ulteriore strumento per controllare la diffusione del Covid-19 e che ha mosso varie polemiche riguardo al trattamento dei dati degli utenti. Una polemica che appare strana se pensiamo che ogni giorno utilizziamo app come Facebook o Google che mettono a rischio dati sensibili (informazioni personali, localizzazione) o ancora più assurda se osserviamo il successo di un’app molto famosa al momento, FaceApp, in cima alla classifica delle app più scaricate del 2020 nonostante grosse lacune in termini di privacy.

Vediamole entrambe nel dettaglio, mettendo in luce quanto davvero ciascuna di loro si impegna a rispettare il trattamento dei dati personali dei suoi utenti.

FaceApp è un software di fotoritocco creata da Wireless Lab, società con sede a San Pietroburgo. Dopo il boom dello scorso anno, grazie all’introduzione del nuovo filtro di cambio sesso, FaceApp è ritornata prepotentemente a inondare le home di FB e IG, scalando la vetta delle app più scaricate.

Pochi secondi e potete vedervi nei panni del vostro alter-ego uomo o donna.
Si ok, molto divertente, ma che fine fanno le foto? E la privacy viene rispettata?

Queste domande erano già sorte lo scorso anno, creando un problema agli sviluppatori, che hanno risolto introducendo nuove regole di protezione dati: le vostre foto e tutte le informazioni raccolte, verranno usate e messe in giacenza per non più di 24-48 ore, con possibilità di cancellazione dei dati dal cloud entro appunto questo termine.

Leggendo la privacy policy però si evince altro: le vostre foto possono essere utilizzate sia dagli sviluppatori dell’app, sia cedute a terzi, i cosiddetti “affiliati”, i quali posso utilizzare queste informazioni per aiutare a fornire il servizio dell’applicazione stessa. Inoltre quando scaricate FaceApp, viene consentito libero acceso alla vostra galleria personale: informazioni e volti di amici e parenti vengono acquisiti all’applicazione, senza dimenticare che la maggior parte delle foto sono geolocalizzate.

Tutto chiaro? Bene, adesso invece parliamo di Immuni.

Immuni è un’applicazione sviluppata da Bending Spoons, software house milanese, e voluta dal Ministero della Salute per identificare nuovi contagi da Covid-19. Una volta scaricata viene generato un codice numerico non tracciabile, senza così usare dati sensibili, nè informazioni di geolocalizzazione.
Le informazioni raccolte vengono direttamente inviate all’Istituto Superiore di Sanità, tutto nella completa anonimia.

Attraverso un sistema Bluetooth Low Energy l’app connette due telefoni che si trovano a poca distanza l’uno dall’altro e nel caso in cui uno dei due venga a contatto con una persona positiva al coronavirus, verrà avvertito tramite notifica.

In sintesi l’app non registra i vostri dati, tanto meno quelli dei vostri contatti, l’app è anonima e l’anonimato rimane anche quando viene inviata la notifica, grazie al codice numerico non tracciabile.

Immuni non è divertente come FaceApp, ma forse può salvarvi da un possibile contagio da coronavirus e scongiurare un nuovo lockdown. Quindi alla luce dei dati emersi (solo 8 italiani su 100 hanno scaricato Immuni), per gli italiani è più importante il divertimento o la salute?

7 motivi per cui Slack è tool perfetto per lo smartworking

slack_oimmei

Slack è probabilmente il tool che utilizziamo maggiormente durante questo periodo di homeworking!
Se non lo conoscete, è uno strumento di collaborazione aziendale, sia per l’organizzazione del team ma anche per la gestione del lavoro e la comunicazione relativa ai progetti in corso. Un tool che mira a migliorare la produttività del gruppo di lavoro e a mantenerlo in contatto e concentrato sugli obiettivi.
È ideale per lavorare in remoto perché con le sue funzionalità ti mette in connessione con i tuoi colleghi e clienti sia dal tuo smartphone che dal tuo pc, eliminando la scocciatura di infine catene di email per discutere di un progetto o contattare il cliente.

Ecco 7 ottime ragioni per cui Slack è indispensabile per lo smartworking:

  1. Canali: per organizzare il lavoro. Possono essere creati per argomento, per team o per progetto. La conversazione sarà così focalizzata solo su un certo argomento.
  2. Videochiamate: perfette per riunioni da remoto, sia col team che col cliente. Slack permette anche di condividere lo schermo!
  3. Elementi salvati: solo tu puoi vederli e sono utili per salvarti conversazioni o file da poter guardare più approfonditamente in un secondo momento.
  4. Integrare app: questo tool permette di connettere molte altre app per rendere il lavoro più produttivo
  5. Privacy e sicurezza: canali privati e protezione dei dati per rendere il lavoro sicuro
  6. Multipiattaforma: questa funzionalità è indispensabile per essere sempre sul pezzo. Utilizzabile sia da desktop che da smartphone
  7. File: dato che questo tool nasce proprio per il lavoro, supporta l’invio di file di ogni tipo anche di grandi dimensioni.

10 ragioni per iniziare a usare Evernote

evernote_Oimmei

Evernote è sicuramente uno dei nostri strumenti preferiti.
È uno strumento dedicato alla produttività e all’organizzazione del lavoro ma anche delle proprie attività, pensieri e idee. Infatti si fonda principalmente sulla possibilità di scrivere annotazioni in modo semplice e veloce. Quindi può essere utilizzato per prendere appunti, non perdere le idee che ci sono venute in mente ma anche per creare progetti, programmare attività e creare documenti strutturati  (come file di progetto o piani editoriali) che possiamo condividere all’interno del team ma anche con il cliente.
Le funzionalità di Evernote sono davvero ampie e sono trasversali: per fare un esempio una semplice nota può essere composta da testo, elementi come per esempio tabelle, ma anche note vocali, file, screenshot e possono essere collegate alle tue attività programmate su Google Calendar (potrebbe essere utile per realizzare una nota di riunione!)

Dopo questa breve presentazione, vi diamo 10 ottime ragioni per cui questo tool non può mancare sui vostri dispositivi:

  1. Note…ma non solo: non è solo un tool in cui scrivere e appuntare, si possono anche inserire file, foto e persino note vocali! La nostra nota sarà così perfettamente completa
  2. To do list e promemoria: ottime funzionalità per aiutarti con le cose da fare e le scadenze di un progetto… e perché no, anche per la lista della spesa!
  3. Modelli: per note più efficaci Evernote offre una vasta gamma di modelli tra cui scegliere, divisi anche per tipologia: lavoro, scuola, project management, incontri e gestione delle risorse, per dirne alcuni.
  4. Tag e Taccuini: non basta scrivere e creare note, serve anche mantenere l’ordine. Per questo arrivano in aiuto i tag e i taccuini che permettono di organizzare al meglio idee e progetti.
  5. Condividi: i tuoi pensieri, le tue note, i tuoi progetti possono essere condivisi con chi vuoi, anche con chi non ha un account.
  6. Web clipper: una funzionalità davvero utile che ti permettere di catturare pagine, articoli, immagini e molto altro dal tuo browser ed averlo direttamente su Evernote.
  7. Scansione: dalla versione smartphone è possibile fare la scansione di documenti tramite la fotocamera. Il risultato è davvero ottimo!
  8. Multipiattaforma: questo tool è sempre con te, oltre alla possibilità di utilizzare Evernote tramite il tuo browser preferito, può averla con te su qualsiasi dispositivo tu stia utilizzando. Infatti ha una sua versione per smartphone ma anche per desktop.
  9. Archiviazione sicura: se stai lavorando ad un progetto top-secret o stai scrivendo i tuoi pensieri e non vuoi rischiare che qualcuno li veda, puoi stare tranquillo con Evernote.
  10. Scrittura manuale: nella versione smartphone è presente questa funzionalità che è davvero utile per appunti veloci, schemi o disegni.

6 buoni motivi per usare Telegram

telegram_oimmei

Telegram è una delle nostre app preferite: la utilizziamo per il lavoro ma anche nella quotidianità. Le sue funzionalità infatti la rendono davvero utile per comunicare tra i membri del team o per contattare i nostri clienti e parlare del progetto in sviluppo. Ma è anche divertente e piacevole da utilizzare ogni giorno.

Se già non la conosci, te la presentiamo brevemente.
Si tratta di un’app di messaggistica molto utilizzata, che fa concorrenza anche al colosso Whatsapp. Permette di inviare messaggi, note vocali e anche di fare chiamate. Fa della privacy il suo cavallo di battaglia e si rivolge alle esigenze di un pubblico ampio: è perfetta per le comunicazioni di lavoro, con i clienti o con il team, ma è anche ricca di elementi coinvolgenti come gli stickers o i canali, che rendono l’uso di Telegram piacevole e unico.
Ah, quasi dimenticavamo… è gratuita!

Ecco quindi i nostri 6 buoni motivi per scaricarla e utilizzarla!

  1. Multipiattaforma: quest’app può esse utilizzata sia su smartphone, tablet e in versione desktop senza perdere di potenza! Offre la comodità di poter accedere ai nostri messaggi da qualsiasi piattaforma vogliamo.
  2. Invio di file: uno dei pregi più importanti di Telegram, che la rende un’app ottimale per il lavoro, è la possibilità di condividere file di ogni genere: immagini, video, documenti e anche file più strutturati e di dimensioni maggiori. Quindi nessun problema se volete inviare documenti relativi ad un progetto ad un cliente.
  3. Chiamate: oltre ad inviare messaggi è possibile anche telefonare, ovviamente gratuitamente! Senza spostarsi dall’applicazione si può passare da una chat ad una conversazione telefonica senza nessun costo di chiamata.
  4. Sicurezza: molte app di messaggistica promettono privacy e sicurezza…ma spesso sono promesse vane. Telegram invece fa della privacy il proprio fiore all’occhiello: i vostri messaggi sono sicuri e protetti.
  5. Canali: oltre a poter creare chat di gruppo, Telegram ha anche una caratteristica in più, i canali: conversazioni in cui una sola persona pubblica messaggi e contenuti multimediali e gli altri lo seguono. Ci sono canali di varie tipologie, così è possibile accedere ad informazioni di ogni genere in base ai propri interessi.
  6. Stickers: non sottovalutate il potere degli stickers! Le vostre conversazioni saranno animate dai meravigliosi stickers di Telegram e, se siete degli smanettoni, potrete crearli anche voi stessi per averli personalizzati!

Anche i più affezionati seguaci di Whatsapp potrebbero ricredersi una volta provato Telegram!

Il nostro omaggio ad Amedeo Modigliani

ModiglianiLivorno_24gennaio

Per celebrare i cento anni dalla morte di Amedeo Modigliani, artista livornese, Oimmei ha deciso di creare un’app: Modigliani Livorno. Vi raccontiamo com’è nata l’idea e cosa vogliamo offrire con quest’app, ma anche tutta l’esperienza che ci ha permesso di crearla e la passione e le competenze che abbiamo messo per renderla un prodotto al top!

1920 – 2020. Cento anni dalla morte di Amedeo Modigliani

Il 24 gennaio 2020 ricorrono i cento anni dalla morte di Amedeo Modigliani. Nel 1920 a soli 35 anni l’artista livornese moriva a Parigi per le complicazioni della tubercolosi.
Livorno gli ha reso omaggio con una grande mostra e tante iniziative.
Anche noi di Oimmei abbiamo deciso di ricordarlo, tramite quello che sappiamo fare meglio: un app, Modigliani Livorno.

Com’è nata l’idea?

In occasione del centenario della morte di Modigliani abbiamo deciso di fare un regalo alla città e un omaggio originale al nostro illustre concittadino: un’app nativa, completamente gratuita, disponibile sia per iOS che per Android.
Siamo partiti da quello che Livorno offriva e ci siamo resi conto che non c’era uno strumento digitale che permettesse ad un pubblico ampio (dal cittadino livornese al turista straniero) di scoprire o riscoprire questo grande artista. Soprattutto non c’era niente che offrisse un’opportunità di ricevere informazioni ma in modo autonomo e persino divertendosi!
Ogni giorno usiamo il nostro smartphone, usiamo app e navighiamo… perché quindi non potrebbe esserci anche un’app che parla di cultura e che lo faccia tramite un gioco?

Dall’idea all’app. L’importanza della nostra esperienza

Le caratteristiche del progetto Modigliani Livorno avevano radici profonde nella nostra esperienza passata. Facciamo un passo indietro per spiegarvi meglio.

Il 19 Agosto 2014 ci iscrivemmo ad Hack4Pisa un contest del Polo Tecnologico di Navacchio in collaborazione con Europeana, fondazione europea per la diffusione dei beni culturali. Il contest era mirato a supportare la nascite di idee creative per favorire la conoscenza del ricco archivio di Europeana.
É lì che si trova il primo seme di Modigliani Livorno, utilizzare le App per coinvolgere l’utente alla scoperta di luoghi conosciuti e non, il prototipo dell’applicazione infatti permetteva al turista di andare alla scoperta dei punti di interesse della città e di giocare attraverso quiz e cacce al tesoro.
L’altro tassello del puzzle si compose dal 2 Febbraio del 2015, quando David, CEO di una Startup nascente, Muzeums, apprezzando il lavoro su Europeana che andammo a presentare ad un’altro contest a Manchester, ci chiese di occuparci del progetto. Muzeums è un’app per la fruizione di contenuti museali ed al suo interno abbiamo sviluppato un’ampia sezione con caccia al tesoro e trivia vari.

Scoprire luoghi, caccia al tesoro, rapportarsi con contenuti culturali… tutto torna, no? Bene, adesso torniamo ai giorni nostri…

Passione e creatività

Con l’impegno di ogni singolo membro del team abbiamo realizzato Modigliani Livorno.
É un app completamente auto-prodotta da Oimmei, in cui ogni membro del team ha messo le sue conoscenze e le sue capacità: sviluppo app, web e server; realizzazione di grafiche personalizzate e creative; creazione di testi nati da una ricerca attenta. Il tutto sempre con la passione che ci contraddistingue per creare prodotti innovativi, creativi e che soddisfino gli utenti.

Già in moltissimi hanno scaricato la nostra app, se ancora non lo avete fatto vi suggeriamo di dare un’occhiata ai nostri articoli precedenti che la presentano. In particolare “Gioca con Modigliani Livorno” che vi racconta tutti i passaggi del gioco (senza spoiler!!) per avere un’esperienza completa di gioco.
E infine indirizzavi sul sito dedicato che racconta il progetto e sugli store per iniziare a giocare con Modigliani Livorno scaricando l’app gratuitamente!

Scopri il sito dedicato alla nostra app https://livorno.modigliani.app
L’app è gratuita, divertiti a giocare!
Android – iOS

Scala la classifica di Modigliani Livorno

ModiglianiLivorno_Classifica_Facebook

Modigliani Livorno è una sfida: luoghi scoperti e oggetti ritrovati generano punti.
Controlla i tuoi progressi e la tua posizione nella classifica mondiale degli utenti che come te stanno esplorando la città e diventa il miglior Modì Explorer!

Come ti abbiamo spiegato nell’articolo precedente (clicca qui se te lo sei perso!) l’app è un gioco e ti mette alla prova nel cercare luoghi segreti a Livorno, risolvere indizi e scovare oggetti nascosti

Tutto questo genera dei punti che ti permetteranno di scalare la classifica nella sfida con tutti gli utenti che come te stanno esplorando la città e cercando di essere i migliori Modì Explorer.

Nel calcolo del punteggio incide quanti luoghi e oggetti hai ritrovato ma anche quando tempo ci hai messo per farlo: se qualcuno è stato più veloce di te a risolvere l’indizio e a ritrovare l’oggetto nascosto, avrà fatto più punti di te!

Nella sezione Progressi potrai controllare a che punto dell’esplorazione ti trovi, quanti luoghi ancora ti mancano da scoprire. Inoltre potrai vedere il tuo punteggio e la tua posizione in classifica, scoprendo il punteggio dei tuoi sfidanti.

Pronto per essere il numero 1?!?!

Scopri il sito dedicato alla nostra app https://livorno.modigliani.app
L’app è gratuita, divertiti a giocare!
AndroidiOS

Gioca con Modigliani Livorno

ModiglianiLivorno_Gioco_Oimmei

Modigliani Livorno è un omaggio a Modigliani, un’occasione per conoscere meglio un grande artista…ma anche un gioco!
Ecco le istruzioni per giocare al meglio!

Il vero cuore dell’app è la mappa, a cui si accede toccando il bottone I Luoghi, tra La Storia e Classifica, che vedi nella barra in basso sullo schermo.
Ti verrà chiesto di scegliere il tuo nickname, ovvero il nome con cui vorrai essere identificato nel gioco. Puoi scegliere quello che viene indicato di default oppure modificarlo in seguito dalla sezione Classifica.

Dalla mappa ha inizio la tua esplorazione di Livorno, la ricerca di quei luoghi che possono raccontarti un pezzetto della vita di Amedeo Modigliani.

Ecco una guida per imparare a giocare al meglio con la nostra app!

Step 1 – I primi 5 luoghi da scoprire

Ci sono 5 luoghi segnalati con un simbolo sulla mappa. Dovrai raggiungerli fisicamente, esplorando la città, per scoprire cos’hanno da raccontarti su Modigliani e come possono aiutarti a scoprire altri luoghi legati all’artista.

  • Per giocare devi essere a Livorno…non si è mai vista una caccia al tesoro a distanza, no?
  • Il punto di partenza dell’esplorazione sono i luoghi che vedi sulla mappa, indicati da dei simboli colorati. Sono 5, di cinque colori differenti (blu, rosso, giallo, verde e celeste), e ciascuno di loro è posizionato sulla mappa in corrispondenza del luogo che dovrai raggiungere fisicamente.
  • Cliccando su uno dei simboli che vedi sulla mappa, potrai visualizzare l’indirizzo per aiutarti a raggiungerlo.
  • Ogni luogo, una volta raggiunto ti mostrerà un testo che ti racconterà qualcosa in più sulla storia dell’artista.

Step 2 – Scopri i luoghi segreti

I luoghi principali sbloccano altri luoghi segreti nelle loro vicinanze. Per completare l’esplorazione dell’area, ovvero scoprire tutti i punti accomunati dallo stesso colore, trova i luoghi segreti!

  • Quando avrai raggiunto uno dei luoghi visibili, sbloccherai i punti di interesse nei d’intorni, sono i luoghi segreti. Sono identificati da aree colorate dello stesso colore del luogo principale.
  • Raggiungendo ogni area, troverai il luogo segreto e potrai accedere al nuovo contenuto testuale che ti racconterà perché quel posto è importante per Modigliani. Il luogo segreto scoperto è indicato sulla mappa con un simbolo del colore dell’area che stai esplorando, con una chiave al suo interno.
  • Trova tutti i luoghi segreti per completare l’esplorazione di un’area.

Step 3 – Indizi e oggetti nascosti

Una volta trovati tutti i luoghi dell’area che stavi esplorando, il gioco si fa duro: arrivano gli indizi! Se riuscirai a risolverli, potrai trovare gli oggetti nascosti!

  • Hai trovato tutti i luoghi segreti e hai completato l’esplorazione di quell’area.
  • Adesso mettiti alla prova con gli indizi: sono degli indovinelli da risolvere per poter capire dove abbiamo nascosto alcuni oggetti legati a Modigliani.
  • Se hai capito in che luogo è nascosto l’oggetto, raggiungilo e scopri se hai ragione!
  • Quando avrai scoperto tutti i luoghi segreti di tutte le aree da esplorare, e avrai risolto tutti gli indizi e trovato tutti gli oggetti segreti… ti aspetta l’ultimo indizio che ti porterà a trovare (se sarai bravo!) l’ultimo oggetto nascosto, il più importante!

Fatti aiutare dal drawer!

Per guidarti nell’esplorazione, usa il drawer, il cassetto al quale puoi accedere trascinando verso l’alto la barrettina grigia che nella parte basse della mappa. É uno strumento prezioso che ti aiuta a capire a che punto sei! Ecco cosa puoi trovare nel drawer

  • I luoghi principali da cui partire, con il loro indirizzo
  • Una breve frase che ti dà indicazioni sulla tua situazione e su come proseguire
  • Se vedi tanti punti di domanda vuol dire che ancora quell’area è inesplorata
  • Pennello: hai trovato il primo luogo, quello visibile
  • Chiave: hai trovato uno o più luoghi segreti
  • Lente d’ingrandimento: sei arrivato all’indizio
  • L’ultimo simbolo è l’oggetto segreto… e certo non ti diremo cosa troverai, non vogliamo toglierti il divertimento!
  • Se i simboli lampeggiano, vuol dire che non hai letto il testo a cui danno accesso. Clicca sul simbolo lampeggiante per leggere l’articolo o l’indizio.

Bene, sei pronto a giocare davvero?
Scarica subito l’app per metterti alla prova!

Scopri il sito dedicato alla nostra app https://livorno.modigliani.app
L’app è gratuita, divertiti a giocare!
AndroidiOS

Modigliani Livorno. Tutto sulla vita e la carriera di Modigliani

ModiglianiLivorno_Storia_01

Sulla Storia ripercorri le tappe principali della vita di Modigliani, tra Livorno e Parigi, tra mito e realtà, e l’evoluzione della sua carriera artistica. Puoi consultare questi approfondimenti ovunque tu ti trovi, comodamente dal tuo smartphone.

Se prima di avventurarti alla ricerca dei luoghi di Modigliani vuoi saperne di più sull’artista, fai tap sulla Storia. Qui, per capitoli, puoi ripercorrere la storia di Modigliani e il suo percorso artistico. Non si tratta di un semplice resoconto ma abbiamo pensato di mettere in luce gli elementi fondamentali per comprendere chi era Modigliani.
Troverai molte informazioni risapute ma magari anche qualche informazione che non conoscevi o più curiosa.
Facciamo qualche esempio, senza però raccontarti troppo altrimenti ti toglieremmo il gusto della scoperta!

La famiglia Garsin era davvero molto colta. Furono la madre Eugenia e il nonno Isacco a occuparsi della cultura del giovane Amedeo che infatti si face notare sempre per le sue conoscenze di letteratura, di filosofia e per la sua padronanza del francese.

Modigliani ebbe la possibilità di visitare molti luoghi: il centro sud Italia, Firenze, Venezia, Parigi, il sud della Francia. Ognuno di questi luoghi ha contribuito a creare un bagaglio di modelli artistici molto vasto che ha dato origine ad uno stile unico.

Modigliani non amava dipingere paesaggi e infatti abbiamo solo pochissimi esempi di pitture di paesaggio: uno dei tempi della scuola di pittura e alcuni degli ultimi anni di vita.

Queste sono alcune delle curiosità e degli approfondimenti che potrai trovare nei capitoli della Storia.
Per scoprirli tutti scarica l’app!

Scopri il sito dedicato alla nostra app https://livorno.modigliani.app
L’app è gratuita, divertiti a giocare!
AndroidiOS

Modigliani Livorno. L’app che non puoi perdere!

Oimmei_ModiglianiLivornoApp

É arrivata Modigliani Livorno!
L’app che ti porterà alla scoperta della Livorno di Amedeo Modigliani, un tour per conoscere l’artista e la sua città natale.
Gratuita e disponibile per iOS e Android
, Modigliani Livorno ti aspetta sugli store!

Amedeo Modigliani è nato a Livorno ma è stato sempre troppo poco presente nella sua città e spesso conosciuto più per la leggenda che lo riguarda che per la sua vera storia. Se si pensa a Modigliani si pensa a Parigi e pochi conoscono l’importanza di Livorno nella sua vita. Qui non è solo nato, ma sono avvenuti episodi centrali nella sua vita, ci sono stati dei personaggi imprescindibili per il suo futuro e qui si è formato, sia culturalmente che artisticamente.

Allora ci siamo detti: perché non creare uno strumento facile da usare, innovativo e coinvolgente che permetta a tutti di conoscere meglio questo artista e la sua storia collegata a Livorno? Un regalo per la nostra città e un omaggio al grande artista livornese.

SchermateApp_ModiglianiLivorno_Oimmei

Ecco, così è nata Modigliani Livorno, l’app che ti accompagna alla scoperta dei luoghi di Modigliani a Livorno. Uno strumento che propone un approccio interattivo e innovativo al mondo artistico culturale, in cui l’utente si senta al centro. 
Perché l’app non solo ti invita a recarti nei luoghi di Livorno che abbiamo scelto come i più significativi per la vita dell’artista e che ti raccontiamo tramite un testo, ma ti invita anche a divertirti. Oltre ai luoghi, infatti, ci sono oggetti nascosti che completano la tua ricerca, ma non saranno così facili da trovare: ci sono degli indovinelli da risolvere! Ogni luogo trovato e ogni oggetto nascosto scoperto ti faranno accumulare punti e scalare la classifica degli utenti che stanno esplorando Livorno come te.
Non solo curiosità e approfondimenti ma anche coinvolgimento e divertimento.

Quest’app ha coinvolto ogni reparto del team di Oimmei e noi ne siamo molto orgogliosi. Speriamo vi piaccia tanto quanto a noi!

Scopri il sito dedicato alla nostra app https://livorno.modigliani.app
L’app è gratuita, divertiti a giocare!
AndroidiOS

App B On Time Livorno

  • App B On Time Livorno
  • App B On Time Livorno
  • App B On Time Livorno

Abbiamo rivoluzionato l’App del trasporto pubblico della provincia di Livorno.

Speriamo tanto che vi piaccia e che vi sia utile nei vostri spostamenti giornalieri, stiamo già pensando a miglioramenti e nuovi sviluppi per renderla ancora più eccezionale!
Ovviamente i vostri feedback sono i benvenuti..e anche le recensioni positive sugli store!! 😛

La prima uscita in pubblico sarà domani 13 Aprile presso il Comune di San Vincenzo, alle ore 12.00, aprirà l’evento Alessandro Bandini, Sindaco di San Vincenzo. 
Siete tutti invitati all’evento.

B On Time è un’App per la consultazione degli orari del trasporto pubblico locale della Provincia di Livorno (Livorno, Piombino, Cecina, Rosignano, Portoferraio, Elba, Capraia, Val di Cornia) svolto dalle società Ctt nord (ex ATL ) e Tiemme (ex ATM).

Con B On Time è possibile oltre a consultare orari e linee, cercare le rivendite più vicine o acquistare direttamente i titoli di viaggio, pianificare i viaggi con il travel planner, ricevere informazioni in tempo reale sul servizio, ricevere informazioni personalizzate attraverso l’utilizzo dei beacon alla fermata e sul mezzo.

Funzionalità

• ORARIO PROGRAMMATO: Possibilità di consultare gli orari alle singole fermate come programmati

• TEMPO REALE: Possibilità di ricevere direttamente sull’App informazioni sui prossimi passaggi in tempo reale alla singola fermata

• PIANO DELLE LINEE: Possibilità di visualizzare l’elenco delle linee e il dettaglio di ogni singola linea del trasporto pubblico

• TRAVEL PLANNER: Possibilità di pianificare gli spostamenti attraverso la funzione di travel planner da/ per integrata

• FERMATE: Ricerca e visualizzazione delle fermate più vicine

• RIVENDITE: Ricerca e visualizzazione delle Rivendite più vicine

• TITOLI DI VIAGGIO: Acquisto dei titoli di viaggio per tutte le tratte supportate dalla piattaforma tramite sistema di sms integrato.

• AVVISI: Possibilità di consultare gli avvisi dei gestori del trasporto pubblico locale della Provincia di Livorno

 

Scarica adesso a questo indirizzo

http://www.bontime.it/

 

bontime schermate

Sviluppo App oltre i confini di Livorno, Premio CambiaMenti 2017

Premio Cambiamenti Cna Livorno Oimmei Sviluppo App

Lunedì pomeriggio siamo stati premiati per lo sviluppo App con servizi offerti dalla Cna e con  il passaggio alla fase regionale alla seconda edizione del Premio CambiaMenti Cna.

Anche quest’anno si è svolta l’iniziativa del Premio Cambiamenti organizzata da Cna, concorso nazionale arrivato alla sua seconda edizione che intende premiare le imprese nate negli ultimi tre anni che riescono a rinnovarsi, reinventarsi, che hanno passione e creatività. La Cna (Confederazione Nazionale dell’Artigianato) da settant’anni ha lo scopo di dare valore alle piccole e medie imprese e all’artigianato, promuovendo lo sviluppo sociale e il progresso economico. La Cna anche quest’anno ha deciso di sostenere Cambiamenti (2017) che ha l’obiettivo di offrire visibilità alle aziende e di riconoscere i loro meriti.

Siamo stati premiati per la qualità dei prodotti che sono riusciti ad arrivare oltre il nostro territorio, infatti grazie alla nostra specializzazione nello sviluppo app e web application siamo riusciti a conquistare non solo clienti a Livorno ma anche all’estero. Così come è scritto nel post condiviso proprio dal profilo Facebook ufficiale della Cna:

“Medaglia d’argento alla Oimmei srl nel Premio CambiaMenti, il concorso lanciato a livello nazionale da Cna per premiare le aziende più originali e innovative. Nella tappa livornese del premio Luca Finocchiaro nei tre minuti dati a disposizione dalla giuria per presentare l’azienda ha trasmesso tutta l’innovatività e creatività che i 4 soci ed il team dell’azienda mettono quotidianamente nello studio e lo sviluppo app per i propri clienti che molto spesso varcano i confini non solo regionali ma nazionali.”

 

La nostra è un’azienda livornese concentrata sulle tecnologie più recenti specializzata nello sviluppo app e web application ma diamo anche particolare attenzione all’esperienza degli utenti e alla usabilità. Grazie allo sviluppo delle nuove tecnologie e del web che sta caratterizzando il mondo il nostro lavoro può riferirsi a chiunque, per questo i nostri servizi sono rivolti non solo a Livorno e all’Italia ma anche ai paesi all’estero.

Ringraziamo per tutto il sostegno ricevuto fino ad ora e che speriamo di ricevere anche a Firenze!

 

Parlano di noi:

Premiate le tre imprese più innovative della provincia (Qui Livorno)

 

We Are Oimmei!

oimmei team agency

 

Chi siamo?
Oimmei! Si pronuncia O-I-M-M-E-I [ôimmèi]

Da quanto siete sul mercato?
Ufficialmente ci siamo costituiti come società da meno di un anno, dopo esperienze simili che sono passate tutte da un percorso in altre aziende prima e come liberi professionisti dopo.

Cosa facciamo
La nostra attività è incentrata sullo sviluppo App e soluzioni mobile, sviluppo di portali e gestionali web e anche siti web e comunicazione. Siamo sempre alla ricerca di nuovi partners e di progetti interessanti da coltivare, progetti che ci dànno la possibilità di crescere professionalmente, allargare la nostra rete, affrontare nuove sfide ed implementare soluzioni tecnologiche innovative.

Perché in Italia?
Lavorare in Italia non é mai stato semplice. Decidere di fare base a Livorno è una sfida. Ma è qui che abbiamo le nostre radici ed è solo qui che Oimmei poteva nascere.

Perché vi piace il vostro lavoro?
Perché invece di lavorare giochiamo! Siamo immersi tutti i giorni in nuove tecnologie, ed ogni novità è uno stimolo per scoprire nuove frontiere tecnologiche: il gioco a volte può essere duro, impegnativo, con regole complicate, ma alla fine della giornata è questo che rimane, la soddisfazione di aver creato del valore per gli altri e per noi stessi.

Quanto costa fare un’App o progetto da voi?
Questa è la domanda più ricorrente, la risposta è: dipende! Sono talmente tante le variabili che entrano in gioco che è impossibile semplificare e rispondere con una cifra secca.
Per ogni progetto vale lo stesso principio, lo valutiamo a fondo, le sue difficoltà, i suoi punti deboli e di forza, e soltanto dopo uno studio accurato riusciamo a dare una stima di massima. Per fare un’esempio, un’App può costare 2.000 euro come 30.000 euro, alcune delle variabili fondamentali sono la qualità richiesta, le piattaforme di sviluppo, le interazioni all’interno dell’App e con i Social, l’integrazione con eventuali siti web, le lingue utilizzate, solo per citarne solo alcune.

Quali sono gli ingredienti del successo di un progetto?
Il primo passo è pensare in grande ma partire in piccolo, il rischio più grande infatti è quello di voler fare tutto e subito, avere un’idea e pensare di realizzarla tutta insieme può essere molto pericoloso, perché si finisce per disperdere le energie e ottenere scarsi risultati. Il secondo è una buona progettazione, fondamentale per il successo di qualsiasi progetto, da quello più piccolo al nuovo rivale di Facebook. Progettare ed aver ben chiari fin dall’inizio i vari aspetti dell’App e come potrà evolversi in futuro è la chiave per non trovarsi davanti ad ostacoli imprevisti o ritardi mostruosi durante il cammino dello sviluppo. Il nostro motto è quindi, progettare bene e progettare a fondo, e solo dopo iniziare a “sporcarci le mani” scrivendo il codice.

Quale progetto vi è piaciuto di più finora e perché?
E’ veramente complicato rispondere! Ogni progetto è stato importante e ci ha lasciato qualcosa, è stato molto importante ad esempio trovare degli ottimi partners a Livorno come Inlinea Spa per cui abbiamo realizzato l’App AsteGiudiziarie, un portale dedicato agli annunci di beni in vendita all’asta, ma altrettanto importante è stato guardare fuori, all’estero, prima con il contest Apps4Europe di Manchester nel quale abbiamo presentato una nostra soluzione innovativa nell’ambito del turismo, che combina l’utilizzo degli OpenData e la nuova tecnologia iBeacon, Europeana Beacon appunto, e poi con Muzeums, una entusiasmante Startup con sede a Londra che si ripropone di rivoluzionare il modo con cui visiteremo un museo in futuro, con la quale abbiamo intrapreso un rapporto di stretta collaborazione che ci sta dando grandi soddisfazioni. Per finire non è possibile trascurare i progetti interni, quelli nati esclusivamente dalla nostra passione, come l’App Park And Share, per condividere con le persone più prossime il luogo esatto dove abbiamo parcheggiato l’auto l’ultima volta, e il portale Oggi A Teatro, un sito web dedicato alle attività teatrale su Livorno, che abbiamo regalato alla città.

Oimmei va all’Internet Festival, Tu vieni con Noi?

internet festival pisa

“Non si può fare a meno di Internet e delle nuove tecnologie, sarebbe fuori dal tempo. I servizi online aiutano a vivere meglio, accorciano tempi e spazi[…]”. Queste sono le parole di Vittorio Bugli, assessore ai sistemi informativi e alla partecipazione della Toscana, pronunciate nel corso della conferenza stampa di presentazione dell’Internet Festival 2014 a Pisa, svoltasi qualche settimana fa a Milano.

Un festival che animerà la città della Torre Pendente dal 9 al 12 Ottobre 2014 e che, vanta tra le fila dei suoi organizzatori, Fondazione Sistema Toscana, Comune di Pisa, Registro.it, Università di Pisa, Sant’Anna e Scuola Normale Superiore con anche la Camera di Commercio e l’Istituto di informatica e telematica del Cnr e numerosi altri partner e media-partner.

La parola chiave che farà da guida per l’edizione del 2014, terza edizione di svolgimento, è Materia; ossia quell’insieme di massa che plasma tutti i soggetti presenti al Festival, siano studenti, docenti, sviluppatori, politici, startupper o semplici cittadini, i quali potranno ascoltare o proporre in prima persona attività o azioni di rilievo per la comunità.

Durante i 4 giorni saranno trattate 8 aree tematiche come il Cooperation Wanted, il Culture is Smarter, il Play the Game, il Design to Innovate, il Take the Money, il Go Green, il Make it good(s) o il Tutorial Tour, all’interno delle quali si dibatterà con personaggi di primo livello come Adriano Fabris, Alex Giordano, John Mpaliza, Derrick de Kerckhove e molti altri. Alcuni incontri ai quali sarà interessante partecipare sono sicuramente “La strada del coltan; il lato B della tecnologia” o “inPITCHati!, Speed dating con mentori e investitori” per futuri startupper o ancora “Etica dei Social Media”, “Gamification for better Business” o “Brand resilienti e trasformazione”. A questi se ne aggiungono tantissimi altri per arrivare a 250 eventi di ogni genere e sorta consultabili sul sito del festival.

Ponte di Mezzo IFOgni evento avrà una sua location definita e sarà libero o riservato. L’Internet Festival prevede un coinvolgimento diretto della città della ex Repubblica Marinara; infatti le location scelte sono il Ponte di Mezzo o la Loggia dei Banchi, il famoso Polo Fibonacci, la Stazione Leopolda, la Scuola Superiore Sant’Anna e la Scuola Normale Superiore in Piazza dei Cavalieri. Altri ambienti meno conosciuti sono il Bastione Sangallo al Giardino Scotto o la Libreria Ubik in via dei Garofani. Ogni luogo sarà raggiungibile con lo shuttle di Internet Festival in partenza dalla stazione ferroviaria ogni ora.

Quindi, caro lettore/lettrice, che tu sia uno studente o un docente, uno sviluppatore o un professionista, un giovane in cerca d’ispirazione o un semplice cittadino amante della curiosità 2.0, sei invitato a immergerti nel flusso di eventi internettiani che Pisa, in quei giorni, regalerà alle persone presenti.

Di seguito lascio i contatti per visitare il sito della 3° Edizione dell’Internet Festival e delle pagine sui principali social media.

http://www.internetfestival.it/

https://www.facebook.com/internetfestival

https://twitter.com/Internetfest

http://instagram.com/internetfest

https://plus.google.com/105365920491501341949/posts

http://www.pinterest.com/internetfest/

https://www.youtube.com/user/internetfestival

https://www.flickr.com/photos/internetfestivalpisa/

https://it.foursquare.com/internetfest

Images courtesy of Repubblica.it

Ecco perché noi siamo entusiasti dell’Apple Watch

Lo scorso Martedì 9 Settembre 2014  si è tenuto, al Fleet Center di San Francisco, l’ attesissimo keynote Apple dove sono stati presentati i nuovi iPhone (iPhone6 e iPhone6 Plus), il nuovo sistema di pagamento Apple-Pay, ma soprattutto l’Apple Watch, la visione di Apple per i futuri smartwhatches. Noi di Oimmei siamo molto eccitati dalle novità presentate e vorremmo condividere con voi il perchè!

iPhone6 e iPhone6 Plus

Come è fatto l‘iPhone nuovo praticamente lo sapevamo già, ci auguriamo che Apple sposti presto tutta la produzione negli Stati Uniti come avviene per il MacPro, almeno tornerà il piacere di scoprire le novità il giorno del keynote. Tralasciando queste riflessioni personali da nostalgico, ci sono due aspetti che hanno stuzzicato la nostra curiosità: il nuovo processore M8 e il sistema Apple-Pay per gli sviluppatori.
Il primo è un evoluzione dell’M7 già presente nell‘iPhone5S che permette di raccogliere numerose informazioni sullo stato dell’attività dell’iPhone, come ad esempio quante rampe di scale abbiamo salito dall’inizio dell’allenamento, quante volte ci siamo alzati dalla sedia nell’ultimo periodo, etc… senza contare la possibilità di raccogliere informazioni GPS in base al tipo di attività che l’utente sta eseguendo (corsa a piedi, bicicletta, tragitto in auto). Grazie a queste informazioni sarà possibile scrivere nuove applicazioni di fitness o localizzazione molto più precise oppure modificare le informazioni in base all’attuale attività di una persona, come per esempio sarà possibile modificare il tipo di indicazioni di navigazione fornite durante il tragitto se l’utente scende dall’auto e prosegue a piedi, oppure in un’applicazione di allenamento differenziare il tipo di allenamento tra corsa a piedi, corsa sul tapis roulant, corsa in bicicletta.
L’ApplePay è invece la soluzione di Apple per i pagamenti, soluzione già sperimentata da Android con l’introduzione dell’NFC, ma che mai ha preso piede. Grazie alle capacità di Apple nelle partnership questa potrebbe essere la “volta buona”, ma a parte il suo utilizzo nei negozi fisici (che rimane un’implementazione esclusivamente di Apple), sarà possibile utilizzare lo stesso sistema di sicurezza anche per i pagamenti elettronici all’interno delle App, quindi non ci sarà più bisogno di ricorrere a servizi di terze parti (PayPal, Square, etc..), ma il pagamento potrà essere veicolato direttamente tramite gli strumenti forniti da Apple, e mediante autorizzazione tramite TouchID (l’impronta digitale) dell’utente. La novità per chi sviluppa App è enorme; la possibilità di creare applicazioni con pagamenti direttamente dall’App (pagare la corsa in taxi appena chiamato tramite l’App o il conto del ristorante che ho prenotato mediante l’App) senza che l’utente debba inserire i dati della propria carta di credito e non dovendosi preoccupare delle implicazioni di sicurezza (trasmissione dei dati a terzi per la verifica, salvataggio dei numeri di carta di credito, etc). La mia previsione è che vedremo sempre di più applicazioni che permetteranno di pagare “beni fisici” direttamente dall’App, soprattutto perchè gli utenti saranno più sicuri che i loro dati non saranno compromessi (hanno già utilizzato lo stesso metodo di pagamento sull’AppStore).

AppleWatch

Il tanto anticipato e sospirato iWatch è finalmente stato svelato, con tanto di standing ovation al momento dell’annuncio del “One More Thing”(frase che non era stata più usata dalla morte di Steve Jobs)  da parte di Tim Cook e a mio avviso non ha tradito le aspettative. Non mi lancerò in commenti riguardo la forma, le dimensione a quanto sia o meno fashion (sono pur sempre con l’animo abbastanza geek). Sapevo già che se il “cuore” dell’AppleWatch mi avesse convinto lo avrei acquistato a prescindere dal suo aspetto. Per una panoramica completa dei vari modelli, cinturini e altro è possibile sfogliare il bel mini-sito creato direttamente da Apple. A me interessa particolarmente le possibilità che si apriranno per noi sviluppatori; infatti a breve sarà possibile avere il WatchKit, ambiente di sviluppo per l’AppleWatch tramite il quale sarà possibile creare notifiche interattive, App complete oppure “glances”, ovvero la versione di AppleWatch dei widget che su iPhone saranno presenti nel Notification Center.
Qui ad Oimmei già ci frullano in testa una moltitudine di idee su come sarà possibile espandere le nostre applicazioni al di fuori dell’iPhone, per creare un’esperienza utente ancora più immediata e coinvolgente. Una cosa in particolare ha attirato la mia attenzione; sul retro della cassa dell’orologio sono presenti 4 sensori, 2 servono per rilevare il battito cardiaco e raccogliere informazioni riguardo allo stato di salute della persona, mentre gli altri 2 servono per inviare dei leggeri stimoli (come dei colpetti) all’utente. Apple ha mostrato il suo utilizzo per esempio nel caso in cui venga inviata una notifica oppure per informare l’utente durante la navigazione senza dover guardare costantemente l’orologio e ci siamo subito chiesti se sarà possibile utilizzare questa funzionalità anche all’esterno delle applicazioni “standard”. Con ciò sarebbe possibile creare un’App per inviare messaggi con il Codice Morse per esempio, oppure avvisare in maniera particolare l’utente nel caso che qualcosa di importante avvenga nell’app.
Più penso a quello che potrebbe essere fatto più idee mi vengono in mente, e non vedo l’ora che Apple rilasci il kit di sviluppo per poter capire esattamente quello che potrà e non potrà essere fatto.

Immagini tratte dal sito Apple.com