() translation by (you can also view the original English article)



Selain pengembangan fitur dan perbaikan bug, pengembang iOS harus mengawasi apa yang diumumkan tahunan di WWDC. Di tengah-tengah baru SDK terkenal mengumumkan, ada beberapa perubahan yang iOS devs akan perlu roll untuk menjaga aplikasi platform-compliant mereka.
Dengan Swift telah berevolusi ke versi 4, bersama dengan perbaikan dan perubahan datang ke iOS SDK sendiri, pengembang perlu menyaring melalui perubahan dan merancang strategi untuk memperbarui basis kode mereka. Semua tanpa melanggar salah satu fungsi dan fitur yang ada mereka! Itu semua berujung pada prioritas untuk proyek Anda: apa minimum yang perlu Anda lakukan untuk membuat aplikasi iOS 11 compliant? Apa hal termudah yang Anda dapat buat ke pemangku kepentingan proyek atau manajer proyek?
Fitur vital datang pertama, dan berikutnya datang baik-untuk-memiliki tetapi tidak diperlukan perbaikan bahwa iOS 11 membawa, dari mengoptimalkan aplikasi Anda untuk estetika visual yang lebih lanjut akan memperkaya interaksi dan fungsionalitas dari aplikasi Anda. Dengan itu dalam pikiran, tutorial ini akan memandu Anda melalui langkah-langkah untuk mengambil untuk meng-upgrade aplikasi Anda, mengambil pendekatan pragmatis untuk perbaikan harus diisi dan opsional.
Tujuan dari Tutorial ini
Artikel ini akan memberi Anda inti dari perubahan-perubahan yang akan diminta untuk memperbarui aplikasi Anda untuk iOS 11, dari arsitektur sampai perubahan visual serta perubahan publishing App Store. Selain itu, tutorial ini akan mengatur bagian mulai dari perubahan yang diperlukan dan ruang lingkup dan upaya yang diperlukan untuk fitur yang bagus tapi tidak perlu yang akan meningkatkan aplikasi Anda sebagai akibat dari iOS 11.
Dalam tutorial ini kami akan mencakup berikut:
- Persiapkan aplikasi Anda (dan diri sendiri) untuk iOS 11
- perubahan arsitektur
- App Store penerbitan perubahan
- UI perubahan
Asumsi pengetahuan
Tutorial ini mengasumsikan-intermediate pengetahuan tentang Swift atau Objective-C dan Xcode, serta keakraban dengan inti iOS SDK (misalnya UIKit dan pondasi utama).
Perubahan arsitektur
Seperti dengan setiap iterasi dari iOS, perubahan yang paling biasanya adalah arsitektur. Dengan iOS 11, ini melibatkan migrasi ke Swift 4, sehingga memperbarui pengaturan bangunan Xcode 9 akan menjadi tugas pertama yang akan kita lihat.
Inkremental bermigrasi ke Swift 4
Penting | Diperlukan
Bagi mereka yang harus bermigrasi dari Swift 2 hingga 3 tahun lalu, proses yang sangat menyakitkan, dan banyak perubahan basis kode yang ada. Untungnya, ini tidak bergerak dari Swift 3.2 ke 4, seperti sebagian besar kemungkinan dianggap aditif, daripada mencela, dan sebagai akibatnya alat migrasi Xcode 9 melakukan pekerjaan yang mengagumkan dari transisi kode untuk Swift terbaru.
Selain itu, tidak seperti di versi sebelumnya, Anda tidak akan dipaksa untuk melakukan upgrade ke 4 dalam satu waktu. Itu adalah, Xcode proyek secara bersamaan mendukung Swift 4 dan Swift 3.2, yang berarti bahwa Anda dapat memiliki satu sasaran kompilasi proyek Anda di bawah Swift 3.2 dan yang lain kompilasi Swift 4. Alat migrasi akan membiarkan Anda tahu yang kelas dan fungsi itu berhasil dimigrasi, dan mana yang akan memerlukan intervensi manual Anda untuk menyelesaikan, dalam bentuk kesalahan atau peringatan.
Kesalahan berarti Anda akan perlu untuk memperbaiki sesuatu yang tidak kompatibel, sedangkan banyak dari peringatan akan menunjukkan bahwa ada cara baru dalam Swift 4 dalam melakukan sesuatu, seperti perubahan API baru. Memperbaiki kesalahan, dan memprioritaskan peringatan tersebut sebagai tugas terpisah.
Untuk mengakses alat bantu migrasi, pergi ke Edit > Convert > To Current Swift Syntax di Xcode, dan ikuti petunjuk, pilih target (s) Anda ingin untuk bermigrasi pada tahap ini.



