Buku Harian Seorang Pengembang iOS WWDC 2018

Diterbitkan: 2022-03-10
Ringkasan cepat Sejak 1987, Apple Worldwide Developers Conference (WWDC) telah berlangsung setiap tahun dan membuat pengembang iOS tetap waspada. Lou Franco menonton acara tahun ini dan membagikan catatan dan referensinya jika Anda melewatkannya.

Batas tradisional musim panas di AS adalah Memorial dan Hari Buruh, tetapi pengembang iOS menandai musim panas dengan WWDC dan rilis iPhone. Meskipun cuaca dingin dan hujan minggu ini di NYC, saya dalam suasana musim panas dan menantikan pembaruan musim panas dan janji WWDC itu.

Foto di depan San Jose McEnery Convention Center
WWDC (Sumber gambar) (Pratinjau besar)

Ini pagi tanggal 4 Juni, dan saya meninjau catatan saya dari WWDC 2017. Tahun lalu, saya menulis bahwa ARKit dan Core ML adalah dua sorotan besar. Sangat menyegarkan melihat Apple fokus pada Machine Learning (ML), tetapi tidak banyak tindak lanjut di sisa tahun 2017. ARKit telah memunculkan beberapa minat, tetapi tidak ada aplikasi pembunuh (mungkin Pokemon Go, tapi itu populer sebelum ARKit) . Apple tidak menambahkan pustaka awal model Core ML yang dapat diunduh setelah pengumuman Core ML.

Apple memang merilis Turi Create dan Lobe merilis pembuat model Core ML baru yang menarik bulan lalu. Di ruang Apple/ML, pencipta Swift, Chris Lattner, mengambil pendekatan berbeda dengan Swift untuk TensorFlow. Tetapi dari luar, Core ML tampaknya sebagian besar memiliki satu kegunaan yang jelas: klasifikasi gambar. Tampaknya tidak ada banyak energi untuk menjelajahi aplikasi yang sangat berbeda (walaupun kita semua tahu ML adalah inti dari mobil self-driving dan demo jagoan seperti Google Duplex).

Lebih banyak setelah melompat! Lanjutkan membaca di bawah ini

Cara lain Apple menggunakan ML adalah di Siri, dan awal tahun ini, saya menulis tentang SiriKit dan menyebutkan kekurangan yang dirasakan dan nyata jika dibandingkan dengan Alexa dan Google. Satu masalah yang saya jelajahi adalah bagaimana penekanan Siri pada maksud yang telah ditentukan sebelumnya membatasi jangkauannya tetapi belum menghasilkan akurasi yang dijanjikan yang mungkin Anda dapatkan dari fokus terbatas.

Pengenalan HomePod tahun lalu hanya menyoroti kesengsaraan Siri, dan survei kepuasan pelanggan yang dilaporkan secara luas menunjukkan 98% kepuasan dengan iPhone X tetapi hanya 20% kepuasan dengan Siri.

Dengan semua ini di benak saya, saya pribadi berharap mendengar bahwa Apple akan membuat beberapa peningkatan besar dalam AR, ML, dan Siri. Secara khusus, sebagai pengembang iOS, saya ingin melihat lebih banyak model Core ML, yang mencakup lebih dari sekadar klasifikasi gambar dan lebih banyak bantuan dalam membuat model. Untuk Siri, saya ingin melihat lebih banyak maksud dan mungkin beberapa indikasi bahwa maksud akan menjadi sesuatu yang akan ditambahkan sepanjang tahun. Itu adalah tembakan panjang, tetapi untuk AR, langkah selanjutnya adalah perangkat. Tapi sementara itu, saya berharap untuk meningkatkan akurasi spasial.

Akhirnya, saya menyukai buku Xcode Playgrounds dan iPad Playground, tetapi mereka harus jauh lebih cepat dan stabil, jadi saya juga mengharapkan sesuatu di sana.

Pada pagi hari WWDC, saya men-tweet ini:

Gambar tweet dengan keinginan WWDC saya
Tweet saya menggambarkan apa yang saya harapkan dari WWDC 2018 (Pratinjau besar)

Ini bukan prediksi. Itu hanya daftar hal-hal yang ingin saya gunakan pada tahun 2017 tetapi ternyata kurang bertenaga atau terlalu sulit bagi saya untuk memulai, dan berharap Apple akan membuat beberapa perbaikan.

