Premiers pas avec Realm Mobile Platform pour iOS

Dans ce didacticiel, je vais continuer à partir de mon didacticiel précédent sur Realm Mobile Database pour iOS, où nous avons découvert Realm Mobile Database, une alternative de base de données sur appareil à Core Data. Realm a également développé une solution côté serveur tout aussi élégante et transparente qui synchronise nos données entre notre appareil et le cloud en temps réel. Cela fait partie de la solution phare de Realm, Realm Mobile Platform.

Dans cet article, nous installerons un serveur d’objets Realm et améliorerons l’application RealmDo que nous avons lancée dans l’article précédent.

Qu’est-ce que la plate-forme mobile Realm?

Annoncé début 2017, Realm Mobile Platform 1. représente les efforts de l’entreprise pour étendre sa base de données sur le cloud et fournir un support pour des fonctionnalités plus collaboratives telles que la messagerie en direct, les expériences hors ligne d’abord et, plus impressionnant, multiplateforme. Grâce au nouveau Realm Object Server, Realm Mobile Platform prend le relais et gère les complexités du marshaling et de la synchronisation des données entre la base de données Realm et le serveur.

Realm Mobile Platform sert d’intermédiaire entre le Realm Object Server et votre Realm Mobile Database. Lorsque vous conservez les données localement sur votre appareil, elles sont transmises en temps réel, mais avec la possibilité de mettre en file d’attente et de différer la synchronisation hors ligne.

Illustration du flux de données dans Realm Mobile Platform

Outre la synchronisation des données (ou Realms) entre les périphériques, Realm Object Server fournit également des services d’authentification et de contrôle d’accès (gestion des autorisations), ainsi que traitement des événements sans serveur via les fonctions de royaume. Apprenons-en plus sur ce Plateforme mobile de royaume
fournit. Notez que certaines de ces fonctionnalités ne sont disponibles que pour les entreprises clientes.

Fonctions de royaume

Fonction de royaumes
agir comme le couche logique d’application, optimisé par JavaScript, vous permettant d’exécuter une logique personnalisée sans serveur dédié et de répondre aux changements sur un ou tous les domaines (bases de données).

Grâce au tableau de bord des royaumes, vous pouvez créer, démarrer, arrêter et supprimer des fonctions qui répondent aux changements sur un ou plusieurs royaumes, avec sans serveur Événement Handling. Vous créez des fonctions à l’aide de JavaScript et Node.js, et les fonctions sont appelées par le Realm Object Server API d’écoute globale.

Capture d'écran de Realm Dashboard

Actuellement, l’édition développeur de Realm Mobile Platform est limitée à trois fonctions actives à un moment donné, bien que vous puissiez avoir plus de fonctions inactives.

Les fonctions de domaine sortent du cadre de ce didacticiel, mais valent certainement la peine d’être lues.

Tableau de bord du royaume

le Royaume Dashboar
est livré avec l’installation de Realm Object Server, comme nous l’illustrerons bientôt, fournissant un outil pratique pour gérer vos Realms, gérer les utilisateurs et les fonctions, et avoir une idée du fonctionnement de votre serveur d’applications.

Le tableau de bord basé sur le navigateur comprend les sections suivantes:

  • Tableau de bord fournit une impulsion en temps réel des débits de données entrants et sortants, des connexions ouvertes et des royaumes ouverts.
  • Royaumes
    fournit des chemins, des autorisations et des propriétaires de chacun des royaumes, et vous pouvez parcourir chaque royaume pour afficher les modèles et le contenu de chaque royaume.
  • Utilisateurs
    fournit des informations et des services de gestion à tous les utilisateurs, y compris l’octroi et la suppression d’autorisations administratives.
  • Les fonctions
    est l’endroit où vous créez et gérez vos fonctions de domaine.
  • Journaux
    est l’endroit où vous pouvez afficher les journaux système du serveur d’objets.

Le tableau de bord est normalement accessible via le http: // localhost: 908 chemin localement, ou là où se trouve votre machine hébergée.

Connexion au royaume

Il s’agit d’une fonctionnalité réservée aux entreprises, bien que très utile pour certaines entreprises. Connexion au royaume est un conduit qui expose les systèmes hérités de l’entreprise à la plate-forme via une passerelle API moderne, ce qui permet aux développeurs de se connecter plus facilement à des sources de données auparavant obscurcies.

L’édition Entreprise de Realm Object Server propose une API d’adaptateur basée sur Node.js qui vous permet d’accéder à toutes les opérations et données de bas niveau Object Server. Cela peut être utilisé pour permettre à un royaume synchronisé d’interagir avec une base de données héritée existante telle que PostgreSQL: le royaume sera également synchronisé avec la base de données externe en temps réel. Les applications clientes peuvent utiliser l’API Realm Mobile Database et bénéficier des avantages de l’utilisation d’objets natifs en temps réel.

