Lecture slides for the Spatial Diploma in Apple Development πŸŽπŸ‘©πŸ»β€πŸ’» by Joel Gethin Lewis and Xiaowan Yi

Please see the course GitHub repo and wiki for other information, including information on reading lists, weekly schedule, assessment details and course outcomes.

Please see the course Moodle homepage for information and links to individual units, including online assessment links.

Lectures:

Block 1:

Coding 1 by Joel Gethin Lewis:

  1. Tuesday 30th September 2025, 0930-1330: Lecture 1: Introduction to the Diploma and Coding 1 unit.
  2. Tuesday 7th October 2025, 0930-1330: Lecture 2: Introduction to Swift, SwiftUI, Swift REPL, Xcode, Xcode playgrounds, Constants, Variables and Operators.
  3. Tuesday 14th October 2025, 0930-1330: Lecture 3: Control Flow, Strings, Functions and the structure of SwiftUI apps.
  4. Tuesday 21st October 2025, 0930-1330: Lecture 4: Value and Reference Types, Structures, Classes and SwiftUI Views.
  5. Tuesday 28th October 2025, 0930-1330: Lecture 5: Collections, Loops, Closures and SwiftUI Stack Views.
  6. Tuesday 4th November 2025, 0930-1330: Lecture 6: Optionals, Type Casting, Enumerations and Layout.
  7. Tuesday 11th November 2025, 0930-1330: Lecture 7: Extensions, Generics, Errors and SwiftUI Navigation.
  8. Tuesday 18th November 2025, 0930-1330: Lecture 8: Guard, Scope and Protocols.
  9. Tuesday 25th November 2025, 0930-1330: Lecture 9: Macros, Access Control and Advanced Operators.
  10. Tuesday 2nd December 2025, 0930-1330: Lecture 10: Custom types and Swift Testing.
  11. Tuesday 9th December 2025, 0930-1330: Lecture 11: Models and persistence, Navigation, editing, and relationships and Observation and shareable data models.
  12. Tuesday 13th January 2026, 0930-1330: Lecture 12: Mock Multiple choice test and Mock Practical exam.
  13. Tuesday 20th January 2026, 1000-1200: Lecture 13: Multiple Choice Test.
  14. Tuesday 27th January 2026, 1000-1200: Lecture 14: Practical Exam.

Spatial 1 by Joel Gethin Lewis:

  1. Friday 3rd October 2025, 0930-1330: Lecture 1: Introduction to the Spatial 1 unit.
  2. Friday 10th October 2025, 0930-1330: Lecture 2: Initial project thoughts, prototyping.
  3. Friday 17th October 2025, 0930-1330: Lecture 3: Designing for the Vision Pro.
  4. Friday 24th October 2025, 0930-1330: Lecture 4: Revised project thoughts, Inclusive Design.
  5. Friday 31st October 2025, 0930-1330: Lecture 5: RealityKit and Reality Composer Pro.
  6. Friday 7th November 2025, 0930-1330: Lecture 6: Revised project thoughts, USD and Quick Look.
  7. Friday 14th November 2025, 0930-1330: Lecture 7: Making content for Reality Composer Pro: Polycam, Blender, Anchoring content.
  8. Friday 21st November 2025, 0930-1330: Lecture 8: Revised project thoughts, Timelines and Interactivity in Reality Composer Pro.
  9. Friday 28th November 2025, 0930-1330: Lecture 9: SwiftUI.
  10. Friday 5th December 2025, 0930-1330: Lecture 10: Revised project thoughts, more RealityKit.
  11. Friday 12th December 2025, 0930-1330: Lecture 11: Develop in Swift and Introductory visionOS samples.
  12. Friday 16th January 2026, 0930-1330: Lecture 12: Revised project thoughts, project workshopping.
  13. Friday 23rd January 2026, 0930-1330: Lecture 13: Dress Rehearsal for Final Presentations.
  14. Friday 30th January 2026, 0930-1330: Lecture 14: Final Presentations.