Rencana saya hari ini adalah menonton keynote secara langsung, dan kemudian menonton Platforms State of the Union. Itu memberikan gambaran yang baik tentang apa yang harus dikonsentrasikan untuk sisa minggu ini.

Akhir Hari 1: Keynote Dan Platform State Of The Union

Hari pertama WWDC adalah keynote, yang dimaksudkan untuk konsumsi publik, dan Platforms State of the Union, yang merupakan gambaran umum dari keseluruhan acara, dengan beberapa detail untuk pengembang sehingga mereka dapat memilih sesi mana yang akan dihadiri.

Ringkasan Pengumuman Pengembang Non-iOS Terkemuka

WWDC tidak sepenuhnya tentang pengembangan iOS, jadi inilah daftar singkat hal-hal lain yang terjadi pada platform lain atau yang tidak terlalu fokus pada pengembang.

  • Untuk menghindarinya, tidak ada pengumuman perangkat keras sama sekali . Tidak ada pratinjau dan tidak ada pembaruan di Mac Pro. Kita harus menunggu iPhone dan acara lanjutan di musim gugur.
  • iOS 12 memiliki aplikasi Pintasan baru yang tampaknya merupakan hasil akuisisi Alur Kerja mereka. Ini adalah cara untuk "skrip" serangkaian langkah melalui drag and drop . Anda juga dapat menetapkan pintasan ke kata kunci Siri, yang akan saya bahas di bawah.
  • iOS akan secara otomatis mengelompokkan pemberitahuan yang berasal dari aplikasi yang sama dan memungkinkan Anda bertindak berdasarkan itu sebagai sebuah grup.
  • Animoji sekarang dapat meniru Anda menjulurkan lidah, dan Memoji baru adalah wajah manusia yang sangat dapat dikonfigurasi yang dapat Anda sesuaikan agar terlihat seperti diri Anda sendiri.
  • FaceTime mendukung obrolan video grup hingga 32 orang.
  • Ada aplikasi Durasi Layar baru yang memberi Anda laporan tentang penggunaan ponsel dan aplikasi Anda (untuk membantu Anda mengontrol diri dan tidak terlalu terganggu). Ini juga merupakan dasar dari kontrol orang tua baru.
  • Apple TV mendapat pembaruan kecil: Dukungan untuk Dolby Atmos dan screen saver baru yang diambil dari Stasiun Luar Angkasa Internasional .
Foto Penghemat Layar Luar Angkasa Apple TV baru
Apple TV Space Screen Saver (Pratinjau besar)
  • Arloji memiliki mode kompetisi untuk menantang orang lain ke tantangan terkait olahraga. Ini juga akan mencoba mendeteksi secara otomatis awal dan akhir latihan jika Anda lupa untuk memulai atau menghentikannya, dan sekarang memiliki latihan Hiking dan Yoga.
  • Arloji juga memiliki mode Walkie-Talkie baru yang dapat Anda aktifkan untuk kontak tepercaya.
  • Ada lebih banyak SDK audio yang asli di Watch , dan aplikasi Podcast Apple sekarang tersedia. Saya berharap aplikasi podcast pihak ketiga akan memanfaatkan SDK baru ini juga.
  • Mac mendapat tempat jangkar acara (yang diharapkan merupakan indikasi perhatian baru). Ini akan disebut macOS Mojave dan menampilkan mode gelap .
  • Ada pembaruan besar untuk Mac App Store, tetapi khususnya, sekarang mendapat perlakuan visual dan konten yang sama dengan iOS App Store tahun lalu. Ada cukup banyak perubahan pada kotak pasir sehingga Panic memutuskan untuk memindahkan Transit kembali ke sana .
  • Quick Look di Finder sekarang memiliki beberapa tindakan sederhana yang dapat Anda lakukan pada file (misalnya memutar gambar) dan dapat disesuaikan melalui Automator.
  • Mojave akan menjadi versi terakhir dari macOS yang mendukung aplikasi dan kerangka kerja 32-bit , yang berarti Kerangka Waktu Cepat akan hilang. Tampaknya telah diganti dengan beberapa fitur pengambilan video di OS itu sendiri.
  • Apple mengumumkan bahwa mereka secara internal menggunakan port UIKit untuk membuat aplikasi Mac dan menunjukkan port Stocks, News, Home, dan Voice Memo. Kerangka kerja baru akan dirilis pada 2019.

