Connect(); 2016

Volume 31 Numero 12

Il presente articolo è stato tradotto automaticamente.

Connect();: DevOps per le app per dispositivi mobili - Esplorazione di Visual Studio Mobile Center

Da Thomas Dohmke; 2016

I dispositivi mobili sono ora al centro dell'ecosistema tecnologico. Molti ritengono che non è live senza telefoni, Tablet e portatili e utilizzarle per organizzare le informazioni per il personale sia loro vita professionale. Il mondo del business risponde a questa e tutte le aziende oggi piegate sulla stessa trasformazione di business per dispositivi mobili. Per avere esito positivo, crescere, società dovrà supporto una singola app per dispositivi mobili, ma una strategia di mobile multi-app. Si torna a essere chiamato appification dell'azienda moderna, la proliferazione di destinazione e altamente ottimizzato per applicazioni progettate per un determinato gruppo di utenti o per attività specifiche. In un mondo appified, i team di sviluppo sono necessario distribuire altre applicazioni con più valore ai clienti, mentre le piattaforme mobili che eseguono queste applicazioni si evolvono continuamente il numero di dispositivi è in continuo aumento. Le applicazioni principali vengono installate nei dispositivi più di 1 miliardo, con migliaia di configurazioni dei dispositivi in base ai criteri, ad esempio il provider di dimensioni, lingua, impostazioni locali o rete dello schermo.

Per affrontare queste sfide, Microsoft offre una soluzione end-to-end basata su tre aree: Visual Studio e Xamarin consentono di creare applicazioni desktop e portatili per tutte le principali piattaforme. Microsoft Azure fornisce servizi di cloud potente e flessibile che facilitano avviare o estendere le risorse di infrastruttura esistenti e la gestione dei dati tra client e server esperienze. Infine, il processo DevOps mobili consente di gestire il ciclo di vita dell'applicazione e consente di automatizzare l'integrazione, test, distribuzione e monitoraggio dell'applicazione. La versione corrente di questo stack DevOps Mobile è costituito da più strumenti integrati, ma in caso contrario diversi, ad esempio Visual Studio Team servizi (VSTS), Xamarin Test Cloud e HockeyApp. Microsoft ha imparato molto dalla che offrono questi prodotti negli ultimi anni, tra cui come gli sviluppatori possono adottare procedure DevOps mobili più velocemente e con meno problemi.

In questo articolo sono lieti di annunciare l'anteprima pubblica del nostro prodotto, la combinazione di tutte le funzionalità in un'unica piattaforma: Visual Studio Mobile Center.

Il ciclo di vita dell'applicazione per dispositivi mobili

Procedure DevOps possono coprire il processo di sviluppo intero, ma non sono un impegno o niente. Simile a un set di strumenti della riga di comando, ogni esercitazione può essere utilizzato da solo, ma è ottenere ulteriore valore combinando più procedure. Questo è esattamente come è stata progettata Mobile Center. Viene avviato con un'esperienza eccezionale di caricamento per gli sviluppatori, tra cui una progettazione API-first, che consente di utilizzare il centro mobili completamente tramite le API REST o l'interfaccia della riga di comando (CLI). Ogni funzionalità risolve un problema specifico ed è utilizzabile in modo autonomo.

Compilazione, è possibile eseguire il codice sorgente in qualsiasi repository Git e creare un pacchetto app installabile automaticamente a ogni commit o di push. Soprattutto, non è necessario eseguire il provisioning di tutti gli agenti o esterno dei computer che eseguono macOS per compilare le app iOS. Mobile Center si occupa di questo e verrà compilato iOS e Android direttamente dal codice sorgente, senza impostazione manuale in locale.

Una volta terminato il processo di compilazione, si desidera eseguire i test su dispositivi reali. Test Cloud offre più di 400 configurazioni univoco del dispositivo per convalidare il comportamento dell'applicazione. I test possono essere scritti in c# (test dell'interfaccia utente), Ruby (Calabash) o Java (Appium) e vengono eseguiti automaticamente dopo una compilazione ha esito positivo.

Quando tutti i test sono verdi, l'applicazione deve ottenere in mano di tester, che è esattamente ciò che offre la funzionalità di distribuzione. Immettere un set di messaggi di posta elettronica, denominati gruppi di distribuzione, e gli utenti possono installare l'app direttamente sul loro telefoni, quanto scaricano un'app dall'archivio di app. Mobile Center compilazione, Test e Distribuisci interagiscono senza problemi, pertanto ogni commit il codice ottiene il massimo livello di convalida. E nessuna di queste funzionalità richiedono alcuna modifica del codice.

