Dintre toate noile caracteristici iOS 8 prezentate la WWDC, cel mai important, poate, sunt extensia (extensibilitate). Acestea ar trebui să aibă un impact mare asupra dezvoltării în continuare a sistemului de operare. Adesea, această caracteristică este descrisă ca fiind „capacitatea de aplicații de la terți pentru a interacționa unii cu alții.“ Aceasta, desigur, este prea exagerat, deoarece interacțiunea nu este singura posibilitate de extensii, și nu pot comunica direct între ele, pentru a fi exact.
Am citit documentația pentru dezvoltatori și videoclipuri de la WWDC, pentru a înțelege cum funcționează extensiile și modul în care Apple a găsit un compromis între gradul de deschidere a sistemului de securitate și a datelor de utilizator și-ar dori să vorbească despre asta tu.
Deci, ce fac expansiunea?
Activarea aplicații de la terțe părți pentru a accesa reciproc, aceasta este doar o problemă, care este de a rezolva expansiune. Parte a tastaturii; integrarea cu alte aplicații de stocare nor, în plus față de icloud; Widget-urile în Centrul de notificări - toate acestea sunt de asemenea suportate de extensii.
De fapt, nu toate iOS poate fi „îmbunătățită“ dezvoltatorilor terți. De exemplu, dacă doriți să înlocuiți aplicația implicită sau adăugați un comutator în camera de comandă - nu va funcționa. Apple le furnizează nu este atât de mult clar definit „puncte de extensie» (puncte de extensie), pentru a arăta dezvoltatorii cu orice parte a sistemului de operare pot lucra. O listă a acestor puncte, după cum urmează:
- Astăzi de expansiune (extensii de azi) sau widget-uri - sunt folosite pentru a furniza informații instantanee în Centrul de notificări. Le puteți considera ca un răspuns la Live Tiles Windows Phone și Android widgeturi din ecranul de acasă.
- spori schimbul de (cota extensii) - vă permite să trimiteți fotografii, link-uri sau alte fișiere ale aplicației în serviciile on-line. Cum ar fi postarea de fotografii în Pinterest sau încărca fișiere Dropbox sau OneDrive direct din aplicație.
- extinderea (extensii de acțiune) - utilizate pentru „manipularea sau conținutul de vizualizare în contextul unei alte cereri.“ Cu alte cuvinte, aceasta înseamnă că puteți edita fotografia, care este conținută într-un document text, sau, De exemplu, așa cum se arată în prezentarea, utilizarea ceva de genul Bing Traduceți pentru a traduce text într-o fereastră Safari.
- Extensii pentru editare foto (extensii de editare foto) - se poate utiliza capacitățile de editare a altor aplicații la vizualizarea imaginilor în rola de film.
- stocare extins (Extensii de stocare Provider) - permite aplicațiilor la documentele deschise dintr-un număr de stocare nor. De exemplu, puteți utiliza pentru a stoca documentele Dropbox și accesul acestora direct Oficiului pentru iPad sau pagini.
- Extensii pentru tastaturi terță parte (extensii personalizate de la tastatură) - înlocuiți tastatura standard, în iOS.
Extensiile menționate sunt iOS, dar multe dintre ele (inclusiv widget-uri și un schimb al expansiunii.) Rularea în OS X Yosemite, precum și în iOS. aplicații din App Store dezvoltatorii de Mac se confruntă cu restricții similare sandbox și punerea în aplicare a extensiilor biți simplifica viața lor. Deși, cel mai probabil, mulți dezvoltatori continuă să le sustragă, evitând Mac App Store, la toate.
Această listă preliminară a punctelor de extensie diferă de intentiilor de sistem (sistem Intenții), care lucrează în Android. Aplicații pe Android utilizați filtrele pentru a înțelege sistemul de operare acțiunile pe care le pot efectua și mâner. De exemplu, Twitter și Facebook pot posta fotografii și link-uri; Google Drive și Dropbox pot descărca diferite fișiere; Chrome și Firefox poate deschide pagini web, etc. Dezvoltatorii terți pot seta chiar și filtre de ei înșiși, care vor funcționa în sistemul de operare.
În același timp, iOS este mult limitare în această privință, deși nu fără un motiv. Cu toate acestea, pentru utilizatorii obișnuiți nu vor observa toate acestea și extinde un pic mai mult decât va diferi de la omologii lor Android, iOS menținând în același timp politica de securitate.
Cum se instalează extensiile și modul în care acestea funcționează?
Precum și toate aplicația oficială pentru iOS, extensiile descărcate de pe App Store. Cea mai mare limitare de aici este faptul că Apple nu permite dezvoltatorilor să publice extensii în „formă pură“. Fiecare prelungire trebuie să fie distribuit ca parte a aplicației (conținând app), care la rândul său, ar trebui să efectueze orice funcționalitate de bază și să fie utile utilizatorului. Asta este, dezvoltatorii nu pot publica la App Store doar un widget sau doar tastatura, așa cum se întâmplă acum în Android. În același timp, Apple a nu impune restricții cu privire la numărul și tipurile de extensii, care pot conține aplicația.
Alte recomandări pentru dezvoltatorii Apple nu sunt necesare. Acest lucru se aplică la proiectarea de extensii, care ar trebui să corespundă aplicațiile standard OS: widget-uri nu diferă de la widget-uri existente în Centrul de notificări, și fotografie meniu de editare în Rola de film - radical diferite de nativ. Probabil că sunt cei care nu respectă aceste recomandări, dar mai ales pentru că majoritatea dezvoltatorilor și să adere la filozofia Apple la crearea aplicațiilor lor.
Fiecare extensie este activat în diferite moduri. Widget-uri - de la Centrul de notificări, tastaturi - din setările sistemului regional. Extinderea editare și stocare a fotografiilor sunt numite numai în anumite situații de aplicații care oferă interacțiunea cu ei. Consolidarea schimbul și de acțiune poate fi apelat din orice aplicație, dar dezvoltatorii trebuie să adauge regulile de activare pentru a extinde și de a specifica datele care urmează să fie prelucrate. Dacă extensia dvs. prevede doar pentru schimbul de fotografii, trebuie să-l specificați în activarea regulilor că extinderea nu apare atunci când un utilizator dorește să împartă un link sau un document.
În ciuda faptului că toate extensiile trebuie să fie „ambalate“ în (app care conține) cerere, acestea pot lucra independent. Fiecare extensie - acesta este un mic binar .appex-fișier, care se deschide treaba și închise fără a fi nevoie pentru a porni aplicația principală. Pentru extensii care îndeplinesc aceleași sarcini ca și aplicarea lor principală (de exemplu Instagram, utilizat pentru adăugarea unui filtru imaginii) sunt încurajate să utilizeze un built-in cadru pentru transmiterea codului executabil necesare pentru sarcina respectivă. Crearea unui cadru, a pus codul acolo și vei fi capabil de a construi acest cadru, atât în cerere și în extensia. Singura restricție este că aceste aplicații vor necesita versiunea iOS 8 și mai sus, nu va rula pe sisteme de operare anterioare.
Unul dintre motivele pentru care expansiunea rula separat de aplicarea acestuia este, Apple a limita greu de cantitatea de memorie consumată. În special, acest lucru se aplică widget-ul, deoarece utilizatorul poate avea mai multe widget-uri concurente.
În plus, widget-uri nu funcționează pentru o lungă perioadă de timp, și a scos cu forta din dispozitiv, după închidere. Pentru extensii care îndeplinesc sarcini de fundal lungi, cum ar fi descărcarea de fișiere, Apple recomandă să transfere aceste sistem de sarcini, și apoi închideți-l.
Asta e tot principalele puncte, pe extensiile pentru iOS. După cum puteți vedea toate extensiile posibile strict documentate, dar este notabil pentru faptul că, în ciuda puteri sporite, furnizate de dezvoltatori și aplicațiile lor, ei nu încalcă politica de securitate și de lucru în cadrul acestuia existent "Sandbox".
Securitatea datelor de utilizator. Diferențele față de Android
Într-un cuvânt, diferența dintre abordarea datelor confidențialitatea și securitatea utilizatorilor iOS și Android Este că acesta din urmă oferă dezvoltatorilor un număr de frânghie, care este suficientă pentru hang însuși.
De fapt, în cazul în care utilizatorii Android utilizează setările implicite de securitate înainte de instalarea fiecărei aplicații citește lista extinsă lucrurile care le poate face - pericolul datelor lor cu caracter personal către terți sau infecție malware-ului nu a fost atât de mare. Dar, toate cererile de aceste drepturi duce la confuzie. Unii oameni aleg să instaleze aplicații nu numai de la Google Play, dar și din alte surse; alții doresc pentru a obține de rădăcină de acces, în scopul de a instala distribuții alternative - nu sunt probleme, totul este posibil cu Android. Astfel de lucruri sunt de interes pentru unii utilizatori platforma, dar totul face pe propriul risc.
Uită-te la iOS, care, chiar și cu introducerea de extinderi încă bariere între reușește să ridice Aplicațiile și extensiile și datele lor de aplicații pentru utilizatorii Protejare (și informațiile lor) de la ei înșiși. Așa cum am spus, încă aplicații nu se pot adresa direct între ele, deoarece expansiunea este mic fișiere binare care se execută separat de aplicația care conține. Orice aplicație care cauzează (app gazdă în terminologia Apple) de expansiune se referă la extinderea, dar nu la aplicația care cuprinde (conținând app). În acest caz, atunci când aplicația gazdă trebuie să utilizeze extensia, acesta trimite o solicitare prin intermediul cadrului de sistem, mai degrabă decât în mod direct, și nu va avea acces la datele aplicației.
Dezvoltator de FortyTwo Inc. Eduardo Fonseca explică modul de a gestiona pentru a păstra aplicațiile iOS și extensii „la o distanță sigură.“
„Fiecare extensie - acesta este un pachet separat (pachet) din interiorul aplicației principale pachet care conține executabilele separate,“ - spune Fonseca. „Lucru amuzant este că extinderea nu este o aplicație. Acesta este cauzat prin cadrele de sistem Apple, folosind o interfață clar definită, care inițiază procesul de pornire de expansiune. În acest caz, codul este executat separat, iar acest lucru implică faptul că performanța oricărui cod terț nu poate fi în interiorul aplicației. Prin urmare, nu există nici un risc ca aplicațiile care vor sprijini extensia (cum ar fi Safari), este posibil să apară probleme atunci când utilizați extensii în interiorul altor aplicații. Ele sunt ca uleiul si apa - nu se amestecă ".
Chiar dacă este necesară extinderea pentru a se referi la a avea aceeași aplicație, ea BUET loc numai prin intermediul sistemului API. În mod implicit, aplicația conține extensia și extinderea în sine nu poate avea acces la datele reciproc.
Pentru schimbul de date între acestea, trebuie să le facă parte dintr-un grup de aplicații (App Group), care le va permite să aibă unele informații generale în container extern, atât în afara sandbox. Probabil ați observat că, odată ce vă conectați la contul dvs. în Google Chrome pe iOS, veți fi conectat și la Google Maps și Google Drive - acesta este rezultatul utilizării Grupului App. Dar chiar și aceste grupuri sunt limitate la anumite tipuri de date care pot fi schimbate. Permise de baze de date de schimb de informații de cont cache. Cu toate acestea, pentru documentele locale și fișiere media nu este cazul - acestea sunt încă interzise.
Pur și simplu pune, Apple nu vrea unele aplicații să aibă acces la o altă cutie cu nisip. Extensiile sunt Sandbox mici într-o altă cutie de nisip, care va facilita interacțiunea diferitelor aplicații, dar niciodată nu a permis apropierea lansarea aplicației (app gazdă) cererea de date care conține o extensie (care conține app).
Mecanismele Extensiile sunt conduse, de asemenea, diferite de aplicație. Dacă executați aceeași extensie în mai multe aplicații, cum ar fi Safari și Mail, sistemul va deschide două copii ale acestei extinderi, care se va desfășura în procese separate. Aceste extensii sunt stocate în diferite zone de memorie. Astfel, informațiile din ambele cereri sunt stocate în diferite locuri, și au acces la datele lor numai. Din același motiv, browsere deschide o varietate de site-uri în file separate.
Android oferă propriul model de cutie de nisip, care are ca scop, de asemenea, pentru a proteja datele stocate într-un singur cerere de la alte aplicații care nu au acces la ele (deși, dacă se dorește, dezvoltatorii pot lucra cu ușurință în jurul acestuia). Deosebit de periculos aici este acordarea de drepturi pentru a citi și scrie accesul la toate datele de aplicații care depășit chiar și Android 4.2., cu toate că cererea este încă în măsură să acceseze datele altor aplicații.
Din nou, toate aceste mecanisme sunt eficiente numai atunci când sunt utilizate în mod corect, dar oamenii tind să fie rare citiți acordul de licență și sunt de acord doar cu acele solicitări, care oferă software pentru a instala, expunând datele lor risc. Apple este foarte bine potrivite pentru această problemă, și chiar și acum în iOS are un cadru confortabil cu switch-uri de confidențialitate, care poate fi văzut în mod clar ceea ce prilolzheniya folosesc unele informații. Ceva de genul Google a anunțat în Android 4.4, dar în versiunea finală a acestui fapt, din păcate, nu a fost acolo. Ea nu are nici o legătură directă cu extinderea, dar acest lucru este un bun exemplu al modului în care iOS 8, continuă să sacrifice flexibilitatea de dragul securității și a confidențialității utilizatorilor.
Apple a impune, de asemenea, alte restricții cu privire la extinderea - ei nu pot folosi toate API-ul, care este accesat de aplicații. În special personalizate pe tastatură numărul de cerințe obligatorii și reguli limitate. Mecanismele de extensii la Apple interacțiune sunt diferite de cele care utilizează Google și, de fapt, iOS 8 rămâne închisă sistem de operare, în comparație cu Android. aplicații de la terțe părți încă nu pot comunica direct între ele, și elemente de sistem cum ar fi ecran de pornire sau de blocare a ecranului nu poate fi invocată pentru personalizare, precum și cererile de Implicit.
Cu toate acestea, se pare că Apple a ascultat în cele din urmă la cele mai mari plângeri unice despre platforma sa de telefonie mobilă și a luat măsuri, dar caracteristic pentru stilul ei, fără măsuri drastice, care ar putea crește cerințele de memorie sau amenințărilor de securitate utilizatori. Acum, în timp ce iOS 8 nu a fost încă publicat, este dificil de a judeca avantajele și dezavantajele unei astfel de abordări, dar pe hârtie toate că arată foarte promițătoare.
(prin)