Alat migrasi akan memberitahu Anda kerja minimum yang Anda perlu lakukan untuk mengkompilasi ulang aplikasi Anda, dan karena itu seharusnya tidak mengejutkan bahwa penerapan terbaik disarankan untuk bekerja pada migrasi aplikasi Anda dari 3 ke 4 secara bertahap , terutama dalam proyek-proyek besar, pengujian dan konversi sasaran oleh target. Anda tidak harus migrasi semuanya sekaligus, dan Anda dapat merencanakan jalur migrasi Anda dalam tahap, dimana dan kapan diperlukan.
Selanjutnya kita akan cepat melihat apa perubahan di Swift 4 yang tidak wajib untuk diterapkan, tapi baik untuk tahu.
Bantahan arsitektur 32-bit
Penting | Diperlukan
Perubahan besar lain di iOS 11 adalah semua aplikasi di App Store sekarang harus menjadi 64-bit, seperti aplikasi 32-bit tidak lagi didukung, dan sebagai sebenarnya bahkan tidak bekerja pada perangkat yang menjalankan iOS 11. Ini tidak boleh menjadi sebagai kejutan sebagaimana Apple telah peringatan pengembang selama beberapa waktu, tetapi dalam hal aplikasi Anda masih belum membuat transisi, Anda dapat mengikuti pedoman Apple mengkonversi aplikasi Anda untuk 64-bit biner.
Apa yang baru di Swift 4
Tidak penting | Opsional
Luar pekerjaan wajib diperlukan untuk mendapatkan target Anda menjadi Swift 4 compliant, Anda memiliki pilihan untuk refactoring kode yang ada untuk memanfaatkan perubahan Swift API baru, yang dipecah menurut perbaikan tingkat API berikut:
String
String telah menerima banyak perhatian dalam Swift 4, dengan perubahan paling menonjol menjadi reversi kembali ke Swift 1.0 dimana string sekali lagi didefinisikan sebagai koleksi, sehingga Anda bisa iterate melalui String obyek karakter oleh karakter (SE-0163) menggunakan untuk loop. Perubahan penting lainnya ke string kelas termasuk:
- SE-0168 multi-line String literal
- SE-0178 menambahkan
unicodeScalars
properti untukCharacter
- SE-0180 String indeks Overhaul
- SE-0182 String Newline Escaping
- SE-0183 Substring perfomance affordances
Koleksi
Kamus dan set, sebagai bagian dari koleksi, juga telah dirubah dalam Swift 4, dimulai dengan penyaringan kamus, yang sampai sekarang kembali array tupel-tupel yang terdiri dari pasangan kunci/nilai. Untuk mengakses elemen tertentu, Anda akan menggunakan subskrip berikut, seperti dalam sebuah array:
1 |
listOfCars[4].value |
Di Swift 4, Anda mendapatkan kembali kamus sebaliknya, menyediakan sintaks yang lebih konsisten, dan kemudian Anda mengakses Kamus kembali seperti yang akan Anda dalam kamus normal. Sama sekarang terjadi untuk fungsi map()
, dimana Anda juga mendapatkan kembali kamus. Baru untuk subskrip kamus-akses, Anda dapat memberikan nilai default jika kunci tidak ada, membuat kode Anda lebih aman.
1 |
let tomTheCat = animal[“name", default: “id”] |
Sisa perubahan untuk koleksi meliputi:
- SE-0148 Generic Subscripts
- SE-0154 menyediakan kustom koleksi untuk kunci kamus dan nilai
- Kamus SE-0165 & tambahan Set
- SE-0172 One-sided Ranges
- SE-0173 menambahkan
MutableCollection.swapAt(_:_:)
Perubahan penting lainnya
Akhirnya, ada beberapa perubahan lain-lain yang perlu diperhatikan sebagai bagian dari rilis ini yang berkaitan dengan bahasa:
- SE-0104 Protocol-oriented integers
- SE-0142 Izin dimana klausul untuk membatasi jenis yang terkait
- SE-0156 Class and Subtype existentials
- SE-0160 Limiting @objc inference
- SE-0164 Hapus dukungan akhir dalam ekstensi protokol
- SE-0169 meningkatkan interaksi antara pribadi Deklarasi dan ekstensi
Anda dapat menemukan daftar lengkap perubahan dan proposal asli di Swift.org.
App Store penerbitan perubahan
Pengguna iOS 11 App Store sudah menyadari bahwa itu adalah olahraga desain yang sama sekali baru dengan bagian baru, memberikan pengembang dengan cara-cara baru di mana mereka dapat mempromosikan aplikasi mereka dan berkomunikasi dengan pengguna mereka.



Kita akan mulai dengan melihat pada ikon pemasaran baru yang Anda sekarang akan diminta untuk meng-upload dengan app update Anda.
Ikon pemasaran
Wajib | Prioritas yang lebih tinggi
Pada iOS 11, untuk setiap pengajuan baru, apakah aplikasi Anda baru atau yang sudah ada, Anda harus menyertakan sebuah icon-1024.png—a 1024 x 1024 ukuran ikon pemasaran. Cukup, nyaman, Anda tidak perlu menyerahkan ikon melalui iTunes Connect, tetapi melalui Xcode, dengan pergi ke Images.xcassets dan menambahkan gambar berukuran tepat, dengan cara yang sama Anda mengelola ikon Anda:



Ikon pemasaran digunakan sebagai bagian dari proses desain App Store baru, untuk menunjukkan ikon gambar yang lebih besar yang mewakili aplikasi Anda dalam bagian hari ini, atau bagian lain yang mana grafis app diperbesar.
Mempromosikan pembelian In-App
Opsional | Prioritas yang lebih rendah
Apple telah membuat proses dalam app pembelian lebih menonjol dan transparan, memungkinkan pengguna untuk melihat semua opsi pembelian di-app langsung melalui tingkat yang sama sebagai yampilan produk app, dan pada kenyataannya, bahkan memulai in-app pembelian untuk app sementara men-download app sebenarnya. Pikirkan aplikasi langganan tempat pengguna yang mengunduh aplikasi Anda mungkin sudah ingin membeli langganan mereka. iOS 11 membuat ini lebih cepat dan lebih nyaman.
Pada iOS 11, pengembang dapat mempromosikan hingga 20 di-app pembelian seperti langganan pada halaman produk aplikasi mereka. Pembelian ini pilihan juga akan muncul dalam hasil pencarian.
Mempromosikan pembelian dalam aplikasi juga dapat mendorong unduhan aplikasi Anda. Saat pengguna tidak menginstal aplikasi Anda namun ingin membeli pembelian dalam aplikasi yang dipromosikan, mereka akan menerima permintaan untuk mengunduh aplikasi terlebih dulu. Setelah aplikasi didownload, transaksi akan dilanjutkan di app. (Apple)



Untuk mengaktifkan visibilitas promosi pembelian dalam aplikasi yang lebih besar, di iTunes Connect Anda harus menyertakan metadata berikut:
- Gambar: Ini adalah gambar promosi unik yang mewakili Anda dalam app pembelian, muncul di halaman produk App Store Anda, hari ini, permainan dan Apps tab, serta bidang lainnya menonjol. Ini tidak harus terdiri dari screenshot atau mewakili ikon apl Anda, tapi tidak lebih mewakili apa di-app pembelian. Gambar juga harus dalam PNG format, dan berkualitas tinggi dengan dimensi 1024 x 1024.
- Nama: Nama tampilan in-app pembelian, terdiri dari maksimum 30 karakter. Ini harus spesifik, sesuai fungsi yang spesifik dalam app pembelian. Jika berlangganan, mengatakan demikian, dan memastikan durasi dari langganan yang termasuk dalam judul, seperti "Satu bulan semua akses berlangganan".
- Keterangan: 45 panjang karakter, Deskripsi memberikan konteks bagi pengguna untuk memahami dan menghargai manfaat dari persembahan dalam aplikasi tertentu.
Untuk informasi lebih lanjut tentang mempromosikan in-app pembelian Anda, lihat panduan resmi Apple serta pedoman halaman produk Apple.
Berkomunikasi dengan pelanggan Anda
Opsional | Prioritas yang lebih rendah
Sesuatu yang pasti lama tertunda, dan pengembang Android telah menikmati selama beberapa waktu, adalah kemampuan untuk merespon langsung kepada komentar pengguna. Pada iOS 11, pengembang dapat sekarang juga langsung menanggapi ulasan pengguna mereka dan komentar. Sementara ini tidak memerlukan perubahan teknis dan partisipasi opsional, pengembang melalui iTunes Connect (App > Activity > Ratings) dapat menanggapi pujian serta kritik.



Respons pengembang individual dapat dimanfaatkan untuk membangun hubungan yang lebih kuat dan lebih intim, mendorong keterlibatan yang lebih dalam, dengan menunjukkan bahwa umpan balik mereka ditinjau dan ditanggapi, dan isu yang mereka angkat secara aktif didengarkan. Untuk menanggapi komentar, cukup pergi ke iTunes Connect dimana Anda dapat melihat umpan balik dan menanggapi secara individual.
Selain fitur komentar pengembang baru, Apple juga telah menyediakan SDK formal baru untuk meminta pengguna untuk menilai dan meninjau aplikasi. SKStoreReviewController
baru harus digunakan sebagai pengganti pihak ketiga atau manual mendorong pengguna untuk ulasan, karena Apple ingin sistem operasi untuk dapat mengontrol frekuensi prompt serta tampilan visual mereka. Apple akan dengan demikian membatasi petunjuk untuk tidak lebih dari tiga kali dalam periode 365-hari.
Untuk menerapkan SKStoreReviewController
, cukup impor StoreKit dan memanggil requestReview()
seperti yang ditunjukkan di bawah ini:
1 |
... |
2 |
import StoreKit |
3 |
... |
4 |
SKStoreReviewController.requestReview() |
5 |
... |
Sementara Apple belum secara langsung melarang metode lain untuk mendorong pengguna mendapatkan umpan balik, berharap hal ini dapat berubah dalam waktu dekat, jadi sebaiknya Anda mulai menerapkan mesin peninjauan prompt Apple selama tahun depan.
Merujuk pada peringkat, ulasan dan tanggapan Apple pedoman untuk informasi lebih lanjut.
Inkremental Rollouts
Opsional | Prioritas yang lebih rendah
Fitur lain yang sangat berguna iOS 11 membawa ke pengembang adalah kemampuan untuk melepaskan aplikasi mereka kepada pengguna secara bertahap. Apple panggilan ini secara bertahap melepaskan, dan itu dimaksudkan untuk mengurangi risiko overloading lingkungan produksi sekaligus, alih-alih menggelar pembaruan rilis selama tujuh hari.



Di bawah versi rilis di iTunes Connect, ada bagian baru yang disebut bertahap rilis pembaruan otomatis, yang memberi Anda pilihan yang baik melepaskan segera atau jangka masa tujuh hari. Pengembang juga dapat menghentikan bertahap roll-out untuk sampai dengan 30 hari, yang biasanya akan terjadi jika masalah besar ditemukan dan dilaporkan.



Roll out-bertahap tidak mencegah pengguna dari mendapatkan update secara manual dari App Store, tapi agak ditargetkan untuk pengguna yang menggunakan iOS otomatis download pengaturan di App Store.
Selanjutnya, mari kita lihat perubahan visual yang diperkenalkan sebagai bagian dari iOS 11, saat kita membahas topik penting dan juga yang kurang penting.
Perubahan UI
Setelah melihat arsitektur serta perubahan penerbitan toko aplikasi untuk iOS 11, sekarang kita siap untuk membedah perubahan visual dan membantu Anda memprioritaskan perubahan UI yang harus ditangani terlebih dahulu.
Penting, sementara kita pasti bisa membangun aplikasi iOS kita tanpa menerapkan salah satu perubahan dalam bagian ini, menangani hanya arsitektur dan perubahan App Store, Anda mungkin ingin memastikan bahwa aplikasi Anda secara visual mendukung iPhone X baru. Ini berarti perubahan alamat fisik baru 'takik' di bagian atas panel navigasi.
Dengan pemikiran tersebut, kita akan melihat pembaruan UI untuk iPhone X terlebih dulu, diikuti beberapa perubahan cepat lainnya yang akan memastikan aplikasi Anda tampil modern dan terbaru.
Memperbarui UI Anda untuk iPhone X
Wajib | Prioritas yang lebih tinggi
Salah satu tugas yang paling penting dalam memperbarui aplikasi iOS Anda adalah memastikan menjamin aplikasi Anda terlihat baik dan bekerja dengan baik pada perangkat yang lebih baru, sementara tidak melanggar dukungan perangkat Anda sebelumnya. Itulah sebabnya mengapa Apple telah bekerja sangat keras untuk memberikan pengembang dengan alat-alat seperti Auto Layout untuk desain untuk layout layar-agnostik, baik itu iPhone 4, 5C, atau 6 dan 6 Plus. Pada tahun ini, kami sekarang memiliki telepon yang tidak hanya memiliki dimensi baru, tetapi juga memiliki fisik takik di bagian atas.



Perhatikan bahwa kita tidak memiliki suatu viewport persegi panjang lagi, dan dengan kedudukan baru di bagian atas untuk sensor fisik, Bagaimana Apakah Apple merekomendasikan Anda berurusan dengan itu? Untuk satu hal, Apple tidak ingin Anda untuk menempatkan garis hitam di bagian atas untuk menyembunyikan takik! Sebaliknya, mereka advokasi bagi pengembang untuk menerimanya.
Jangan menutupi atau memberi perhatian khusus pada fitur layar utama. Jangan mencoba menyembunyikan sudut pembatas perangkat, perumahan sensor, atau indikator untuk mengakses layar Home dengan memasang bilah hitam di bagian atas dan bawah layar. Jangan gunakan perhiasan-perhiasan visual seperti kurung, bezels, bentuk atau pengajaran teks untuk memanggil perhatian khusus pada daerah-daerah tersebut baik. (iOS panduan antarmuka)
Anda perlu merancang untuk pengalaman layar penuh, memanfaatkan desain bezel-panel baru tanpa merancang bagian UI Anda dengan sudut bundar perangkat atau perumahan sensor (takik).



Kabar baiknya adalah, sistem Apple menyediakan elemen UI dari UIKit seperti UINavigationBar
sudah mengikuti dan menyesuaikan dengan persyaratan desain baru keluar dari kotak. Namun untuk setiap elemen UI kustom, Anda akan perlu untuk melakukan pekerjaan kesesuaian sendiri.



Melihat gambar dari iPhone 4.7 dibandingkan dengan iPhone baru X di atas, Anda akan melihat bagaimana status bar sekarang diimplementasikan secara berbeda, dimulai dengan puncaknya, yang telah berkembang dari 20 pt menjadi 44 pt pada iPhone X.
Apple menyarankan agar pengembang aplikasi yang telah menyembunyikan status bar mereka harus mempertimbangkan kembali keputusan tersebut sehubungan dengan iPhone X dan hanya menyembunyikannya dalam mode lanskap, bukan mode potret.
Terakhir, gunakan Panduan Tata Letak Area Aman dengan memanfaatkan Tata Letak Otomatis sebagai ukuran utama Anda untuk memastikan aplikasi Anda sesuai dengan margin yang sesuai, yang menjamin tidak ada penghalang visual, seperti underlapping status bar atau bar navigasi.



Dua sumber daya yang sangat baik untuk membantu Anda memulai dengan merancang untuk iPhone X adalah video WWDC berikut:
- Merancang untuk iPhone X - Fall 2017 - video - pengembang Apple
- Membangun aplikasi untuk iPhone X - Fall 2017 - video - pengembang Apple
Mengimplementasikan Drag & Drop
Opsional | Prioritas yang lebih rendah
Salah satu yang paling banyak dibicarakan tentang SDK baru di WWDC tahun ini adalah drag & drop. Ini adalah sesuatu yang pengguna desktop sudah terbiasa untuk waktu yang sangat lama, namun ketiadaan platform iOS berarti iPad dan iPhone tidak pernah benar-benar memeluk multi-tasking. Di iOS 11, ini telah berubah, karena iOS baru akan mendukung elemen UI yang diseret tidak hanya dalam layar yang sama, namun dari satu aplikasi ke aplikasi lainnya.



Dengan memanfaatkan mesin multi-touch iOS, pengguna dapat dengan mudah memindahkan konten dengan cara alami di antara aplikasi di iPad (atau hanya di dalam layar yang sama di iPhone) dengan mengetuk dan menahan elemen gambar, file, teks, atau elemen UI tertentu untuk dilepas. saya t. Ini sudah terintegrasi di seluruh sistem di iOS, yang memungkinkan pengguna misalnya untuk menyeret teks dari Safari ke aplikasi Pengingat dock untuk membuat item pengingat baru.
Ini belum ditandai sebagai wajib implementasi, namun karena dengan cepat akan menjadi perilaku yang diharapkan karena sistem penyebarannya yang umum, disarankan agar Anda mencoba dan memprioritaskan ini lebih cepat daripada nanti, sehingga Anda dapat membuat UX aplikasi Anda. sesuai dengan perilaku sistem standar UX yang baru.
UIKit hadir dengan beberapa dukungan drag & drop built-in, untuk komponen seperti UITables
dan UICollectionViews
, namun Anda perlu menjembatani dan menyesuaikan elemen dengan kode sehingga komponen lain dapat menerima komponen yang diseret. Ini bisa agak dilibatkan, dan di luar cakupan artikel ini, tapi saya akan membahas dukungan drag & drop secara lebih lengkap dalam posting lanjutan minggu depan.
Untuk saat ini, secara singkat, Anda akan menambahkan dan mendukung drag & drop dalam metode viewDidLoad ()
ViewController
Anda, dengan menerapkan dua delegasi yang ditunjukkan di bawah ini:
1 |
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITableViewDropDelegate, UITableViewDragDelegate { |
2 |
... |
3 |
func viewDidLoad(){ |
4 |
... |
5 |
firstTableView.dragDelegate = self // You associate the drag delegate to this table |
6 |
secondTableView.dropDelegate = self // You associate the drop delegate to this table |
7 |
firstTableView.dropDelegate = self |
8 |
secondTableView.dragDelegate = self |
9 |
|
10 |
firstTableView.dragInteractionEnabled = true |
11 |
secondTableView.dragInteractionEnabled = true |
12 |
... |
13 |
} |
14 |
... |
15 |
func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] { |
16 |
//(1) Drag is being initiated |
17 |
} |
18 |
|
19 |
func tableView(_ tableView: UITableView, performDropWith coordinator: UITableViewDropCoordinator) { |
20 |
//(2) Drop is being initiated |
21 |
} |
Nantikan untuk artikel mendatang kami tentang cara menambahkan dukungan Drag dan Drop untuk aplikasi iOS 11 Anda.
UIKit & Perubahan Auto Layout lainnya
Opsional | Prioritas yang lebih rendah
Terakhir, mari kita lihat perubahan UIKIT yang tersisa dari iOS 11, dimulai dengan UINavigationBar
, yang memiliki beberapa peningkatan penting, termasuk integrasi SearchViewController
dan judul besar. Kami kemudian melihat peningkatan pada UITableView
, dari tindakan gesek yang baru dan yang lebih baik hingga sel melihat tabel secara otomatis ukurannya sendiri.
Navigasi
Kami sudah menyentuh panel navigasi sebelumnya saat membahas iPhone X dan bagaimana hal itu sesuai dengan dimensi bar bar yang baru. Selain itu, gaya desain kontemporer baru yang dianjurkan di iOS mencakup judul baru yang lebih besar di bar navigasi, yang pertama kali terlihat di Apple Music App di iOS 10 dan sejak itu pola desain mapan di semua aplikasi sistem lainnya di iOS.



Teks judul besar memberikan penekanan lebih besar pada konteks layar di panel navigasi, dan membantu mengarahkan pengguna untuk tab aktif sambil menavigasi melalui berbagai tab. Ukuran teks judul tidak statis namun agak menyusut saat pengguna menggulir ke bawah, kembali ke gaya pra-iOS 11. Sebaliknya, ketika Anda menurunkan tampilan gulir, teks judul akan sedikit meningkat.
Gunakan judul besar ketika Anda perlu menyediakan tambahan penekanan pada konteks. Dalam beberapa aplikasi, besar, tebal teks judul besar dapat membantu mengarahkan orang-orang seperti mereka browse dan Cari. Dalam sebuah layout tab, sebagai contoh, judul besar dapat membantu memperjelas tab aktif dan menginformasikan pengguna ketika mereka sudah menggulir ke atas. Telepon menggunakan pendekatan ini, sementara musik menggunakan judul besar untuk membedakan konten area seperti album, seniman, playlist, dan radio. Judul besar transisi ke judul standar ketika pengguna mulai bergulir konten. Judul besar tidak masuk akal di semua aplikasi dan tidak boleh bersaing dengan konten. Meskipun aplikasi Jam memiliki tata letak tab, judul besar tidak perlu karena setiap tab memiliki tata letak yang berbeda dan dapat dikenali. (Panduan Antarmuka Manusia IOS))
Sebagai pengembang, itu terserah Anda untuk memutuskan jika dan ketika menerapkan gaya teks besar, berdasarkan panduan antarmuka Apple, dan Apple merekomendasikan Anda secara khusus menggunakan judul teks besar hanya untuk tingkat atas navigasi layar, bukan seluruh tingkatan. Untuk mengaktifkan teks besar, cukup tambahkan properti berikut ke UINavigationController
Anda:
1 |
navigationController?.navigationBar.prefersLargeTitles = true |
Secara hirarkis, pengontrol tampilan master dan detail di bawah panel navigasi akan mengaktifkan mode teks besar secara default karena warisan orang tua, dan seperti yang baru saja disebutkan, disarankan agar hanya memiliki layar navigasi tingkat atas yang menerapkan mode teks besar. Untuk menekan warisan teks besar di layar detail Anda, masuklah ke controller pandangan Anda dan tambahkan yang berikut ini ke penginisialisasinya (ini harus ditetapkan pada waktu inisialisasi):
1 |
required init?(coder aDecoder: NSCoder) { |
2 |
super.init(coder: aDecoder) |
3 |
navigationItem.largeTitleDisplayMode = .never |
4 |
} |
LargeTitleDisplayMode
di atas yang diatur untuk .never
. Tanpa garis itu, defaultnya adalah .automatic
, di mana pengendali tampilan detail mewarisi sifat pengontrol tampilan induknya.
Cari View Controller
Pencarian sekarang dapat diintegrasikan langsung ke bilah navigasi tanpa perlu mengaitkan contoh UISearchViewController
dengan kontroler tampilan subjek (dan tampilan tajuk tabelnya) secara terpisah. Pada iOS 11, Anda dapat dengan elegan memasukkan bilah penelusuran di bilah navigasi
1 |
navigationItem.searchController = UISearchController(searchResultsController: nil) |
Anda juga harus menyesuaikan diri dengan UISearchResultsUpdating
untuk bereaksi terhadap persyaratan pencarian, tentu saja. Sementara iOS secara otomatis menyembunyikan bilah penelusuran berdasarkan jumlah baris pada tampilan tabel Anda, Anda dapat memaksa bilah penelusuran agar terlihat setiap saat dengan Toggling:
1 |
navigationItem.hidesSearchBarWhenScrolling = false |
UITableViews
Terakhir, kita melihat dua fitur baru dan berbeda yang diperkenalkan pada UITableViews
seperti pada iOS 11: tindakan sobekan diri dan tindakan menggesek yang lebih baik. Self-sizing diperkenalkan kembali di iOS 8 untuk mengurangi beban pengembang yang memiliki ukuran tabel sel tabel secara manual, dengan kemampuan untuk menyesuaikan ukuran sel secara dinamis sesuai dengan isi baris menggunakan Auto Layout. Sampai sekarang, Anda harus secara eksplisit meminta auto-ukuran menggunakan:
1 |
tableView.rowHeight = UITableViewAutomaticDimension |
2 |
tableView.estimatedRowHeight = 100 |
Pada iOS 11, ini aktif dan disetel secara default tanpa kode tambahan, namun Anda tetap memiliki kemampuan untuk menentukan tinggi baris Anda secara eksplisit, sesuai kebutuhan. iOS 11 juga telah membawa tindakan penggandaan utama dan pengguntingan yang baru, yang lazim di banyak aplikasi sistem seperti aplikasi Mail milik Apple sendiri.



