Av alla de nya funktionerna iOS 8 presenterades vid WWDC, det viktigaste, kanske är förlängningen (töjbarhet). De bör ha en stor inverkan på den fortsatta utvecklingen av operativsystemet. Ofta denna funktion beskrivs som "förmåga tredjepartsprogram att interagera med varandra." Detta är naturligtvis alltför överdriven, eftersom interaktionen är inte den enda möjligheten till förlängning, och de kan inte kommunicera direkt med varandra, för att vara exakt.
Vi har läst utvecklardokumentationen och video från WWDC, att förstå hur förlängningar fungerar och hur Apple har hittat en kompromiss mellan öppenhet i systemet och användar datasäkerhet och vill prata om det dig.
Så vad gör expansionen?
Aktivera tredjepartsprogram för att komma åt varandra, det är bara ett problem, vilket är att lösa expansion. Sidan av tangentbordet; ansökan integration med andra moln lagring, förutom icloud; widgets i anmälan Center - allt detta bekräftas också av förlängningar.
I själva verket kan inte alla iOS vara "förbättrad" tredjepartsutvecklare. Till exempel, om du vill ersätta standardprogrammet eller lägga till en switch i kontrollrummet - du kommer inte att fungera. Apple ger inte så mycket klart definierade "förlängningspunkter» (förlängnings poäng), för att visa utvecklare med någon del av operativsystemet de kan arbeta. En förteckning över dessa punkter enligt följande:
- expansions Idag (Idag extensions) eller widgets - används för att ge omedelbar information i meddelandecentret. Du kan betrakta dem som ett svar på de levande brickor Windows Phone och Android startskärmen widgets.
- öka utbytet av (Aktie extensions) - gör att du kan skicka bilder, länkar eller andra filer i ansökan i e-tjänsten. Såsom publicera foton i Pinterest eller ladda upp filer till Dropbox eller OneDrive direkt från programmet.
- uppskalning (Action extensions) - används för att "manipulation eller tittar innehåll i samband med ett annat program." Med andra ord, detta innebär att du kan redigera bilden, som finns i ett textdokument, eller Till exempel, som visas i presentationen, använda något som Bing Translate för att översätta text i ett fönster Safari.
- Tillägg för fotoredigering (fotoredigering extensions) - kan använda redigeringsmöjligheter av andra program när du visar bilder i kamerarullen.
- expanderade lagrings (Storage Provider extensions) - tillåter applikationer att öppna dokument från ett antal moln lagring. Till exempel kan du använda för att lagra dina dokument Dropbox och komma åt dem direkt från Office för iPad eller sidor.
- Tillägg för tredje part tangentbord (anpassade tangentbord extensions) - ersätta den vanliga tangentbordet i iOS.
Nämnda förlängningar är IOS, men många av dem (inklusive widgets utbyta och expansions al.) Inkörning OS X Yosemite, såväl som i iOS. applikationer från App Store utvecklare av Mac ansikte liknande restriktioner sandlåda och genomförande av förlängningar bet förenkla sina liv. Men mest troligt, många utvecklare fortsätter att undvika dem, undvika Mac App Store alls.
Denna preliminära lista över förlängnings punkter skiljer sig från system intentioner (Intents System), som arbetar i Android. Appar på Android använder filtren för att förstå operativsystemet vilka åtgärder de kan utföra och handtag. Till exempel kan Twitter och Facebook posta bilder och länkar; Google Drive och Dropbox kan ladda ner olika filer; Chrome och Firefox kan öppna webbsidor, etc. tredjepartsutvecklare kan även ställa in filter själva, som kommer att fungera i operativsystemet.
Samtidigt är iOS mycket begränsning i detta avseende, men inte utan anledning. Men för vanliga användare inte kommer att märka allt detta och expandera lite än skiljer sig från sina motsvarigheter Android, iOS bibehållen säkerhetspolitiken.
Hur man installerar tillägg, och hur fungerar de?
Liksom alla officiella app för iOS, förlängningar ner från App Store. Den största begränsningen här är att Apple inte tillåter utvecklare att publicera tillägg i "ren form". Varje förlängning måste distribueras som en del av ansökan (innehållande app), vilket i sin tur bör bära någon grundläggande funktionalitet och vara till nytta för användaren. Det vill säga, kan utvecklare inte publicera till App Store bara en widget eller bara tangentbordet, som sker nu i Android. Samtidigt, inte Apple inte införa några begränsningar på antalet och typer av tillägg, som kan innehålla din ansökan.
Andra rekommendationer för Apples utvecklare behövs inte. Detta gäller utformningen av förlängningar, vilket bör motsvara de vanliga OS-program: widgets skiljer sig inte från befintliga widgets i anmälan Center och foto redigeringsmenyn i kamerarullen - radikalt annorlunda nativ. Förmodligen finns det de som inte uppfyller dessa rekommendationer, men främst eftersom majoriteten av utvecklare och följa filosofi Apple när du skapar sina ansökningar.
Varje förlängning aktiveras på olika sätt. Widgets - från anmälan Center, tangentbord - från inställningarna regionala system. Utbyggnad av fotoredigering och lagring kallas endast i vissa situationer av applikationer som ger interaktion med dem. Öka utbytet och handling kan anropas från alla program, men utvecklarna måste lägga reglerna aktiverings att expandera och ange vilka data som ska behandlas. Om din anknytning ger endast för utbyte av bilder, måste du ange den i aktiveringen av de regler som expansionen inte visas när en användare vill dela en länk eller ett dokument.
Trots att alla tillägg måste "paketeras" i programmet (som innehåller app), kan de arbeta självständigt. Varje förlängning - det är en liten binär .appex-fil, som öppnar jobbet och stängas utan att behöva starta huvudprogrammet. För förlängningar som utför samma uppgifter som sin huvudsakliga tillämpning (t ex Instagram, som används för att lägga till ett filter bilden) uppmuntras att använda en inbyggd ram för överföring av exekverbar kod som krävs för respektive uppgift. Skapa en ram, sätta koden i det och du kommer att kunna bygga denna ram både i ansökan och i förlängningen. Den enda begränsningen här är att dessa program kommer att kräva iOS version 8 och uppåt, som inte kommer att köras på tidigare operativsystem.
En av anledningarna till expansionen köras separat från tillämpningen av dessa, är Apple hård gräns för hur mycket minne som förbrukas. I synnerhet gäller detta widgeten, som användaren kan ha flera samtidiga widgets.
Dessutom behöver de widgets inte fungerar för en lång tid, och med våld bort från enheten efter stängning. För tillägg som utför långa bakgrundsuppgifter, till exempel nedladdning av filer, rekommenderar Apple att överföra dessa uppgifter systemet och sedan stänga den.
Det är alla de viktigaste punkterna, på iOS förlängningar. Som du kan se alla möjliga förlängningar strikt dokumenterade, men är känd för det faktum att trots de utökade befogenheter, tillhandahålls av utvecklare och deras tillämpningar, de inte bryter mot befintliga säkerhetspolitiken och arbete inom sitt "Sandlåda".
Säkerhet av användardata. Skillnader från Android
I ett nötskal, skillnaden mellan inställning till personuppgifter och säkerhet iOS och Android-användare Det är att den senare ger utvecklare med ett antal av rep, som är tillräcklig för att hänga sig.
Faktum är att om Android-användare använder standardinställningarna för säkerhet innan installationen av varje ansökan läsa den omfattande listan saker man kan göra - Faran med sina personuppgifter till tredje part eller malware infektion var inte så stor. Men applikationer alla dessa rättigheter leda till förvirring. Vissa människor väljer att installera program inte bara från Google Play, men även från andra källor; andra vill få root-access, för att installera alternativa distributioner - inga problem, allt är möjligt med Android. Sådana saker är av intresse vissa användare till plattformen, men de gör allt på egen risk.
Titta på iOS, som även med införandet av expansioner uppför fortfarande hinder mellan applikationer och deras förlängningar och dataapplikationer för att skydda användare (och deras information) från själva. Som vi har sagt, fortfarande program inte kan ta itu med varandra direkt, eftersom expansionen är små binära filer som körs separat från innehåller programmet. Alla program som orsakar expansion (värd app i Apple terminologi) avser att expandera, men inte till den applikation som den innefattar (innehållande app). I detta fall, när värdapplikationen behöver använda tillägget, skickar den en begäran via ramen för systemet, snarare än direkt, och aldrig kommer att få tillgång till programdata.
Utvecklare av Fortytwo Inc. Eduardo Fonseca förklarar hur man lyckas hålla iOS-appar och tillägg "på ett säkert avstånd."
"Varje utvidgning - detta är en separat bunt (bundle) inuti huvud bunt program som innehåller separata körbara" - säger Fonseca. "Det roliga här är att expansionen inte är ett program. Den orsakas genom systemramar Apple, med användning av en klart definierad gränssnitt, som initierar processen att starta expansion. I detta fall är koden exekveras separat och detta innebär att resultatet för tredje part kod inte kan vara inne i programmet. Därför finns det ingen risk att de program som kommer att stödja förlängningen (t.ex. Safari), kan det uppstå problem när du använder tillägg inuti andra program. De är som olja och vatten - de inte blanda ".
Även om expansionen är nödvändigt att hänvisa till att ha samma ansökan, BUET det sker endast genom systemet API. Som standard innehåller appen förlängning och utvidgning av sig kan inte komma åt varandras uppgifter.
För utbyte av data mellan dem, måste du göra dem till en del av en grupp av applikationer (App Group), vilket gör det möjligt för dem att ha lite allmän information i den externa behållaren, både utanför sandlådan. Du märkt förmodligen att när du loggar in på ditt konto i Google Chrome på iOS, kommer du också vara inloggad och Google Maps och Google Drive - det är resultatet av att använda App Group. Men även dessa grupper är begränsade till vissa typer av data som kan utbytas. Tillåten utbyte databas cache kontoinformation. Dock är lokala dokument och mediefiler inte fallet - de fortfarande förbjudna.
Enkelt uttryckt, inte Apple inte vill ha några program för att få tillgång till en annan sandlåda. Tillägg är små sandlåda i en annan sandlåda, som kommer att underlätta samverkan mellan olika applikationer, men aldrig tillåts nära starta tillämpningen (värd app) uppgifter program som innehåller en förlängning (innehållande app).
Mekanismer kör Extensions skiljer sig också från programmet. Om du kör samma utsträckning i flera applikationer såsom Safari och Mail, kommer systemet att öppna två exemplar av denna expansion, som kommer att köras i separata processer. Dessa tillägg lagras i olika minnesområden. Således informationen om båda ansökningarna lagras på olika platser, och de bara har tillgång till sina uppgifter. Av samma skäl, webbläsare öppnar en mängd olika platser i separata flikar.
Android ger sin egen sandlåda modell, som också syftar till att skydda data som lagras i ett program från andra program som inte har tillgång till dem (även om så önskas, kan utvecklare enkelt arbeta runt det). Särskilt farligt här är beviljandet av rättigheter att läsa och skriva tillgång till alla data program som föråldrade även Android 4.2., även om ansökan är fortfarande kunna komma åt data från andra tillämpningar.
Återigen, alla dessa mekanismer är endast effektiva när de används på rätt sätt, men människor tenderar att vara sällsynta Läs licensavtalet och bara hålla med dessa ansökningar, som tillhandahåller mjukvara för att installera, att utsätta sina data risk. Apple är mycket väl lämpad för den här frågan, och även nu i iOS har en bekväm miljö med sekretess växlar, som syns tydligt vad prilolzheniya använda en del information. Något som Google meddelade i Android 4.4, men i den slutliga utgåvan av detta tyvärr var inte där. Den har ingen direkt relation till förlängningen, men detta är ett bra exempel på hur iOS 8 fortsätter att offra flexibilitet till förmån för säkerheten och integriteten för användarna.
Apple ställer också andra begränsningar för expansion - de kan inte använda alla API, som nås av program. Särskilt anpassade tangentbord begränsat antal obligatoriska krav och regler. Mekanismer för interaktion Apple tillägg skiljer sig från de som använder Google och i själva verket stängt iOS 8 resterna operativsystem, jämfört med Android. tredjepartsprogram fortfarande inte kan kommunicera direkt sinsemellan, och systemelement såsom startskärmen eller låsskärmen är inte mottaglig för anpassning, samt ansökningar om Standard.
Ändå verkar det som om Apple äntligen har lyssnat på de enskilt största klagomål om sin mobila plattform och har vidtagit åtgärder, men kännetecknande för hennes stil, utan drastiska åtgärder, vilket skulle kunna öka minneskrav eller säkerhetshot användare. Nu, medan iOS 8 har ännu inte offentliggjorts, är det svårt att bedöma fördelarna och nackdelarna med en sådan strategi, men på pappret det hela ser mycket lovande ut.
(via)