Contracts & Extensions: allargare i confini della propria applicazione (Win8@work)

Post on 06-Dec-2014

736 views 3 download

description

Con Windows 8 le applicazioni escono finalmente dal proprio guscio e lavorano in collaborazione con le altre e con i sistema operativo. Grazie ai Contract e alle Extension non è più necessario "reinventare la ruota" per consentire all'utente di personalizzare le impostazioni, effettuare ricerche, condividere informazioni, selezionare file da sorgenti locali e remote. Il sistema operativo diventa così una vera federazione di applicazioni.

transcript

@@Contracts & Extensions: allargare i confini della

propria applicazioneGiorgio Di Nardoblogs.ugidotnet.org/akelitz

giorgio.dinardo@domusdotnet.org@akelitz

@Grazie agli sponsor

@Contracts & ExtensionsL’uovo di colombo o la scoperta dall’acqua fredda?

SearchScatena il segugio che c’è in te!

Share Scopri perchè in Windows 8 1+1>2

SettingsTutte le impostazioni al posto giusto

Agenda

@ Contracts Accordo tra due app per fornire e

consumare uno dei servizi previsti in Windows 8

Definisce i requisiti che le due app devono soddisfare per interagire tra loro

Extensions Accordo tra un app e Windows 8 Consente di estendere e personalizzare

le funzionalità base di Windows 8 nella propria app

Contracts & Extensions: cioè?

@ Contracts Cached file updater File picker Play To Search Settings Share

Contracts & Extensions: quali?

Extensions Account picture

provider Background tasks Camera settings Contact picker File activation Game Explorer Print task settings Protocol activation SSL/certificates

@Search: il punto di vista dell’utente

DemoScatena il segugioche c’è in te!

@ Far apparire l’app tra quelle che supportano la ricerca nello charm Search

Effettuare la ricerca sia quando l’app è aperta che quando è chiusa

Mostrare i suggerimenti e tenere traccia dello storico

Search: obiettivi

@Search: il punto di vista dello sviluppatore

DemoScatena il segugioche c’è in te!

@ Utilizzate lo charm Search per consentire agli utenti di cercare nel contenuto dell’app

Se la ricerca è un prerequisto per l’uso dell’app, aggiungete un’icona di ricerca nell’app

Se la ricerca è lo scopo principale dell’app e volete fornire suggerimenti approfonditi, aggiungete una UI di ricerca personalizzata

Come implementare la ricerca

@ Se la ricerca non è lo scopo principale della propria app, non aggiungete una UI di ricerca nell’app

In ogni caso non mettete la UI di ricerca nell’App Bar

Non utilizzate lo charm Search per aggiungere funzionalità di“find-in-page" alla vostra app

Come non implementare la ricerca

@ Fornite sempre query suggestion per velocizzare la ricerca degli utenti

I query suggestion dovrebbero contenere il testo parziale inserito dall’utente

I query suggestion dovrebbero riflettere i risultati che l’app può fornire

Se l’utente seleziona un query suggestion, caricate direttamente la pagina dei risultati relativi al query suggestion selezionato

Linee guida per la UX: query suggestion

@ Se volete suggerire un risultato preciso e ben definito, fornite un result suggestion

Un result suggestion consiste in un’immagine, un titolo e una breve descrizione

Se l’utente seleziona un result suggestion, caricate direttamente il dettaglio del result suggestion selezionato, senza passare per la pagina con i risultati della ricerca

Linee guida per la UX: result suggestions

@ Fornite al massimo 5 suggestion, lo charm non ne mostrerà di più in ogni caso

Non usate le suggestion per filtrare o definire il campo di applicazione dei risultati

Per chiarire all’utente che tipo di testo può inserire, usate un placeholder per il campo di ricerca dello charm Search

Linee guida per la UX: suggestion & placeholder

@ Mostrate all’utente il testo ricercato Evitate di mettere risultati rilevanti

vicino al bordo destro dello schermo Consentite all’utente di filtrare i

risultati Evidenziate il motivo per cui un

particolare elemento è incluso nei risultati

Consentite all’utente di tornare alla pagina precedente ai risultati della ricerca

Linee guida per la UX: risultati

@ Abilitate il type-to-search Nella pagina principale dell’app Nella pagina che mostra i risultati della

ricerca Disabilitatelo in tutti i casi in cui

