CloudKit és un marc desenvolupat per Apple dissenyat per ajudar els desenvolupadors a desplegar ràpidament i fàcilment els serveis de backend de les seves aplicacions al núvol. Està construït a la part superior de l’estàndard del sector Apple Datacenter Network, assegurant que totes les dades emmagatzemades a CloudKit es transmetin de manera segura i fiable.
L’arquitectura de CloudKit es divideix en dos components principals: bases de dades públiques, que s’utilitzen per gestionar dades públiques, i bases de dades privades que s’utilitzen per gestionar dades d’usuaris privats només accessibles per un usuari determinat.
El component de base de dades pública de CloudKit emmagatzema dades i metadades en una estructura jeràrquica anomenada contenidors; cada aplicació tindrà el seu propi conjunt de contenidors personalitzats i podrà accedir a les dades emmagatzemades als seus propis contenidors, així com a qualsevol altra dada pública compartida entre aplicacions dins de la mateixa organització o compte. L’aplicació també pot desar fitxers privats a la seva pròpia carpeta “privada”, diferent del component de base de dades pública, utilitzant les capacitats d’emmagatzematge compartit d’iCloud.
El component privat de CloudKit utilitza capacitats d’emmagatzematge de dades encriptades d’iCloud per emmagatzemar fitxers privats específics de l’usuari, als quals només pot accedir un usuari concret; això ajuda a evitar l’accés no autoritzat d’altres usuaris o de tercers que intenten accedir a la informació personal a iCloud. A més, els desenvolupadors poden gestionar el control d’accés per a camps específics del registre CloudKit per augmentar el nivell de seguretat dels arxius de dades sensibles.
A més de les funcions d’emmagatzematge segur, CloudKit també ofereix eines d’incorporació perquè els usuaris puguin registrar fàcilment el seu compte amb un ID d’Apple i proporcionar testimonis d’autenticació abans d’accedir als serveis al núvol o connectar la seva aplicació existent amb usuaris de notícies o dispositius que els agradaria afegir a la seva xarxa. .
Avantatges de CloudKit
CloudKit és un conjunt d’eines i serveis proporcionats per Apple que permeten als desenvolupadors i usuaris emmagatzemar dades al seu compte d’iCloud i sincronitzar-les en diversos dispositius. CloudKit facilita als usuaris fer un seguiment d’informació com ara contactes, documents, fotos, esdeveniments del calendari i molt més. Estalvia el temps dedicat a tornar a carregar i descarregar dades manualment amb cada dispositiu.
CloudKit ofereix diverses funcions als desenvolupadors, inclosa la capacitat d’escriure codi personalitzat per a operacions d’emmagatzematge i recuperació de dades al costat del servidor, un servei d’autenticació d’usuari centralitzat per a un accés segur d’inici de sessió, bases de dades públiques per compartir dades obertes entre usuaris, notificacions per quan sigui nou. es creen o s’actualitzen registres, així com eines per crear ràpidament aplicacions integrades que utilitzen la funcionalitat de CloudKit. Amb aquests avantatges, els usuaris poden sincronitzar fàcilment les seves dades entre dispositius iOS com iPad o iPhone.
Per als desenvolupadors, un dels principals avantatges de CloudKit és el fàcil que és començar amb un codi de configuració relativament petit. Les dades centrals poden trigar una estona a configurar-se, de manera que tenir accés a les funcions bàsiques sense tota la sobrecàrrega permet als desenvolupadors concentrar-se a codificar la seva aplicació sense preocupar-se per la configuració de la sincronització o el temps de manteniment més endavant. Aquest enfocament típic també redueix la sobrecàrrega de la xarxa, ja que el servidor impulsa nous registres en lloc de treure’ls de cada dispositiu a intervals regulars. Mentre aquests registres existeixin a iCloud, estaran disponibles en qualsevol moment, ja que el vostre usuari s’autenticarà a iCloud mitjançant un compte d’identificació d’Apple abans que es pugui fer cap sol·licitud.
A més d’estalviar temps de desenvolupament, CloudKit també ajuda a evitar errors de càrrega/descàrrega quan es produeixen actualitzacions, així com a reduir els conflictes de segon desament quan diversos dispositius fan canvis simultàniament en diferents ubicacions. Amb CloudKit, ja no haureu de depurar dolorosament la vostra pròpia lògica de sincronització: hi ha menys gestió manual en general, alhora que proporciona una capa de control d’accés unificada mitjançant serveis d’autenticació, com ara iniciar sessió amb Touch ID o la informació de Face ID emmagatzemada de manera segura dins del mòdul Keychain gestionat pel sistema. juntament amb altra informació privada d’usuari a la qual no es pot accedir fora de l’entorn de prova del sistema que utilitza la vostra aplicació iOS creada amb les API de CloudKit.
Configuració de CloudKit
CloudKit és una manera fantàstica de sincronitzar les dades d’usuari en diversos dispositius iOS. És relativament senzill de configurar i pot estalviar als desenvolupadors molt de temps i esforç a l’hora de gestionar les dades dels usuaris.
En aquesta guia, veurem com configurar CloudKit, inclosa la configuració i configuració del tauler de control de CloudKit i escriure el codi per sincronitzar dades entre dispositius. Comencem!
Creeu un contenidor CloudKit
Abans de poder utilitzar CloudKit, haureu de crear un contenidor de CloudKit. Un contenidor CloudKit us permet compartir dades entre el vostre dispositiu iOS i altres dispositius Apple. Penseu en això com un espai d’emmagatzematge al núvol al qual poden accedir tots els vostres dispositius
.
Creareu una base de dades “pública”, de manera que qualsevol persona amb els permisos correctes pot accedir a la informació emmagatzemada en aquest contenidor.
Per crear el vostre contenidor, comenceu seleccionant la pestanya “iCloud” del navegador del vostre projecte Xcode i creeu un contenidor nou per a les dades de la vostra aplicació. Quan se us demani un identificador de paquet per a l’aplicació, introduïu el mateix que s’utilitza per al vostre projecte (podeu trobar aquesta informació a la pestanya General del vostre projecte). A continuació, seleccioneu “Desenvolupament” com a entorn i feu clic a “Crea”.
Un cop s’hagi completat, s’obriran permisos detallats en una finestra separada on podeu ajustar qui pot accedir i modificar els registres emmagatzemats en aquest contenidor. Per a la majoria d’aplicacions, el millor és deixar aquesta configuració com a predeterminada, però podeu personalitzar qui té accés si cal.
Finalment, deseu aquests paràmetres i connecteu CloudKit Dashboard a Xcode amb un compte d’AppleID perquè pugui accedir i actualitzar els canvis realitzats durant la prova o la depuració d’una aplicació al dispositiu o simulador iOS.
Afegiu les capacitats de CloudKit a la vostra aplicació
Per començar a utilitzar la funcionalitat de CloudKit a la vostra aplicació, el primer pas és afegir les capacitats de CloudKit a Xcode. Això permetrà que la vostra aplicació accedeixi als recursos de la base de dades iCloud d’Apple. Per fer-ho, obriu la configuració del projecte i navegueu a “Firma i capacitats” i seleccioneu + Capacitat. Aquí podeu seleccionar iCloud i després marcar la casella de “CloudKit (marcat per defecte).
Un cop habilitat CloudKit, cal fer passos addicionals perquè la vostra aplicació accedeixi a les dades emmagatzemades a CloudKit. La guia per a desenvolupadors d’Apple explica aquests passos, com ara la comprensió dels contenidors de dades de Cloudkit i la configuració de drets a Xcode. Un cop s’hagin configurat aquests passos crítics, podeu començar a escriure codi que accedeixi a les dades del núvol mitjançant API de marc com ara CKRecord, CKAsset i CKShare, tots components essencials per configurar les habilitats de sincronització al núvol entre diversos dispositius inscrits amb el mateix ID d’Apple. Un cop aquests components estiguin configurats correctament, podreu sincronitzar les dades d’usuari amb el mínim esforç des de tots els dispositius iOS registrats amb un sol compte d’iCloud.
Treballant amb CloudKit
Amb l’ajuda de CloudKit, els desenvolupadors d’iOS poden sincronitzar fàcilment les dades d’usuari a diversos dispositius iOS. Això fa que sigui més fàcil emmagatzemar i compartir dades entre dispositius.
Aquest article proporcionarà una visió general de com treballar amb CloudKit per sincronitzar dades entre dispositius iOS. Parlarem dels passos principals que implica el procés, des de configurar un compte de CloudKit fins a consultar i desar dades.
Obtenint dades de CloudKit
CloudKit permet als desenvolupadors d’iOS emmagatzemar dades d’usuari als servidors iCloud d’Apple. Com que iCloud emmagatzema dades de manera segura i pot sincronitzar-les amb diversos dispositius ràpidament, és una manera fantàstica perquè els desenvolupadors d’aplicacions aportin valor a les seves aplicacions. Aquesta guia us ensenyarà com utilitzar CloudKit per obtenir dades d’usuari per a la vostra aplicació.
Obtenció de dades de CloudKit: la classe CKQueryOperation la fan servir els desenvolupadors d’iOS quan obtenen dades de la base de dades pública de CloudKit. Després de crear una instància d’aquesta classe, el desenvolupador pot construir una consulta CKRecord que especifiqui quins registres són d’interès i en quin ordre s’han de tornar. Després de construir la consulta i executar l’operació, CloudKit retornarà els resultats desitjats de manera asíncrona mitjançant un bloc d’èxit.
Protecció de dades a CloudKit: els desenvolupadors també han d’assegurar-se que les àrees sensibles de la seva aplicació estiguin protegides quan utilitzen CloudKit. Per fer-ho, primer han de crear bases de dades privades i zones de registre que no siguin accessibles directament per altres usuaris al seu contenidor iCloud. A continuació, han de crear grups de control d’accés adequats i utilitzar objectes d’assignació de permisos (PAO) per assignar funcions específiques (només de lectura o lectura/escriptura) a usuaris individuals o grups d’usuaris dins d’aquests grups de control d’accés.
Subscripció als canvis a la base de dades: Per últim, els desenvolupadors d’aplicacions poden trobar útil per a les seves aplicacions si fan un seguiment dels canvis que es produeixen en diferents dispositius d’usuari a les seves bases de dades compartides mitjançant subscripcions o mecanismes de notificacions disponibles al marc de Cloud Kit en dispositius iOS. Les subscripcions permeten que el codi de l’aplicació d’un desenvolupador d’aplicacions executi gestors d’esdeveniments sempre que s’afegeix o s’elimina un element de la seva base de dades, ja que aquests esdeveniments es reexpulsen des de la infraestructura del servidor d’Apple de manera asíncrona mitjançant notificacions push al client del dispositiu d’un usuari sense que el dispositiu hagi de consultar explícitament la seva base de dades. tot el temps per a canvis (un procés conegut com a votació contínua).
Emmagatzematge de dades a CloudKit
CloudKit fa que sigui increïblement fàcil emmagatzemar les dades dels usuaris de manera segura al núvol. Això permet als usuaris mantenir còpies sincronitzades de les seves dades a tots els seus dispositius, amb la bonificació que diversos usuaris poden compartir i col·laborar de manera segura amb les mateixes dades.
Per emmagatzemar dades a CloudKit, creeu un registre de base de dades a partir d’una instància de CKRecord. Un objecte CKRecord és una col·lecció especialitzada de parells clau-valor que s’ajusta als requisits de l’esquema de CloudKit. Cada registre conté un o més camps públics i/o privats els valors dels quals han d’ajustar-se a tipus reconeguts com ara cadena, nombre, llista, diccionari i més. Quan deseu el vostre registre als servidors de CloudKit, totes les dades associades s’emmagatzemen de manera segura al núvol; no cal emmagatzematge local als dispositius dels usuaris.
També podeu crear objectes de subscripció que permetin que les aplicacions rebin notificacions automàtiques quan un registre que hagi emmagatzemat anteriorment compleix determinades condicions (p. ex., quan s’afegeix un element nou o si s’han canviat les vores existents). Les subscripcions ofereixen una manera senzilla perquè les aplicacions amb bases de dades remotes actualitzin els clients sempre que altres usuaris o aplicacions fan canvis fora del control del dispositiu.
Eliminació de dades de CloudKit
Quan tracteu dades emmagatzemades a CloudKit, és important ser conscient de la necessitat d’eliminar elements així com d’afegir-los. Depenent de la situació, la supressió de dades a la base de dades CloudKit es pot gestionar d’una d’aquestes dues maneres: supressió d’un sol element i supressió massiva.
Supressió d’un únic element: aquest mètode s’utilitza quan cal eliminar un element individual de la base de dades. Això es pot fer mitjançant el mètode deleteRecordWithID:completionHandler: de la classe CKDatabase que permet suprimir registres en funció del seu ID. També cal tenir en compte que aquest mètode genera una excepció si no es troba cap registre per a l’identificador especificat.
Supressió massiva: la classe CKDatabase també proporciona un mètode performQuery que permet suprimir diversos registres en una trucada mitjançant un predicat de consulta. Podeu crear un predicat de consulta utilitzant valors que siguin rellevants per a la vostra aplicació, com ara un ID d’usuari, i utilitzar-lo per recuperar una llista de registres no caducats que després haurien d’extreure els seus ID de registre abans de tornar-los a enviar a performQuery amb un conjunt CKQueryOperationType. per esborrar registres. Per garantir que els processos funcionin de manera eficient, també s’hauria de configurar una indexació adequada als predicats de consulta combinada amb la gestió d’errors codificada als controladors de finalització.
És important que els desenvolupadors recordin no només com s’afegeixen les dades, sinó també com s’eliminen de les seves aplicacions entre dispositius quan treballen amb CloudKit, de manera que estiguin preparats quan es trobin amb casos en què les dades antigues o irrellevants necessiten netejar-se.