Van alle nieuwe functies iOS 8 gepresenteerd op de WWDC, de belangrijkste, misschien, zijn de verlenging (rek). Zij moeten een grote impact hebben op de verdere ontwikkeling van het besturingssysteem te hebben. Vaak wordt deze functie wordt beschreven als "het vermogen van de third-party applicaties om te communiceren met elkaar." Dit, natuurlijk, is te overdreven, omdat de interactie is niet de enige mogelijkheid van verlenging, en ze kunnen niet rechtstreeks met elkaar communiceren, om precies te zijn.
We hebben gelezen de documentatie voor ontwikkelaars en video's van WWDC, om te begrijpen hoe extensies werken en hoe Apple een compromis tussen de openheid van het systeem en de gebruiker beveiliging van gegevens heeft gevonden en wil graag over praten u.
Dus wat doen de uitbreiding?
Waardoor toepassingen van derden om elkaar is slechts één probleem, namelijk de uitbreiding lossen. Zijde van het toetsenbord; toepassingsintegratie met andere cloudopslag, naast iCloud; widgets in Notification Center - dit alles wordt ook gedragen door de extensies.
In feite kan niet alle van de iOS worden "verbeterd" third-party ontwikkelaars. Bijvoorbeeld, als je wilt naar de standaard applicatie te vervangen of aan een schakelaar in de controlekamer - je zal niet werken. Apple biedt, is niet zozeer duidelijk omschreven "uitbreidingspunten» (uitbreiding punten), aan de ontwikkelaars te tonen met enig deel van het besturingssysteem ze kunnen werken. Een lijst van deze punten als volgt:
- expansie Vandaag (Vandaag extensies) of widgets - worden gebruikt om direct informatie in het Berichtencentrum te bieden. Je kunt ze beschouwen als een reactie op de live tegels Windows Phone en Android-startscherm widgets.
- De uitwisseling van (Delen extensies) - kunt u foto's, links of andere bestanden van de applicatie te sturen in de online diensten. Zoals het plaatsen van foto's in Pinterest of bestanden uploaden naar Dropbox of Microsoft Onedrive rechtstreeks vanuit de applicatie.
- opschaling (Actie extensies) - gebruikt om "manipulatie of het bekijken van de inhoud in het kader van een ander programma." Met andere woorden, dit betekent dat u kunt de foto, die is opgenomen in een tekstdocument te bewerken of, Bijvoorbeeld, zoals weergegeven in de presentatie, gebruik iets als Bing Vertalen naar tekst te vertalen in een venster Safari.
- Extensies voor fotobewerking (Photo Editing extensies) - kan de bewerkingsmogelijkheden van andere applicaties te gebruiken bij het bekijken van beelden in de camera roll.
- opslagvolume (Storage Provider extensies) - kunnen toepassingen geopende documenten van een aantal cloud storage. Bijvoorbeeld, kunt u gebruiken om uw documenten Dropbox en uit de Office toegang ze direct voor de iPad of Pagina's op te slaan.
- Extensies voor third-party toetsenborden (Douanetoetsenbord uitbreidingen) - vervang het standaard toetsenbord in IOS.
Genoemde verlengstukken zijn IOS, maar velen van hen (waaronder widgets wisselen en expansie al.) Lopen in OS X Yosemite, alsmede in IOS. applicaties uit de App Store ontwikkelaars van de Mac gezicht soortgelijke beperkingen zandbak en implementatie van extensies beten hun leven te vereenvoudigen. Hoewel, het meest waarschijnlijk, veel ontwikkelaars blijven om ze te ontwijken, het vermijden van de Mac App Store at all.
Deze voorlopige lijst met uitbreiding punten verschilt van het systeem intenties (Intents systeem), die werkzaam zijn in Android. Apps op Android gebruiken de filters om het besturingssysteem welke acties zij kunnen uitvoeren en handvat te begrijpen. Zo kunnen bijvoorbeeld Twitter en Facebook foto's en links te plaatsen; Google Drive en Dropbox kunnen diverse bestanden te downloaden; Chrome en Firefox kunnen webpagina's, enz. Te openen Third-party ontwikkelaars kunnen zelfs ingesteld filters zelf, die zal opereren in het besturingssysteem.
Op hetzelfde moment, iOS is veel beperking in dit opzicht, maar het is niet zonder reden. Echter, voor gewone gebruikers daar geen last van al dit en een beetje dan zal verschillen van hun collega's Android, iOS met behoud van het veiligheidsbeleid uit te breiden.
Hoe om extensies te installeren, en hoe werken ze?
Evenals alle officiële app voor iOS, gedownload extensies uit de App Store. De grootste beperking is dat Apple staat niet toe dat ontwikkelaars in staat om extensies in "zuivere vorm" te publiceren. Elk toestel moet worden verspreid als onderdeel van het verzoek (bevattende app), dat op zijn beurt een elementaire functies moet uitvoeren en bruikbaar zijn voor de gebruiker. Dat wil zeggen, kunnen ontwikkelaars niet publiceren naar de App Store slechts een widget of alleen het toetsenbord, zoals nu gebeurt in de Android. Op hetzelfde moment, heeft Apple geen beperkingen op het aantal en de aard van extensies, die uw toepassing kan bevatten opleggen.
Andere aanbevelingen voor de Apple-ontwikkelaars zijn niet nodig. Dit geldt voor de vormgeving van extensies, die moet overeenkomen met de standaard OS-toepassingen: widgets niet verschillen uit bestaande widgets in Notification Center en foto-menu te bewerken in de Camera Roll - radicaal verschillend van native. Waarschijnlijk zijn er mensen die zich niet aan deze aanbevelingen, maar vooral omdat de meerderheid van de ontwikkelaars en zich te houden aan de filosofie van Apple bij het maken van hun applicaties.
Elk toestel wordt geactiveerd op verschillende manieren. Widgets - van Notification Center, keyboards - van de regionale systeeminstellingen. Uitbreiding van fotobewerking en opslag worden opgeroepen alleen in bepaalde situaties van applicaties die interactie geeft met hen. De uitwisseling en actie kan worden aangeroepen vanuit elke toepassing, maar de ontwikkelaars moeten de activering regels toe te voegen aan uitbreiden en specificeren welke gegevens moeten worden verwerkt. Als uw toestel biedt alleen voor het uitwisselen van foto's, moet je om het te specificeren in de activering van de regels die de uitbreiding niet wordt weergegeven wanneer een gebruiker wil een link of document te delen.
Ondanks het feit dat alle verlengstukken "verpakt" in applicatie (app bevat), kunnen ze zelfstandig werken. Elk toestel - dit is een kleine binair .appex-bestand, dat de klus te klaren en gesloten opent zonder de belangrijkste applicatie te starten. Voor extensies die dezelfde taken als hun belangrijkste toepassing kunnen realiseren (bijvoorbeeld Instagram, gebruikt voor het toevoegen van een filter om het beeld) worden aangemoedigd om gebruik van een ingebouwde kader voor de overdracht van uitvoerbare code die nodig is voor de desbetreffende taak. Maak een kader, zet de code in daar en je in staat om dit kader op te bouwen, zowel in de toepassing en in het verlengde zal zijn. De enige beperking is dat deze applicaties iOS-versie 8 en hoger nodig, omdat niet zal draaien op eerdere besturingssystemen.
Een van de redenen voor de uitbreiding los draaien van de toepassing daarvan, Apple harde grens aan de hoeveelheid geheugen verbruikt. In het bijzonder geldt dit voor de widget, aangezien de gebruiker meerdere gelijktijdige widgets hebben.
Daarnaast hebben de widgets niet voor een lange tijd en met geweld uit de inrichting na afsluiting. Voor extensies die langdurige achtergrond taken uit te voeren, zoals het downloaden van bestanden, Apple adviseert om deze taken systeem over te dragen, en sluit het.
Dat is alles wat de belangrijkste punten, op iOS extensies. Als u alle mogelijke uitbreidingen strikt gedocumenteerd kunnen zien, maar is opmerkelijk voor het feit dat ondanks de uitgebreide bevoegdheden, die door ontwikkelaars en hun toepassingen, hebben ze niet in strijd met de bestaande veiligheidsbeleid en de werkzaamheden binnen het "Sandbox".
Beveiliging van gebruikersgegevens. Verschillen met Android
In een notendop, het verschil tussen de benadering van de privacy en beveiliging van gegevens iOS en Android-gebruikers Het is deze laatste biedt ontwikkelaars een aantal de kabel, die voldoende is om hang zelf.
In feite, als Android-gebruikers de standaard beveiligingsinstellingen gebruiken voordat de installatie van elke toepassing lees de uitgebreide wijnkaart dingen die het kan doen - het gevaar van hun persoonlijke gegevens aan derden of malware infectie was niet zo geweldig. Maar al deze rechten toepassingen tot verwarring leiden. Sommige mensen kiezen om toepassingen niet alleen van Google Play, maar ook uit andere bronnen te installeren; anderen willen om root-toegang te krijgen, met het oog op alternatieve distributies installeren - geen problemen, alles is mogelijk met Android. Zulke dingen zijn van belang sommige gebruikers het platform, maar ze doen het allemaal op uw eigen risico.
Kijk naar de iOS, die, zelfs met de introductie van uitbreidingen bouwt nog steeds barrières tussen toepassingen en hun extensies en data-applicaties aan gebruikers te beschermen (en hun informatie) van zichzelf. Zoals we hebben gezegd, nog steeds toepassingen kunnen elkaar niet direct aan te pakken, omdat de uitbreiding is klein binaire bestanden die afzonderlijk vanaf de met toepassing. Aanvragen die uitzetting (host app Apple terminologie) veroorzaakt verwijst uitzetten, maar de toepassing die omvat (met app). In dit geval, wanneer de host-applicatie nodig heeft om de extensie te gebruiken, stuurt een verzoek via het systeem kader, in plaats van direct, en nooit zullen toegang hebben tot de toepassing gegevens.
Ontwikkelaar van Fortytwo Inc. Eduardo Fonseca legt uit hoe u erin slagen om iOS-apps en extensies te houden "op een veilige afstand."
"Elk toestel - dit is een aparte bundel (bundel) in de belangrijkste bundel applicatie die afzonderlijke uitvoerbare bestanden bevat" - zegt Fonseca. "Het grappige is dat de uitbreiding is niet een applicatie. Het wordt veroorzaakt door het Apple systeem kaders, via een duidelijk gedefinieerde interface, die het proces van het starten van expansie initieert. In dit geval wordt de code apart uitgevoerd, en dit houdt in dat de prestaties van derden code niet kan worden binnen de applicatie. Daarom is er geen risico bestaat dat de toepassingen die de extensie (zoals Safari) ondersteunen, kunnen er problemen optreden wanneer u extensies in andere applicaties te gebruiken. Ze zijn als olie en water - ze gaan niet samen ".
Zelfs als de expansie worden verwezen naar die dezelfde toepassing BUET het gebeuren alleen door het systeem API. Standaard is de app bevat de verlenging en uitbreiding van zichzelf hebben geen toegang tot elkaars gegevens.
Voor de uitwisseling van gegevens tussen hen, moet je ze maken deel uit van een groep van toepassingen (App Group), die hen in staat stellen om wat algemene informatie in de externe container, zowel buiten de zandbak te hebben. U waarschijnlijk al gemerkt dat zodra loggen op je account in Google Chrome op iOS, zal je ook ingelogd en naar Google Maps en Google Drive - het is het resultaat van het gebruik van de App Group. Maar zelfs deze groepen zijn beperkt tot bepaalde soorten gegevens die kunnen worden uitgewisseld. Toegestane uitwisseling databasecache accountgegevens. Echter, voor de lokale documenten en mediabestanden is niet het geval is - ze zijn nog steeds verboden.
Simpel gezegd, is Apple niet dat sommige toepassingen om toegang te krijgen tot een andere zandbak. Extensies zijn kleine zandbak binnen een zandbak, dat de interactie tussen verschillende toepassingen vergemakkelijkt, maar mag nooit in de buurt van de lancering van de applicatie (host app) data applicatie die een uitbreiding bevat (met app).
Mechanismen hadden Extensies zijn ook verschillend van de applicatie. Als u dezelfde extensie uitgevoerd in verschillende toepassingen, zoals Safari en Mail, hoort u twee exemplaren van deze uitbreiding, die wordt uitgevoerd in afzonderlijke processen openen. Deze uitbreidingen worden opgeslagen in verschillende geheugengebieden. Zo is de informatie van beide toepassingen wordt opgeslagen in verschillende plaatsen, en ze hebben alleen toegang tot hun gegevens. Om dezelfde reden, browsers opent een verscheidenheid aan locaties in aparte tabbladen.
Android heeft een eigen sandbox model, die ook als doel de gegevens opgeslagen in één beschermen toepassing van andere toepassingen die geen toegang tot hen hebben (hoewel, indien gewenst, kunnen ontwikkelaars gemakkelijk te omzeilen). Vooral hier gevaarlijk is het verlenen van rechten tot het lezen en schrijven toegang tot alle gegevens van toepassingen die verouderd zelfs Android 4.2., hoewel de applicatie is nog steeds in staat om toegang tot de gegevens van andere toepassingen.
Nogmaals, al deze mechanismen zijn alleen effectief bij correct gebruik, maar de mensen hebben de neiging zeldzaam Lees de licentieovereenkomst en gewoon eens met die verzoeken, dat software levert te installeren, hun gegevens bloot risico. Apple is zeer goed geschikt voor dit probleem, en zelfs nu in iOS heeft een comfortabele omgeving met privacy switches, die duidelijk te zien is wat sommige informatie prilolzheniya gebruiken. Iets als Google kondigde in Android 4.4, maar in de laatste release van deze, helaas, was er niet. Het heeft geen directe relatie met de uitbreiding, maar dit is een goed voorbeeld van hoe het iOS 8, blijft de flexibiliteit op te offeren ter wille van de veiligheid en privacy van de gebruikers.
Apple legt ook andere beperkingen op expansie - ze kunnen geen gebruik maken van alle API, die wordt geopend door toepassingen. Met name douanetoetsenbord beperkt aantal verplichte eisen en regels. Mechanismen van interactie Apple extensies verschillen van die die gebruik maken van Google en in feite, iOS 8 gesloten blijft besturingssysteem, in vergelijking met Android. Third-party applicaties nog steeds niet direct te communiceren onderling en systeemelementen zoals beginscherm of lock-scherm is niet vatbaar voor maatwerk, evenals de aanvragen voor Standaard.
Toch lijkt het erop dat Apple eindelijk heeft geluisterd naar de grootste klachten over zijn mobiele platform en heeft maatregelen genomen, maar Kenmerkend voor haar stijl, zonder drastische actie, die zou kunnen verhogen het geheugen eisen of bedreigingen van de veiligheid gebruikers. Nu, terwijl iOS 8 nog niet is gepubliceerd, is het moeilijk om de voor- en nadelen van een dergelijke benadering te beoordelen, maar op papier alles ziet er veelbelovend uit.
(via)