Av alle de nye funksjonene iOS 8 presentert på WWDC, det viktigste, kanskje, er utvidelsen (utvidelses). De bør ha en stor innvirkning på den videre utviklingen av operativsystemet. Ofte denne funksjonen er beskrevet som "evnen til tredjepartsprogrammer for å kommunisere med hverandre." Dette, selvfølgelig, er også overdrevet, siden samspillet er ikke den eneste muligheten for utvidelser, og de kan ikke kommunisere direkte med hverandre, for å være nøyaktig.
Vi har lest utbygger dokumentasjon og videoer fra WWDC, for å forstå hvordan utvidelser fungerer og hvordan Apple har funnet et kompromiss mellom åpenhet av sikkerhetssystemet og brukerdata og ønsker å snakke om det deg.
Så hva gjør utvidelsen?
Aktivering av tredjepartsprogrammer for å få tilgang til hverandre, det er bare ett problem, som er å løse utvidelsen. Side av tastaturet; søknad integrering med andre sky lagring, i tillegg til iCloud; widgets i Varslingssenter - alt dette er også bæres av utvidelser.
Faktisk ikke alle av iOS kan "utvidet" tredjeparts utviklere. For eksempel, hvis du ønsker å erstatte standardprogrammet eller legge til en bryter i kontrollrommet - du ikke vil fungere. Apple gir ikke så mye klart definert "skjøtepunkter» (forlengelse poeng), for å vise utviklerne med noen del av operativsystemet de kan arbeide. En liste over disse punktene som følger:
- dag utvidelse (Dagens extensions) eller widgets - brukes til å gi umiddelbar informasjon i Notification Center. Du kan vurdere dem som en reaksjon på de levende flisene Windows Phone og Android startskjermen widgets.
- forbedre utvekslingen av (Del extensions) - lar deg sende bilder, linker eller andre filer av programmet i de nettbaserte tjenestene. Slike som legger inn bilder i Pinterest eller laste opp filer til Dropbox eller OneDrive direkte fra programmet.
- oppskalering (Tiltak extensions) - brukes til å "manipulasjon eller vise innhold i sammenheng med et annet program." Med andre ord, dette betyr at du kan redigere bildet, som finnes i et tekstdokument, eller, For eksempel, som vist i presentasjonen, bruk noe som Bing Oversett å oversette tekst i et vindu Safari.
- Utvidelser for fotoredigering (Foto Redigere extensions) - kan bruke redigeringsmuligheter av andre programmer når du ser på bilder i kameraet roll.
- utvidet lagrings (Storage Provider extensions) - Lar applikasjoner åpne dokumenter fra en rekke sky lagring. For eksempel kan du bruke til å lagre dokumentene Dropbox og tilgang dem direkte ut av Office for iPad eller Pages.
- Utvidelser for tredjeparts tastaturer (Custom tastatur extensions) - erstatte standard tastatur i iOS.
De nevnte utvidelser er iOS, men mange av dem (inkludert widgeter utveksle og utvidelse al.) Som løper i OS X Yosemite, så vel som i iOS. applikasjoner fra App Store utviklerne av Mac ansikt lignende restriksjoner sandkasse og implementering av utvidelser bet forenkle livet. Skjønt, mest sannsynlig, mange utviklere fortsette å unngå dem, unngå Mac App Store i det hele tatt.
Denne foreløpige listen over linje poeng er forskjellig fra system hensikter (Hensikter system), som arbeider i Android. Apper på Android bruke filtrene til å forstå operativsystemet hvilke handlinger de kan utføre og håndtak. For eksempel kan Twitter og Facebook legger ut bilder og linker; Google Drive, og Dropbox kan laste ned ulike filer; Chrome og Firefox kan åpne nettsider osv Tredjepartsutviklere kan selv sette filtre seg, som vil operere i operativsystemet.
Samtidig er iOS mye begrensning i denne forbindelse, men ikke uten grunn. Men for vanlige brukere vil ikke merke alt dette og utvide litt enn vil være forskjellig fra sine kolleger Android, iOS og samtidig opprettholde sikkerhetspolitikk.
Hvordan installere utvidelser, og hvordan fungerer de?
Samt all den offisielle app for iOS, utvidelser lastet ned fra App Store. Den største begrensningen her er at Apple ikke tillater utviklere å publisere utvidelser i "ren form". Hver forlengelse må være fordelt som en del av søknaden (inneholdende app), som igjen skal bære noen grunnleggende funksjonalitet og være nyttig for brukeren. Det vil si at utviklere kan ikke publisere til App Store bare en widget eller bare tastaturet, som skjer nå i Android. Samtidig er det Apples ingen begrensninger på antall og typer utvidelser, som kan inneholde søknad.
Andre anbefalinger for Apple utviklere er ikke nødvendig. Dette gjelder utformingen av utvidelser, som skal tilsvare standard OS-programmer: widgets skiller seg ikke fra eksisterende widgets i Notification Center, og bilderedigering menyen i Kamerarull - radikalt forskjellige fra innfødt. Sannsynligvis er det de som ikke overholder disse anbefalingene, men hovedsakelig fordi de fleste utviklere og holder seg til filosofien til Apple når du oppretter sine applikasjoner.
Hver forlengelse aktiveres på forskjellige måter. Widgets - fra Notification Centre, tastaturer - fra de regionale systeminnstillingene. Utvidelse av fotoredigering og lagring kalles bare i visse situasjoner med programmer som gir interaksjon med dem. Forbedre utvekslingen og virkningen kan kalles fra en applikasjon, men utviklerne må legge aktiverings regler for å utvide og spesifisere hvilke data som skal behandles. Hvis utvidelsen gir kun for utveksling av bilder, må du angi det i aktivering av reglene at utvidelsen ikke vises når en bruker ønsker å dele en link eller et dokument.
Til tross for at alle utvidelser må være "pakket" i programmet (som inneholder app), kan de arbeide selvstendig. Hver utvidelse - dette er en liten binær .appex-fil, som åpner jobben gjort og lukkes uten å måtte starte hoved programmet. For utvidelser som utfører de samme oppgavene som sin viktigste anvendelse (f.eks Instagram, som brukes for å legge til en filter til bildet) oppfordres til å bruke en innebygget i rammen for overføring av utførbar kode som kreves for den aktuelle oppgave. Lag en ramme, setter inn koden der, og du vil være i stand til å bygge dette rammeverket både i søknaden og i forlengelsen. Den eneste begrensningen er at disse programmene vil kreve iOS versjon 8 og nyere, som ikke vil kjøre på tidligere operativsystemer.
En av grunnene til utvidelsen kjøres separat fra programmet denne, er Apple hard grense på hvor mye minne forbrukes. Spesielt gjelder dette for den modulen, som brukeren kan ha flere samtidige widgeter.
I tillegg trenger widgetene ikke fungere i lang tid, og med makt fjernet fra innretningen etter lukkingen. For utvidelser som utfører lange bakgrunnsoppgaver, for eksempel nedlasting av filer, anbefaler Apple å overføre disse oppgavene system, og deretter lukke den.
Det er alle de viktigste punktene, på iOS utvidelser. Som du kan se alle mulige utvidelser strengt dokumentert, men er kjent for det faktum at til tross for forbedrede krefter, levert av utviklere og deres programmer, har de ikke krenker eksisterende sikkerhetspolitikk og arbeid innenfor dens "Sandbox".
Sikkerheten til brukerdata. Forskjeller fra Android
I et nøtteskall, forskjellen mellom tilnærming til personvern og sikkerhet data iOS og Android-brukere Det er at den sistnevnte gir utviklere med en rekke av tauet, noe som er tilstrekkelig til å henge seg.
Faktisk, hvis Android-brukere bruker standard sikkerhetsinnstillinger før installasjonen av hvert program lese den omfattende listen tingene det kan gjøre - Faren for deres personlige data til tredjeparter eller malware infeksjon var ikke så stor. Men alle disse rettigheter programmer føre til forvirring. Noen mennesker velger å installere programmer, ikke bare fra Google Play, men også fra andre kilder; andre ønsker å få root-tilgang, for å installere alternative fordelinger - ingen problemer, alt er mulig med Android. Slike ting er av interesse noen brukere til plattformen, men de gjør det på egen risiko.
Se på iOS, som selv med innføringen av utvidelser fremdeles setter opp barrierer mellom applikasjoner og deres utvidelser og data-programmer for å beskytte brukere (og deres informasjon) fra seg selv. Som vi har sagt, fortsatt programmer kan ikke ta hverandre direkte, fordi utbyggingen er små binære filer som kjøres separat fra inneholder programmet. Enhver anvendelse som bevirker ekspansjon (app vert i Apple terminologi) refererer til å ekspandere, men ikke til anvendelsen at den omfatter (inneholdende app). I dette tilfellet, når verten programmet trenger å bruke utvidelsen, sender den en forespørsel via systemet rammeverk, i stedet for direkte, og aldri vil ha tilgang til applikasjonsdata.
Utvikler av FortyTwo Inc. Eduardo Fonseca forklarer hvordan du klarer å holde iOS-apper og utvidelser "på trygg avstand."
"Hver forlengelse - dette er et separat bunt (bundle) inne i hoved bunt programmet som inneholder separate kjørbare" - sier Fonseca. "Det morsomme her er at utvidelsen er ikke et program. Den er forårsaket gjennom Apple System rammer, ved hjelp av en klart definert grensesnitt, noe som setter i gang prosessen med å starte ekspansjon. I dette tilfellet, er koden kjøres separat, og dette innebærer at ytelsen til tredjeparts kode kan ikke være inne i programmet. Derfor er det ingen fare for at søknadene som vil støtte utvidelsen (for eksempel Safari), kan det oppstå problemer når du bruker extensions inne andre programmer. De er som olje og vann - de hører ikke sammen ".
Selv om utvidelse er nødvendig å henvise til å ha det samme programmet, Buet det skje bare gjennom systemet API. Som standard inneholder app forlengelse og utvidelse av seg selv kan ikke få tilgang til hverandres data.
For utveksling av data mellom dem, må man for å gjøre dem til en del av en gruppe av programmer (App Group), som vil tillate dem å ha en viss generell informasjon på den ytre beholderen, både utenfor sandkassen. Du har sannsynligvis lagt merke til at når du logger inn på kontoen din i Google Chrome på iOS, vil du også bli logget inn og Google Maps og Google Disk - det er resultatet av å bruke App Group. Men selv disse gruppene er begrenset til visse typer data som kan utveksles. Tillatt utveksling database cache kontoinformasjon. Men for lokale dokumenter og mediefiler er ikke tilfelle - de er fortsatt utestengt.
Enkelt sagt, ikke Apple ønsker ikke noen programmer for å få tilgang til en annen sandkasse. Utvidelser er små sandkasse i en annen sandkasse, som vil legge til rette for samspillet mellom ulike programmer, men aldri tillatt i nærheten starte programmet (verts app) data program som inneholder en forlengelse (som inneholder app).
Mekanismer kjøre Extensions er også forskjellige fra programmet. Hvis du kjører den samme utvidelsen i flere programmer, for eksempel Safari og Mail, vil systemet åpne to kopier av denne utvidelsen, som vil kjøre i separate prosesser. Disse utvidelsene er lagret i ulike minneområder. Dermed informasjonen fra begge programmene er lagret på forskjellige steder, og de bare har tilgang til sine data. Av samme grunn, nettlesere åpne opp en rekke nettsteder i egne faner.
Android gir sin egen sandkasse modell, som også tar sikte på å beskytte data som er lagret i ett søknad fra andre programmer som ikke har tilgang til dem (selv om, hvis ønskelig, kan utviklere enkelt omgå det). Spesielt farlig her er tildeling av rettigheter til å lese og skrivetilgang til alle opplysninger programmer som utdatert selv Android 4.2., selv om programmet er fortsatt i stand til å få tilgang til data fra andre applikasjoner.
Igjen, alle disse mekanismene er bare effektive når de brukes riktig, men folk har en tendens til å være sjeldne Les lisensavtalen og bare er enig med disse forespørslene, som gir programvare å installere, utsette sine data risiko. Apple er svært godt egnet til dette problemet, og selv nå i iOS har en komfortabel setting med personvern brytere, som kan sees tydelig hva prilolzheniya bruke litt informasjon. Noe som Google kunngjorde i Android 4.4, men i den endelige utgivelsen av dette, dessverre, var ikke der. Den har ingen direkte tilknytning til utvidelsen, men dette er et godt eksempel på hvordan iOS 8, fortsetter å ofre fleksibilitet av hensyn til sikkerheten og personvernet til brukerne.
Eple pålegger også andre begrensninger på utvidelse - de ikke kan bruke alle API, som nås ved anvendelser. Spesielt tilpasset tastatur begrenset antall obligatoriske krav og regler. Mekanismer for interaksjon Apple extensions er forskjellige fra de som bruker Google og, faktisk, lukket iOS 8 restene operativsystem, sammenlignet med Android. Tredjepartsprogrammer fortsatt ikke kan kommunisere direkte seg imellom, og system elementer slik som startskjermen eller låseskjermen er ikke mottagelig for tilpasning, samt programmer for Standard.
Likevel ser det ut til at Apple har endelig lyttet til enkelt største klager om sin mobilplattform, og har iverksatt tiltak, men karakteristisk for hennes stil, uten drastiske tiltak, noe som kan øke minnet krav eller sikkerhetstrusler brukere. Nå, mens iOS 8 ennå ikke er publisert, er det vanskelig å bedømme de fordeler og ulemper ved en slik tilnærming, men på papiret det hele ser svært lovende.
(via)