AI engineering learning path

Application platforms

Compare runtimes and release constraints through independent exercises.

14 chapters · Read in order
Suggested background: Basic programming, events, and state; platform exercises require their respective SDKs and device environments. Offline examples check core mechanisms; full platforms and projects require the implementation and acceptance steps described in each guide.
Choose a platform using device capabilities and delivery needs.

Chapters

  1. Choose an application platform from device requirements

    Use an offline document reader to turn file access, notifications, background work, and distribution into testable requirements before choosing a runtime and application platform.

  2. Structure an offline reader with SwiftUI

    Design a SwiftUI reading list with stable document identity, explicit navigation, persistent offline storage, and cancellable downloads, separating view state from durable library data.

  3. Build a recoverable mobile form with Compose

    Build explicit draft, validation, persistence, and conflict states for a device inspection form, connecting Compose recomposition with Android lifecycle and offline recovery.

  4. Manage pages and asynchronous state in Flutter

    Build a teaching library around Flutter widget identity, navigation, and asynchronous request ordering, with a persistent repository and explicit stale-response, failure, and disposal handling.

  5. Design offline notes with React Native and Expo

    Design React Native and Expo reading notes with durable local records, a synchronization queue, idempotent requests, explicit conflicts, and platform-specific permissions.

  6. Isolate file and interface privileges in an Electron tool

    Separate Electron main, preload, and renderer responsibilities in an interview workbench, using approved file IDs, narrow IPC messages, and explicit transcription job states.

  7. Add controlled offline behavior to learning pages

    Give public learning documents, static assets, and private requests separate policies, explaining service-worker lifecycle, versioned caches, offline fallbacks, and consistent updates.

  8. Handle connection and interface state in a Qt device client

    Use a synthetic sensor panel to explain Qt signals, slots, QObject thread affinity, bounded sample buffers, connection states, and controlled shutdown behavior.

  9. Separate page and background responsibilities in a browser extension

    Design a user-triggered Chrome page-note assistant with separated contexts, narrow permissions, validated messages, and plain-text results that cannot trigger privileged actions.

  10. Connect commands, files, and task notes in a VS Code extension

    Build project task notes by connecting command declarations, extension lifecycle, scoped storage, Workspace Trust, URI handling, and cancellation-safe writes.

  11. Understand Godot scenes and state through a small game loop

    Build a square-collection exercise around Godot scenes, input actions, physics updates, and game state, checking pause behavior, repeated collisions, and restart cleanup.

  12. Connect pages, identity, and backend data in a mini program

    Design a learning-progress mini program with page boundaries, server-side login exchange, record authorization, network-response handling, and device domain validation.

  13. Understand token state and confirmation on a local chain

    Use a local development chain for exercise receipts, explaining ERC-721 identity, mint authorization, transfers, receipts, and the distinction between metadata and on-chain ownership.

  14. Identify platform-specific checks before releasing an app

    Separate build, installation, submission, and review states across mobile, desktop, and extensions, with artifact records, accurate permission disclosures, trusted updates, and recovery tests.

Keep exploring