În acest articol, aș dori să vorbesc despre iOS 10 și ce trebuie să faceți pentru a vă pregăti aplicațiile pentru iOS 10.
La fel ca în cazul fiecărei versiuni majore, iOS 10 introduce o serie de schimbări și îmbunătățiri. Unele sunt necesare, altele sunt recomandate și există și câteva modificări care pot îmbunătăți experiența utilizatorilor din aplicație. Să începem cu o prezentare generală a ceea ce este necesar dacă construiți aplicația dvs. împotriva kitului iOS 10 SDK.
Cea mai importantă modificare nu este strict legată de iOS 10, dar este destul de important să vreau să o discut mai întâi. Chiar dacă App Transport Security (ATS) a fost în jur de la iOS 9, a fost întotdeauna ușor să renunțați la ATS prin adăugarea următorului fragment la obiectivul dvs. Info.plist.
NSAppTransportSecurity NSAllowsArbitraryLoads
Dar este pe cale să se schimbe. La 1 ianuarie 2017, fiecare aplicație depusă la App Store, inclusiv actualizările aplicațiilor existente, va trebui să respecte regulamentul ATS. Aceasta înseamnă că aplicația dvs. este necesară pentru a comunica în siguranță cu serviciile web prin HTTPS.
Dacă ați citit discuția detaliată despre App Transport Security, atunci este posibil să rețineți că App Transport Security definește un set de reguli. Serverele pe care aplicația dvs. le comunică trebuie să respecte aceste reguli. Cu alte cuvinte, solicitarea de rețea prin HTTPS nu este suficientă. Fiecare server cu care vorbește aplicația dvs. trebuie să fie asigurat de standardele de securitate moderne și să respecte standardele de securitate moderne.
Totuși, puteți defini domenii de excepție în țintă Info.plist, dar nu mai este permisă excluderea în totalitate a securității transportului de aplicații.
Recent am intrat într-o problemă legată de securitatea transportului de aplicații. Aplicația unui client este necesară pentru a comunica cu alte dispozitive din aceeași rețea. Vorbește cu alte dispozitive care utilizează adresa lor IP, care nu este acceptată de domeniile de excepție ale App Transport Security. Și pentru a face lucrurile și mai complicate, adresa IP a unui dispozitiv nu este fixată. Se poate și se va schimba în timp.
Din fericire, din iOS 10, este posibil să rezolvați această problemă adăugând o pereche suplimentară cheie-valoare către NSAppTransportSecurity
dicționar în țintă Info.plist. Prin setarea valorii NSAllowsLocalNetworking
la DA
, este posibil să dezactivați Securitatea transportului de aplicații pentru traficul de rețea local.
Dacă v-ați confruntat în trecut cu App Transport Security, vă recomandăm să aruncați o privire la documentația actualizată a App Transport Security. Apple a adăugat câteva chei suplimentare care fac lucrul cu ATS mai puțin de o durere de cap.
De exemplu, multe aplicații încarcă conținut de pe web într-o vizualizare web. Aplicația dvs. adesea nu știe ce site-uri web va vizita utilizatorul, ceea ce face imposibilă definirea domeniilor de excepție pentru App Transport Security în țintă Info.plist. De la versiunea iOS 10, puteți dezactiva aplicația Security Transport App pentru vizualizările web prin setare NSAllowsArbitraryLoadsInWebContent
la DA
în țintă Info.plist.
Ceea ce trebuie să vă amintiți este că App Transport Security este necesar pentru fiecare aplicație depusă la App Store după data de 31 decembrie. Îndepărtarea securității transportului de aplicații nu mai este posibilă. Rețineți că echipa de examinare App Store solicită o explicație din partea dvs. dacă renunțați parțial la Securitatea transportului de aplicații utilizând o excepție, cum ar fi NSAllowsLocalNetworking
sau NSAllowsArbitraryLoadsInWebContent
. Puteți citi mai multe despre acest lucru în documentația Apple.
Apple continuă să investească în protejarea intimității clienților săi, iar angajamentul respectiv are și consecințe pentru dezvoltatori. Ce înseamnă asta pentru tine?
Dacă aplicația dvs. accesează un serviciu de sistem sau o capacitate a dispozitivului care necesită permisiunea explicită a utilizatorului, utilizatorul vede o alertă de sistem în care cererea solicită permisiunea utilizatorului. Conținutul respectivei alerte a fost furnizat de sistemul de operare dacă aplicația dvs. nu a specificat una. Acest lucru sa schimbat în iOS 10.
Începând cu versiunea iOS 10, aplicația dvs. trebuie să informeze utilizatorul de ce are nevoie de acces la un anumit serviciu de sistem sau la capacitatea dispozitivului. Faceți acest lucru adăugând o cheie în țintă Info.plist. Dacă aplicația dvs. este localizată, atunci trebuie să furnizați și o traducere pentru descrierea din InfoPlist.strings fişier.
Iată o listă completă a cheilor de confidențialitate disponibile în iOS 10. Cele mai multe dintre ele ar trebui să pară familiare, dar unele sunt noi în iOS 10, cum ar fi NSSiriUsageDescription
și NSAppleMusicUsageDescription
.
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSLocationUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSVoIPUsageDescription
NSCameraUsageDescription
NSContactsUsageDescription
NSHomeKitUsageDescription
NSAppleMusicUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSpeechRecognitionUsageDescription
NSSiriUsageDescription
NSVideoSubscriberAccountUsageDescription
Dacă nu adăugați o descriere a utilizării pentru serviciile de sistem și capabilitățile dispozitivului pe care le utilizează aplicația dvs., în consola se afișează un avertisment, iar alerta de sistem care solicită permisiunea utilizatorului nu este afișată utilizatorului. Drept urmare, cererii dvs. i se refuză accesul la acel serviciu sau capacitate.
"Această aplicație a încercat să acceseze date sensibile la confidențialitate fără o descriere a utilizării. Info.plist-ul aplicației trebuie să conțină o cheie NSLocationAlwaysUsageDescription cu o valoare de șir care să explice utilizatorului cum utilizează aceste date aceste aplicații".
Este de la sine înțeles că echipa de examinare App Store respinge orice aplicații care încalcă această politică. De fapt, construcțiile încărcate în App Store care nu respectă această politică sunt respinse automat.
Dacă utilizați o bibliotecă sau un cadru terță parte în aplicația dvs., asigurați-vă că descrierile corecte de utilizare sunt adăugate la obiectivele țintă Info.plist. Bibliotecile și cadrele pentru anunțuri necesită adesea mai multe permisiuni pe care să nu le așteptați sau să le cunoașteți.
Dacă deschideți un proiect existent pentru prima dată în Xcode 8 și conține Swift, vi se cere să migrați la Swift 3. Dacă nu vă simțiți încă gata, Xcode vă cere să migrați în schimb la Swift 2.3. Trebuie să alegeți unul sau altul, deoarece Xcode 8 acceptă numai aceste versiuni ale limbajului Swift. Swift 2.2.1 și Swift 2.3 sunt foarte asemănătoare. Cea mai importantă diferență este că Swift 2.3 este compatibil cu iOS 10, tvOS 10, watchOS 3 și macOS 10.12.
Ar trebui să vă mutați astăzi la Swift 3? Probabil ca nu. Dar nu așteptați prea mult. La un moment dat, Apple va cere dezvoltatorilor să trimită aplicații cu Xcode 8, care nu acceptă Swift 2.2.1. Ai putea să rămâi cu Swift 2.3, dar de ce n-ai face decât să faci saltul?
Este adevărat că migrarea unui proiect la Swift 3 are un impact dramatic asupra codului bazei dvs. de proiect. Aproape fiecare linie de cod se schimbă într-un fel. Modificările API sunt substanțiale. Dar partea de sus este că poți folosi Swift 3. Am folosit Swift 3 de câteva luni și îmi place. Este o îmbunătățire majoră față de Swift 2.2.1 și Swift 2.3.
Dacă lucrați la un proiect mare pentru un client, asigurați-vă că planificați cu atenție migrarea către Swift 3. Pentru proiecte complexe, migrarea poate dura mai multe zile. Avantajele sunt că puteți începe să utilizați API-ul Swift 3 și de asemenea beneficiați de compilatorul îmbunătățit Swift 3 alimentat de LLVM și Clang.
Cu fiecare lansare majoră a iOS, Apple îmbunătățește platforma prin adăugarea și eliminarea API-urilor. Mai multe cadre au primit o actualizare semnificativă, iar compania a introdus, de asemenea, mai multe cadre noi.
De ce este important acest lucru? Dacă doriți să ieșiți în App Store, se plătește pentru a vă menține aplicațiile actualizate și pentru a adăuga suport pentru funcțiile noi ale platformei. Despre asta este vorba despre această secțiune.
UILocalNotification
clasa este depreciată de la iOS 10. Ce înseamnă asta pentru tine? Puteți utiliza în continuare UILocalNotification
pentru a programa și a gestiona notificările locale, dar va dispărea, probabil, la un moment dat. Dar de ce a decis Apple să se abată UILocalNotification
? A funcționat bine, corect?
În iOS 10, Apple a introdus Notificări utilizator cadru. După cum sugerează și numele, cadrul este responsabil de programarea, gestionarea și gestionarea notificărilor, local și la distanță. Asta face ca cadrul să fie mare. Aplicația dvs. nu mai trebuie să facă o distincție între notificările locale și cele de la distanță. Cadrul Notificărilor utilizator oferă un API unificat pentru gestionarea notificărilor locale și la distanță.
API arată și se simte foarte bine. Acest cadru tratează notificările locale și la distanță la fel din perspectiva dezvoltatorului, ceea ce face ca acțiunile de notificare să fie simple și transparente. Efectuarea acțiunilor de notificare este centralizată într-un protocol delegat concis.
Avem câteva tutoriale despre cadrul Notificărilor utilizatorilor chiar aici pe Envato Tuts+!
De asemenea, s-ar putea să fiți interesat de postările mele recente din blog cu privire la programarea notificărilor locale și a acțiunilor de notificare cu cadrul Notificări utilizator.
Unul dintre cele mai mari anunțuri din timpul acestui an WWDC a fost posibilitatea de a integra aplicația dvs. cu Siri prin SiriKit. Chiar dacă opțiunile sunt limitate pentru moment, dacă aplicația dvs. se încadrează într-una din categoriile acceptate, este o modalitate excelentă de a vă stabili cererea în afara competiției. Siri susține în prezent un număr limitat de domenii, inclusiv apeluri VoIP, mesagerie și antrenamente.
Integrați-vă cu Siri prin adăugarea unei extensii la aplicația dvs. Fiecare aplicație care se integrează cu Siri trebuie să adauge un intents extension. Acesta permite aplicației dvs. să efectueze o sarcină ca răspuns la informațiile pe care Siri le trimite la cererea dumneavoastră. Puteți să creați o imagine opțională intenționează să extindă UI pentru a particulariza aspectul și interfața utilizator rezultată care este prezentată utilizatorului după încheierea sarcinii.
Motorul simplu haptic al iPhone 7 și al iPhone 7 Plus a deschis numeroase posibilități pentru dezvoltatori. În iOS 10, este posibil să se folosească motorul haptic al dispozitivului pentru a oferi utilizatorului feedback tactil atunci când efectuează o acțiune specifică sau apare un anumit eveniment.
Aplicația dvs. poate conduce motorul haptic prin UIFeedbackGenerator
clasa și cele trei subclase ale sale concrete:
UIImpactFeedbackGenerator
UINotificationFeedbackGenerator
UISelectionFeedbackGenerator
Fiecare UIFeedbackGenerator
subclasa este concepută pentru un anumit scenariu. Dacă adăugați asistență pentru motorul haptic, cu siguranță veți uimi utilizatorii aplicației. Incearca.
Datele de bază sunt probabil cadrele mele preferate de cacao, iar Apple a făcut-o chiar mai minunată pe iOS 10 și cu lansarea Swift 3. Aceasta este cea mai mare actualizare pe care cadrul de lucru le-a văzut în ultimii ani.
Swift 3 și Xcode 8 se alătură forțelor pentru a face datele de bază mai utile decât oricând. Apple a introdus de asemenea NSPersistentContainer
clasă, ceea ce face ca configurarea și gestionarea unei stive de date de bază să fie o briză.
Compania a revigorat chiar fundamentele cadrului prin regândirea interacțiunii cadrului cu SQLite. Rezultatele sunt cu adevărat fantastice. Este minunat să vedem că Apple continuă să investească în Core Data, mai mult de zece ani după introducerea pe MacOS Tiger.
Pentru a afla mai multe despre datele de bază, consultați câteva dintre celelalte cursuri și tutoriale de aici despre Envato Tuts+.
Dacă vă construiți aplicația împotriva kitului iOS 10 SDK, ceea ce înseamnă că utilizați Xcode 8, atunci trebuie să vă asigurați că respectați securitatea aplicațiilor de transport și orientările privind confidențialitatea pe care le-a introdus Apple. Asigurați-vă că bifați aceste casete mai întâi.
Chiar dacă celelalte îmbunătățiri și îmbunătățiri sunt opționale, vă încurajez să le aruncați o privire. De exemplu, nu așteptați prea mult pentru a migra la Swift 3. Aveți posibilitatea să surprindeți utilizatorii prin adăugarea de asistență pentru motorul haptic. Este opțional, dar este o oportunitate de a iesi în evidență în App Store de astăzi aglomerat.
Pentru a afla mai multe despre Swift 3 sau iOS 10, consultați câteva dintre celelalte cursuri și tutoriale ale noastre.