possa creare confusione per l’utente Quando sulla pagina ci sono input box Quando la pagina implementa il find-in-

page Quando la pagina presenta dati ristretti

ad un certo ambito

Linee guida per la UX: type-to-search

@ Assicuratevi di gestire appropriatamente la ricerca per un testo vuoto

Salvate lo stato precedente all’attivazione dell’app per Search

Prestate attenzione al passaggio dallo stato Snapped al FullScreen in fase di attivazione

Salvate risultati e filtri dell’ultima ricerca in caso di una successiva chiamata identica

Rispondere all’attivazione per Search

@Share: il punto di vista dell’utente

Demo

Scopri perchè in Windows 81+1>2

@Share: la matematica di Windows 8

Twitter

Mail

NewsFoto

@Share: come funziona

Registra l’evento DataRequested del

DataTransferManager

Riceve l’evento DataRequested e riempie

il relativo DataPackage

L’utente seleziona Share:L’evento DataRequested

viene inviato all’app attiva

Filtra la lista delle Target Apps e dei QuickLinks

L’utente seleziona la Target App o il QuickLink

Attiva la Target App in modalità shareTarget

Memorizza l’eventuale QuickLink resituito dall’app

Viene attivata per lo sharing

Elabora il contenuto del DataPackage

Comunica il completamento dell’operazioneIl DataPackage vive nel

contesto della Source App

In fase di installazione si registra come Share Target attraverso la dichiarazione

nel manifest

Source App Target AppShare Broker

@ La chiave per condividere contenuti è nel DataPackage esposto dal DataTransferManager

È possibile condividere: Un testo Un link (Uri) Un contenuto formattato (HTML) Uno o più file (StorageItems) Un immagine (Bitmap) Più immagini (StorageItems)

Share: cosa condividere

@Share: il punto di vista del programmatore

Demo

Scopri perchè in Windows 81+1>2

@ Quando possibile aggiungete il link alla versione online del contenuto locale

Rispettate la selezione fatta dall’utente

Usate le proprietà del DataPackage per corredare il pacchetto di informazioni utili

Comunicate all’utente quando e perchè lo Share non è possibile

Non serve se l’app non supporta affatto lo Share

Linee guida per lo Share: Source

@ Non fornite alternative per invocare lo Share

Conservate la selezione dell’utente Fornite un testo che indichi

all’utente quale sia il contenuto dello Share

Supportate lo Share dei dati copiati negli appunti

Linee guida per lo Share: Source

@ Mantenete l’interazione semplice Evitate la navigazione per quanto

possibile Non usate il light dismiss nella

vostra UI Mettete i comandi fondamentali

dove possano essere raggiunti facilmente

Eliminate i link non correlati allo Share

Se realizzate preview, fateli accurati Usate i QuickLinks con giudizio

Linee guida per lo Share: Target

@Settings: il punto di vista dell’utente

DemoTutte le impostazionial posto giusto

@Settings: il punto di vista del programmatore

DemoTutte le impostazionial posto giusto

@ Usate lo charm Settings per tutte le impostazioni dell’app

Se necessario, fornite un collegamento programmatico diretto allo charm o ad una specifica categoria di impostazioni

Usate il numero di impostazioni strettamente necessario e raggruppatele in non più di 4 per categorie

Linee guida per i Settings

@ Usate i Settings per mostrare e modificare:

Impostazioni relative all’intera app che vengono modificate occasionalmente

Informazioni sull’app richieste raramente (privacy policy, help, numero di versione, copyright, ecc.)

Non usate i Settings per modificare parametri fondamentali nell’uso dell’app:

Scegliere il colore del pennello in un’app di disegno a mano libera

Linee guida per i Settings: quando?

@ Possono essere grandi (646px) o piccoli (346px), non di altre misure

Lo sfondo dell’intestazione dovrebbe essere lo stesso dell’app Start Tile

Usate sezioni, paragrafi ed etichette per chiarire la gerarchia delle impostazioni

Usate etichette semplici e chiare per i controlli

Linee guida per i Settings: Flyouts

@ Non usate i Settings per comandi associati al normale uso dell’app: usate la App Bar

Non usate gli entry point dello charm per invoca direttamente comandi senza UI

Non usate i Settings per navigare l’app: usate la App Bar

Non usate la classe SettingsFlyout per la UI che non sia invocata dallo charm Settings

Come non implementare i Settings

@Grazie agli sponsor