Actualizarea aplicației dvs. pentru iOS 11

Ce veți crea

În plus față de dezvoltarea de caracteristici și de corecțiile de erori, dezvoltatorii iOS trebuie să țină evidența cu privire la ceea ce este anunțat anual la WWDC. În mijlocul noilor SDK-uri notabile anunțate, există câteva modificări pe care iOS-urile vor trebui să le extindă pentru a-și păstra aplicațiile compatibile cu platformele.

Odată cu evoluția lui Swift la versiunea 4, împreună cu îmbunătățirile și modificările care apar în SDK-ul iOS, dezvoltatorii trebuie să analizeze modificările și să elaboreze o strategie pentru actualizarea bazelor lor de coduri. Toate fără a întrerupe oricare dintre caracteristicile și funcționalitățile existente! Totul se rezumă la stabilirea priorităților pentru proiectul dvs.: Care este minimul necesar pentru a face aplicația dvs. iOS 11 compatibilă? Care este cel mai simplu caz pe care îl puteți face părții interesate a proiectului sau managerului de proiect?

Caracteristicile vitale apar pe primul loc, iar urmatoarele imbunatatiri pe care iOS 11 le ofera nu sunt necesare, de la optimizarea aplicatiei la estetica vizuala care va imbogati in continuare interactiunea si functionalitatea aplicatiei dumneavoastra. Având în vedere acest lucru, acest tutorial vă va ghida prin pașii pe care doriți să îi faceți pentru a vă îmbunătăți aplicația, luând o abordare pragmatică a îmbunătățirilor necesare și opționale. 

Obiectivele acestui tutorial

Acest articol vă va oferi o imagine de ansamblu asupra modificărilor care vor fi necesare pentru a vă actualiza aplicația pentru iOS 11, de la modificările arhitecturale la cele vizuale, precum și modificările publicării App Store. Mai mult decât atât, acest tutorial va organiza secțiunile pornind de la modificările necesare necesare și de la domeniul de aplicare și efortul necesar, la caracteristicile frumoase, dar nu necesare, care vor îmbunătăți aplicația dvs. ca rezultat al iOS 11. 

În acest tutorial vom acoperi următoarele:

  • pregătiți aplicația (și dvs.) pentru iOS 11
  • modificări arhitecturale
  • Modificările publicării App Store
  • Modificările UI

Cunoașterea presupusă

Acest tutorial presupune o cunoaștere intermediară despre Swift sau Obiectiv-C și Xcode, precum și familiaritatea cu SDK-urile core iOS (de exemplu, UIKit și Core Foundation).

Modificări arhitecturale

Ca în cazul fiecărei iterații a iOS, cele mai importante modificări sunt de obicei cele arhitecturale. Cu iOS 11, aceasta implică migrarea la Swift 4, actualizarea setărilor de construire pentru Xcode 9 va fi prima sarcină la care ne vom uita. 

Migrarea incrementală la Swift 4 

Important | Necesar

Pentru cei care au trebuit să migreze de la Swift 2 la 3 anul trecut, acest proces a fost extrem de dureros și multe schimbări au rupt codul existent. Din fericire, nu este vorba de trecerea de la Swift 3.2 la 4, deoarece majoritatea șanselor sunt considerate aditiv, mai degrabă decât depreciative și, prin urmare, instrumentul de migrare Xcode 9 efectuează o treabă admirabilă de tranziție a codului dvs. la cel mai recent Swift.

În plus, spre deosebire de versiunile anterioare, nu veți fi nevoiți să faceți upgrade la 4 într-un singur pas. Așadar, proiectele Xcode suportă simultan Swift 4 și Swift 3.2, ceea ce înseamnă că puteți avea o singură țintă în proiectul dvs. compilat sub Swift 3.2 și un alt compilator în Swift 4. Instrumentul de migrare vă va informa care clase și funcții a migrat cu succes , și care vor necesita intervenția dvs. manuală pentru a rezolva, sub formă de erori sau avertismente. 

Erori înseamnă că va trebui să remediați ceva care nu este compatibil cu versiunile anterioare, în timp ce multe dintre avertismente vor indica faptul că există un nou mod în Swift 4 de a face ceva, cum ar fi schimbările noi API. Remediați erorile și prioritizați avertismentele menționate mai sus ca o sarcină separată. 

