{"id":26497761,"url":"https://github.com/ditto-examples/ditto-university","last_synced_at":"2025-03-20T13:57:49.250Z","repository":{"id":279698428,"uuid":"938206980","full_name":"ditto-examples/ditto-university","owner":"ditto-examples","description":"POC of the Ditto University","archived":false,"fork":false,"pushed_at":"2025-03-10T21:16:59.000Z","size":9032,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-10T21:32:08.894Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ditto-examples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-24T15:35:06.000Z","updated_at":"2025-03-10T21:17:04.000Z","dependencies_parsed_at":"2025-03-10T21:42:15.615Z","dependency_job_id":null,"html_url":"https://github.com/ditto-examples/ditto-university","commit_stats":null,"previous_names":["ditto-examples/learning-swift-introduction","ditto-examples/ditto-university"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditto-examples%2Fditto-university","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditto-examples%2Fditto-university/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditto-examples%2Fditto-university/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditto-examples%2Fditto-university/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ditto-examples","download_url":"https://codeload.github.com/ditto-examples/ditto-university/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244623638,"owners_count":20483186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-20T13:57:48.733Z","updated_at":"2025-03-20T13:57:49.232Z","avatar_url":"https://github.com/ditto-examples.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ditto University POC\n\n\u003e [!NOTE] \n\u003eThis is a proof of concept for the Ditto University learning modules.  The concepts and code provided is not production ready and is only meant to be used as a reference for the POC of Ditto University learning modules. \n\n## Welcome to Ditto University\n\nThis is a training course for **both internal and external** parties to learn about Ditto.\n\n## Target Audience\n\nThe content is targeted at a mobile developer with some experience of building apps that is *completely new* to Ditto. We assume they will have familiarity with:\n\n- One or more mobile development languages / frameworks (e.g. Swift, Kotlin, Flutter etc).\n- The software development environment and IDE (e.g. XCode / Android Studio)\n- Composing basic UI elements (screens, buttons, lists etc)\n- Installation of their application onto a simulator or development device\n- Package management and installation of external dependencies\n\n*Note: Whilst Ditto University will touch on all of the above, it is NOT designed to specifically teach any of these elements.*\n\n## Target Outcome\n\nThe intention is to convert the mobile developer who was completely new to Ditto into one that can create robust, sophisticated Enterprise production apps using Ditto. They will become deeply familiar with Ditto's core concepts and feel confident in delivering brand new applications into production or migrating existing applications into a more resilient, Ditto-powered form.\n\n## Course Structure\n\nThe course material will be deliberately practical with an explicit intention to make progress quickly. It will follow a gradient, starting with basic concepts and a very simple implementation. It will then build on this foundation by introducing more complex topics throughout the course cumulating in a fully-fledged production-ready application. The application's business logic and aesthetics will be kept to an absolute minimum so as not to dilute the purpose away from Ditto-related education.\n\nModules will roughly be split into Beginner, Intermediate and Advanced Levels. Whilst there will be a linear \"start to finish\" path, the modules will be sufficiently discrete so that specific topics can be undertaken in isolation.\n\n## Prerequisites\n\nYou will need the following installed on your development machine: \n\n### iOS Swift Development Environment\n- [Xcode](https://developer.apple.com/xcode/) 15 or greater\n- Git installed on your machine \n\n### Android Kotlin Development Environment\n- [Android Studio](https://developer.android.com/studio) 2024.1.1 or higher (Koala)\n- Git installed on your machine \n\n### Flutter Development Environment\n- [Flutter](https://flutter.dev/) 3.19 or greater (Tested with 3.24)\n- [Xcode](https://developer.apple.com/xcode/) 15 or greater\n- [Android Studio](https://developer.android.com/studio) 2024.1.1 or higher (Koala)\n- An IDE for your choice of language that supports Flutter (Android Studio, VSCode, etc.)\n- Git installed on your machine \n\n\n## Courses\n\nThe following courses are available: \n\n### 📖 Beginner\n| Course | Topics |\n| ------ | ------ |\n| [Course 100 - Introduction to Distributed Apps \u0026 Ditto](course-100/README.md) |  • Understand the shift from RPC to Subscribe-Observe-Query \u003cbr\u003e • Grasp causal consistencys. \u003cbr\u003e • How Ditto abstracts complexity of distributed systems (CRDTs) |\n| [Course 101 - Build Your First Ditto-Powered App](course-101/README.md) | • The Ditto Portal and the Big Peer \u003cbr\u003e • Register Your Portal Account \u003cbr\u003e • Create a new Ditto app \u003cbr\u003e • Playground Authentication Token \u003cbr\u003e • Ditto SDK \u003cbr\u003e • Ditto Identity \u003cbr\u003e • Ditto Collections \u003cbr\u003e • DQL INSERT, SELECT, \u0026 UPDATE Statements \u003cbr\u003e • Register Observers \u003cbr\u003e • Soft-Delete Pattern \u003cbr\u003e  • Intro to Big Peer Syncing | \n| Course 120 - Ditto SDK - Atachments \u0026 File Management | Coming Soon |\n| Course 130 - Security \u0026 Access Control | Coming Soon |\n| Course 140 - DQL \u0026 the Portal Query Editor | Coming Soon |\n\n### 📖 Intermediate\n| Course | Topics |\n| ------ | ------ |\n| Course 210 - Advanced Data Modeling | Coming Soon |\n| Course 220 - The Ditto Tools | Coming Soon |\n| Course 230 - Data Access Patterns, Performance, \u0026 Scaleability | Coming Soon |\n| Course 240 - Observability, Logging \u0026 Debugging | Coming Soon |\n| Course 250 - Operational Readiness \u0026 Deployment | Coming Soon |\n\n### 📖 Advanced\n| Course | Topics |\n| ------ | ------ |\n| Course 401 - HTTP API Integration | Coming Soon |\n| Course 420 - MongoDb Connector | Coming Soon |\n| Course 430 - Kafka and CDC Integration | Coming Soon|\n| Course 440 - Local Big Peer Deployment | Coming Soon |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditto-examples%2Fditto-university","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fditto-examples%2Fditto-university","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditto-examples%2Fditto-university/lists"}