ML 1 Lectures by Xiaowan Yi:

  1. Thursday 2nd October 2025, 0930-1330: Lecture 1: Introduction to the ML 1 unit.
  2. Thursday 9th October 2025, 0930-1330: Lecture 2: Introduction to representation, numbers and image classification.
  3. Thursday 16th October 2025, 0930-1330: Lecture 3: Introduction to data types and face detection.
  4. Thursday 23rd October 2025, 0930-1330: Lecture 4: Introduction to scalar, vector and matrix + Python and Colab notebook basics 1.
  5. Thursday 30th October 2025, 0930-1330: Lecture 5: Introduction to vector and matrix multiplication + Python basics 1 continued.
  6. Thursday 6th November 2025, 0930-1330: Lecture 6: Introduction to functions + Python basics 2.
  7. Thursday 13th November 2025, 0930-1330: Lecture 7: Introduction to artificial neural network + Multi-Layer Perceptron.
  8. Thursday 20th November 2025, 0930-1330: Lecture 8: Introduction to supervised learning + How does AI learn? - Intuitions on gradient descent.
  9. Thursday 27th November 2025, 0930-1330: Lecture 9: Introduction to convolutional neural network (CNN) + example application: pose detection with PoseNet.
  10. Thursday 4th December 2025, 0930-1330: Lecture 10: A walking tour of AI developments in computer vision + example applications: hand pose detection, barcode detection, image foreground instance segmentation.
  11. Thursday 11th December 2025, 0930-1330: Lecture 11: Introduction to RNN, LSTM and Transformer for modelling sequential data + tips for presentation.
  12. Thursday 15th January 2026, 0930-1330: Lecture 12: Mock exams.
  13. Thursday 22nd January 2026, 0930-1330: Lecture 13: Multiple choice test.
  14. Thursday 29th January 2026, 0930-1330: Lecture 14: Presentations.

Block 2:

Coding 2 by Joel Gethin Lewis:

  1. Tuesday 17th February 2026, 0930-1330: Lecture 1: Introduction to the Block 2 and Coding 2 unit. Packages, Symbols, Animation, Animated Text, 2D and 3D shapes and combining 2D and 3D views.
  2. Tuesday 24th February 2026, 0930-1330: Lecture 2: Build great apps for visionOS with RealityKit workshop.
  3. Tuesday 3rd March 2026, 0930-1330: Lecture 3: BOT-anist and gestures.
  4. Tuesday 10th March 2026, 0930-1330: Lecture 4: Happy Beam and recognising hand shapes.
  5. Tuesday 17th March 2026, 0930-1330: Lecture 5: Tracking planes.
  6. Tuesday 14th April 2026, 0930-1330: Lecture 6: Tracking images.
  7. Tuesday 21st April 2026, 0930-1330: Lecture 7: Tracking objects.
  8. Tuesday 28th April 2026, 0930-1330: Lecture 8: Scene Reconstruction and World Tracking.
  9. Tuesday 5th May 2026, 0930-1330: Lecture 9: RealityKit simulation: particles, physics and joints.
  10. Tuesday 12th May 2026, 0930-1330: Lecture 10: ShaderGraph and Metal.
  11. Tuesday 19th May 2026, 0930-1330: Lecture 11: What is going on with SwiftUI under the hood.
  12. Tuesday 26th May 2026, 0930-1330: Lecture 12: Mock Multiple choice test and Mock Practical exam.
  13. Tuesday 2nd June 2026, 1000-1200: Lecture 13: Multiple Choice Test.
  14. Tuesday 9th June 2026, 1000-1200: Lecture 14: Practical Exam.