Pentru a accesa instrumentul de migrare, mergeți la Editați> Conversie> Sintaxă curentă rapidă în Xcode și urmați instrucțiunile, selectând ținta (destinațiile) pe care doriți să o migrați în acest stadiu. 

Instrumentul de migrare vă va informa despre munca minimă pe care va trebui să o faceți pentru a recompila aplicația dvs. și, prin urmare, nu ar trebui să fie o surpriză faptul că cea mai bună practică recomandată este să lucrați la trecerea incrementală a aplicației de la 3 la 4, în proiecte mari, testarea și conversia țintei după țintă. Nu va trebui să migrați totul dintr-o dată și vă puteți planifica calea de migrare în etape, unde și când este nevoie. 

Vom analiza imediat ce schimbări sunt în Swift 4, care nu sunt obligatorii pentru a fi implementate, dar bine de știut. 

Depistarea arhitecturală pe 32 de biți

Important | Necesar

O altă schimbare majoră în iOS 11 este că toate aplicațiile din App Store trebuie acum să fie 64 de biți, deoarece aplicațiile pe 32 de biți nu mai sunt acceptate și, de fapt, nici măcar nu funcționează pe dispozitive care rulează iOS 11. Aceasta nu ar trebui să fie o surpriză pe măsură ce Apple a avertizat dezvoltatorii de ceva timp, dar în cazul în care aplicația dvs. nu a făcut încă tranziția, puteți urma instrucțiunile Apple privind conversia aplicației dvs. pe un binar pe 64 de biți.

Ce e nou în Swift 4

Nu este important | facultativ

Dincolo de lucrul obligatoriu necesar pentru ca obiectivul dvs. să devină compatibil cu Swift 4, aveți opțiunea de a refacționa codul existent pentru a utiliza noile modificări Swift API, care sunt defalcate în funcție de următoarele îmbunătățiri la nivel de API:

Siruri de caractere

String-ul a primit o atenție deosebită în Swift 4, cea mai notabilă schimbare fiind o revenire la Swift 1.0, unde Strings sunt din nou definite ca colecții, astfel încât să puteți itera peste un caracter de obiect String după caracter (SE-0163) pentru buclă. Alte modificări notabile ale clasei Strings includ: 

  • SE-0168 Literaluri cu mai multe linii de coarde
  • SE-0178 Adăugați unicodeScalars proprietate la Caracter
  • SE-0180 Revizuirea indexului de coarde
  • SE-0182 String Newline Escaping
  • SE-0183 Disponibilități de performanță substring

Colecții

Dicționarele și seturile, ca parte a colecțiilor, au fost, de asemenea, redesenate în Swift 4, începând cu filtrarea dicționarelor, care până acum au returnat o serie de tuple formate din perechi cheie / valoare. Pentru a accesa un anumit element, ați folosi următorul indice, ca într-o matrice:

listOfCars [4] .value

În Swift 4, primiți în schimb un dicționar, oferind o sintaxă mai consistentă și, ulterior, accesați dicționarul returnat ca și cum ați fi un dicționar normal. Același lucru se întâmplă acum pentru Hartă() funcția, în cazul în care obțineți, de asemenea, un dicționar. Nou pentru indici de acces la dicționar, puteți furniza o valoare implicită în cazul în care cheia nu există, făcându-vă codul mai sigur.

lăsați tomTheCat = animal ["name", implicit: "id"]

Restul modificărilor pentru colecții includ:

  • SE-0148 Subscripts generic
  • SE-0154 Furnizează colecții personalizate pentru cheile și valorile dictionarului
  • SE-0165 Dicționar & setări îmbunătățite
  • SE-0172 Ranguri unilaterale
  • SE-0173 Adăugați MutableCollection.swapAt (_: _ :)

Alte modificări notabile

În cele din urmă, există câteva modificări diverse care merită notate ca parte a acestei versiuni referitoare la limbă: 

  • SE-0104 Numere întregi orientate pe protocol
  • SE-0142 Permite unde clauzele să constrângă tipurile asociate
  • SE-0156 Existența claselor și subtipurilor
  • SE-0160 Limitarea inferenței @objc
  • SE-0164 Eliminați suportul final în extensiile de protocol
  • SE-0169 Îmbunătățiți interacțiunea dintre declarațiile private și extensiile

Puteți găsi lista exhaustivă de modificări și propuneri originale la Swift.org.

Modificări publicate în App Store