Il passaggio successivo consiste nell'aggiungere all'applicazione di monitoraggio. Se è automatizzato di test, test manuali, una demo per un cliente o il lancio di un nuovo rilascio nell'App Store, la raccolta di utilizzo e dati di diagnostica è essenziale per il successo dell'applicazione. Aggiungendo Mobile Center SDK, è possibile raccogliere gli arresti anomali e sfruttare analisi di valutare i problemi di qualità, come e dove i clienti stiano usando l'app, e infine migliora punteggi e recensioni rispondendo alle loro richieste.

il SDK consente inoltre altre due funzionalità: Identità e le tabelle. Identità è il modo più rapido per autenticare gli utenti dell'app con il proprio account Google, Facebook, Twitter o Microsoft. Tabelle consente di creare un archivio del cloud per la visualizzazione, aggiunta o modifica di dati dell'applicazione, anche quando non esiste alcuna connessione di rete.

Figura 1 viene illustrato come queste funzionalità consentono di vita dell'applicazione per dispositivi mobili.

Il ciclo di vita delle applicazioni mobili con Visual Studio Mobile Center
Figura 1, il ciclo di vita delle applicazioni mobili con Visual Studio Mobile Center

Per iniziare

Iscrizione a Mobile Center è davvero semplice. Se si dispone già di un account HockeyApp, il messaggio di posta elettronica esistente e la password continuerà a funzionare e la sincronizzazione tra i due sistemi. In caso contrario, è possibile creare un nuovo account tramite il modulo di registrazione, ma invece voglio mostrarvi il flusso veloce per iniziare: Connettersi con GitHub. Se si opera su GitHub come me, non è necessario immettere la password di GitHub, verranno visualizzati immediatamente la pagina di autenticazione nella figura 2. Approvare semplicemente l'accesso e che verrà aperta nel dashboard Mobile Center con un account abilitato completamente. Nessuna conferma tramite posta elettronica, carta di credito o altre operazioni di installazione necessarie.

Iscrizione a Mobile Center con GitHub
Figura 2 registrarsi Mobile Center con GitHub

Una volta che l'account è connesso a GitHub, siete solo pochi passaggi la prima compilazione. Creare app immettendo semplicemente il nome, quindi scegliere il repository Git e ramo dal menu Compila, come illustrato nella figura 3. Mobile Center rileva automaticamente il tipo di progetto, quindi non è necessario aggiungere manualmente o configurare le istruzioni di compilazione. Dietro le quinte, la compilazione della pipeline disposizioni una macchina virtuale per compilare l'applicazione esegue tutti gli unit test e firma il pacchetto dell'app per la distribuzione.

Selezione di un archivio GitHub per compilazione
Figura 3 selezione di un archivio GitHub per compilazione

Al termine del processo di compilazione, è possibile scaricare il file del pacchetto app per l'installazione locale, eseguire test automatizzati in dispositivi reali utilizzando Test Center mobili oppure è possibile continuare con la funzionalità di distribuzione per la consegna dell'app per gli addetti ai test. Ogni membro del gruppo di distribuzione verrà inviata una notifica tramite posta elettronica per installare l'applicazione. Aprire il messaggio di posta elettronica sul telefono e installare l'applicazione dal browser.

Aggiunta del SDK

Per gli arresti anomali e analisi, è necessario aggiungere Mobile Center SDK al progetto. il SDK è progettato con un'architettura modulare che consente di integrare solo le funzionalità desiderate nell'applicazione. Iniziamo con un esempio per un'app per iOS. In primo luogo, aggiungere le istruzioni import seguenti all'inizio del file appdelegate. SWIFT:

import MobileCenter
import MobileCenterCrashes
import MobileCenterAnalytics

Il MobileCenterCore è necessaria per tutte le funzionalità, mentre le altre due possono essere omessi se non si desidera che gli arresti anomali o di analisi. Successivamente, avviare il SDK nel metodo didFinishLaunchingWithOptions:

MSMobileCenter.start("{Your App Secret}", withServics:[MSAnalytics.self,
  MSCrashes.self])

Il segreto dell'applicazione è un GUID che può essere eseguito dalla pagina di gestione dell'app nel centro Mobile. Anziché digitare queste quattro righe, è possibile semplicemente copiarli dalla pagina di panoramica dell'applicazione, come illustrato nella figura 4.