Pengumuman Pengembang iOS yang Sangat Saya Suka

Pengembang iOS juga mendapat kabar baik. Mereka mencapai empat bidang utama yang ingin saya lihat peningkatannya:

  • SiriKit sekarang memiliki maksud khusus , yang membuka kemungkinan sedikit.
  • Create ML adalah cara baru menggunakan Xcode Playgrounds untuk melatih model melalui pembelajaran transfer , yang memungkinkan Anda menambah model yang ada dengan data pelatihan Anda sendiri .
  • Taman bermain Xcode sekarang memungkinkan Anda untuk menambahkan kode ke bagian bawah halaman dan menjalankannya tanpa memulai ulang . Sulit untuk mengetahui apakah Playgrounds akan lebih stabil sampai kami mendapatkan rilis nyata pada bulan September, tetapi ini akan membuat mencoba kode lebih cepat.
  • ARKit 2 diumumkan bersama dengan format file Augmented Reality baru yang disebut USDZ , yang terbuka dan dikembangkan dengan Adobe dan Pixar. Adobe sudah mengumumkan beberapa dukungan perkakas. Ini akan memungkinkan pengguna dan pengembang untuk menyimpan dan berbagi aset dan pengalaman AR. Selain itu, ARKit 2 memungkinkan beberapa perangkat berada di lingkungan AR yang sama dan mendukung deteksi objek 3D.

Kami tidak mendapatkan perangkat AR, tetapi sepertinya kami akan segera mendapatkannya. Dan itu harus datang dari Apple (bukan pihak ketiga) karena menjalankan ARKit membutuhkan perangkat iOS.

Menyiapkan Mesin Anda

Semua yang Anda butuhkan sekarang tersedia di portal pengembang. Untuk menggunakan kode dalam artikel, Anda memerlukan Xcode 10 Beta. Saya tidak akan merekomendasikan menggunakan iOS 12 Betas, tetapi jika Anda benar-benar ingin, buka portal di perangkat Anda dan unduh Profil Konfigurasi iOS 12 Beta.

Satu-satunya hal utama yang Anda perlukan untuk perangkat dengan beta adalah ARKit 2. Segala sesuatu yang lain harus berjalan cukup baik di simulator Xcode 10. Pada beta pertama, dukungan Siri Shortcut di simulator terbatas, tetapi ada cukup banyak untuk berpikir bahwa itu akan diperbaiki di rilis mendatang.

Akhir Hari 2: Bermain Dengan Intent Kustom Siri

Tahun lalu, saya menulis bagaimana Anda harus menyesuaikan dengan salah satu maksud yang telah ditentukan Apple untuk menggunakan SiriKit di aplikasi Anda. Mekanisme ini diperkenalkan pada tahun 2016 dan ditambahkan pada tahun 2017 dan bahkan di antara acara WWDC. Tetapi jelas bahwa pendekatan maksud khusus Amazon lebih unggul untuk mendapatkan kontrol suara ke dalam aplikasi yang lebih beragam, dan Apple menambahkannya ke SiriKit minggu lalu.

Untuk lebih jelasnya, ini adalah implementasi pertama, jadi belum seluas Alexa Skills, tetapi membuka kemungkinan Siri sedikit. Seperti yang saya bahas di artikel sebelumnya, batasan utama dari custom intent adalah pengembang harus melakukan semua terjemahan bahasa. SiriKit menyiasatinya sedikit dengan meminta pengguna untuk memberikan frasa yang ingin mereka gunakan, tetapi masih ada lebih banyak terjemahan yang diperlukan untuk maksud khusus daripada untuk maksud yang telah ditentukan sebelumnya.

Dan mereka dibangun di atas fondasi yang sama dengan maksud yang telah ditentukan sebelumnya, jadi semua yang saya bahas tetap berlaku. Bahkan, saya akan menunjukkan cara menambahkan niat kustom baru ke List-o-Mat, aplikasi yang saya tulis untuk artikel SiriKit asli.

(Gratis) Dukungan Pintasan Siri Jika Anda Sudah Mendukung Spotlight

Jika Anda menggunakan NSUserActivity untuk menunjukkan hal-hal di aplikasi Anda yang dapat dimulai oleh pengguna Anda melalui handoff atau pencarian, maka itu sepele untuk membuatnya tersedia untuk Siri juga.