Utilizatorii iOS 11 ai App Store ar fi observat deja că are un design complet nou, cu secțiuni întregi noi, oferind dezvoltatorilor noi modalități prin care își pot promova aplicațiile și pot comunica cu utilizatorii.

Vom începe să aruncăm o privire la noua pictogramă de marketing pe care acum vi se va solicita să o încărcați cu actualizările aplicației.

Icon de marketing

Obligatoriu Prioritate mai mare

De la versiunea iOS 11, pentru orice postări noi, dacă aplicația dvs. este nouă sau una actuală, va trebui să includeți o aplicație icon-1024.png-o pictogramă de marketing de dimensiuni de 1024x1024. Destul de convenabil, nu va trebui să trimiteți pictograma prin iTunes Connect, ci prin Xcode, prinmerge la Images.xcassets și adăugând imaginea de dimensiune adecvată, în același mod în care gestionați celelalte pictograme:

Pictograma de marketing este utilizată ca parte a noului proces de proiectare App Store, pentru a afișa o pictogramă de imagine mai mare care reprezintă aplicația dvs. în secțiunea Azi sau alte secțiuni în care graficul aplicației este lărgit. 

Promovarea achizițiilor în aplicație

Opțional | Prioritate inferioară

Apple a făcut procesul achizițiilor în aplicații mai proeminent și mai transparent, permițând utilizatorilor să vizualizeze toate opțiunile de achiziție în aplicație direct la același nivel cu afișarea produsului aplicației și chiar să inițieze o achiziție în aplicație pentru aplicație în timp ce descărcați aplicația reală. Gândiți-vă la o aplicație de abonare în care utilizatorii care vă descarcă aplicația ar putea dori deja să achiziționeze abonamentul. iOS 11 face acest lucru mai rapid și mai convenabil. 

Începând cu iOS 11, dezvoltatorii pot promova până la 20 de achiziții în aplicație, cum ar fi abonamentele de pe pagina de produs a aplicației. Aceste opțiuni de achiziție vor apărea, de asemenea, în rezultatele căutării. 

Promovarea achizițiilor în aplicație poate încuraja descărcarea aplicației dvs. Atunci când un utilizator nu are aplicația instalată, dar dorește să cumpere o achiziție promovată în aplicație, va primi o solicitare de a descărca prima aplicație. Odată ce aplicația este descărcată, tranzacția va continua în aplicație. (Măr)

Pentru a activa o mai mare vizibilitate în promovarea achizițiilor în aplicație, în iTunes Connect trebuie să includeți următoarele metadate: 

  • Imagine: Aceasta este imaginea promoțională unică reprezentând achiziția în aplicație, care apare pe pagina de produs App Store, în fila Azi, Jocuri și Aplicații, precum și în alte zone importante. Acesta nu ar trebui să fie format dintr-o captură de ecran sau să reprezinte pictograma aplicației dvs., ci să reprezinte ceea ce face achiziția în aplicație. Imaginea trebuie să fie de asemenea în format PNG și o calitate ridicată cu dimensiunile de 1024 x 1024.
  • Nume: Numele afișat al achiziției în aplicație, format din maximum 30 de caractere. Acest lucru ar trebui să fie specific, potrivit funcției respectivei achiziții specifice în aplicație. Dacă este un abonament, spuneți așa, și asigurați-vă că durata de abonament este inclusă în titlu, cum ar fi "Abonament cu o singură lună de acces".
  • Descriere: Caracterele de 45 caractere, descrierile oferă contextul pentru utilizatori să înțeleagă și să aprecieze beneficiile ofertei specifice în aplicație. 

Pentru mai multe informații despre promovarea achiziției în aplicație, consultați Orientările oficiale ale Apple precum și a lui Apple Ghidul paginii de produs.

Comunicarea cu clienții dvs.

Opțional | Prioritate inferioară

Ceva care este cu mult timp întârziat, iar dezvoltatorii de Android s-au bucurat de ceva timp, este capacitatea de a răspunde direct comentariilor utilizatorilor. Începând cu versiunea iOS 11, dezvoltatorii pot răspunde și în mod direct la recenziile și comentariile utilizatorilor lor. Deși acest lucru nu necesită schimbări tehnice și participarea este opțională, dezvoltatorii prin iTunes Connect (App > Activitate > Evaluări) poate răspunde atât laudelor, cât și criticii.