Spatial 2 by Joel Gethin Lewis:

  1. Friday 20th February 2026, 0930-1330: Lecture 1: Introduction to the Spatial 2 unit, we are making a studio together. Setting of playful brief, relation to your BA and practice. Launching on TestFlight. App Workbook as bible. Remixing Introductory visionOS samples and other Samples. Designing for Spatial Input. Case study: 12 Sentiments for VR. Case study compilation from Masahiro Sakurai.
  2. Friday 27th February 2026, 0930-1330: Lecture 2: Presentation of initial project thoughts. Case study: Breath of the Wild. Case study compilation from Masahiro Sakurai.
  3. Friday 6th March 2026, 0930-1330: Lecture 3: Hand tracking and ARKit. Case study: Tears of the Kingdom. Case study compilation from Masahiro Sakurai.
  4. Friday 13th March 2026, 0930-1330: Lecture 4: Presentation of revised project thoughts. Case study: Super Mario Bros Wonder. Case study compilation from Masahiro Sakurai.
  5. Friday 20th March 2026, 0930-1330: Lecture 5: Photogrammetry, Image Tracking and Object Tracking. Case study compilation from Masahiro Sakurai.
  6. Friday 17th April 2026, 0930-1330: Lecture 6: Presentation of revised project thoughts. Case study compilation from Masahiro Sakurai.
  7. Friday 24th April 2026, 0930-1330: Lecture 7: Sound. Case study compilation from Masahiro Sakurai.
  8. Friday 1st May 2026, 0930-1330: Lecture 8: Presentation of revised project thoughts. Case study compilation from Masahiro Sakurai.
  9. Friday 8th May 2026, 0930-1330: Lecture 9: TestFlight. Case study compilation from Masahiro Sakurai.
  10. Friday 15th May 2026, 0930-1330: Lecture 10: Presentation of revised project thoughts. Case study compilation from Masahiro Sakurai.
  11. Friday 22nd May 2026, 0930-1330: Lecture 11: Accessibility. Case study compilation from Masahiro Sakurai.
  12. Friday 29th May 2026, 0930-1330: Lecture 12: TBC. Case study compilation from Masahiro Sakurai.
  13. Friday 5th June 2026, 0930-1330: Lecture 13: Dress Rehearsal for Final Presentations.
  14. Friday 12th June 2026, 0930-1330: Lecture 14: Final Presentations.
  15. Friday 19th June 2026, 1000-1300: Project Presentations at Apple Battersea.
  16. Thursday 25th June 2026 - Saturday 27th June 2026: End of year show.

ML 2 by Xiaowan Yi:

  1. Thursday 19th February 2026, 0930-1330: A guest lecture from Mick Grierson.
  2. Thursday 26th February 2026, 0930-1330: Lecture 2: Introduction to the ML 2 unit + First time training an AI model with CreateML: image classification.
  3. Thursday 5th March 2026, 0930-1330: Lecture 3: Sound classification with CreateML + Data pre-processing + AI for audio applications.
  4. Thursday 12th March 2026, 0930-1330: Lecture 4: Train a GAN model with Pytorch.
  5. Thursday 19th March 2026, 0930-1330: Lecture 5: Object detection with CreateML + Live Capture App.
  6. Thursday 16th April 2026, 0930-1330: Lecture 6: Style Transfer with CreateML .
  7. Thursday 23rd April 2026, 0930-1330: Lecture 7: NLP 101: basic tasks with Apple Natural Language Framework.
  8. Thursday 30th April 2026, 0930-1330: Lecture 8: NLP 102: Sentiment Analysis with CreateML.
  9. Thursday 7th May 2026, 0930-1330: Lecture 9: Recommender system with CreateML.
  10. Thursday 13th May 2026, 0930-1330: Lecture 10: NLP 103: Embed ChatGPT (and other OpenAI AI models) in your App.
  11. Thursday 21st May 2026, 0930-1330: Lecture 11: Make Stable Diffusion models running on our Macbooks + AI applications in 3D modelling.

Other information:

Slides made using Big presentation system.

Background colour of pages chosen as a result of this paper, thanks to Becca Rose for bringing it to my attention.

Please see the course GitHub repo and wiki for other information, including information on reading lists, weekly schedule, assessment details and course outcomes.

πŸ––πŸ»πŸ΄σ §σ ’σ ·σ ¬σ ³σ ΏπŸ΄β€β˜ οΈπŸ³οΈβ€πŸŒˆπŸ³οΈβ€βš§οΈ