Selain dapat menggeser ke kiri atau ke kanan, Anda juga dapat melampirkan gambar untuk dikaitkan dengan tindakan ini. Anda menerapkan dua metode delegasi sebagai bagian dari UIContextualAction
, untuk memimpin dan mengikuti tindakan geser:
1 |
override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { |
2 |
let trash = UIContextualAction(style: .normal, title: "Delete") { action, view, completionHandler in |
3 |
print("Delete") |
4 |
completionHandler(true) |
5 |
} |
6 |
delete.backgroundColor = UIColor.red |
7 |
delete.image = UIImage(named: "delete") |
8 |
let actionGroup = UISwipeActionsConfiguration(actions: [delete]) |
9 |
actionGroup.performsFirstActionWithFullSwipe = false |
10 |
return actionGroup |
11 |
} |
12 |
.. |
13 |
override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { |
14 |
let archive = UIContextualAction(style: .normal, title: "Archive") { action, view, completionHandler in |
15 |
print("Read") |
16 |
completionHandler(true) |
17 |
} |
18 |
archive.backgroundColor = blue |
19 |
archive.image = UIImage(named: "archive") |
20 |
|
21 |
let move = UIContextualAction(style: .normal, title: "Move") { action, view, completionHandler in |
22 |
print("Move") |
23 |
completionHandler(true) |
24 |
} |
25 |
|
26 |
move.backgroundColor = purple |
27 |
move.image = UIImage(named: "move") |
28 |
let actionGroup = UISwipeActionsConfiguration(actions: [archive,move]) |
29 |
actionGroup.performsFirstActionWithFullSwipe = false |
30 |
return actionGroup |
31 |
} |
Dengan menggunakan kode di atas, Anda dapat membuat lebih dari satu tindakan kontekstual dan menambahkannya ke instance pengelompokan UISwipeActionsConfiguration
, untuk lebih dari satu tindakan. Ini adalah perbaikan yang sederhana namun menarik untuk membawa elastisitas yang lebih besar pada tampilan tabel Anda, dengan sedikit perubahan kode, dan meski tidak diwajibkan, sebaiknya Anda mengalokasikan beberapa jam untuk itu di dewan perencanaan sprint Anda.
Kesimpulan
Dalam posting ini, saya telah memberi Anda ikhtisar tentang perubahan di seluruh arsitektur, App Store, dan komponen visual iOS 11, memberi Anda gagasan tentang apa yang harus segera Anda tindakan, dan apa yang dapat ditangguhkan sampai nanti. waktu. Migrasi ke iOS 11 dan Swift 4 akan jauh lebih mudah daripada pada update tahun-tahun sebelumnya.
Di luar perubahan yang akan segera terjadi, kami juga telah melewati perubahan Swift 4 yang memperbaiki string dan koleksi, serta peningkatan visual UITableView
dan Search Controller. Ini akan memudahkan Anda merencanakan pekerjaan Anda untuk melakukan pembaruan pada aplikasi Anda!
Tunggu untuk posting saya yang akan datang mengenai penerapan drag & drop untuk aplikasi iOS 11 Anda, dan sementara itu, lihat beberapa posting kami yang lain mengenai perubahan baru pada iOS dan Swift!