Yang perlu Anda lakukan adalah menambahkan baris berikut ke objek aktivitas Anda:

 activity.isEligibleForPrediction = true

Ini hanya akan berfungsi untuk aktivitas yang mengaktifkan Spotlight (di mana isEligibleForSearch adalah true ).

Sekarang, ketika pengguna melakukan aktivitas ini, itu dianggap disumbangkan untuk digunakan di Siri. Siri akan merekomendasikan aktivitas yang sangat umum dilakukan atau pengguna dapat menemukannya di aplikasi Pintasan. Dalam kedua kasus tersebut, pengguna akan dapat menetapkan frasa lisan mereka sendiri untuk memulainya. Dukungan Anda untuk memulai aktivitas melalui Spotlight cukup untuk mendukung dimulainya aktivitas melalui pintasan.

Di List-o-Mat, kita bisa membuat daftar individual tersedia untuk Spotlight dan Siri dengan membuat objek aktivitas dan menugaskannya ke ListViewController . Pengguna dapat membukanya melalui Siri dengan frasa mereka sendiri.

Ini berlebihan dalam kasus kami karena kami memiliki niat yang telah ditentukan sebelumnya untuk membuka daftar, tetapi sebagian besar aplikasi tidak begitu beruntung dan sekarang memiliki mekanisme sederhana ini. Jadi, jika aplikasi Anda memiliki aktivitas yang tidak didukung oleh maksud yang telah ditentukan Siri (misalnya memutar podcast), Anda bisa membuatnya memenuhi syarat untuk prediksi dan tidak khawatir tentang maksud khusus.

Mengonfigurasi SiriKit Untuk Menggunakan Maksud Kustom

Jika Anda memang perlu menggunakan maksud khusus, maka SiriKit perlu ditambahkan ke aplikasi Anda, yang memerlukan sedikit konfigurasi.

Semua langkah untuk mengonfigurasi SiriKit untuk maksud khusus sama seperti untuk maksud yang telah ditentukan sebelumnya, yang dibahas secara rinci dalam artikel SiriKit saya di sini di Smashing. Untuk meringkas:

  1. Anda menambahkan ekstensi, jadi Anda memerlukan ID Aplikasi baru, dan profil penyediaan serta kebutuhan hak aplikasi Anda telah ditambahkan Siri.
  2. Anda mungkin memerlukan Grup Aplikasi (begitulah cara ekstensi dan aplikasi berkomunikasi).
  3. Anda akan memerlukan Ekstensi Intents di proyek Anda
  4. Ada tombol .plist khusus Siri dan hak proyek yang perlu Anda perbarui.

Semua detail dapat ditemukan di artikel SiriKit saya, jadi saya hanya akan membahas apa yang Anda butuhkan untuk mendukung maksud kustom di List-o-Mat.

Menambahkan Perintah Daftar Salinan ke List-o-Mat

Maksud khusus dimaksudkan untuk digunakan hanya jika tidak ada maksud yang ditentukan sebelumnya, dan Siri sebenarnya menawarkan banyak daftar dan dukungan tugas di Daftar dan Catatan Siri Domain.

Namun, salah satu cara untuk menggunakan daftar adalah sebagai templat untuk rutinitas atau proses yang berulang. Untuk melakukan itu, kami ingin menyalin daftar yang ada dan menghapus centang semua itemnya. Intent Daftar bawaan tidak mendukung tindakan ini.

Pertama, kita perlu menambahkan cara untuk melakukan ini secara manual. Berikut adalah demo dari perilaku baru ini di List-o-Mat:

GIF animasi dengan demo penyalinan daftar
Menyalin daftar di List-o-Mat

Agar perilaku ini dapat dipanggil oleh Siri, kami akan "menyumbangkan niat", yang berarti kami akan memberi tahu iOS setiap kali Anda melakukan ini. Kemudian, pada akhirnya akan mengetahui bahwa di pagi hari, Anda suka menyalin daftar ini dan menawarkannya sebagai jalan pintas. Pengguna juga dapat mencari maksud yang disumbangkan dan menetapkan frasa secara manual.

Membuat Maksud Kustom