Introduzione a Mobile Center SDK
Figura 4 Introduzione a Mobile Center SDK

Il programma di installazione è molto simile in Android:

import com.microsoft.azure.mobile.MobileCenter;
import com.microsoft.azure.mobile.crashes.Crashes;
import com.microsoft.azure.mobile.analytics.Analytics;
// ...
MobileCenter.start(getApplication(), "{Your App Secret}", Analytics.class,
  Crashes.class);

Abilitando il modulo di arresti anomali del sistema, il SDK avvierà automaticamente intercettare le eccezioni non gestite in iOS e Android, nonché a basso livello arresti anomali del sistema in iOS. Per generare un arresto anomalo del test, è possibile aggiungere la riga seguente al gestore pulsante in iOS:

MSCrashes.generateTestCrash()

La stessa chiamata è disponibile per Android:

Crashes.generateTestCrash();

Dopo un arresto anomalo, il SDK archivia il file di log nell'archiviazione locale del dispositivo. Quando l'utente apre l'applicazione nuovamente, tutti in attesa di arresto anomalo dei log verranno inseriti in Mobile Center back-end e sono elaborati. Se si compila app per iOS con la funzionalità di compilazione Center mobili, la traccia dello stack nel Registro di arresto anomalo del sistema verrà essere automaticamente symbolicated, ovvero che tutti gli indirizzi di memoria vengono convertiti in classe e i nomi dei metodi, i nomi di file e i numeri di riga. Se non è utilizzato un server di compilazione diverso o creare app iOS nel Mac locale, si noterà che prima dell'arresto anomalo nuovo registra nel menu in ingresso. È quindi possibile caricare i file corrispondenti dSYM per avviare il processo symbolication.

Abilitando il modulo di analisi, il SDK rileverà automaticamente le sessioni, proprietà del dispositivo, ad esempio versione del sistema operativo, il modello o produttore e proprietà utente come area o una lingua e Mobile Center verranno visualizzati nella pagina di gruppo di destinatari (vedere figura 5).

Analisi per dispositivi mobili nella pagina di gruppo di destinatari
Figura 5 analisi per dispositivi mobili nella pagina di gruppo di destinatari

È possibile tenere traccia di eventi personalizzati e proprietà con la riga seguente in iOS:

MSAnalytics.trackEvent("Video clicked",
  withProperties: ["FileName" : "RickRoll.mp4"])

In Android, vengono specificate le proprietà in una mappa di hash:

Map<String,String>properties=new HashMap<String,String>();
properties.put("FileName", "RickRoll.mp4");
Analytics.trackEvent("Video clicked", properties);

Tutti i dati di telemetria, arresti anomali del sistema, proprietà ed eventi vengono raccolti in modo anonimo e archiviate in modo sicuro nel Cloud di Azure, fornendo un controllo completo sui dati raccoglie l'app. Per consentire un maggiore livello di attendibilità, Mobile Center SDK è completamente open source e disponibili sul github.com/Microsoft per iOS (/ MobileCenter-SDK-iOS), Android (/ MobileCenter-SDK-Android) e Xamarin (/ MobileCenter-SDK-Xamarin). Ti suggeriamo di esaminare il bug di codice e file di origine e contribuire con richieste pull.

Back-End inclusi

App per dispositivi mobili più moderne utilizzano uno o più servizi in linea per consentire loro potenzialità, ad esempio per un elenco di attività tra più dispositivi, la sincronizzazione per condividere dati tra più applicazioni line-of-business o per limitare le funzionalità agli utenti autenticati che hanno acquistato una sottoscrizione premium. Mobile Center supporta questi scenari grazie all'integrazione con servizio App di Azure tramite le tabelle e le identità funzionalità.

La prima volta che si fa clic su una voce di menu, è necessario connettersi alla sottoscrizione di Azure. Se non hai uno ancora, è possibile effettuare l'iscrizione per Azure gratuitamente su bit.ly/1MoL3Rb. Una volta Mobile Center è collegato all'account Azure, è possibile creare tabelle di dati direttamente dalla pagina Panoramica delle tabelle.

Ad esempio, creare una tabella con il nome "TodoItem" per un'app di cose da fare. Per accedere ai dati nella tabella da un'app per iOS, è necessario inizializzare il SDK come segue:

let client = MSClient(applicationURLString: "{Your App URL}")
let table = client.tableWithName("TodoItem")

Come con il segreto dell'applicazione, l'URL dell'App deve essere sostituito con l'URL per l'applicazione dalla pagina di configurazione nel centro Mobile. Quindi è possibile eseguire una query con l'oggetto MSTable per tutti gli elementi disponibili:

table.readWithCompletion { (result, error) in
  if let err = error {
    print("ERROR ", err)
  } else if let items = result?.items {
    for item in items {
      print("Todo Item: ", item["text"])
    }
  }
}

Per filtrare il risultato, è possibile utilizzare un oggetto predicato NSPredicate e il metodo readWithPredicate, ad esempio, per ottenere gli elementi incompleti solo cose da fare:

let predicate = NSPredicate(format: "complete == NO")
table.readWithPredicate(predicate) { (result, error) in
  // Handle item
}

Inserimento di un nuovo elemento viene eseguita tramite un oggetto NSDictionary e il metodo insert:

let newItem = ["text": "Write MSDN article", "complete": false]
table.insert(newItem) { (result, error) in
  if let err = error {
    print("ERROR ", err)
  } else if let item = result {
    print("New item ID: ", item["id"])
  }
}

Il back-end mobile servizio App di Azure genera automaticamente nuove colonne in base al dizionario, incluso un id univoco. Sia anche possibile fornire il proprio id come coppia chiave-valore nel dizionario. Come inserire, i metodi update e delete consentono di modificare i dati, ad esempio, quando un elemento attività viene completato ed eliminarle. E, naturalmente, tutto ciò non funziona solo per le app iOS, ma per tutte le piattaforme supportate su Mobile Center.

Con il codice illustrato finora, tutti gli utenti dell'app acceda lo stesso elenco di attività da svolgere o, più in generale, gli stessi dati in tutti i dispositivi. Ciò in genere non è opportuno; in genere, ogni utente desidera gestire il proprio elenco attività. È possibile ottenere questo aggiungendo la funzionalità di identità all'applicazione. Mobile Center supporta cinque provider di identità predefiniti: Azure Active Directory, Facebook, Google, Account Microsoft e Twitter. Un'applicazione può utilizzare un numero qualsiasi di questi provider di identità per consentire agli utenti di accedere con il proprio account preferito. Sono disponibili due opzioni per integrare la funzionalità:

Con un provider SDK (ad esempio il SDK Facebook), gli utenti possono accedere a un'esperienza che si integra perfettamente con il sistema operativo in cui è in esecuzione l'applicazione. Come parte del processo di accesso, l'applicazione ottiene un token del provider che deve essere inviato al servizio App di Azure, che quindi convalida il token e lo sostituisce con un nuovo token di servizio App. L'app anche possibile archiviare il token del provider per il proprio uso; Per accedere all'API Graph di Facebook, ad esempio.

Senza un provider di SDK, è possibile utilizzare il metodo seguente in Mobile Center SDK:

client.loginWithProvider("google", controller: self, animated: true) { (user, error) in
  // Load data
}

Verrà aperta una visualizzazione Web per il provider e l'utente può accedere. Il token del provider viene elaborato direttamente sul lato server e l'applicazione non riceve mai. Alla fine del flusso, Mobile Center SDK ha un token di servizio App, che viene associato automaticamente a tutte le richieste di back-end e assicura che i dati dell'applicazione accessibile solo all'utente autenticato.

Sviluppi futuri

Tutte le funzionalità descritte in questo articolo sono ora disponibili come anteprima pubblica per sviluppatori iOS e Android. Iscriversi gratuitamente su aka.ms/mobilecenter. Nei mesi successivi, Microsoft fornirà continuamente ulteriori funzionalità e il valore, incluso il supporto per gli sviluppatori di Windows, integrazione con VSTS e altri servizi di back-end, ad esempio sincronizzazione dei dati offline. Il nostro obiettivo è che Mobile Center diventa l'unica risorsa completa per il ciclo di vita delle applicazioni mobili e desktop: compilare, testare, distribuire, monitorare e la connessione al cloud. Il mio team e sono entusiasta di attrezzi mobili di Microsoft di nuova generazione e ci auguriamo che sarà partecipa in questo passaggio.


Thomas Dohmkeè cofondatore di HockeyApp, che è stata acquisita da Microsoft nel 2014 tardiva.  Dohmke è group program manager per Visual Studio Mobile Center ed è responsabile per guidare gli obiettivi del prodotto e il team di responsabili del programma per ogni funzionalità di gestione. È possibile contattarlo tramite posta elettronica all'indirizzo thdohmke@microsoft.com o Twittter: @ashtom.


Viene illustrato in questo articolo nel forum di MSDN Magazine