Răspunsurile personalizate ale dezvoltatorilor pot fi utilizate pentru a construi relații mai puternice și mai intime, favorizând o implicare mai profundă, arătând că feedback-ul lor este revizuit și răspuns, iar problemele ridicate sunt ascultate în mod activ. Pentru a răspunde la comentarii, pur și simplu mergeți la iTunes Connect unde puteți vizualiza feedback-ul și puteți răspunde individual. 

Pe lângă noua caracteristică a comentariilor dezvoltatorilor, Apple a furnizat, de asemenea, un nou SDK formalizat pentru a solicita utilizatorilor să evalueze și să revadă aplicațiile. Noul SKStoreReviewController ar trebui să fie utilizată în locul oricărei terțe părți sau să fie solicitată manual utilizatorii pentru revizuiri, deoarece Apple dorește ca sistemul de operare să poată controla frecvența solicitărilor, precum și aspectul lor vizual. Apple va constrânge astfel solicitări de până la trei ori într-o perioadă de 365 de zile. 

A implementa SKStoreReviewController, pur și simplu importați StoreKit și apelați requestReview () așa cum se arată mai jos:

... import StoreKit ... SKStoreReviewController.requestReview () ... 

În timp ce Apple nu a interzis în mod direct celelalte metode de a solicita utilizatorilor feedback, așteptați ca acest lucru să se schimbe în viitorul apropiat, deci este mai bine să începeți să vă gândiți să implementați motorul Apple prompt pentru revizuire în anul următor.

Pentru mai multe informații, consultați ghidul de evaluare, recenzii și răspunsuri Apple. 

Încărcări incrementale

Opțional | Prioritate inferioară

O altă caracteristică foarte utilă pe care iOS 11 o aduce dezvoltatorilor este capacitatea de a lansa aplicațiile lor către utilizatori incremental. Apple solicită această eliberare pe etape și intenționează să reducă riscul de supraîncărcare a mediului de producție simultan, în loc de lansare a actualizărilor de lansare pe o perioadă de șapte zile. 

Sub Versiune de lansare în iTunes Connect, există o nouă secțiune numită Descărcarea în etape pentru actualizările automate, care vă oferă opțiunea de a elibera imediat sau în perioada de șapte zile. De asemenea, dezvoltatorii pot opri lansarea pe etape timp de până la 30 de zile, ceea ce se întâmplă în mod normal dacă se descoperă și se raportează o problemă majoră.

Roll-out-ul pe etape nu împiedică utilizatorii să obțină manual actualizarea din App Store, ci mai degrabă se adresează utilizatorilor care utilizează setarea de descărcare automată iOS în App Store. 

Apoi, să aruncăm o privire la schimbările vizuale introduse ca parte a iOS 11, pe măsură ce trecem prin subiectele importante și cele mai puțin importante. 

UI Modificări

După ce ne uităm la modificările publicării magazinului de arhitectură și a magazinului de aplicații pentru iOS 11, suntem acum pregătiți să disecăm schimbările vizuale și să vă ajutăm să acordați prioritate la schimbările pe care ar trebui să le faceți în primul rând schimbările UI. 

Foarte important este că, deși am putea să construim aplicațiile iOS fără a implementa modificările din această secțiune, abordând numai modificările arhitecturale și App Store, vă recomandăm mai întâi să vă asigurați că aplicația dvs. acceptă vizual noul iPhone X. bare de navigare pentru a aborda noua "notch" fizică în partea de sus. 

Având în vedere acest lucru, ne vom uita la actualizarea interfeței dvs. pentru iPhone X în premieră, urmată de alte modificări rapide, care vor asigura că aplicația dvs. apare modernă și actualizată.

Actualizarea interfeței dvs. pentru iPhone X

Obligatoriu Prioritate mai mare

Una dintre cele mai importante sarcini în actualizarea aplicației dvs. iOS este asigurarea faptului că vă asigură că aplicația dvs. arată bine și că funcționează frumos pe dispozitivele mai noi, fără a întrerupe suportul anterior al dispozitivelor. Acesta este motivul pentru care Apple a lucrat foarte mult pentru a oferi dezvoltatorilor instrumente cum ar fi Auto Layout pentru a proiecta pentru machete ecran-agnostic, fie iPhone 4, 5C, fie 6 și 6 Plus. Începând din acest an, avem acum un telefon care nu are doar noi dimensiuni, ci are și o notă fizică în partea de sus. 

