WWDC 2018 Bir iOS Geliştiricisinin Günlüğü
Yayınlanan: 2022-03-10ABD'de yazın geleneksel sınırları, Anma ve İşçi Bayramı'dır, ancak iOS geliştiricileri yazı WWDC ve iPhone sürümü ile işaretler. NYC'de bu hafta hava serin ve yağmurlu olsa da, bir yaz havasındayım ve o yaz yenilenmeyi ve WWDC'nin sözünü dört gözle bekliyorum.
4 Haziran sabahı ve WWDC 2017'den notlarımı gözden geçiriyorum. Geçen yıl, ARKit ve Core ML'nin en önemli iki olay olduğunu yazmıştım. Apple'ın Makine Öğrenimi'ne (ML) odaklandığını görmek canlandırıcıydı, ancak 2017'nin geri kalanında çok fazla takip olmadı. ARKit biraz ilgi uyandırdı, ancak öldürücü uygulama yok (belki Pokemon Go, ancak bu ARKit'ten önce popülerdi) . Apple, Core ML duyurusunun ardından ilk Core ML indirilebilir model kitaplığına ekleme yapmadı.
Apple, Turi Create'i piyasaya sürdü ve Lobe, geçen ay yeni ve ilginç bir Core ML model yapımcısı yayınladı. Apple/ML alanında Swift yaratıcısı Chris Lattner, TensorFlow için Swift ile farklı bir yaklaşım benimsiyor. Ancak dışarıdan bakıldığında, Core ML'nin çoğunlukla tek bir kullanımı var gibi görünüyor: görüntü sınıflandırma. Çılgınca farklı uygulamaları keşfetmek için çok fazla enerji yok gibi görünüyor (hepimiz ML'nin kendi kendini süren arabaların ve Google Duplex gibi hızlı demoların merkezinde olduğunu biliyoruz).
Apple'ın ML'yi kullanmasının bir başka yolu da Siri'de ve bu yılın başlarında SiriKit hakkında yazdım ve Alexa ve Google ile karşılaştırıldığında algılanan ve gerçek eksikliklerinden bahsettim. Araştırdığım bir konu, Siri'nin önceden tanımlanmış amaçlara yaptığı vurgunun menzilini nasıl sınırladığı, ancak sınırlı bir odaktan elde edebileceğiniz vaat edilen doğruluğu nasıl üretmediğiydi.
Geçen yıl HomePod'un piyasaya sürülmesi yalnızca Siri'nin sıkıntılarını vurguladı ve geniş çapta bildirilen bir müşteri memnuniyeti anketi, iPhone X'ten %98 memnuniyet, Siri'den ise yalnızca %20 memnuniyet gösterdi.
Tüm bunlar aklımdayken, kişisel olarak Apple'ın AR, ML ve Siri'de bazı önemli iyileştirmeler yapacağını duymayı umuyordum. Spesifik olarak, bir iOS geliştiricisi olarak, sadece görüntü sınıflandırmadan fazlasını kapsayan ve model yapımında daha fazla yardım içeren çok daha fazla Core ML modeli görmek istedim. Siri için çok daha fazla niyet ve muhtemelen niyetlerin yıl boyunca eklenecek bir şey olacağına dair bazı işaretler görmek istedim. Uzun bir atıştı, ancak AR için bir sonraki adım bir cihaz. Ama bu arada, uzaysal doğruluğun artmasını umuyordum.
Son olarak, Xcode Playgrounds ve iPad Playground kitaplarını seviyorum, ancak çok daha hızlı ve istikrarlı olmaları gerekiyor, bu yüzden orada da bir şeyler umuyordum.
WWDC sabahı şunu tweetledim:
Bu bir tahmin değildi. Bu, 2017'de kullanmak istediğim ancak yetersiz veya başlamam için çok zor bulduğum ve Apple'ın bazı iyileştirmeler yapacağını umduğum şeylerin bir listesi.
Bugünkü planım açılış konuşmasını canlı izlemek ve ardından Platforms State of the Union'ı izlemek. Bunlar, haftanın geri kalanında neye konsantre olunacağına dair iyi bir genel bakış sağlar.
1. Gün Sonu: Açılış Konuşması ve Platformların Birliğin Durumu
WWDC'nin ilk günü, kamu tüketimine yönelik açılış konuşması ve geliştiricilerin hangi oturumlara katılacaklarını seçebilmeleri için tüm etkinliğe genel bir bakış sunan Platformların Durumu Birliği'dir.
Önemli, iOS Olmayan Geliştirici Duyurularının Özeti
WWDC tamamen iOS geliştirme ile ilgili değildir, bu nedenle burada diğer platformların başına gelen veya geliştirici odaklı olmayan diğer şeylerin hızlı bir listesi.
- Bunu aradan çıkarmak için, hiçbir donanım duyurusu yoktu . Mac Pro'da önizleme ve güncelleme yok. Sonbaharda iPhone ve sonraki etkinlikleri beklememiz gerekecek.
- iOS 12, Workflow'u satın almalarının sonucu gibi görünen yeni bir Kısayollar uygulamasına sahiptir. Sürükle ve bırak yoluyla bir dizi adımı "komut dosyası oluşturmanın" bir yolu. Kısayolu, aşağıda ele alacağım bir Siri anahtar kelimesine de atayabilirsiniz.
- iOS, aynı uygulamadan gelen bildirimleri otomatik olarak gruplandırır ve bunlar üzerinde bir grup olarak hareket etmenize izin verir.
- Animojiler artık dilinizi dışarı çıkardığınızı taklit edebilir ve yeni Memojiler, kendinize benzemek için özelleştirebileceğiniz, son derece yapılandırılabilir insan yüzleridir .
- FaceTime, 32 kişiye kadar grup görüntülü sohbeti destekler .
- Telefonunuz ve uygulama kullanımınız hakkında size raporlar veren yeni bir Ekran Süresi uygulaması var (kendinizi kontrol etmenize ve daha az dikkatinizin dağılmasına yardımcı olmak için). Aynı zamanda yeni ebeveyn denetimlerinin de temelidir.
- Apple TV'ye küçük bir güncelleme geldi: Dolby Atmos desteği ve Uluslararası Uzay İstasyonu'ndan alınan yeni ekran koruyucular .
- Saat, diğerlerini antrenmanla ilgili zorluklara meydan okumak için bir rekabet moduna sahiptir. Ayrıca, başlatmayı veya durdurmayı unutmanız durumunda antrenmanların başlangıcını ve sonunu otomatik olarak algılamaya çalışır ve artık Yürüyüş ve Yoga antrenmanlarına sahiptir.
- Saat ayrıca, güvenilir kişiler için etkinleştirebileceğiniz yeni bir Telsiz moduna sahiptir.
- Watch'ta yerel olan daha fazla ses SDK'sı var ve Apple'ın Podcast'leri uygulaması artık mevcut. Üçüncü taraf podcast uygulamalarının da bu yeni SDK'lardan yararlanmasını bekliyorum.
- Mac, olayın bağlantı noktasını aldı (bu, umarım yenilenen ilginin bir göstergesidir). Adı macOS Mojave olacak ve karanlık bir moda sahip .
- Mac App Store'da büyük güncellemeler var, ancak özellikle iOS App Store'un geçen yıl aldığı aynı görsel ve içerik tedavisini alıyor . Panik'in Transit'i oraya geri taşımaya karar verdiği sandbox'ta yeterince değişiklik var .
- Finder'da Quick Look artık dosyada yapabileceğiniz bazı basit eylemlere (örneğin bir görüntüyü döndürme) sahiptir ve Automator aracılığıyla özelleştirilebilir.
- Mojave, macOS'un 32 bit uygulamaları ve çerçeveleri destekleyen son sürümü olacak , bu da Hızlı Zaman Çerçevesinin ortadan kalkması anlamına geliyor. Görünüşe göre, işletim sisteminin kendisinde bazı video yakalama özellikleri ile değiştirilmiştir.
- Apple, Mac uygulamaları yapmak için dahili olarak bir UIKit bağlantı noktası kullandıklarını duyurdu ve Hisse Senedi, Haber, Ev ve Sesli Not bağlantı noktalarını gösterdi. Yeni çerçeve 2019'da piyasaya sürülecek.
En Çok Heyecanlandığım iOS Geliştirici Duyuruları
iOS Geliştiricileri de bazı iyi haberler aldı. İyileştirme görmek istediğim dört ana alana odaklandılar:
- SiriKit'in artık özel amaçları var, bu da olasılıkları biraz daha açıyor.
- Create ML, modelleri transfer öğrenimi yoluyla eğitmek için Xcode Playgrounds'u kullanmanın yeni bir yoludur; bu, mevcut modelleri kendi eğitim verilerinizle artırmanıza olanak tanır.
- Xcode oyun alanları artık bir sayfanın altına kod eklemenize ve yeniden başlatmadan çalıştırmanıza izin veriyor. Eylül ayında gerçek bir sürüm alana kadar Playgrounds'ın daha kararlı olup olmayacağını bilmek zor, ancak bu, kod denemeyi çok daha hızlı hale getirecek.
- ARKit 2, açık olan ve Adobe ve Pixar ile geliştirilen USDZ adlı yeni bir Artırılmış Gerçeklik dosya formatı ile birlikte duyuruldu. Adobe zaten bazı takım desteğini duyurdu. Kullanıcıların ve geliştiricilerin AR varlıklarını ve deneyimlerini depolamasına ve paylaşmasına izin verecek. Ayrıca ARKit 2, birden fazla cihazın aynı AR ortamında olmasına izin verir ve 3D nesne algılamayı destekler.
Bir AR cihazı almadık, ancak yakında bir tane alacağımız kesin. ARKit'i çalıştırmak bir iOS cihazı gerektirdiğinden, bunun Apple'dan gelmesi gerekiyor (üçüncü şahıslar değil).
Makinenizi Kurma
İhtiyacınız olan her şey artık geliştirici portalında mevcut. Makaledeki kodu kullanmak için Xcode 10 Beta'ya ihtiyacınız var. Henüz iOS 12 Beta kullanmanızı önermem ama gerçekten istiyorsanız cihazınızdaki portala gidin ve iOS 12 Beta Yapılandırma Profilini indirin.
Beta sürümüne sahip bir cihaza ihtiyacınız olan tek önemli şey ARKit 2'dir. Diğer her şey Xcode 10'un simülatöründe yeterince iyi çalışmalıdır. İlk betadan itibaren, simülatördeki Siri Kısayolu desteği sınırlıdır, ancak bunun gelecekteki sürümlerde düzeltileceğini düşünmek için yeterince var.
2. Günün Sonu: Siri Özel Amaçlarıyla Oynamak
Geçen yıl, uygulamanızda SiriKit'i kullanmak için Apple'ın önceden tanımlanmış amaçlarından birine nasıl uymanız gerektiğini yazmıştım. Bu mekanizma 2016'da tanıtıldı ve 2017'de ve hatta WWDC etkinlikleri arasında eklendi. Ancak Amazon'un özel amaçlara yönelik yaklaşımının, daha çeşitli uygulamalara ses kontrolünü getirmek için üstün olduğu açıktı ve Apple bunu geçen hafta SiriKit'e ekledi.
Açık olmak gerekirse, bu bir ilk uygulama, yani henüz Alexa Skills kadar kapsamlı değil, ancak Siri'nin olanaklarını biraz daha açıyor. Önceki makalede tartıştığım gibi, özel amaçların ana sınırlaması, geliştiricinin tüm dil çevirisini yapması gerekmesidir. SiriKit, kullanıcıdan kullanmak istedikleri ifadeyi vermesini isteyerek bu sorunu biraz çözer, ancak özel amaçlar için önceden tanımlanmış amaçlardan daha fazla çeviriye ihtiyaç vardır.
Ve önceden tanımlanmış amaçlarla aynı temel üzerine inşa ettiler, bu yüzden ele aldığım her şey hala geçerli. Aslında, orijinal SiriKit makalesi için yazdığım uygulama olan List-o-Mat'a nasıl yeni bir özel amaç ekleyeceğinizi göstereceğim.
(Ücretsiz) Spotlight'ı Zaten Destekliyorsanız Siri Kısayol Desteği
NSUserActivity
uygulamanızda, kullanıcınızın aktarma veya arama yoluyla başlatabileceği şeyleri belirtmek için kullanıyorsanız, bunları Siri için de kullanılabilir hale getirmek önemsizdir.
Tek yapmanız gereken aktivite nesnenize aşağıdaki satırı eklemek:
activity.isEligibleForPrediction = true
Bu, yalnızca Spotlight etkin etkinlikler için işe yarar ( burada isEligibleForSearch
true
).
Artık kullanıcılar bu etkinliği yaptığında, Siri'de kullanılmak üzere bağışlanmış olarak kabul ediliyor. Siri, çok sık yapılan etkinlikleri önerir veya kullanıcılar bunları Kısayollar uygulamasında bulabilir. Her iki durumda da kullanıcı, başlatmak için kendi sözlü ifadesini atayabilecektir. Etkinliği Spotlight aracılığıyla başlatma desteğiniz, bir kısayol aracılığıyla başlatılmasını desteklemek için yeterlidir.
List-o-Mat'ta, etkinlik nesneleri oluşturarak ve bunları ListViewController
atayarak ayrı listeleri Spotlight ve Siri için kullanılabilir hale getirebiliriz. Kullanıcılar, Siri aracılığıyla kendi ifadeleriyle açabilirler.
Bizim durumumuzda gereksiz çünkü bir liste açmak için önceden tanımlanmış bir amacımız vardı, ancak çoğu uygulama o kadar şanslı değil ve şimdi bu basit mekanizmaya sahip. Bu nedenle, uygulamanızda Siri'nin önceden tanımlanmış amaçları tarafından desteklenmeyen etkinlikler varsa (örn.
SiriKit'i Özel Amaçları Kullanacak Şekilde Yapılandırma
Özel bir amaç kullanmanız gerekiyorsa, biraz yapılandırma gerektiren SiriKit'in uygulamanıza eklenmesi gerekir.
SiriKit'i özel amaçlar için yapılandırmaya yönelik tüm adımlar, burada Smashing hakkındaki SiriKit makalemde ayrıntılı olarak ele alınan önceden tanımlanmış amaçlarla aynıdır. Özetlemek:
- Bir uzantı ekliyorsunuz, bu nedenle yeni bir Uygulama Kimliğine ihtiyacınız var ve temel hazırlık profili ile uygulamanızın yetkilendirme ihtiyaçları için Siri'nin eklenmesi gerekiyor.
- Muhtemelen bir Uygulama Grubuna ihtiyacınız vardır (uzantı ve uygulama bu şekilde iletişim kurar).
- Projenizde bir Amaç Uzantısına ihtiyacınız olacak
- Güncellemeniz gereken Siri'ye özel .plist anahtarları ve proje yetkilendirmeleri vardır.
Tüm ayrıntılar SiriKit makalemde bulunabilir, bu yüzden List-o-Mat'ta özel bir amacı desteklemek için neye ihtiyacınız olduğunu ele alacağım.
List-o-Mat'e Liste Kopya Komutu Ekleme
Özel amaçlar, yalnızca önceden tanımlanmış bir amaç olmadığında kullanılmak içindir ve Siri, Listeler ve Notlar Siri Etki Alanında aslında çok sayıda liste ve görev desteği sunar.
Ancak, bir listeyi kullanmanın bir yolu, tekrarlanan bir rutin veya işlem için şablon olarak kullanmaktır. Bunu yapmak için mevcut bir listeyi kopyalamak ve tüm öğelerinin işaretini kaldırmak isteyeceğiz. Yerleşik Liste amaçları bu eylemi desteklemez.
İlk olarak, bunu manuel olarak yapmanın bir yolunu eklememiz gerekiyor. İşte List-o-Mat'taki bu yeni davranışın bir demosu:
Bu davranışın Siri tarafından çağrılabilir olmasını sağlamak için "bir niyet bağışlayacağız", yani bunu her yaptığınızda iOS'a söyleyeceğiz. Ardından, sabahları bu listeyi kopyalamayı sevdiğinizi öğrenecek ve bir kısayol olarak sunacaktır. Kullanıcılar ayrıca bağışlanan amaçları arayabilir ve ifadeleri manuel olarak atayabilir.
Özel Amaç Oluşturma
Sonraki adım, özel amacı Xcode'da oluşturmaktır. Yeni bir dosya şablonu var, yani:
- Dosya → Yeni Dosya'yı seçin ve “SiriKit Amaç Tanımlama Dosyası”nı seçin.
- Dosyayı ListOMatCustomIntents.intentdefinition olarak adlandırın ve dosyayı hem Uygulama hem de Amaç Uzantısı hedeflerine yerleştirmeyi seçin. Bu, amaç protokollerini uygulayan ancak özel davranışınızı uygulayan her iki hedefe de otomatik olarak sınıflar oluşturacaktır.
- Tanım dosyasını açın.
- Bir amaç eklemek için sol alttaki + düğmesini kullanın ve buna “CopyList” adını verin.
- Kategoriyi "Oluştur" olarak ayarlayın ve amacı açıklamak için başlığı ve alt başlığı doldurun:
- “Liste” adında bir String parametresi ekleyin.
- list parametresiyle bir kısayol türü ekleyin ve ona “Listeyi kopyala” adlı bir başlık verin.
Amaç listesine bakarsanız, bu amacın zaten sizin için yapılandırıldığını göreceksiniz:
Niyet Bağışlamak
Uygulamamızda Siri'nin bilmesini istediğimiz bir kullanıcı etkileşimi yaptığımızda bunu Siri'ye bağışlıyoruz. Siri, saat, haftanın günü ve hatta konum gibi bağlamsal bilgileri takip eder ve bir kalıp fark ederse, kullanıcıya kısayolu sunar.
Kopyala menüsüne dokunduğumuzda şu kodu ekleyin:
@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) } }
Bu, otomatik olarak oluşturulan CopyListIntent
sınıfının bir nesnesini oluşturur ve bunu Siri'ye bağışlar. Normalde iOS bu bilgiyi toplar ve göstermek için uygun zamanı bekler, ancak geliştirme için Ayarlar uygulamasını açabilir, Geliştirici bölümüne gidebilir ve Siri Kısayolu hata ayıklama ayarlarını açabilirsiniz.
Not : Bu yazı itibariyle, ilk betalarla birlikte bu hata ayıklama ayarı simülatörde değil, yalnızca cihazlarda çalışır. Ayar orada olduğundan, daha fazla beta sürümünde çalışmaya başlamasını bekliyorum.
Bunu yaptığınızda, bağışladığınız kısayol Spotlight'taki Siri Önerileri'nde görünür.
Arka planda yürütmeye izin verdiğimiz için buna dokunmak Intent uzantınızı çağırır. Bunun için daha sonra destek ekleyeceğiz.
Özel Amacı İşleme
Zaten bir Intents uzantımız var ve özel amaç tanımları dosyası dosyaya zaten eklendiğinden, oluşturulan amaç sınıflarına da sahip. Tek yapmamız gereken bir işleyici eklemek.
İlk adım, uzantıya CopyListIntentHandler
adlı yeni bir sınıf eklemektir. İşte kodu:
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) } }
Özel amaçların yalnızca bir onaylama ve işleme aşaması vardır (parametrelerin özel çözünürlüğü desteklenmez). Varsayılan confirm()
başarıyı döndürdüğünden, listeyi aramak, kopyalamak ve başarılı olup olmadığını Siri'ye bildirmek zorunda olan handle()
işlevini uygulayacağız.
Ayrıca, bu kodu ekleyerek kayıtlı amaç işleyicisinden bu sınıfa göndermeniz gerekir:
if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }
Şimdi o Siri önerisine gerçekten dokunabilirsiniz ve o bunu getirecektir:
Ve Oluştur düğmesine dokunmak listeyi kopyalayacaktır. Niyet tanım dosyasında seçtiğimiz kategoriden dolayı buton “Oluştur” diyor.
Vay, bu çok oldu. Bu yeni Siri kısayolları, keşfedilecek yeni bir geniş geliştirici yüzey alanına sahip iOS 12'deki ana özelliktir. Ayrıca, çalışmak için iyi (ve belgelenmiş) bir Siri örneğine sahip olduğum için, bu hafta ona yeni özellikler eklemeye çalışmak mantıklıydı.
List-o-Mat güncellemesini GitHub'da görebilirsiniz. Xcode 10 ve iOS 12 çıkana kadar kendi dalında.
Önümüzdeki birkaç gün, çoğunlukla Apple örnek koduna bakacağım veya çok daha küçük projeler yapacağım.
3. Gün Sonu 3: Xcode Oyun Alanları
Önceki günün tamamı, bir kez çökmeyen ve geliştirme için hazır görünen Xcode 10 beta'da geçti. Şimdi yeni Playgrounds özelliklerini keşfetmek istedim.
Oyun alanlarından en çok istediğim şey daha stabil ve çok daha hızlı olmaları. Bunları daha hızlı hale getirmek için Apple büyük bir özellik ekledi - bir REPL modu.
Xcode 10'dan önce, otomatik çalışan (varsayılan) bir Oyun Alanındayken, her kod satırı aslında tüm dosyayı yeniden oluşturdu ve en baştan çalıştırdı. Eğer herhangi bir devlet kurmuş olsaydınız, o kaybolmuştu. Ancak asıl sorun, bunun yinelemeli geliştirme için çok yavaş olmasıydı. Oyun Alanlarını kullandığımda, onları manuel olarak çalışacak şekilde ayarladım, ancak bu bile yavaş.
Xcode 10'da manuel çalıştırma daha çok normdur, ancak çalıştırdıktan sonra sayfanın altına daha fazla satır ekleyebilir ve yürütmeye devam edebilirsiniz. Bu, sürekli yeniden oluşturmaya ve sıfırdan başlamaya gerek kalmadan verileri keşfedebileceğiniz ve görünümleri yinelemeli olarak çizebileceğiniz anlamına gelir.
Başlamak için Tek Görünüm şablonuyla bir iOS oyun alanı (Dosya → Yeni → Oyun Alanı) oluşturdum.
Oynat düğmesinin (sol alt köşedeki üçgen) altındaki menüyü aşağı getirerek manuel çalıştırmayı açın. Bu, Oynatma kafasının mevcut konumunu (bir tür kesme noktası gibi) gösteren sola dikey bir şerit koyar.
Herhangi bir satıra ve ardından solundaki oynat düğmesine dokunabilirsiniz. Bu, Oyun Alanı'nı bu noktaya kadar çalıştıracaktır. Ardından, Oyun Alanında alt satırlara dokunarak daha ileri gidebilirsiniz. Kritik olarak, en alta daha fazla satır ekleyebilir ve Oynatma başlığını o noktaya taşımak için her birinin ardından Shift + Enter tuşlarına basabilirsiniz.
İşte Oyun Alanı'nı yeniden başlatmaya gerek kalmadan bir görünümün etiketini değiştirdiğim bir GIF. Yazdığım her satırdan sonra Shift + Enter tuşlarına basıyorum.
Oyun alanları artık türlerinizin özel olarak oluşturulmasını da destekliyor ve Apple, her Swift çerçevesini belgelemek için bir Oyun Alanı eklemek için büyük bir baskı yapıyor.
4. Gün Sonu: Makine Öğrenimi Oluşturun
Geçen yıl Apple, cihazları için Makine Öğrenimi programlamak için büyük bir adım attı. Xcode'da yeni bir ML model dosya formatı ve bunun için doğrudan destek vardı.
Potansiyel, bu model dosyalarından oluşan geniş bir kitaplığın olması, bunları oluşturacak araçların olması ve daha birçok uygulama geliştiricisinin, model oluşturmayı bilmek zorunda kalmadan ML'yi projelerine dahil edebilmesiydi.
Bu tam olarak gerçekleşmedi. Apple, WWDC'den sonra model deposuna ekleme yapmadı ve üçüncü taraf depoları olmasına rağmen, çoğunlukla görüntü sınıflandırma demolarında varyasyonlar olan modeller var. ML, görüntü sınıflandırmasından çok daha fazlası için kullanılır, ancak geniş bir örnek seçimi ortaya çıkmadı.
Böylece, herhangi bir gerçek uygulamanın geliştiricilerinin yeni modeller eğitmesine ihtiyaç duyacağı ortaya çıktı. Apple, bu amaç için Turi Create'i piyasaya sürdü, ancak bu basit olmaktan uzak.
WWDC 2018'de Apple, Core ML'ye birkaç şey yaptı:
- Bize yeni bir ana örnek alanı sağlayan Core ML'nin Doğal Dil İşleme (NLP) bölümünü genişlettiler .
- Mevcut bir modele eğitim verileri eklemenize olanak tanıyan Transfer Learning'i Core ML'ye eklediler. Bu, kitaplıktan modeller alabileceğiniz ve bunları kendi verilerinize göre özelleştirebileceğiniz anlamına gelir (örneğin, sağladığınız görüntülerdeki yeni nesneleri tanımalarını sağlayın).
- Xcode Playgrounds içinde uygulanan ve eğitim için verileri sürükleyip bırakmanıza ve model uzantıları oluşturmanıza (Transfer Öğrenimi kullanarak) izin veren Create ML'yi piyasaya sürdüler .
Bu, makine öğrenimini demokratikleştirmede bir başka güzel adımdır. Buraya yazılacak çok fazla kod yok. Bir görüntü sınıflandırıcıyı genişletmek için görüntüleri toplamanız ve etiketlemeniz yeterlidir. Onlara sahip olduğunuzda, onları sadece ML Oluştur'a sürükleyin. Demoyu bu ML WWDC Oluşturma videosunda görebilirsiniz.
Hafta Sonu: Yeni AR Demolarıyla Oynayın
ARKit geçen yıl bir başka büyük eklemeydi ve bir AR cihazının geleceği daha da açık görünüyor.
Geçen yılki makaledeki ARKit kodum hala başlamak için iyi bir yol. Yeni özelliklerin çoğu, AR'yi daha doğru ve daha hızlı hale getirmekle ilgilidir.
Bundan sonra, bir beta yüklediyseniz, kesinlikle yeni SwiftShot ARKit demo uygulamasını indirmek isteyeceksiniz. Bu uygulama, özellikle çok oyunculu deneyim olmak üzere ARKit'in yeni özelliklerinden yararlanır. Aynı ağ üzerinde ve aynı yerde bulunan iki veya daha fazla cihaz birbiriyle iletişim kurabilir ve aynı AR deneyimini görebilir.
Tabii ki, bunu oynamak için iOS 12 beta'ya koymak istediğiniz iki veya daha fazla cihaza ihtiyacınız var. Bunu yapmak için genel betayı bekliyorum çünkü yalnızca bir beta güvenli cihazım var.
Oynaması daha kolay AR uygulaması, AR kamera görünümünde gördüğünüz gerçek nesnelerin uzunluğunu ölçmenize olanak tanıyan yeni Measure uygulamasıdır. Bunu yapan üçüncü taraf uygulamalar var, ancak Apple'ınki cilalanmış ve iOS 12 ile önceden yüklenmiş.
WWDC Videolarına Bağlantılar ve Örnek Kod
Bu nedenle, yeni telefonları ve Apple'ın yaz sonunda çıkaracağı cihazları beklerken bu yaz Xcode 10 ve iOS 12 ile daha fazlasını yapmayı dört gözle bekliyorum. Bu arada iOS geliştiricileri güneşin tadını çıkarabilir, yeni beta Watch OS ile yürüyüşlerimizi takip edebilir ve fırsat buldukça bu WWDC videolarını izleyebilir.
WWDC 2018 videolarını Apple geliştirici portalından aktarabilirsiniz. WWDC videolarını görüntülemek için bu resmi olmayan Mac Uygulaması da var.
İşte bu makalede atıfta bulunulan videolar:
- WWDC 2018 Açılış Konuşması
- WWDC 2018 Platformları Birliğin Durumu
- Siri Kısayollarına Giriş
- Xcode'da Oyun Alanlarından En İyi Şekilde Yararlanma
- Create ML ile tanışın ve daha gelişmiş bir şey istiyorsanız, A Guide to Turi Create
Xcode 10 ve iOS 12 ile oynamaya başlamak için:
- Betaları indirin (beta profilini almak için bir cihazda ziyaret edin)
- Siri Kısayol güncellemeleri ile List-o-Mat
- Swift Shot (çok oyunculu ARKit 2 oyunu)