@@ -64,89 +64,184 @@ SDK is language-idiomatic and includes:
64
64
:ref:`Authentication <users-and-authentication>`, :ref:`Functions <functions>`,
65
65
:ref:`Triggers <trigger-types>`, and more.
66
66
67
+ .. kicker:: Learning Paths
68
+
69
+ Get Started with the Swift SDK
70
+ ------------------------------
71
+
67
72
.. card-group::
73
+ :columns: 3
68
74
:style: extra-compact
69
- :columns: 2
70
75
71
76
.. card::
72
- :cta: Learn more about Atlas App Services
73
- :headline: Atlas App Services
74
- :icon: /images/icons/realm.svg
75
- :url: https://www.mongodb.com/docs/atlas/app-services/
77
+ :headline: Quick Start
78
+ :cta: See Code Examples
79
+ :url: https://https://preview-mongodbdacharyc.gatsbyjs.io/realm/scaffold-consolidated-sdk-toc/sdk/quick-start
80
+ :icon: /images/icons/branding_2022/Technical_ATLAS_Functions3x.png
81
+ :icon-alt: Functions Icon
76
82
77
- Discover how to sync data, define permissions, and connect to other services, including MongoDB Atlas.
83
+ Minimal-explanation code examples of how to work with the Swift SDK.
84
+ Write to the device database, and sync with other devices.
78
85
79
86
.. card::
80
- :headline: Swift SDK
81
- :url: https://www.mongodb.com/docs/realm/sdk/swift/
82
- :icon: /images/icons/swift_sdk.svg
83
- :icon-alt: Swift SDK icon
87
+ :headline: Working Example App
88
+ :cta: Explore an Example App
89
+ :url: https://www.mongodb.com/docs/atlas/app-services/template-apps/
90
+ :icon: /images/icons/branding_2022/Technical_REALM_Mobile3x.png
91
+ :icon-alt: Realm Mobile Icon
84
92
85
- Build applications in Swift or Objective-C for Apple platforms, including iOS, macOS, watchOS, and tvOS.
93
+ Learn from example by dissecting a working mobile client app that
94
+ uses Atlas Device SDK.
86
95
87
96
.. card::
88
- :headline: Kotlin SDK
89
- :url: https://www.mongodb.com/docs/realm/sdk/kotlin/
90
- :icon: /images/icons/kotlin_sdk.svg
91
- :icon-alt: Kotlin SDK icon
97
+ :headline: Guided Tutorial
98
+ :cta: Follow the Tutorial
99
+ :url: https://www.mongodb.com/docs/atlas/app-services/tutorials/
100
+ :icon: /images/icons/branding_2022/General_CONTENT_Tutorial3x.png
101
+ :icon-alt: Tutorial Icon
92
102
93
- Build cross-platform applications for Android, iOS, and macOS with Kotlin Multiplatform (KMP).
103
+ Follow a guided tutorial to learn how to adapt the example app to
104
+ create your own working app.
94
105
95
- .. card::
96
- :headline: .NET SDK
97
- :url: https://www.mongodb.com/docs/realm/sdk/dotnet/
98
- :icon: /images/icons/dot_net_sdk.svg
99
- :icon-alt: .NET SDK icon
106
+ .. kicker:: What You Can Do
100
107
101
- Build applications that use C# and the .NET platform, including MAUI,
102
- Xamarin, native Windows applications, and Unity projects.
108
+ Develop Apps with the SDK
109
+ --------------------------
103
110
104
- .. card::
105
- :headline: Node.js SDK
106
- :url: https://www.mongodb.com/docs/realm/sdk/node/
107
- :icon: /images/icons/node_js_sdk.svg
108
- :icon-alt: Node.JS SDK icon
111
+ Use the SDK's open-source database - Realm - as an object store on the device.
112
+ Use Device Sync to keep data in sync with your MongoDB Atlas cluster and
113
+ other clients.
109
114
110
- Use the Node.js SDK to build server and IoT applications in JavaScript or TypeScript.
115
+ .. tabs::
111
116
112
- .. card::
113
- :headline: React Native SDK
114
- :url: https://www.mongodb.com/docs/realm/sdk/react-native/
115
- :icon: /images/icons/react_native_sdk.svg
116
- :icon-alt: React SDK icon
117
+ .. tab:: Store Data with the SDK
118
+ :tabid: device-persistence
117
119
118
- Use the React Native SDK to build cross-platform applications in JavaScript or TypeScript.
120
+ .. procedure::
119
121
120
- .. card::
121
- :headline: Java SDK
122
- :url: https://www.mongodb.com/docs/realm/sdk/java/
123
- :icon: /images/icons/android_sdk.svg
124
- :icon-alt: Java SDK icon
122
+ .. step:: Install the SDK
125
123
126
- Build Android applications in Java or Kotlin.
124
+ Use popular package managers and build tools to
125
+ :ref:`sdks-install` in your project.
127
126
128
- .. card::
129
- :headline: Web SDK
130
- :url: https://www.mongodb.com/docs/realm/web/
131
- :icon: /images/icons/web_sdk.svg
132
- :icon-alt: Web SDK icon
127
+ Import the relevant dependency in your project files to get started.
133
128
134
- Build web applications in JavaScript or TypeScript. Access data with MongoDB queries.
129
+ .. step:: Define an Object Schema
135
130
136
- .. card::
137
- :headline: Flutter SDK
138
- :url: https://www.mongodb.com/docs/realm/sdk/flutter
139
- :icon: /images/icons/flutter.svg
140
- :icon-alt: Flutter SDK icon
131
+ Use your preferred programming language to idiomatically
132
+ :ref:`define an object model <sdks-object-models>`.
141
133
142
- Build Flutter applications with Dart.
134
+ .. step:: Open a Database
143
135
144
- .. card::
145
- :headline: C++ SDK
146
- :url: https://www.mongodb.com/docs/realm/sdk/cpp
147
- :icon: /images/icons/cpp_sdk.svg
148
- :icon-alt: C++ SDK icon
136
+ The SDK's database - Realm - stores objects in files on your
137
+ device. Or you can open an in-memory database which does not
138
+ create a file.
139
+ :ref:`Configure and open a database <sdks-configure-and-open-database>`
140
+ to specify the options for your database file.
141
+
142
+ .. step:: Read and Write Data
143
+
144
+ :ref:`Create <sdks-crud-create>`, :ref:`read <sdks-crud-read>`,
145
+ :ref:`update <sdks-crud-update>`, and :ref:`delete <sdks-crud-delete>`
146
+ objects from the device database. Filter data using the
147
+ :ref:`query engines <sdks-query-engines>` provided by the SDK.
148
+
149
+ .. step:: React to Changes
150
+
151
+ Live objects mean that your data is always up-to-date.
152
+ You can :ref:`register a notification handler <sdks-react-to-changes>`
153
+ to watch for changes and perform some logic, such as updating
154
+ your UI. Or use our React Native or SwiftUI support to
155
+ idiomatically to update Views when data changes.
156
+
157
+ .. image:: /images/illustrations/Spot_MauvePurple_Infrastructure_Tech_RealmApp2x.png
158
+ :alt: Atlas Device SDK Mobile Illustration
159
+
160
+ .. tab:: Sync Data Across Devices
161
+ :tabid: device-sync
162
+
163
+ .. procedure::
164
+
165
+ .. step:: Connect to an Atlas App Services App
166
+
167
+ Configure :ref:`Device Sync in an App Services App
168
+ <realm-sync-get-started>`. Define data access rules. Use
169
+ Development Mode to infer your schema from your client data model.
170
+
171
+ Then, :ref:`connect to Atlas <sdks-connect-to-atlas>` from
172
+ your client.
173
+
174
+ .. step:: Authenticate a User
175
+
176
+ Use one of our authentication providers to :ref:`authenticate a
177
+ user <sdks-authenticate-users>`. App Services provides access
178
+ to popular authentication providers, such as Apple, Google, or
179
+ Facebook. Use our built-in email/password provider to manage
180
+ users without a third-party, or use custom JWT authentication to
181
+ integrate with other authentication providers. Anonymous authentication
182
+ provides access without requiring a login or persisting user data.
183
+
184
+ .. step:: Open a Synced Database
185
+
186
+ :ref:`Configure and open a synced database <sdks-configure-and-open-synced-database>`.
187
+ :ref:`Subscribe to a query <sdks-manage-sync-subscriptions>`
188
+ to determine what data the synced database can read and write.
189
+
190
+ .. step:: Read and Write Synced Data
191
+
192
+ The APIs to read and write data are the same whether you're
193
+ using a synced or non-synced database. Data that you read and write
194
+ to the device is automatically kept in sync with your Atlas
195
+ cluster and other clients. Apps keep working offline and
196
+ deterministically sync changes whenever a network connection
197
+ is available.
198
+
199
+ .. image:: /images/illustrations/Spot_AzureBlue_Mobile_Tech_RealmSync.png
200
+ :alt: Device Sync Illustration
201
+
202
+ .. tab:: Build with Atlas App Services
203
+ :tabid: app-services
204
+
205
+ .. container::
206
+
207
+ Call Serverless Functions
208
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
209
+
210
+ You can :ref:`call serverless Functions <ios-call-a-function>`
211
+ from your client application that run in an App Services backend.
212
+
213
+ Query MongoDB Atlas
214
+ ~~~~~~~~~~~~~~~~~~~
215
+
216
+ You can :ref:`query data stored in MongoDB <ios-mongodb-remote-access>`
217
+ directly from your client application code.
218
+
219
+ Authenticate Users
220
+ ~~~~~~~~~~~~~~~~~~
221
+
222
+ Authenticate users with built-in and third-party :ref:`authentication
223
+ providers <ios-authenticate-users>`. Use the authenticated user to
224
+ access App Services.
225
+
226
+ .. image:: /images/illustrations/Spot_MauvePurple_APIs_Tech_RealmApp.png
227
+ :alt: App Services Illustration
228
+
229
+
230
+ .. tab:: Develop with Popular Frameworks
231
+ :tabid: realm-frameworks
232
+
233
+ .. container::
234
+
235
+ Our SDKs offer framework-idiomatic tools to streamline your
236
+ Atlas Device SDK development. In React Native, use our ``@realm/react``
237
+ hooks to manage the Atlas connection, authenticate users, and write to
238
+ the database. In Swift, use property wrappers and convenience
239
+ features designed to make it easier to work with SwiftUI.
149
240
150
- Build applications in C++. Access data stored in realms and sync data with Atlas.
241
+ .. literalinclude:: /examples/generated/swiftui/FilterData.snippet.searchable.swift
242
+ :language: swift
243
+ :caption: SwiftUI Property Wrappers Offer Realm/SwiftUI Integration
244
+ :copyable: false
151
245
152
- For legacy (pre-v10) Realm Documentation, see https://www.mongodb.com/docs/realm-legacy/docs/.
246
+ .. image:: /images/illustrations/Spot_MauvePurple_Logic_Tech_RealmApp2x.png
247
+ :alt: Atlas Device SDK Mobile Illustration
0 commit comments