Observați că nu mai avem un ecran de vizualizare dreptunghiulară și cu noua notă din partea de sus a senzorilor fizici, cum va recomanda Apple să faceți acest lucru? Pentru un singur lucru, Apple nu vrea să-ți așezi bare negre în partea de sus pentru a ascunde nota! În schimb, ei pledează pentru dezvoltatori să o accepte.

Nu mascați sau nu acordați o atenție deosebită caracteristicilor afișajului cheie. Nu încercați să ascundeți colțurile rotunjite ale dispozitivului, carcasa senzorului sau indicatorul pentru a accesa ecranul inițial prin plasarea de bare negre în partea de sus și de jos a ecranului. Nu utilizați podoabe vizuale, cum ar fi paranteze, bare, forme sau text instrucțional, pentru a atrage atenția specială asupra acestor zone. (linii directoare pentru interfața omului iOS)

Veți avea nevoie să proiectați pentru o experiență de ecran complet, folosindu-vă designul fără dispozitivul nou al dispozitivului, fără a observa părți din interfața dvs. UI cu colțurile rotunjite ale dispozitivului sau carcasa senzorului (notch). 

Vestea bună este că elementele UI furnizate de sistem de la UIKit de la Apple, cum ar fi UINavigationBar deja sunt conforme și se adaptează noilor cerințe de design din cutie. Cu toate acestea, pentru toate elementele personalizate ale interfeței utile, va trebui să faceți singur munca de conformitate. 

Privind imaginile iPhone 4.7, comparativ cu noul iPhone X de mai sus, veți observa cum este implementată acum bara de stare diferită, începând cu înălțimea sa, care a crescut de la istoricul de 20 pt la 44 pt pe iPhone X. 

Apple sugerează că dezvoltatorii de aplicații care și-au ascuns barele de stare ar trebui să-și reconsidere decizia în lumina iPhone X și să o ascundă doar în modul peisaj, nu în modul portret. 

În cele din urmă, utilizați Ghidurile de planificare a zonelor de siguranță prin folosirea opțiunilor Auto Layouts ca măsură principală pentru a vă asigura că aplicația se încadrează în marginea corespunzătoare, garantând astfel că nu există obstacole vizuale, cum ar fi sublinierea barei de stare sau barei de navigare.

Două resurse excelente pentru a vă ajuta să începeți cu proiectarea pentru iPhone X sunt următoarele videoclipuri WWDC:

  • Proiectare pentru iPhone X - toamna 2017 - Video - Apple Developer
  • Aplicatii de constructii pentru iPhone X - toamna 2017 - Video - Apple Developer

Implementarea trageți și picurați

Opțional | Prioritate inferioară

Unul dintre cele mai discutate despre SDK-urile noi din WWDC din acest an este drag & drop. Acesta este un lucru pe care utilizatorii desktopului l-au obișnuit de foarte mult timp, dar absența acestuia pe platforma iOS a însemnat că iPad-ul și iPhone-ul nu au îmbrățișat niciodată cu adevărat multi-tasking. În iOS 11, acest lucru sa schimbat, deoarece noul iOS va suporta elementele UI care sunt trase nu numai în același ecran, ci de la o aplicație la alta. 

Folosind motorul multi-touch al iOS, utilizatorii pot deplasa cu ușurință conținutul într-un mod natural între aplicațiile de pe iPad (sau doar în același ecran pe iPhone) prin atingerea și menținerea unei imagini, a unui fișier, a unui text sau a unui element UI specific pentru tragere aceasta. Acesta este deja integrat în sistem în iOS, permițând utilizatorilor, de exemplu, să tragă text din Safari în aplicația Memento-uri a docului pentru a crea un nou articol de memento. 

Acest lucru nu a fost semnalat ca obligatoriu pentru implementare, ci pentru că va deveni rapid un comportament așteptat datorită prevalenței acestuia la nivel de sistem, este sugerat să încercați și să acordați prioritate acestui aspect mai devreme decât mai târziu, astfel încât să puteți face aplicația UX conform noului comportament standard al sistemului UX. 

UIKit vine cu un anumit nivel de suport drag & drop încorporat, pentru componente cum ar fi UITables și UICollectionViews, dar va trebui să acoperiți și să adaptați elementele cu cod, astfel încât celelalte componente să poată primi componenta trasă. Acest lucru poate fi oarecum implicat și este în afara domeniului de aplicare al acestui articol, dar voi acoperi sprijinul drag & drop mai complet într-un post de urmărire săptămâna viitoare. 