Langkah selanjutnya adalah membuat custom intent di Xcode. Ada template file baru, jadi:

  1. Pilih File → File Baru dan pilih “SiriKit Intent Definition File”.
    Cuplikan layar dari dialog File Baru
    Pilih untuk menambahkan file definisi maksud (Pratinjau besar)
  2. Beri nama file ListOMatCustomIntents.intentdefinition , dan pilih untuk meletakkan file di target App dan Intent Extension. Ini akan secara otomatis menghasilkan kelas ke dalam kedua target yang mengimplementasikan protokol maksud tetapi menerapkan perilaku kustom Anda.
  3. Buka file Definisi .
  4. Gunakan tombol + di kiri bawah untuk menambahkan maksud dan beri nama "CopyList".
  5. Atur Kategori ke “Buat” dan isi judul dan subjudul untuk menjelaskan maksud:
    Tangkapan layar deskripsi niat kustom
    Menambahkan kategori, judul, dan subjudul ke maksud (Pratinjau besar)
  6. Tambahkan parameter String bernama "daftar".
    Tangkapan layar bagian parameter
    Tambahkan parameter String bernama "daftar" (Pratinjau besar)
  7. Tambahkan jenis pintasan dengan parameter daftar dan beri nama "Salin daftar".
    Tangkapan layar bagian jenis pintasan
    Tambahkan jenis pintasan berjudul "Salin daftar" (Pratinjau besar)

Jika Anda melihat di daftar Intent, Anda akan melihat bahwa intent ini telah dikonfigurasi untuk Anda:

Menyumbangkan Niat

Saat kami melakukan interaksi pengguna di aplikasi kami yang kami ingin Siri ketahui, kami menyumbangkannya ke Siri. Siri melacak informasi kontekstual, seperti waktu, hari dalam seminggu, dan bahkan lokasi, dan jika ada pola, Siri akan menawarkan pintasan kepada pengguna.

Saat kami mengetuk menu Salin, tambahkan kode ini:

 @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) } }

Ini hanya membuat objek dari kelas CopyListIntent yang dibuat secara otomatis dan menyumbangkannya ke Siri. Biasanya, iOS akan mengumpulkan info ini dan menunggu waktu yang tepat untuk menampilkannya, tetapi untuk pengembangan, Anda dapat membuka aplikasi Pengaturan, pergi ke bagian Pengembang, dan aktifkan pengaturan debugging Siri Shortcut.

Catatan : Pada tulisan ini, dengan beta pertama, pengaturan debug ini hanya berfungsi pada perangkat, dan bukan simulator. Karena pengaturannya ada di sana, saya berharap itu mulai bekerja dalam versi beta lebih lanjut.

Tangkapan layar pengaturan debug Siri
Aktifkan debugging Pintasan Siri

Saat Anda melakukan ini, pintasan yang disumbangkan akan muncul di Saran Siri di Spotlight.

Tangkapan layar pintasan yang disumbangkan di Siri
Anda dapat men-debug pintasan yang disumbangkan dalam pencarian

Mengetuk yang akan memanggil ekstensi Intent Anda karena kami mengizinkan eksekusi latar belakang. Kami akan menambahkan dukungan untuk itu selanjutnya.

Menangani Niat Kustom

Kami sudah memiliki ekstensi Intent, dan karena file definisi intent kustom sudah ditambahkan ke file, file tersebut juga memiliki kelas intent yang dihasilkan. Yang perlu kita lakukan adalah menambahkan handler.

Langkah pertama adalah menambahkan kelas baru, bernama CopyListIntentHandler ke ekstensi. Ini dia kodenya:

 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) } }

Intent kustom hanya memiliki fase konfirmasi dan penanganan (resolusi kustom parameter tidak didukung). Karena confirm() mengembalikan kesuksesan, kami hanya akan mengimplementasikan handle() , yang harus mencari daftar, menyalinnya, dan memberi tahu Siri apakah itu berhasil atau tidak.

Anda juga perlu mengirim ke kelas ini dari pengendali maksud terdaftar dengan menambahkan kode ini:

 if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }

Sekarang Anda benar-benar dapat mengetuk saran Siri itu dan itu akan memunculkan ini:

Tangkapan layar pintasan yang diaktifkan
Aktifkan pintasan (Pratinjau besar)

Dan mengetuk tombol Buat akan menyalin daftar. Tombol mengatakan "Buat" karena kategori yang kami pilih dalam file definisi maksud.

