Di tutte le nuove funzioni di iOS 8 presentati al WWDC, il più importante, forse, sono l'estensione (estensibilità). Essi dovrebbero avere un grande impatto sull'ulteriore sviluppo del sistema operativo. Spesso questa funzione è descritta come "la capacità di applicazioni di terze parti di interagire con l'altro." Questo, naturalmente, è troppo esagerato, dato che l'interazione non è l'unica possibilità di estensioni, e non possono comunicare direttamente tra loro, per essere esatti.
Abbiamo letto la documentazione per gli sviluppatori e video dal WWDC, di capire come funzionano le estensioni e come Apple ha trovato un compromesso tra l'apertura del sistema e dei dati dell'utente di sicurezza e vorrebbe parlarne te.
Allora, cosa fare l'espansione?
Consentendo applicazioni di terzi per accedere a vicenda, è solo un problema, che è quello di risolvere l'espansione. Lato della tastiera; integrazione dell'applicazione con altri cloud storage, oltre a iCloud; widget nel Centro di notifica - tutto questo è anche a carico le estensioni.
In realtà, non tutto l'iOS può essere "migliorato" sviluppatori di terze parti. Per esempio, se si desidera sostituire l'applicazione di default o aggiungere un interruttore nella sala di controllo - non funzionerà. Apple fornisce non è tanto chiaramente definito "punti di estensione» (punti di estensione), per mostrare gli sviluppatori con qualsiasi parte del sistema operativo possono lavorare. Un elenco di questi punti come segue:
- Oggi espansione (estensioni oggi) o widget - sono utilizzati per fornire informazioni immediate nella notifica centro. Si possono considerare come una risposta alle piastrelle dal vivo di Windows Phone e widget della schermata iniziale di Android.
- migliorare lo scambio di (Share estensioni) - consentono di inviare foto, link o altri file dell'applicazione nei servizi on-line. Come ad esempio la pubblicazione di foto in Pinterest o i file caricati su Dropbox o Microsoft Onedrive direttamente dall'applicazione.
- scaling up (estensioni d'azione) - utilizzati per "manipolazione o il contenuto di visualizzazione nel contesto di un'altra applicazione." In altre parole, questo significa che è possibile modificare la foto, che è contenuta in un documento di testo, o, Ad esempio, come mostrato nella presentazione, uso qualcosa come Bing Translate per tradurre il testo in una finestra Safari.
- Estensioni per il fotoritocco (Photo Editing estensioni) - possono utilizzare le funzionalità di editing di altre applicazioni quando si visualizzano immagini in rullino fotografico.
- storage estesa (Storage estensioni Provider) - consente alle applicazioni di aprire i documenti da un certo numero di cloud storage. Ad esempio, è possibile utilizzare per memorizzare i documenti Dropbox e accesso direttamente fuori ufficio per iPad o pagine.
- Estensioni per tastiere di terze parti (estensioni tastiera personalizzata) - Sostituire la tastiera standard di iOS.
estensioni detti sono IOS, ma molti di essi (compresi widgets scambiare e al espansione.) Esecuzione in OS X Yosemite, così come in IOS. applicazioni da parte degli sviluppatori di App Store di Mac viso restrizioni simili sandbox e la realizzazione di estensioni bit semplificare la loro vita. Anche se, molto probabilmente, molti sviluppatori continuano a sfuggire loro, evitando il Mac App Store a tutti.
Questo elenco preliminare dei punti di estensione differisce dagli intenti di sistema (sistema Intenti), che lavorano in Android. Applicazioni in Android utilizzano i filtri per capire il sistema operativo le azioni che possono eseguire e maniglia. Ad esempio, Twitter e Facebook possono inviare foto e link; Google Drive, Dropbox e possono scaricare vari file; Chrome e Firefox in grado di aprire le pagine web, ecc Gli sviluppatori di terze parti possono anche impostare dei filtri stessi, che opererà nel sistema operativo.
Allo stesso tempo, è molto IOS limitazione a questo riguardo, anche se non senza un motivo. Tuttavia, per gli utenti comuni non noteranno tutto questo e ampliare un po 'di differirà dalle loro controparti Android, iOS pur mantenendo la politica di sicurezza.
Come installare le estensioni, e come funzionano?
Oltre a tutto l'applicazione ufficiale per iOS, le estensioni scaricate da App Store. La più grande limitazione è che Apple non permette agli sviluppatori di pubblicare le estensioni in "forma pura". Ogni estensione deve essere distribuito come parte dell'applicazione (contenente app), che a sua volta dovrebbe portare qualsiasi funzionalità di base ed essere utile per l'utente. Cioè, gli sviluppatori non possono pubblicare per l'App Store solo un widget o semplicemente la tastiera, come sta accadendo ora nel Android. Allo stesso tempo, Apple non impone alcuna limitazione sul numero e tipi di estensioni, che può contenere la vostra applicazione.
Altre raccomandazioni per gli sviluppatori di Apple non sono richiesti. Questo vale per la progettazione di interni, che dovrebbe corrispondere alle applicazioni standard del sistema operativo: i widget non differiscono dal widget esistenti in Notifica Centro e foto menu di editing del Rullino fotografico - radicalmente differenti da nativo. Probabilmente ci sono quelli che non riescono a rispettare queste raccomandazioni, ma soprattutto perché la maggior parte degli sviluppatori e di aderire alla filosofia di Apple, durante la creazione di proprie applicazioni.
Ogni estensione è attivato in vari modi. Widget - dalla notifica centro, tastiere - dalle impostazioni del sistema regionale. Espansione di fotoritocco e di stoccaggio sono chiamati solo in alcune situazioni di applicazioni che fornisce l'interazione con loro. Migliorare lo scambio e azione può essere chiamato da qualsiasi applicazione, ma gli sviluppatori devono aggiungere le regole di attivazione per espandere e specificare quali dati da elaborare. Se l'interno prevede solo lo scambio di foto, è necessario specificare che l'attivazione delle regole che l'espansione non appare quando un utente vuole condividere un link o un documento.
Nonostante il fatto che tutte le estensioni devono essere "confezionati" nella (app contenente) applicazione, possono lavorare in modo indipendente. Ogni estensione - questo è un piccolo .appex-file binario, che apre il lavoro fatto e chiuso senza dover avviare l'applicazione principale. Per le estensioni che svolgono le stesse funzioni come loro applicazione principale (ad esempio Instagram, utilizzato per l'aggiunta di un filtro all'immagine) sono incoraggiati a utilizzare un built-in quadro per la trasmissione del codice eseguibile richiesto per il rispettivo compito. Creare un quadro, mettere il codice in là e si sarà in grado di costruire questo quadro sia nell'applicazione e nel prolungamento. L'unica restrizione è che queste applicazioni richiedono iOS versione 8 e superiori, in quanto non verrà eseguito su sistemi operativi precedenti.
Una delle ragioni per l'espansione eseguire indipendentemente dalla domanda della stessa, è limite rigido di Apple alla quantità di memoria utilizzata. In particolare, questo si applica al widget, come l'utente può avere più widget simultanei.
Inoltre, i widget non funzionano per lungo tempo, e forzatamente rimosso dal dispositivo dopo la chiusura. Per le estensioni che eseguono operazioni in background lunghe, come ad esempio il download di file, Apple consiglia di trasferire questi sistemi compiti, e quindi chiuderlo.
Ecco tutti i punti principali, sulle estensioni di iOS. Come si può vedere tutte le possibili estensioni rigorosamente documentati, ma si distingue per il fatto che, nonostante le maggiori poteri, fornito dagli sviluppatori e le loro applicazioni, non violano la politica di sicurezza e di lavoro all'interno esistenti sua "Sandbox".
Sicurezza dei dati degli utenti. Differenze da Android
In poche parole, la differenza tra l'approccio alla riservatezza dei dati e la sicurezza degli utenti iOS e Android È che quest'ultimo fornisce agli sviluppatori un numero della corda, che è sufficiente a impiccarsi.
Infatti, se gli utenti Android utilizzano le impostazioni di sicurezza predefinite prima dell'installazione di ogni applicazione leggere la lunga lista cose che può fare - il pericolo di propri dati personali a terzi o infezione da malware non era così grande. Ma le applicazioni tutti questi diritti portano a confusione. Alcune persone scelgono di installare applicazioni non solo da Google Play, ma anche da altre fonti; altri desiderano ottenere radice di accesso, al fine di installare distribuzioni alternative - nessun problema, tutto è possibile con Android. Queste cose sono di interesse alcuni utenti alla piattaforma, ma lo fanno tutti a proprio rischio.
Guardate l'iOS, che, anche con l'introduzione di espansioni erige ancora barriere tra le applicazioni e le loro estensioni e applicazioni agli utenti di dati protette (e le loro informazioni) da stessi. Come abbiamo detto, ancora applicazioni non possono affrontare tra loro direttamente, perché l'espansione è piccoli file binari che vengono eseguiti separatamente dalla domanda contenente. Qualsiasi applicazione che causa (app ospitante nella terminologia Apple) espansione riferisce ad espandersi, ma non all'applicazione che comprende (contenente app). In questo caso, quando l'applicazione host deve utilizzare l'estensione, invia una richiesta tramite il quadro di sistema, anziché direttamente, e non avrà accesso ai dati dell'applicazione.
Developer di FortyTwo Inc. Eduardo Fonseca spiega come gestire per mantenere le applicazioni iOS, ed estensioni "a distanza di sicurezza."
"Ogni estensione - questo è un pacchetto separato (bundle) all'interno dell'applicazione fascio principale che contiene gli eseguibili separati" - dice Fonseca. "La cosa divertente è che l'espansione non è una domanda. È causata attraverso i quadri sistema di Apple, utilizzando un'interfaccia ben definita, che avvia il processo di avvio espansione. In questo caso, il codice viene eseguito separatamente, e questo implica che le prestazioni di qualsiasi codice di terze parti non può essere all'interno dell'applicazione. Pertanto, non v'è alcun rischio che le applicazioni che supporteranno l'estensione (come Safari), potrebbero verificarsi problemi quando si utilizzano le estensioni all'interno di altre applicazioni. Sono come l'olio e l'acqua - che non si mescolano ".
Anche se l'espansione è necessario fare riferimento ad avere la stessa applicazione, esso BUET avviene solo attraverso il sistema API. Per impostazione predefinita, l'applicazione contiene l'estensione e l'espansione di per sé non può accedere ai dati di ciascuno.
Per lo scambio di dati tra di loro, è necessario renderli parte di un gruppo di applicazioni (App Group), che permetterà loro di avere alcune informazioni di carattere generale nel contenitore esterno, sia al di fuori della sandbox. Probabilmente avrete notato che una volta che accedendo al proprio account in Google Chrome su iOS, vi sarà anche effettuato l'accesso e per Google Maps e Google Drive - è il risultato di utilizzare il gruppo APP. Ma anche questi gruppi sono limitati a determinati tipi di dati che possono essere scambiati. informazioni di account cache del database di scambio consentito. Tuttavia, per i documenti locali e file multimediali non è il caso - sono ancora vietati.
In poche parole, Apple non vuole alcune applicazioni di avere accesso a una sandbox altri. Le estensioni sono piccoli sandbox all'interno di un'altra sandbox, che faciliterà l'interazione di diverse applicazioni, ma non ha mai permesso nei pressi lancio del (applicazione host) Dati applicazioni un'applicazione che contiene un'estensione (contenente app).
Meccanismi estensioni gestite sono anche diversi dall'applicazione. Se si esegue la stessa estensione in diverse applicazioni, come Safari e Mail, il sistema aprirà due copie di questa espansione, che si svolgerà in processi separati. Queste estensioni sono memorizzati in diverse aree di memoria. Così le informazioni di entrambe le applicazioni è memorizzato in luoghi diversi, e hanno solo l'accesso ai loro dati. Per lo stesso motivo, i browser aprono una varietà di siti in schede separate.
Android fornisce un proprio modello sandbox, che mira anche a proteggere i dati memorizzati in un unico applicazione da altre applicazioni che non hanno accesso ad essi (anche se, se lo si desidera, gli sviluppatori possono facilmente lavorare intorno ad esso). Particolarmente pericoloso ecco la concessione di diritti di lettura e l'accesso in scrittura a tutti i dati di applicazioni che obsoleti anche Android 4.2., anche se l'applicazione è ancora in grado di accedere ai dati di altri applicazioni.
Anche in questo caso, tutti questi meccanismi sono efficaci solo se usato correttamente, ma le persone tendono ad essere rari leggere il contratto di licenza e solo d'accordo con tali richieste, che fornisce software da installare, esponendo i loro dati rischio. Apple è molto ben si adatta a questo problema, e anche adesso in iOS ha un ambiente confortevole con interruttori sulla privacy, che può essere visto chiaramente ciò che prilolzheniya utilizzare alcune informazioni. Qualcosa di simile a Google ha annunciato in Android 4.4, ma nella versione finale di questo, purtroppo, non c'era. Non ha alcun rapporto diretto con l'estensione, ma questo è un buon esempio di come l'iOS 8, continua a sacrificare la flessibilità per il bene della sicurezza e della privacy degli utenti.
Mela impone anche altre restrizioni di espansione - non possono utilizzare tutte le API, a cui si accede dalle applicazioni. In particolare tastiera personalizzata numero di requisiti obbligatori e le regole limitato. Meccanismi di estensioni di Apple di interazione sono diverse da quelle che l'uso di Google e, di fatto, iOS 8 rimane chiuso sistema operativo, a fronte di Android. Applicazioni di terze parti ancora non possono comunicare direttamente tra loro, ed elementi di sistema come schermata iniziale o schermata di blocco non è suscettibile di personalizzazione, così come le applicazioni per Predefinito.
Tuttavia, sembra che Apple ha finalmente ascoltato le singole maggiori lamentele circa la sua piattaforma mobile e ha adottato misure, ma caratteristico per il suo stile, senza azioni drastiche, che potrebbe aumentare i requisiti di memoria o minacce alla sicurezza utenti. Ora, mentre iOS 8 non è ancora stato pubblicato, è difficile giudicare i vantaggi e gli svantaggi di un tale approccio, ma sulla carta tutto sembra molto promettente.
(via)