Deocamdată, pentru scurt timp, adăugați și sprijiniți drag & drop în ViewController„s viewDidLoad () , prin implementarea celor doi delegați de mai jos:

class ViewController: UIVibleController, UITableViewDataSource, UITableViewDelegate, UITableViewDropDelegate, UITableViewDragDelegate ... func viewDidLoad () ... firstTableView.dragDelegate = auto // Asociați delegatul de tragere la acest tabel secondTableView.dropDelegate = auto // Asociați delegatul drop la acest tabel firstTableView.dropDelegate = auto second secondTableView.dragDelegate = auto firstTableView.dragInteractionEnabled = true secondTableView.dragInteractionEnabled = true ... ... func tableView (_tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] 1) Tragul este inițiat func tableView (_tableView: UITableView, executeDropWith coordonator: UITableViewDropCoordinator) // (2) Drop este inițiat

Rămâi acordat pentru articolul nostru despre cum să adăugați suportul Tragere și Drop pentru aplicația dvs. iOS 11. 

Alte modificări UIKit & Auto Layout

Opțional | Prioritate inferioară

În cele din urmă, să aruncăm o privire la modificările rămase UIKit nou în iOS 11, începând cu UINavigationBar, care are unele îmbunătățiri notabile, inclusiv integrarea SearchViewController și titluri mari. Apoi, analizăm îmbunătățirile UITableView, de la acțiunile noi și îmbunătățite, până la tabela de vizualizare automată a celulelor. 

Navigare 

Am atins deja barele de navigare mai devreme când discutăm despre iPhone X și cum se aliniază cu noile dimensiuni ale barei de stare. În plus, noul stil de design contemporan recomandat pentru iOS include noi titluri mai mari în barele de navigare, pentru prima oară văzute în Apple Music App în iOS 10 și de atunci un model de design stabilit pentru toate celelalte aplicații de sistem din iOS. 

Textul mai mare al titlului acordă un accent mai mare pe contextul ecranului într-o bară de navigare și ajută utilizatorii să se orienteze la fila activă în timp ce navighează prin diferite file. Dimensiunea textului titlului nu este statică, ci se micșorează, pe măsură ce utilizatorul scroll în jos, revenind la stilul pre-iOS 11. În schimb, atunci când trageți în jos într-o vizualizare de derulare, textul titlului va crește ușor. 

Utilizați un titlu mare atunci când trebuie să acordați un accent deosebit contextului. În unele aplicații, textul mare, îndrăzneț al unui titlu mare vă poate ajuta să îndreptați oamenii în timp ce răsfoiesc și căutați. Într-o structură cu file, de exemplu, titlurile mari pot ajuta la clarificarea filei active și la informarea utilizatorului atunci când au derulat în partea de sus. Telefonul folosește această abordare, în timp ce muzica folosește titluri mari pentru a diferenția zonele de conținut cum ar fi albume, artiști, playlisturi și radio. Un titlu mare trece la un titlu standard, pe măsură ce utilizatorul începe să deruleze conținut. Titlurile mari nu au sens în toate aplicațiile și nu ar trebui să concureze cu conținutul. Deși aplicația Ceas are un aspect tabelat, titlurile mari nu sunt necesare deoarece fiecare filă are un aspect distinct, ușor de recunoscut. (linii directoare pentru interfața omului iOS))

În calitate de dezvoltator, decideți dacă și când să implementați stilul mare de text, bazat pe Orientările privind interfața umană Apple, iar Apple vă recomandă să utilizați în mod special titluri de text mari numai pentru ecrane de navigație de nivel superior, nu pentru toate nivelurile. Pentru a activa textul mare, pur și simplu adăugați proprietatea următoare UINavigationController:

navigatorController? .navigationBar.prefersLargeTitles = true

În mod ierarhic, atât controlorii de vizualizare principală cât și de detaliu sub bara de navigare vor avea modul de text mare activ în mod prestabilit datorită moștenirii părintești și, așa cum am menționat deja, este recomandabil să aveți numai ecranele de navigație de nivel superior care să implementeze modul text mare. Pentru a suprima moștenirea textului mare în ecranul detaliat, mergeți la controlerul de vizualizare și adăugați următoarele la inițialele acestuia (trebuie să fie setat la momentul inițializării):

(coder aDecoder: NSCoder) super.init (coder: aDecoder) navigationItem.largeTitleDisplayMode = .never

 largeTitleDisplayMode de mai sus este setat la .nu. Fără această linie, implicit este .automat, care este locul în care controlerul de vizualizare detaliat moștenește proprietățile controlerului de vizualizare parentală.