Niveaux de service

L’entreprise propose actuellement trois niveaux de service. le Édition développeur est l’offre gratuite pour les petites équipes, où les utilisateurs bénéficieraient de fonctionnalités telles que la synchronisation automatique des données en temps réel à l’aide d’objets en direct. le Edition Professionnelle ajoute des fonctionnalités avancées telles que la gestion des événements et l’accès côté serveur.

En relation :  Les 10 meilleures applications de réalité virtuelle pour Android
Tableau de tarification de Realm Mobile Platform

Répondant aux exigences des équipes de taille moyenne, le Edition Professionnelle est un bon compromis sans les frais généraux de la Edition pour entreprise. Les coûts sont ajustés à votre échelle, offrant un chemin de migration facile à partir du niveau gratuit.

L’édition professionnelle commence à 1 500 USD par mois et l’édition Enterprise est proposée à un prix personnalisé en fonction du cas d’utilisation.

Votre application First Realm Server

Connaissance supposée

Ce didacticiel suppose que vous avez une connaissance pratique de Swift, mais aucune base de données ou connaissance préalable de la base de données n’est nécessaire. De plus, il est supposé que vous avez suivi le didacticiel précédent sur Realm Mobile Database pour iOS et que vous avez terminé les exercices du didacticiel pour créer le RealmDo app. Nous allons continuer là où nous nous sommes arrêtés dans cet article et ajouter des fonctionnalités côté serveur à notre application, Royaumeo.

En plus de Realm, nous utiliserons les parties suivantes d’iOS:

  • UIKit: pour démontrer visuellement nos données
  • CocoaPods: une bibliothèque de dépendances tierce qui sera utilisée pour installer Realm Mobile Database

Objectifs de ce didacticiel

À la fin de ce didacticiel, vous aurez continué à développer vos connaissances sur Realm et à améliorer l’application simple à faire écrite en Swift, en conservant les données à distance sur le serveur via Realm Mobile Platform. Vous aurez la possibilité de créer une application à faire fonctionnant entièrement alimentée par Realm avec un back-end côté serveur, et en cours de route, vous apprendrez les concepts suivants:

  1. configuration locale du serveur d’objets Realm
  2. synchronisation du modèle ‘live-object’ avec le Realm Object Server
  3. surveillance des données via le tableau de bord

Vous pouvez télécharger le code source complet à partir du tutoriel référentiel GitHub.

Configurer le serveur d’objets de royaume

Avant de frapper à nouveau Xcode pour travailler notre projet, nous devrons configurer et faire fonctionner notre Realm Object Server.

Téléchargez le bundl macOSe, en supposant que vous installerez le serveur Object Server localement sur votre Mac. Si vous prévoyez de l’installer sur un serveur Linux, reportez-vous à la documentation Realm.

Une fois le téléchargement terminé, dans le terminal, accédez à votre Téléchargements / realm-mobile-platform
dossier et démarrez le serveur en tapant:

start-object-server.command

Votre terminal devrait maintenant indiquer que votre serveur démarre et votre navigateur s’ouvrira automatiquement pour lancer le tableau de bord du royaume, à http: // localhost: 9080.

Vous serez invité à vous inscrire en tant que nouvel utilisateur et à fournir un e-mail et un mot de passe la première fois que vous exécuterez le serveur. Veuillez continuer et terminer le processus d’inscription et mémoriser vos informations d’identification, car vous les utiliserez plus tard.

Écran d'enregistrement de royaume

Gardez cette fenêtre de navigateur ouverte car nous y reviendrons plus tard lorsque nous exécuterons notre application complète, pour observer comment les données sont stockées sur le serveur.

Rendre notre projet synchronisable

Nous sommes maintenant prêts à commencer le codage, alors lancez le projet Xcode sur lequel nous travaillions dans le didacticiel précédent, car nous allons continuer à construire à partir de là, dans le contrôleur de vue.

La première chose que nous ferons est de modifier notre remindersList variable globale pour être mutable, nous devrons donc la changer à partir d’un RLMResults objecter à un List type. Nous ajouterons également un nouveau type d’objet, NotificationToken, que nous utiliserons pour nous avertir en cas de modification de l’objet de données de domaine.

NotificationToken

n’est pas un objet spécifique au serveur, et nous aurions pu l’utiliser dans notre tutoriel précédent, mais il est certainement utile lorsque nous voulons détecter des changements en temps réel à distance ou localement et réagir en conséquence.

Dans le viewDidLoad()
méthode, nous intégrerons un SyncUser.logIn()
méthode, qui est le mécanisme d’authentification de Realm, acceptant un nom d’utilisateur, un mot de passe et l’emplacement du serveur. C’est un sujet intéressant en soi, qui dépasse le cadre de ce didacticiel, mais pour l’instant, nous allons simplement coder en dur dans les informations d’identification que nous avons définies lorsque nous avons enregistré notre Realm Object Server précédemment.

