Jurnalul WWDC 2018 al unui dezvoltator iOS
Publicat: 2022-03-10Granițele tradiționale ale verii în SUA sunt Memorial Day și Ziua Muncii, dar dezvoltatorii iOS marchează vara prin WWDC și lansarea iPhone. Chiar dacă vremea este răcoroasă și ploioasă săptămâna aceasta în NYC, sunt într-o dispoziție de vară și aștept cu nerăbdare reînnoirea în acea vară și WWDC.
Este dimineața zilei de 4 iunie și îmi revizuiesc notele de la WWDC 2017. Anul trecut, am scris că ARKit și Core ML au fost două dintre cele mai importante momente. A fost revigorant să văd că Apple se concentrează pe Machine Learning (ML), dar nu a existat prea multă urmărire în restul anului 2017. ARKit a generat un oarecare interes, dar nicio aplicație ucigașă (poate Pokemon Go, dar asta era popular înainte de ARKit) . Apple nu a adăugat la biblioteca sa inițială de modele descărcabile Core ML după anunțul Core ML.
Apple a lansat Turi Create, iar Lobe a lansat luna trecută un nou producător de modele Core ML interesant. În spațiul Apple/ML, creatorul Swift, Chris Lattner, adoptă o abordare diferită cu Swift pentru TensorFlow. Dar din exterior, Core ML pare să aibă în mare parte o singură utilizare evidentă: clasificarea imaginilor. Nu pare să existe multă energie în ceea ce privește explorarea aplicațiilor extrem de diferite (chiar dacă știm cu toții că ML este la baza mașinilor cu conducere autonomă și a demo-urilor geniale precum Google Duplex).
Un alt mod în care Apple folosește ML este în Siri, iar la începutul acestui an, am scris despre SiriKit și am menționat deficiențele sale percepute și reale în comparație cu Alexa și Google. O problemă pe care am explorat-o a fost modul în care accentul pus de Siri pe intențiile predefinite își limitează gama, dar nu a produs exactitatea promisă pe care ați putea-o obține dintr-o focalizare limitată.
Introducerea HomePod anul trecut a evidențiat doar necazurile lui Siri, iar un sondaj de satisfacție a clienților raportat pe scară largă a arătat 98% satisfacție cu iPhone X, dar doar 20% satisfacție cu Siri.
Cu toate acestea în mintea mea, personal speram să aud că Apple va face unele îmbunătățiri majore în AR, ML și Siri. Mai exact, ca dezvoltator iOS, am vrut să văd mai multe modele Core ML, care acoperă mai mult decât clasificarea imaginilor și mai mult ajutor în realizarea modelelor. Pentru Siri, am vrut să văd mai multe intenții și, eventual, vreun indiciu că intențiile ar fi un lucru care va fi adăugat pe tot parcursul anului. A fost o încercare lungă, dar pentru AR, următorul pas este un dispozitiv. Dar, între timp, am sperat la o precizie spațială sporită.
În cele din urmă, îmi plac cărțile Xcode Playgrounds și iPad Playground, dar trebuie să fie mult mai rapide și stabile, așa că speram și eu la ceva acolo.
În dimineața WWDC, am postat pe Twitter asta:
Aceasta nu a fost o predicție. Este doar o listă de lucruri pe care am vrut să le folosesc în 2017, dar mi s-a părut insuficient de putere sau prea greu pentru a începe și speram ca Apple să facă unele îmbunătățiri.
Planul meu pentru acea zi este să urmăresc discursul în direct și apoi să urmăresc Starea Platformelor Uniunii. Acestea oferă o imagine de ansamblu bună asupra a ceea ce să vă concentrați în restul săptămânii.
Sfârșitul zilei 1: Keynote și platforme Starea Uniunii
Prima zi a WWDC este keynote-ul, care este destinat consumului public, și Platforms State of the Union, care este o prezentare generală a întregului eveniment, cu câteva detalii pentru dezvoltatori, astfel încât aceștia să poată alege la ce sesiuni să participe.
Rezumatul anunțurilor notabile pentru dezvoltatori non-iOS
WWDC nu este în întregime despre dezvoltarea iOS, așa că iată o listă rapidă cu alte lucruri care s-au întâmplat cu celelalte platforme sau care nu sunt foarte concentrate pe dezvoltatori.
- Pentru a o scoate din drum, nu au existat deloc anunțuri hardware . Fără previzualizări și actualizări pe Mac Pro. Va trebui să așteptăm iPhone și evenimentele ulterioare din toamnă.
- iOS 12 are o nouă aplicație Shortcuts care pare să fie rezultatul achiziției de Workflow. Este o modalitate de a „scrie” o serie de pași prin glisare și plasare . De asemenea, puteți atribui comanda rapidă unui cuvânt cheie Siri, pe care îl voi trata mai jos.
- iOS va grupa automat notificările care provin din aceeași aplicație și vă va permite să acționați asupra lor ca grup.
- Animoji-urile vă pot imita acum când scoateți limba, iar noile Memoji sunt fețe umane extrem de configurabile pe care le puteți personaliza pentru a arăta ca dvs.
- FaceTime acceptă chat video de grup de până la 32 de persoane.
- Există o nouă aplicație Screen Time care vă oferă rapoarte despre utilizarea telefonului și a aplicației (pentru a vă ajuta să vă controlați și să fiți mai puțin distras). Este, de asemenea, baza noilor controale parentale.
- Apple TV a primit o mică actualizare: suport pentru Dolby Atmos și noi economizoare de ecran preluate de la Stația Spațială Internațională .
- Ceasul are un mod de competiție pentru a-i provoca pe alții la provocări legate de antrenament. De asemenea, va încerca să detecteze automat începutul și sfârșitul antrenamentelor în cazul în care uitați să le începeți sau să le opriți, iar acum are antrenamente de drumeții și yoga.
- Ceasul are, de asemenea, un nou mod Walkie-Talkie pe care îl puteți activa pentru contacte de încredere.
- Există mai multe SDK-uri audio care sunt native pe Watch , iar aplicația Apple Podcasturi este acum disponibilă. Mă aștept că aplicațiile de podcast terță parte vor profita și de aceste noi SDK-uri.
- Mac-ul a primit locul de ancorare al evenimentului (care este, sperăm, un indiciu al atenției reînnoite). Se va numi macOS Mojave și are un mod întunecat .
- Există actualizări importante pentru Mac App Store, dar în special, acesta primește același tratament vizual și de conținut pe care l-a primit anul trecut iOS App Store . Există suficiente modificări la sandbox încât Panic a decis să mute Transit înapoi acolo .
- Quick Look in Finder are acum câteva acțiuni simple pe care le puteți face asupra fișierului (de exemplu, rotirea unei imagini) și este personalizabilă prin Automator.
- Mojave va fi ultima versiune de macOS care acceptă aplicații și cadre pe 32 de biți , ceea ce înseamnă că Quick Time Framework va dispărea. Se pare că a fost înlocuit cu unele funcții de captură video în sistemul de operare însuși.
- Apple a anunțat că utilizează intern un port UIKit pentru a crea aplicații pentru Mac și a arătat porturi pentru Acțiuni, Știri, Acasă și Memo vocale. Noul cadru va fi lansat în 2019.
Anunțurile dezvoltatorilor iOS de care sunt cel mai încântat
Dezvoltatorii iOS au primit și vești bune. Au lovit cele patru domenii majore în care am vrut să văd îmbunătățiri:
- SiriKit are acum intentii personalizate , ceea ce deschide destul de mult posibilitățile.
- Create ML este o nouă modalitate de a folosi Xcode Playgrounds pentru a antrena modele prin transfer de învățare , care vă permite să măriți modelele existente cu propriile date de antrenament .
- Locurile de joacă Xcode vă permit acum să adăugați cod în partea de jos a paginii și să îl rulați fără a reporni . Este greu de știut dacă Playgrounds va fi mai stabil până când vom obține o lansare reală în septembrie, dar acest lucru va face încercarea codului mult mai rapidă.
- ARKit 2 a fost anunțat împreună cu un nou format de fișier de realitate augmentată numit USDZ , care este deschis și a fost dezvoltat cu Adobe și Pixar. Adobe a anunțat deja suport pentru unelte. Acesta va permite utilizatorilor și dezvoltatorilor să stocheze și să partajeze active și experiențe AR. În plus, ARKit 2 permite mai multor dispozitive să fie în același mediu AR și acceptă detectarea obiectelor 3D.
Nu am primit un dispozitiv AR, dar se pare că vom primi unul în curând. Și trebuie să vină de la Apple (nu de la terți), deoarece rularea ARKit necesită un dispozitiv iOS.
Configurarea mașinii dvs
Tot ce aveți nevoie este disponibil acum în portalul dezvoltatorilor. Pentru a utiliza codul din articol, aveți nevoie de Xcode 10 Beta. Nu aș recomanda încă să utilizați iOS 12 Beta, dar dacă chiar doriți, accesați portalul de pe dispozitiv și descărcați Profilul de configurare iOS 12 Beta.
Singurul lucru major pentru care aveți nevoie de un dispozitiv cu versiunea beta este ARKit 2. Orice altceva ar trebui să ruleze suficient de bine în simulatorul Xcode 10. Începând cu prima versiune beta, suportul pentru Siri Shortcut în simulator este limitat, dar există suficient pentru a crede că acest lucru va fi remediat în versiunile viitoare.
Sfârșitul zilei 2: Joacă-te cu intențiile personalizate Siri
Anul trecut, am scris cum trebuie să vă încadrați într-una dintre intențiile predefinite ale Apple pentru a utiliza SiriKit în aplicația dvs. Acest mecanism a fost introdus în 2016 și adăugat în 2017 și chiar între evenimentele WWDC. Dar era clar că abordarea Amazon privind intențiile personalizate a fost superioară pentru a obține controlul vocal în aplicații mai diverse, iar Apple a adăugat asta la SiriKit săptămâna trecută.
Pentru a fi clar, aceasta este o primă implementare, deci nu este încă la fel de extinsă precum Alexa Skills, dar deschide destul de mult posibilitățile lui Siri. După cum am discutat în articolul anterior, principala limitare a intențiilor personalizate este că dezvoltatorul trebuie să facă toată traducerea limbii. SiriKit rezolvă puțin acest lucru, cerând utilizatorului să furnizeze expresia pe care ar dori să o folosească, dar mai este nevoie de traducere pentru intenții personalizate decât pentru intenții predefinite.
Și au construit pe aceeași fundație ca și intențiile predefinite, așa că tot ce am acoperit se aplică în continuare. De fapt, vă voi arăta cum să adăugați o nouă intenție personalizată la List-o-Mat, aplicația pe care am scris-o pentru articolul original SiriKit.
Asistență (gratuită) pentru comenzile rapide Siri, dacă susțineți deja Spotlight
Dacă utilizați NSUserActivity
pentru a indica lucruri din aplicația dvs. pe care utilizatorul le poate iniția prin transfer sau căutare, atunci este trivial să le puneți la dispoziție și pentru Siri.
Tot ce trebuie să faceți este să adăugați următoarea linie la obiectul dvs. de activitate:
activity.isEligibleForPrediction = true
Acest lucru va funcționa numai pentru activitățile compatibile cu Spotlight (unde isEligibleForSearch
este true
).
Acum, atunci când utilizatorii fac această activitate, aceasta este considerată donată pentru utilizare în Siri. Siri va recomanda activități foarte frecvente sau utilizatorii le pot găsi în aplicația Comenzi rapide. În ambele cazuri, utilizatorul își va putea atribui propria frază rostită pentru a o porni. Asistența dvs. pentru începerea activității prin Spotlight este suficientă pentru a sprijini începerea acesteia printr-o comandă rapidă.
În List-o-Mat, am putea face listele individuale disponibile pentru Spotlight și Siri prin construirea obiectelor de activitate și alocarea acestora la ListViewController
. Utilizatorii le puteau deschide prin Siri cu propria lor frază.
Este redundant în cazul nostru, deoarece am avut o intenție predefinită de a deschide o listă, dar majoritatea aplicațiilor nu sunt atât de norocoase și acum au acest mecanism simplu. Deci, dacă aplicația dvs. are activități care nu sunt acceptate de intențiile predefinite ale Siri (de exemplu, redarea unui podcast), puteți să le faceți eligibile pentru predicție și să nu vă faceți griji cu privire la intențiile personalizate.
Configurarea SiriKit pentru a utiliza intenții personalizate
Dacă trebuie să utilizați o intenție personalizată, atunci SiriKit trebuie adăugat la aplicația dvs., ceea ce necesită puțină configurare.
Toți pașii pentru configurarea SiriKit pentru intenții personalizate sunt aceiași ca pentru intențiile predefinite, care este tratat în detaliu în articolul meu SiriKit aici despre Smashing. A rezuma:
- Adăugați o extensie, așa că aveți nevoie de un nou ID de aplicație și de un profil de furnizare și de drepturile aplicației dvs. au adăugat Siri.
- Probabil aveți nevoie de un grup de aplicații (așa comunică extensia și aplicația).
- Veți avea nevoie de o extensie Intents în proiectul dvs
- Există chei .plist specifice Siri și drepturi de proiect pe care trebuie să le actualizați.
Toate detaliile pot fi găsite în articolul meu SiriKit, așa că voi acoperi doar ceea ce aveți nevoie pentru a susține o intenție personalizată în List-o-Mat.
Adăugarea unei comenzi de copiere a listei la List-o-Mat
Intențiile personalizate sunt menite să fie utilizate numai acolo unde nu există o intenție predefinită, iar Siri oferă de fapt o mulțime de asistență pentru liste și sarcini în domeniul său Siri Liste și Note.
Dar, o modalitate de a utiliza o listă este ca șablon pentru o rutină sau un proces repetat. Pentru a face asta, vom dori să copiem o listă existentă și să debifăm toate elementele acesteia. Intențiile Listă încorporate nu acceptă această acțiune.
În primul rând, trebuie să adăugăm o modalitate de a face acest lucru manual. Iată o demonstrație a acestui nou comportament în List-o-Mat:
Pentru ca acest comportament să fie invocabil de către Siri, vom „dona o intenție”, ceea ce înseamnă că vom spune iOS de fiecare dată când faceți acest lucru. Apoi, va afla în cele din urmă că dimineața, vă place să copiați această listă și să o oferiți ca scurtătură. De asemenea, utilizatorii pot căuta intenții donate și pot atribui manual fraze.
Crearea Intenției Personalizate
Următorul pas este să creați intenția personalizată în Xcode. Există un șablon de fișier nou, deci:
- Alegeți Fișier → Fișier nou și alegeți „Fișier de definire a intenției SiriKit”.
- Denumiți fișierul ListOMatCustomIntents.intentdefinition și alegeți să plasați fișierul atât în ținta App, cât și în Intent Extension. Acest lucru va genera automat clase în ambele ținte care implementează protocoalele de intenție, dar au implementat comportamentul dvs. personalizat.
- Deschideți fișierul Definiție .
- Folosiți butonul + din stânga jos pentru a adăuga o intenție și a denumi-o „CopyList”.
- Setați Categoria la „Creați” și completați titlul și subtitlul pentru a descrie intenția:
- Adăugați un parametru String numit „listă”.
- Adăugați un tip de comandă rapidă cu parametrul listă și dați-i un titlu numit „Copiați lista”.
Dacă te uiți în Intent plist, vei vedea că această intenție a fost deja configurată pentru tine:
Donarea Intenției
Când facem o interacțiune cu utilizatorul în aplicația noastră despre care dorim să știe Siri, o donăm lui Siri. Siri ține evidența informațiilor contextuale, cum ar fi ora, ziua săptămânii și chiar locația, iar dacă observă un model, va oferi utilizatorului comanda rapidă.
Când atingem meniul Copiere, adăugați acest cod:
@available(iOS 12, *) func donateCopyListInteraction(listName: String) { let copyListInteraction = CopyListIntent() copyListInteraction.list = listName copyListInteraction.suggestedInvocationPhrase = "Copy \(listName)" let interaction = INInteraction(intent: copyListInteraction, response: nil) interaction.donate { [weak self] (error) in self?.show(error: error) } }
Acest lucru pur și simplu creează un obiect din clasa CopyListIntent
generată automat și îl donează lui Siri. În mod normal, iOS ar colecta aceste informații și ar aștepta momentul potrivit pentru a le afișa, dar pentru dezvoltare, puteți deschide aplicația Setări, mergeți la secțiunea Dezvoltator și activați setările de depanare a comenzii rapide Siri.
Notă : În momentul în care scriem acest articol, cu primele beta, această setare de depanare funcționează numai pe dispozitive, și nu pe simulator. Deoarece setarea este acolo, mă aștept să înceapă să funcționeze în beta-uri ulterioare.
Când faceți acest lucru, comanda rapidă donată apare în Sugestii Siri în Spotlight.
Atingând acest lucru, se va apela extensia Intent, deoarece permitem execuția în fundal. Vom adăuga suport pentru asta în continuare.
Gestionarea Intenției Personalizate
Avem deja o extensie Intents și, deoarece fișierul de definiții de intenții personalizate este deja adăugat la fișier, are și clasele de intenții generate. Tot ce trebuie să facem este să adăugăm un handler.
Primul pas este să adăugați o nouă clasă, numită CopyListIntentHandler
la extensie. Iată codul său:
import Intents @available(iOS 12, *) class CopyListIntentHandler: ListOMatIntentsHandler, CopyListIntentHandling { func handle(intent: CopyListIntent, completion: @escaping (CopyListIntentResponse) -> Void) { // Find the list var lists = loadLists() guard let listName = intent.list?.lowercased(), let listIndex = lists.index(where: { $0.name.lowercased() == listName}) else { completion(CopyListIntentResponse(code: .failure, userActivity: nil)) return } // Copy the list to the top, and respond with success copyList(from: &lists, atIndex: listIndex, toIndex: 0) save(lists: lists) let response = CopyListIntentResponse(code: .success, userActivity: nil) completion(response) } }
Intențiile personalizate au doar o fază de confirmare și de gestionare (rezoluția personalizată a parametrilor nu este acceptată). Deoarece implicit confirm()
returnează succes, vom implementa doar handle()
, care trebuie să caute lista, să o copieze și să-l informeze pe Siri dacă a avut succes sau nu.
De asemenea, trebuie să trimiteți către această clasă de la manipulatorul de intenții înregistrat, adăugând acest cod:
if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }
Acum puteți atinge de fapt acea sugestie Siri și va aduce acest lucru:
Și atingerea butonului Creare va copia lista. Butonul spune „Creare” din cauza categoriei pe care am ales-o în fișierul de definire a intenției.
Pf, asta a fost mult. Aceste noi comenzi rapide Siri sunt caracteristica principală a iOS 12, care are o nouă suprafață mare pentru dezvoltatori de explorat. De asemenea, din moment ce s-a întâmplat să am un exemplu Siri bun (și documentat) cu care să lucrez, a fost rezonabil să încerc să-i adaug noile funcții săptămâna aceasta.
Puteți vedea actualizarea List-o-Mat în GitHub. Până când sunt lansate Xcode 10 și iOS 12, acesta este în propria sa ramură.
În următoarele câteva zile, mă voi uita în principal la exemplu de cod Apple sau voi realiza proiecte mult mai mici.
Sfârșitul zilei 3: Locuri de joacă Xcode
Toată ziua anterioară a fost petrecută în Xcode 10 beta, care nu s-a blocat o dată și părea gata de dezvoltare. Așa că acum am vrut să explorez noile funcții Playgrounds.
Principalul lucru pe care mi-l doream de la locurile de joacă este să le fac mai stabile și mult mai rapide. Pentru a le face mai rapide, Apple a adăugat o caracteristică mare - un mod REPL.
Înainte de Xcode 10, când erai într-un Playground care avea rulare automată (care este implicit), fiecare linie de cod reconstruia de fapt întregul fișier și îl rula de la început. Dacă ai construit vreun stat, a fost pierdut. Dar, adevărata problemă a fost că acest lucru a fost mult prea lent pentru o dezvoltare iterativă. Când folosesc Playgrounds, le setat să ruleze manual, dar chiar și asta este lent.
În Xcode 10, rularea manuală este mai mult o normă, dar după ce o rulați, puteți adăuga mai multe linii în partea de jos a paginii și puteți continua execuția. Aceasta înseamnă că puteți explora datele și puteți desena vizualizări în mod iterativ, fără a reconstrui constant și a începe de la zero.
Pentru a începe, am creat un loc de joacă iOS (Fișier → Nou → Loc de joacă) cu șablonul Single View.
Porniți rularea manuală prin deschiderea meniului de sub butonul Redare (triunghiul din colțul din stânga jos). Aceasta pune o bandă verticală la stânga care arată poziția curentă a capului de redare (un fel ca punctele de întrerupere).
Puteți atinge orice linie și apoi apăsați butonul de redare din stânga acesteia. Acest lucru va rula Locul de joacă până în acest punct. Apoi puteți merge mai departe atingând liniile de jos în Locul de joacă. În mod critic, puteți adăuga mai multe linii în partea de jos și tastați Shift + Enter după fiecare pentru a muta capul de redare în acel punct.
Iată un GIF cu mine schimbând eticheta unei vizualizări fără a fi nevoie să repornesc Playground-ul. După fiecare linie pe care o scriu, apăs pe Shift + Enter .
Locurile de joacă acceptă, de asemenea, redarea personalizată a tipurilor dvs. acum, iar Apple face eforturi mari pentru ca fiecare cadru Swift să includă un teren de joacă pentru a-l documenta.
Sfârșitul zilei 4: creați ML
Anul trecut, Apple a făcut un salt mare în programarea Machine Learning pentru dispozitivele lor. A existat un nou format de fișier model ML și suport direct pentru acesta în Xcode.
Potențialul era că ar exista o bibliotecă mare cu aceste fișiere model, că ar exista instrumente care le-ar crea și că mulți mai mulți dezvoltatori de aplicații ar putea să încorporeze ML în proiectele lor fără a fi nevoie să știe cum să creeze modele.
Acest lucru nu s-a materializat pe deplin. Apple nu a adăugat la depozitul de modele după WWDC și, deși există depozite terțe, acestea au în mare parte modele care sunt variații ale demonstrațiilor de clasificare a imaginilor. ML este folosit pentru mult mai mult decât pentru clasificarea imaginilor, dar nu a apărut o selecție largă de exemple.
Așadar, a devenit clar că orice aplicație reală ar avea nevoie de dezvoltatorii săi pentru a antrena noi modele. Apple a lansat Turi Create în acest scop, dar este departe de a fi simplu.
La WWDC 2018, Apple a făcut câteva lucruri pentru Core ML:
- Au extins partea de procesare a limbajului natural (NLP) din Core ML , ceea ce ne oferă un nou domeniu major de exemple.
- Au adăugat conceptul de Transfer Learning la Core ML, care vă permite să adăugați date de antrenament la un model existent . Aceasta înseamnă că puteți lua modele din bibliotecă și le puteți personaliza în funcție de propriile date (de exemplu, puneți-le să recunoască obiecte noi în imaginile pe care le furnizați).
- Au lansat Create ML, care este implementat în interiorul Xcode Playgrounds și vă permite să glisați și să plasați date pentru antrenament și să generați extensii de model (folosind Transfer Learning).
Acesta este un alt pas frumos în democratizarea ML. Nu este prea mult cod de scris aici. Pentru a extinde un clasificator de imagini, trebuie doar să adunați și să etichetați imaginile. După ce le aveți, trebuie doar să le trageți în Creare ML. Puteți vedea demonstrația în acest videoclip Create ML WWDC.
Sfârșitul săptămânii: Joacă cu noile demonstrații AR
ARKit a fost o altă mare adăugare anul trecut și pare și mai clar că va veni un dispozitiv AR.
Codul meu ARKit din articolul de anul trecut este încă o modalitate bună de a începe. Cele mai multe dintre noile funcții se referă la a face AR mai precisă și mai rapidă.
După aceea, dacă ați instalat o versiune beta, veți dori cu siguranță să descărcați noua aplicație demonstrativă SwiftShot ARKit. Această aplicație profită de noile caracteristici ale ARKit, în special de experiența multi-player. Două sau mai multe dispozitive din aceeași rețea și în același loc, pot comunica între ele și pot vedea aceeași experiență AR.
Desigur, pentru a juca acest lucru, aveți nevoie de două sau mai multe dispozitive pe care sunteți dispus să le puneți pe iOS 12 beta. Aștept ca versiunea beta publică să facă acest lucru, deoarece am un singur dispozitiv sigur pentru beta.
Aplicația AR mai ușor de jucat este noua aplicație Measure, care vă permite să măsurați lungimea obiectelor reale pe care le vedeți în vizualizarea camerei AR. Au existat aplicații terță parte care fac acest lucru, dar Apple este lustruită și preinstalată cu iOS 12.
Link-uri către videoclipuri WWDC și exemplu de cod
Așadar, aștept cu nerăbdare să fac mai multe cu Xcode 10 și iOS 12 în această vară, în timp ce așteptăm noile telefoane și orice dispozitive ar putea lansa Apple la sfârșitul verii. Între timp, dezvoltatorii iOS se pot bucura de soare, pot urmări drumețiile noastre cu noul nostru sistem beta Watch OS și pot viziona aceste videoclipuri WWDC când avem ocazia.
Puteți reda videoclipuri WWDC 2018 de pe portalul pentru dezvoltatori Apple. Există și această aplicație neoficială pentru Mac pentru vizionarea videoclipurilor WWDC.
Iată videoclipurile la care se face referire în acest articol:
- WWDC 2018 Keynote
- WWDC 2018 Platforme Statul Uniunii
- Introducere în comenzile rapide Siri
- Profitați la maximum de terenurile de joacă în Xcode
- Vă prezentăm Create ML și, dacă doriți ceva mai avansat, A Guide to Turi Create
Pentru a începe să jucați cu Xcode 10 și iOS 12:
- Descărcați beta (vizitați pe un dispozitiv pentru a obține profilul beta)
- List-o-Mat cu actualizări ale comenzilor rapide Siri
- Swift Shot (jocul multi-player ARKit 2)