Skip to content

ditto-examples/ditto-university

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ditto University POC

Note

This 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.

Welcome to Ditto University

This is a training course for both internal and external parties to learn about Ditto.

Target Audience

The 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:

  • One or more mobile development languages / frameworks (e.g. Swift, Kotlin, Flutter etc).
  • The software development environment and IDE (e.g. XCode / Android Studio)
  • Composing basic UI elements (screens, buttons, lists etc)
  • Installation of their application onto a simulator or development device
  • Package management and installation of external dependencies

Note: Whilst Ditto University will touch on all of the above, it is NOT designed to specifically teach any of these elements.

Target Outcome

The 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.

Course Structure

The 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.

Modules 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.

Prerequisites

You will need the following installed on your development machine:

iOS Swift Development Environment

  • Xcode 15 or greater
  • Git installed on your machine

Android Kotlin Development Environment

  • Android Studio 2024.1.1 or higher (Koala)
  • Git installed on your machine

Flutter Development Environment

  • Flutter 3.19 or greater (Tested with 3.24)
  • Xcode 15 or greater
  • Android Studio 2024.1.1 or higher (Koala)
  • An IDE for your choice of language that supports Flutter (Android Studio, VSCode, etc.)
  • Git installed on your machine

Courses

The following courses are available:

📖 Beginner

Course Topics
Course 100 - Introduction to Distributed Apps & Ditto • Understand the shift from RPC to Subscribe-Observe-Query
• Grasp causal consistencys.
• How Ditto abstracts complexity of distributed systems (CRDTs)
Course 101 - Build Your First Ditto-Powered App • The Ditto Portal and the Big Peer
• Register Your Portal Account
• Create a new Ditto app
• Playground Authentication Token
• Ditto SDK
• Ditto Identity
• Ditto Collections
• DQL INSERT, SELECT, & UPDATE Statements
• Register Observers
• Soft-Delete Pattern
• Intro to Big Peer Syncing
Course 102 - A True Peer to Peer Application • Setting up Multiple Devices
• Sync, Subscriptions and Observers
• Offline Updates
• Handling Conflicts
• Deletion and Eviction
Course 120 - Ditto SDK - Atachments & File Management Coming Soon
Course 130 - Security & Access Control Coming Soon
Course 140 - DQL & the Portal Query Editor Coming Soon

📖 Intermediate

Course Topics
Course 210 - Advanced Data Modeling Coming Soon
Course 220 - The Ditto Tools Coming Soon
Course 230 - Data Access Patterns, Performance, & Scaleability Coming Soon
Course 240 - Observability, Logging & Debugging Coming Soon
Course 250 - Operational Readiness & Deployment Coming Soon

📖 Advanced

Course Topics
Course 401 - HTTP API Integration Coming Soon
Course 420 - MongoDb Connector Coming Soon
Course 430 - Kafka and CDC Integration Coming Soon
Course 440 - Local Big Peer Deployment Coming Soon