Af alle de nye funktioner iOS 8 præsenteret på WWDC, det vigtigste, måske, er forlængelsen (udvidelsesmuligheder). De bør have en stor indflydelse på den videre udvikling af OS. Ofte denne funktion er beskrevet som "evne til tredjepartsprogrammer til at interagere med hinanden." Dette er naturligvis, er for overdrevet, da interaktionen er ikke den eneste mulighed for udvidelser, og de kan ikke kommunikere direkte med hinanden, for at være helt nøjagtig.
Vi har læst dokumentationen udvikler og videoer fra WWDC, at forstå, hvordan udvidelser virker og hvordan Apple har fundet et kompromis mellem åbenhed af systemet og brugeren datasikkerhed og vil gerne tale om det dig.
Så hvad gør en udvidelse?
Aktivering tredjepartsprogrammer adgang hinanden, er det kun et problem, som er at løse ekspansionen. Side af tastaturet; ansøgning integration med andre cloud storage, foruden iCloud; widgets i Notification center - alt dette er også bæres af udvidelser.
Faktisk ikke alle iOS kan "forbedret" tredjepartsudviklere. For eksempel, hvis du ønsker at erstatte standard program eller tilføje en kontakt i kontrolrummet - du vil ikke fungere. Apple leverer er ikke så meget klart defineret "extension points» (udvidelse point), for at vise udviklerne med nogen del af operativsystemet de kan arbejde. En liste over disse punkter som følger:
- ekspansion dag (Idag udvidelser) eller widgets - bruges til at give øjeblikkelig information i Notification Center. Du kan betragte dem som en reaktion på de levende fliser Windows Phone og Android hjem widgets.
- forbedre udvekslingen af (Del udvidelser) - gør det muligt at sende billeder, links eller andre filer i ansøgningen i de online-tjenester. Såsom udstationering fotos i Pinterest eller uploade filer til Dropbox eller OneDrive direkte fra programmet.
- opskalering (Action extensions) - bruges til "manipulation eller vist indhold i forbindelse med et andet program." Med andre ord betyder det, at du kan redigere foto, der er indeholdt i et tekstdokument, eller, For eksempel, som vist i præsentationen, brug noget som Bing Translate til at oversætte tekst i et vindue Safari.
- Udvidelser til fotoredigering (Foto Redigering extensions) - kan bruge redigering kapaciteter af andre programmer, når du ser billeder i kameraet roll.
- udvidet lagringsvolumen (Storage Provider extensions) - gør det muligt for ansøgninger til åbne dokumenter fra en række sky opbevaring. For eksempel kan du bruge til at gemme dine dokumenter Dropbox og adgang dem direkte ud af kontoret til iPad eller sider.
- Udvidelser til tredjepartsprogrammer tastaturer (Tilpassede tastatur udvidelser) - erstatte standard tastatur i iOS.
Forlængelserne er iOS, men mange af dem (herunder widgets udveksle og ekspansion al.) Kører i OS X Yosemite, såvel som i iOS. applikationer fra App Store udviklere af Mac ansigt lignende begrænsninger sandkasse og implementering af udvidelser bit forenkle deres liv. Selvom, mest sandsynligt, mange udviklere fortsat at unddrage sig dem, undgå Mac App Store på alle.
Denne foreløbige liste over extension points adskiller sig fra systemet hensigter (Intents system), der arbejder i Android. Apps på Android Brug filtrene til at forstå det operativsystem hvilke handlinger de kan udføre og håndtag. For eksempel kan Twitter og Facebook sende billeder og links; Google Drev og Dropbox kan downloade forskellige filer; Chrome og Firefox kan åbne websider mv Tredjepartsudviklere kan endda indstille filtre selv, som vil operere i operativsystemet.
Samtidig, iOS er meget begrænsning i denne henseende, men ikke uden grund. Men for almindelige brugere vil ikke mærke alt dette og udvide lidt end vil afvige fra deres kolleger Android, iOS mens sikkerhedspolitik opretholdelse.
Sådan installere udvidelser, og hvordan fungerer de?
Samt alle de officielle app til iOS, udvidelser hentet fra App Store. Den største begrænsning er, at Apple ikke tillader udviklere at udgive udvidelser i "ren form". Hver forlængelse skal distribueres som en del af ansøgningen (indeholdende app), hvilket igen bør bære nogen basisk funktionalitet og være nyttig for brugeren. Det vil sige, kan udviklerne ikke udgive til App Store bare en widget eller bare tastaturet, som det sker nu i Android. Samtidig, Apple ikke pålægge begrænsninger på antallet og typer af udvidelser, som kan indeholde din ansøgning.
Andre anbefalinger til Apple udviklere er ikke påkrævet. Det gælder udformningen af udvidelser, som skal svare til de standard OS-programmer: widgets ikke afviger fra eksisterende widgets i Notification Centre og foto redigering menu i kamerarullen - radikalt forskellige fra indfødte. Sandsynligvis er der dem, der ikke overholder disse anbefalinger, men først og fremmest fordi de fleste udviklere og holde sig til filosofien om Apple, når du opretter deres ansøgninger.
Hver udvidelse aktiveres på forskellige måder. Widgets - fra Notification Centre, tastaturer - fra de regionale systemindstillinger. Udvidelse af fotoredigering og opbevaring kaldes kun i visse situationer applikationer, der giver interaktion med dem. Forbedre udveksling og handling kan kaldes fra alle programmer, men udviklerne skal tilføje aktiveringen regler for at udvide og angive, hvilke data skal bearbejdes. Hvis dit lokalnummer kun indeholder bestemmelser om udveksling af billeder, skal du angive det i aktivering af de regler, som udvidelsen ikke vises, når en bruger ønsker at dele et link eller et dokument.
På trods af at alle de udvidelser, skal "pakket" i ansøgningen (indeholdende app), kan de arbejde selvstændigt. Hver udvidelse - dette er en lille binær .appex-fil, der åbner arbejdet gjort og lukkes uden at skulle starte hovedprogrammet. For udvidelser, der udfører de samme som deres primære anvendelse (fx Instagram, bruges til at tilføje et filter til billedet) opfordres til at bruge en indbygget ramme for overførsel af eksekverbar kode der kræves for den pågældende opgave. Opret en ramme, sætte koden i der, og du vil være i stand til at bygge disse rammer både i ansøgningen og i forlængelsen. Den eneste begrænsning er, at disse programmer vil kræve iOS version 8 og derover, som ikke vil køre på tidligere operativsystemer.
En af grundene til udvidelse køres separat fra anvendelsen heraf, er Apple hårdt grænse for, hvor meget hukommelse der forbruges. Dette gælder især for den widget, som brugeren kan have flere samtidige widgets.
Hertil kommer, at widgets ikke arbejde i lang tid, og med magt fjernet fra enheden efter lukketid. For udvidelser, der udfører lange baggrund opgaver, såsom at downloade filer, Apple anbefaler at overføre disse opgaver system og derefter lukke den.
Det er alle de vigtigste punkter, på iOS udvidelser. Som du kan se alle de mulige udvidelser strengt dokumenteret, men er præget af det faktum, at på trods af de øgede beføjelser, leveres af udviklere og deres applikationer, de ikke overtræder eksisterende sikkerhedspolitik og arbejde inden for sit "Sandbox".
Sikkerhed af brugerdata. Forskelle fra Android
I en nøddeskal, er forskellen mellem den tilgang til data privatlivets fred og sikkerhed iOS og Android-brugere Det er, at sidstnævnte giver udviklere med en række af rebet, der er tilstrækkelig til at hænge sig selv.
Faktisk, hvis Android-brugere anvender standardindstillingerne sikkerhedsindstillinger før installationen af hver enkelt ansøgning læse den omfattende liste ting, det kan gøre - den fare af deres personlige data til tredjemand eller malware-infektion var ikke så stor. Men alle disse rettigheder applikationer føre til forvirring. Nogle mennesker vælger at installere programmer ikke kun fra Google Play, men også fra andre kilder; andre ønsker at få root-adgang, med henblik på at installere alternative distributioner - ingen problemer, alt er muligt med Android. Sådanne ting er af interesse nogle brugere til platformen, men de gør det hele på egen risiko.
Kig på iOS, som, selv med indførelsen af udvidelser stadig opfører barrierer mellem applikationer og deres udvidelser og data applikationer for at beskytte brugere (og deres oplysninger) fra selv. Som vi har sagt, stadig programmer kan ikke løse hinanden direkte, fordi udvidelsen er små binære filer, der kører separat fra indeholder ansøgningen. Enhver ansøgning, der forårsager ekspansion (vært app i Apples terminologi) henviser til at ekspandere, men ikke til det program, som det omfatter (indeholdende app). I dette tilfælde, når værten program har brug for at bruge udvidelsen, sender en anmodning via rammen systemet, i stedet for direkte, og aldrig vil få adgang til programdata.
Udvikler af FortyTwo Inc. Eduardo Fonseca forklarer, hvordan du formår at holde iOS apps og udvidelser "på sikker afstand."
"Hver udvidelse - dette er et særskilt bundt (bundle) inde i de vigtigste bundt program, der indeholder separate eksekverbare" - siger Fonseca. "Det sjove er, at udvidelsen er ikke et program. Det er forårsaget gennem Apple System rammer under anvendelse af en klart defineret grænseflade, der indleder processen med at starte ekspansion. I dette tilfælde er koden eksekveres hver for sig, og dette indebærer, at udførelsen af en hvilken som helst tredjepart koden ikke kan være inde i programmet. Derfor er der ingen risiko for, at de programmer, der vil støtte forlængelsen (såsom Safari), kan du opleve problemer, når du bruger udvidelser inde andre programmer. De er som olie og vand - hvis de ikke kommer ".
Selv om udvidelsen er nødvendigt at henvise til at have det samme program, Buet det kun forekomme gennem systemet API. Som standard app indeholder en udvidelse og udbygning af sig selv kan ikke få adgang til hinandens data.
Til udveksling af data mellem dem, er du nødt til at gøre dem til en del af en gruppe af applikationer (App-gruppen), som vil give dem mulighed for at få nogle generelle oplysninger i den eksterne beholder, både uden for sandkassen. Du har sikkert lagt mærke til, at når du logger ind på din konto i Google Chrome på iOS, vil du også være logget ind og til Google Maps og Google Drev - det er resultatet af at anvende App-koncernen. Men selv disse grupper er begrænset til bestemte typer af data, der kan udveksles. Tilladt udveksling database cache kontooplysninger. Men for de lokale dokumenter og mediefiler er ikke tilfældet - de er stadig forbudt.
Kort sagt, Apple ikke ønsker nogle programmer til at få adgang til en anden sandkasse. Udvidelser er små sandkasse i en anden sandkasse, som vil gøre det lettere at samspillet mellem forskellige applikationer, men aldrig tilladt nær programmet startes (host app) data program, der indeholder en udvidelse (indeholdende app).
Mekanismer køre udvidelser er også forskellige fra programmet. Hvis du kører den samme udvidelse i flere programmer, f.eks Safari og Mail, vil systemet åbne to eksemplarer af denne ekspansion, som vil køre i separate processer. Disse udvidelser gemmes i forskellige hukommelse områder. Således informationen fra begge programmer er gemt i forskellige steder, og de har kun adgang til deres data. Af samme grund, browsere åbne op for en bred vifte af steder i separate faner.
Android giver sin egen sandkasse model, som også har til formål at beskytte de data, der er lagret i en ansøgning fra andre programmer, der ikke har adgang til dem (selvom, hvis det ønskes, kan udviklere nemt arbejde omkring det). Specielt farlig her er tildelingen af rettigheder til at læse og skrive adgang til alle data i applikationer, der forældet selv Android 4.2., selvom ansøgningen er stadig i stand til at få adgang til data fra andre applikationer.
Igen, alle disse mekanismer er kun effektive, når de anvendes korrekt, men folk har tendens til at være sjældne læse licensaftalen og bare enig med de anmodninger, som giver software at installere, udsætter deres data risiko. Apple er meget velegnet til dette spørgsmål, og selv nu i iOS har en komfortabel indstilling med privatlivets fred switches, der klart kan ses, hvad prilolzheniya bruge nogle oplysninger. Noget som Google annoncerede i Android 4.4, men i den endelige version af dette, desværre var der ikke. Det har ingen direkte relation til udvidelsen, men det er et godt eksempel på, hvordan iOS 8, fortsætter med at ofre fleksibilitet af hensyn til sikkerheden og brugernes privatliv.
Apple pålægger også andre restriktioner på ekspansion - de kan ikke bruge al API, som kan tilgåes af applikationer. Især brugerdefinerede tastatur begrænset antal obligatoriske krav og regler. Mekanismer for interaktion Apple udvidelser er forskellige fra dem, der bruger Google og i virkeligheden lukket iOS 8 rester operativsystem, sammenlignet med Android. Tredjepartsprogrammer kan stadig ikke kommunikere direkte med hinanden, og systemelementer såsom startskærmen eller låseskærmen er ikke modtagelig for tilpasning, samt ansøgninger om Standard.
det lader ikke desto mindre, at Apple endelig har lyttet til de største enkelte klager over sin mobile platform og har truffet foranstaltninger, men karakteristisk for hendes stil, uden drastiske handling, som kunne øge hukommelsen krav eller trusler mod sikkerheden brugere. Nu, mens iOS 8 endnu ikke er blevet offentliggjort, er det vanskeligt at bedømme fordele og ulemper ved en sådan tilgang, men på papiret det hele ser meget lovende.
(via)