Fiuh, itu banyak. Pintasan Siri baru ini adalah fitur utama di iOS 12 yang memiliki area permukaan pengembang besar baru untuk dijelajahi. Juga, karena saya kebetulan memiliki contoh Siri yang bagus (dan didokumentasikan), masuk akal untuk mencoba menambahkan fitur baru ke dalamnya minggu ini.

Anda dapat melihat pembaruan List-o-Mat di GitHub. Sampai Xcode 10 dan iOS 12 dirilis, itu ada di cabangnya sendiri.

Beberapa hari ke depan, saya sebagian besar akan melihat kode sampel Apple atau membuat proyek yang jauh lebih kecil.

Akhir Hari 3: Taman Bermain Xcode

Seluruh hari sebelumnya dihabiskan di Xcode 10 beta, yang tidak crash sekali dan tampaknya siap untuk pengembangan. Jadi sekarang saya ingin menjelajahi fitur Playgrounds yang baru.

Hal utama yang saya inginkan dari taman bermain adalah membuatnya lebih stabil dan lebih cepat. Untuk membuatnya lebih cepat, Apple menambahkan fitur besar — ​​mode REPL.

Sebelum Xcode 10, ketika Anda berada di Playground yang menjalankan otomatis (yang merupakan default), setiap baris kode sebenarnya membangun kembali seluruh file dan menjalankannya dari awal. Jika Anda telah membangun negara bagian apa pun, itu akan hilang. Tapi, masalah sebenarnya adalah bahwa ini terlalu lambat untuk pengembangan berulang. Ketika saya menggunakan Playgrounds, saya mengaturnya untuk dijalankan secara manual, tetapi itu pun lambat.

Di Xcode 10, menjalankan manual lebih merupakan norma, tetapi setelah Anda menjalankannya, Anda dapat menambahkan lebih banyak baris di bagian bawah halaman dan melanjutkan eksekusi. Ini berarti Anda dapat menjelajahi data dan menggambar tampilan secara iteratif tanpa terus-menerus membangun kembali dan memulai dari awal.

Untuk memulai, saya membuat taman bermain iOS (File → New → Playground) dengan template Single View.

Nyalakan manual running dengan menurunkan menu di bawah tombol Play (segitiga di pojok kiri bawah). Ini menempatkan strip vertikal ke kiri yang menunjukkan posisi kepala Play saat ini (semacam breakpoint).

Anda dapat mengetuk garis mana saja lalu ketuk tombol putar di sebelah kirinya. Ini akan menjalankan Playground ke titik ini. Kemudian Anda dapat melangkah lebih jauh dengan mengetuk garis yang lebih rendah di Playground. Secara kritis, Anda dapat menambahkan lebih banyak baris ke bawah dan mengetik Shift + Enter setelah masing-masing baris untuk memindahkan kepala Play ke titik itu.

Berikut GIF saya mengubah label tampilan tanpa perlu me-restart Playground. Setelah setiap baris yang saya ketik, saya menekan Shift + Enter .

GIF Taman Bermain dengan mode REPL
Tambahkan lebih banyak kode dan jalankan tanpa memulai ulang

Playground juga mendukung rendering kustom dari tipe Anda sekarang, dan Apple mendorong setiap kerangka kerja Swift untuk menyertakan Playground untuk mendokumentasikannya.

Foto WWDC menunjukkan slide untuk mendorong lebih banyak Taman Bermain
TJ Usiyan meminta peserta WWDC untuk menambahkan Taman Bermain ke proyek mereka. (Pratinjau besar)

Akhir Hari 4: Buat ML

Tahun lalu, Apple membuat lompatan besar untuk memprogram Machine Learning untuk perangkat mereka. Ada format file model ML baru dan dukungan langsung untuk itu di Xcode.

Potensinya adalah akan ada perpustakaan besar untuk file model ini, bahwa akan ada alat yang akan membuatnya, dan akan lebih banyak lagi pengembang aplikasi yang dapat memasukkan ML ke dalam proyek mereka tanpa harus tahu cara membuat model.

Ini belum sepenuhnya terwujud. Apple tidak menambahkan repositori model setelah WWDC, dan meskipun ada repositori pihak ketiga, mereka sebagian besar memiliki model yang merupakan variasi pada demo klasifikasi gambar. ML digunakan lebih dari sekadar klasifikasi gambar, tetapi banyak pilihan contoh tidak muncul.