Căutați controlorii de căutare

Căutarea poate fi acum integrată direct în barele de navigare fără a fi nevoie să asociați UISearchViewController exemplu cu controlerul de vizualizare a subiectului (și vizualizarea antetului tabelului) separat. De la iOS 11, puteți încorpora elegant bara de căutare în bara de navigare:

navigationItem.searchController = UISearchController (searchResultsController: nil)

De asemenea, va trebui să vă conformați UISearchResultsUpdating pentru a reacționa la termenii de căutare, desigur. În timp ce iOS ascunde automat bara de căutare pe baza numărului de rânduri din vizualizarea dvs. de tabel, puteți forța bara de căutare să fie vizibilă în orice moment prin comutarea:

navigationItem.hidesSearchBarWhenScrolling = false

UITableViews

În cele din urmă, ne uităm la două caracteristici noi și distinse introduse UITableViews începând cu iOS 11: acțiuni de auto-dimensionare și îmbunătățire. Auto-dimensionarea a fost introdusă înapoi în iOS 8 pentru a ușura sarcina dezvoltatorilor de a dimensiona manual celulele de tabelă cu capacitatea de a dimensiona dinamic celulele pentru a se potrivi conținutului rândului utilizând funcția Auto Layout. Până în prezent, a trebuit să solicitați explicit dimensionarea automată utilizând:

tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 100

De la versiunea iOS 11, acesta este activat și setat în mod prestabilit, fără un cod suplimentar, dar totuși aveți posibilitatea de a specifica în mod explicit înălțimea rândului dvs., după cum este necesar. iOS 11 a adus, de asemenea, noi acțiuni de conducere și de urmărire treptată, predominante în multe aplicații de sistem, cum ar fi Apple's own Mail app. 

Pe lângă faptul că puteți să glisați în stânga sau în dreapta, puteți atașa imagini și să le asociați acestor acțiuni. Implementați două metode delegate ca parte a programului UIContextualAction, pentru acțiuni de direcționare și de urmărire:

suprascrie func tableView (_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? (ștergeți) finisareHandler (adevărat) delete.backgroundColor = UICcolor.red delete.image = UIImage (denumit: "Delete" "delete") actionGroup = UISwipeActionsConfiguration (acțiuni: [delete]) actionGroup.performsFirstActionWithFullSwipe = false return actionGroup ... suprascrie func tableView (_tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? arhiva = UIContextualAction (stil: .normal, title: "Arhiva") action, view, completionHandler in print ("Read") completionHandler (true) archive.backgroundColor = albastru archive.image = UIImage ") mișcare = UIContextualAction (stil: .normal, title:" Mutare ") action, view, completionHandler în print (move) muta) actionGroup = UISwipeActionsConfiguration (acțiuni: [arhivă, mutați]) actionGroup.performsFirstActionWithFullSwipe = false return actionGroup

Folosind codul de mai sus, puteți să creați mai multe acțiuni contextuale și să le adăugați la UISwipeActionsConfiguration gruparea instanței, pentru mai multe acțiuni. Aceasta este o îmbunătățire simplă și totuși captivantă pentru a aduce o mai mare elasticitate la vizualizările dvs. la masă, cu modificări minime ale codului și, deși nu este obligatorie, merită să alocați câteva ore pentru aceasta în planul de planificare a sprintului. 

Concluzie

În acest post, v-am oferit o imagine de ansamblu asupra modificărilor din arhitectura, App Store și componentele vizuale ale iOS 11, oferindu-vă o idee despre ceea ce va trebui să acționați imediat și ce poate fi amânată până la o versiune ulterioară timp. Migrarea la iOS 11 și Swift 4 va fi mult mai ușoară decât în ​​actualizările din anii precedenți.

Dincolo de schimbările iminente care trebuie făcute, am parcurs și schimbările Swift 4 care îmbunătățesc șirurile și colecțiile, precum și îmbunătățirile vizuale pentru UITableView și controler de căutare. Acest lucru ar trebui să vă ușureze planificarea muncii dvs. pentru a face actualizări aplicației dvs.!

Rămâi acordat postării mele viitoare pe implementarea drag & drop pentru aplicațiile dvs. iOS 11 și, între timp, verificați câteva dintre celelalte postări ale noilor modificări aduse iOS și Swift!

Cod