Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. CloudKit
Code

Membuat Perbelanjaan daftar aplikasi dengan CloudKit: Sharing belanja barang-barang

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Building a Shopping List Application With CloudKit.
Building a Shopping List Application With CloudKit: Adding Relationships

Indonesian (Bahasa Indonesia) translation by Dika Budiaji (you can also view the original English article)

Dalam tutorial sebelumnya dari seri ini, Anda menambahkan kemampuan untuk membuat, memperbarui, dan menghapus belanja dari daftar pada aplikasi daftar belanja Anda bertenaga iCloud. Dalam tutorial akhir dari seri, Anda akan membuat menggunakan CKShare untuk berbagi item daftar belanja spesifik dengan pengguna lain.

Dalam seri ini, Anda telah bekerja dengan database, serta belajar tentang database umum. Namun, sampai WWDC 2016, ketika Apple memperkenalkan CKShare, ada ada cara yang tepat untuk aplikasi untuk berbagi data. Database pribadi hanya tersedia untuk pengguna yang masuk, sedangkan database umum dirancang untuk konten publik dan mengizinkan orang untuk melihat catatan. Bila menggunakan beberapa aplikasi iCloud sendiri Apple, namun, seperti halaman, Keynote atau catatan, Anda mungkin telah memperhatikan dengan memilih tombol berbagi, kemampuan untuk mengundang pengguna lain untuk mengakses data Anda.

Dalam posting ini, saya akan menunjukkan kepada Anda bagaimana untuk berbagi konten secara selektif.

Apples Notes app

Dalam tutorial ini, Anda akan memberikan aplikasi Anda kemampuan yang sama, sehingga pengguna dapat berkolaborasi dengan Anda pada item daftar belanja bersama.

Prasyarat

Ingat  saya akan menggunakan Xcode 9 dan Swift 3. Jika Anda menggunakan versi lama dari Xcode, maka perlu diingat bahwa Anda menggunakan versi yang berbeda dari bahasa pemrograman Swift.

Dalam tutorial ini, kita melanjutkan yang kami tinggalkan dalam tutorial ketiga dari seri ini. Anda dapat men-download atau klon proyek dari GitHub.

Tentang database

Apple menyediakan tiga jenis database: umum, pribadi dan shared. Database publik adalah tempat Anda membuat konten yang tersedia, yang setiap orang dapat mengakses, semuanya berada dalam zona default. Pengguna bahkan tidak perlu ter-authentikasi dengan iCloud untuk melihat konten, tapi mereka tidak bisa menulis perubahan.

Database pribadi Anda harus sudah akrab, karena app belanja telah memanfaatkan database pribadi untuk menyimpan catatan yang tidak dapat diakses oleh publik. Sekarang, daftar belanja Anda semua pribadi.

Shared Database adalah Apple shared database ke database Anda pribadi, yang memberikan akses kepada pengguna untuk membaca atau menulis melalui CKShare.

Sangat penting untuk dicatat bahwa shared database berada pada akun pengguna yang diinvite dan dimilliki oleh database pribadi pemilik, dengan CKShare menjadi tipe tertentu CKRecord yang melekat pada CKRecord.

The various types of databases

Menambahkan UICloudSharingController

Pertama anda akan meng-imeplementasi UICloudSharingController dan UICloudSharingControllerDelegate yang terkait. Sejauh ini pendekatan yang termudah untuk berbagi adalah dengan menggunakan UICloudSharingController, yang mengurus menyediakan dan menyajikan layar untuk berbagi catatan Anda, mengundang pengguna, dan menetapkan izin untuk catatan Anda, semua dengan beberapa baris kode. Apple 's SDK, UICloudSharingController memungkinkan Anda untuk:

  • mengundang orang untuk melihat atau berkolaborasi pada shared record
  • set hak akses yang menentukan siapa yang dapat mengakses shared record (hanya orang-orang yang diundang atau siapa pun dengan link yang dishare)
  • Mengatur perizinan umum atau individu (baca-saja ataupun baca/tulis)
  • menghapus akses dari satu atau lebih partisipan
  • berhenti berpartisipasi (jika pengguna peserta)
  • berhenti berbagi dengan semua peserta (jika pengguna adalah pemilik shared record)

Dalam file ListViewController.swift Anda, termasuk delegasi UICloudSharingControllerDelegate:

Selanjutnya, tambahkan TableView didSelectRowAt: metode sehingga ketika pengguna memilih sel, itu memanggil lembar berbagi.

Dalam metode di atas, Anda membuat CKShare, asosiasi item CKRecord sebagai root record. Metode kemudian menetapkan share[CKShareTitleKey] dan share[CKShareTypeKey] properti dalam persiapan untuk menampilkan catatan bersama. Metode akhirnya memanggil prepareToShare, melewati dalam catatan asli serta hanya diciptakan bersama catatan, yang akan Anda laksanakan berikutnya:

Metode ini membuat UICloudSharingController dalam sebuah handler blok, pertama-taman menyimpan catatan menggunakan CKModifyRecordsOperation ke dalam cloud database private anda, sebelum memberitahukan handler penyelesaian. Anda juga mengatur perizinan yang tersedia di view controller, sebelum akhirnya menyampaikannya ke pengguna Anda.

Menerapkan metode delegasi UICloudSharingController

Anda juga perlu untuk meng-implementasi dua metode wajib delegasi, itemTitleForCloudSharingController dan failedToSaveShareWithError. Ada metode opsional delegasi lain yang Anda mungkin juga memilih untuk diimplementasi.

Metode itemTitleForCloudSharingController sesuai CKShareTitleKey properti Anda ditetapkan sebelumnya, meminta judul untuk menampilkan daftar undangan. failedToSaveShareWithError akan memberitahu delegasi untuk menangani gagal sharing request. Silahkan running dan jalankan aplikasi Anda, buat data, dan kemudian pilih record individu untuk trigger lembar berbagi.

Sharing your record

Ini terlihat bagus, tetapi pekerjaan Anda masih belum lengkap! Anda perlu untuk menangani bagaimana pengguna lain dapat menerima serta menampilkan shared record.

Menerima dan menangani Record CKShare

Akhirnya, Anda perlu untuk mengatur aplikasi Anda mampu untuk mengambil dan menampilkan shared record. Buka file AppDelegate.swift Anda dan tambahkan metode delegasi userDidAcceptCloudKitShareWith:

UserDidAcceptCloudKitShareWith: memberitahukan delegasi bahwa aplikasi Anda memiliki akses ke shared information , memberi Anda kesempatan untuk menangani konten baru. Ini akan memberitahu Anda ketika aplikasi Anda telah berhasil berbagi item, serta memberitahu Anda masalah selama proses berbagi, melalui CKAcceptSharesOperation.

Dalam metode, Anda membuat sebuah instance baru dari AddItemViewController, memanggil fungsi baru yang Anda buat, fetchShare, bersama dengan metadata yang menarik. Metode akhirnya menambah CKAcceptSharesOperation kontainer Anda. Untuk menampilkan catatan, buka AddItemViewController.swift file, dan implementasi metode fetchShare:

Dalam metode terakhir ini, Anda mengambil shared record dan menetapkan ke self.item variabel global Anda, sebelum akhirnya bertahan operasi pada database sharedCloudDatabase sendiri.

Kesimpulan

Dalam tutorial ini, Anda belajar betapa mudahnya, hanya dengan beberapa baris kode, menambahkan kemampuan untuk berbagi subset dari catatan pribadi Anda dengan pengguna lain dan mereka berkolaborasi pada data yang sama. Melalui kekuatan tipis dan kesederhanaan dari CKShare, Anda dapat memilih item daftar belanja, mengundang pengguna untuk mengakses konten Anda melalui sheet UICloudSharingController, dan mengelola akses pengguna dan izin.

Selain berbagi catatan Anda dengan pengguna, Anda juga belajar bagaimana menerima dan menampilkan data dalam aplikasi mereka, serta menyimpan catatan dalam shared database mereka.

Seperti yang Anda lihat, CloudKit menyediakan banyak kenyamanan dan ketahanan, Semua dalam ekosistem Apple. Otentikasi hampir tak terlihat, tanpa memerlukan pengguna untuk login dengan email atau sandi, dan sinkronisasi real-time. Luar seri ini, saya merekomendasikan Anda untuk menjelajahi topik-topik yang lebih advance, seperti sinkronisasi CloudKit dengan Data inti atau menciptakan logika Anda caching untuk mengelola offline data marshaling.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.