Jadi, menjadi jelas bahwa setiap aplikasi nyata akan membutuhkan pengembangnya untuk melatih model baru. Apple merilis Turi Create untuk tujuan ini, tetapi jauh dari sederhana.

Di WWDC 2018, Apple melakukan beberapa hal untuk Core ML:

  1. Mereka memperluas bagian Natural Language Processing (NLP) dari Core ML yang memberi kita contoh domain utama yang baru.
  2. Mereka menambahkan konsep Transfer Learning ke Core ML, yang memungkinkan Anda menambahkan data pelatihan ke model yang sudah ada . Ini berarti Anda dapat mengambil model dari pustaka, dan menyesuaikannya dengan data Anda sendiri (misalnya, memintanya mengenali objek baru dalam gambar yang Anda berikan).
  3. Mereka merilis Create ML yang diimplementasikan di dalam Xcode Playgrounds dan memungkinkan Anda menarik dan melepas data untuk pelatihan dan menghasilkan ekstensi model (menggunakan Transfer Learning).

Ini adalah langkah bagus lainnya dalam mendemokrasikan ML. Tidak banyak kode untuk ditulis di sini. Untuk memperluas pengklasifikasi gambar, Anda hanya perlu mengumpulkan dan memberi label pada gambar. Setelah Anda memilikinya, Anda tinggal menyeretnya ke Create ML. Anda bisa melihat demonya di video Create ML WWDC ini.

Akhir Minggu: Mainkan Demo AR Baru

ARKit adalah tambahan besar lainnya tahun lalu dan tampaknya semakin jelas bahwa perangkat AR akan datang.

Kode ARKit saya dari artikel tahun lalu masih merupakan cara yang baik untuk memulai. Sebagian besar fitur baru adalah tentang membuat AR lebih akurat dan lebih cepat.

Setelah itu, jika Anda telah menginstal versi beta, Anda pasti ingin mengunduh aplikasi demo SwiftShot ARKit yang baru. Aplikasi ini memanfaatkan fitur baru ARKit, terutama pengalaman multi-pemain. Dua atau lebih perangkat di jaringan yang sama dan di tempat yang sama, dapat berkomunikasi satu sama lain dan melihat pengalaman AR yang sama.

Tentu saja, untuk memainkan ini, Anda memerlukan dua atau lebih perangkat yang ingin Anda pasang di iOS 12 beta. Saya menunggu beta publik untuk melakukan ini karena saya hanya memiliki satu perangkat beta-safe.

Aplikasi AR yang lebih mudah untuk dimainkan adalah aplikasi Measure baru, yang memungkinkan Anda mengukur panjang objek nyata yang Anda lihat dalam tampilan kamera AR. Ada aplikasi pihak ketiga yang melakukan ini, tetapi aplikasi Apple dipoles dan diinstal sebelumnya dengan iOS 12.

Tautan Ke Video WWDC Dan Kode Contoh

Jadi, saya menantikan untuk melakukan lebih banyak dengan Xcode 10 dan iOS 12 musim panas ini sementara kami menunggu ponsel baru dan perangkat apa pun yang mungkin dirilis Apple pada akhir musim panas. Sementara itu, pengembang iOS dapat menikmati matahari, melacak kenaikan kami dengan OS Watch beta baru kami, dan menonton video WWDC ini ketika kami mendapat kesempatan.

Anda dapat melakukan streaming video WWDC 2018 dari portal pengembang Apple. Ada juga Aplikasi Mac tidak resmi ini untuk melihat video WWDC.

Berikut adalah video yang dirujuk dalam artikel ini:

  • Keynote WWDC 2018
  • Platform WWDC 2018 Negara Kesatuan
  • Pengantar Pintasan Siri
  • Mendapatkan Hasil Maksimal dari Taman Bermain di Xcode
  • Memperkenalkan Create ML, dan jika Anda menginginkan sesuatu yang lebih canggih, Panduan untuk Turi Create

Untuk mulai bermain dengan Xcode 10 dan iOS 12:

  • Unduh beta (kunjungi di perangkat untuk mendapatkan profil beta)
  • List-o-Mat dengan pembaruan Pintasan Siri
  • Swift Shot (game ARKit 2 multi-pemain)