Nous transmettons également l’emplacement du serveur, ainsi que le nom du domaine (base de données) que nous voulons utiliser, qui est http://127.0.0.1:9080. Dans la ligne de configuration du domaine, en plus de l’emplacement du serveur, vous devez également définir le nom du domaine, qui est realmDoApp aux fins de cette démonstration. Allez-y et remplacez votre viewDidLoad() avec ce qui suit:

Dans une application réelle, nous obtiendrions les informations d’identification de l’utilisateur avec un formulaire. Dans le code ci-dessus, cependant, nous codons en dur nos informations d’identification et définissons un objet utilisateur une fois la connexion réussie. Sinon, l’application échouera avec une erreur fatale.

En relation :  6 façons d'utiliser Trello et OneNote ensemble pour une meilleure productivité

Enfin, le code ci-dessus utilise un bloc synchrone pour associer l’instance de domaine au serveur d’objets de domaine (au lieu de la base de données sur l’appareil). C’est la ligne distinctive qui rend cette application basée sur le cloud.

A la fin, j’initialise le notificationToken
pour appeler une méthode, updateRemindersList(), chaque fois qu’il y a un changement dans les données du domaine (localement ou à distance).

Le bloc de code ci-dessus convertit également le self.realm.objects() il reçoit du serveur, afin que nous puissions associer les résultats à notre nouveau
List-typé RemindersList ensemble d’objets.

Remarquez à quel point il est ambigu que nous obtenions les données de notre base de données de domaine ou à distance. C’est ce qui rend Realm formidable: vous n’avez pas à vous soucier de la synchronisation localement ou à distance!

Et c’est tout: tout le code nécessaire pour que l’application fonctionne avec Realm Object Server. Une dernière chose est nécessaire avant de créer et d’exécuter l’application. Ouvrez le projet info.plist comme Code source en cliquant avec le bouton droit sur le fichier. Ajoutez ce qui suit pour permettre aux demandes non TLS de fonctionner.

Maintenant, allez-y et créez, puis exécutez l’application, et ajoutez quelques nouveaux rappels. Nous allons maintenant passer au navigateur, où nous pouvons voir le serveur en cours d’exécution et accéder à son tableau de bord pour observer le remplissage des données dans un nouveau domaine.

Surveillance des données via le tableau de bord

Nous allons maintenant surveiller et superviser les données via le tableau de bord que nous avons lancé lorsque nous avons démarré Realm Object Server. En exécutant l’application et le tableau de bord côte à côte, vous pouvez voir que lorsque vous ajoutez un élément, il apparaît immédiatement sur le tableau de bord. La même chose se produit lorsque vous supprimez un élément, ce qui montre qu’il est bien en temps réel.

Serveur d'objets de royaume

Surveillance des données via le navigateur de domaine

Vous pouvez également utiliser Realm Browser pour surveiller les données de votre application. Dans le didacticiel précédent, nous avons utilisé Realm Browser pour afficher nos données sur l’appareil. Nous pouvons également l’utiliser pour afficher les données de Realm Object Server.

Lancez l’application, sélectionnez Ouvrir l’URL de synchronisation, et saisissez l’emplacement de votre domaine de serveur d’objets distant (par exemple domaine: //127.0.0.1: 9080 / 8e090f0fa57366808be106e004800a0f / realmDoApp)
avec votre nom d’utilisateur et votre e-mail. Vous devriez obtenir la vue familière que nous avons vue dans le dernier tutoriel, mais cette fois, nous nous connectons à un back-end en temps réel!

Allez-y et modifiez vos propriétés là-bas, et vous devriez voir cela reflété dans le tableau de bord ainsi que dans votre application.

Application de tâches affichant des rappels

Conclusion et prochaines étapes

Dans ce didacticiel, vous avez appris à étendre une application basée sur Realm Mobile Database, qui est déjà très puissante, avec une solution de serveur principal. Le tout avec seulement quelques lignes de code.

En plus du téléchargement et de l’installation de Realm Object Server, nous avons amélioré notre application de rappels simple avec les fonctionnalités suivantes:

  • un mécanisme d’authentification simple
  • synchronisation back-end en temps réel

Enfin, nous avons vu comment surveiller les données en direct via le tableau de bord, ainsi que via le navigateur d’objets Realm familier.

Le principe des plates-formes telles que Realm Object Server est de permettre aux développeurs de se concentrer sur leur code côté client et de ne pas se soucier de la complexité de la maintenance d’un serveur principal.

Nous venons de gratter la surface dans cet article. Il existe de nombreuses documentations et concepts avec Realm Object Server, notamment l’utilisation de fonctions permettant le déclenchement de logique sans serveur.

Revenez ici pour plus de publications sur les services back-end pour le développement d’applications mobiles.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.