@@ -64,89 +64,184 @@ SDK is language-idiomatic and includes:
6464 :ref:`Authentication <users-and-authentication>`, :ref:`Functions <functions>`,
6565 :ref:`Triggers <trigger-types>`, and more.
6666
67+ .. kicker:: Learning Paths
68+
69+ Get Started with the Swift SDK
70+ ------------------------------
71+
6772.. card-group::
73+ :columns: 3
6874 :style: extra-compact
69- :columns: 2
7075
7176 .. 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
7682
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.
7885
7986 .. 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
8492
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.
8695
8796 .. 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
92102
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.
94105
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
100107
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+ --------------------------
103110
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.
109114
110- Use the Node.js SDK to build server and IoT applications in JavaScript or TypeScript.
115+ .. tabs::
111116
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
117119
118- Use the React Native SDK to build cross-platform applications in JavaScript or TypeScript.
120+ .. procedure::
119121
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
125123
126- Build Android applications in Java or Kotlin.
124+ Use popular package managers and build tools to
125+ :ref:`sdks-install` in your project.
127126
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.
133128
134- Build web applications in JavaScript or TypeScript. Access data with MongoDB queries.
129+ .. step:: Define an Object Schema
135130
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>`.
141133
142- Build Flutter applications with Dart.
134+ .. step:: Open a Database
143135
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.
149240
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
151245
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