learnX is a React Native/Expo mobile application designed for Tsinghua University students to access the Web Learning platform (learn.tsinghua.edu.cn). It provides features such as SSO authentication, course management, assignment tracking, file handling, calendar synchronization, and course information sharing via the courseX platform. The app uses Redux for state management, React Navigation for routing, and React Native Paper for UI components, with TypeScript ensuring type safety. It includes background data synchronization and supports iOS, Android, macOS, and Windows (via WSA).
Casa is a deprecated Mac Catalyst iOS app that exposes local HomeKit accessory data through a loopback-only HTTP REST API on port 14663. The architecture is a SwiftUI Mac app (Casa/) paired with an embedded Swift Package CLI (CasaCLI/) that communicates with the app's local server. The core server (HomeKitServer.swift) uses Apple's Network framework (NWListener) to serve HTTP/1.1, with a custom HTTP request parser and JSON response builder. HomeKit access is gated behind an opt-in module system and requires the HomeKit entitlement. The app includes Sparkle for updates, an onboarding flow, settings persistence via UserDefaults, and a file-based rotating logger. The codebase demonstrates solid engineering practices: the HTTP server is hand-rolled without third-party dependencies, the request parser handles keep-alive and content-length correctly, the JSON envelope pattern is consistent, and the HomeKit mapping layer cleanly separates Apple's types from API DTOs. The test suite covers HTTP parsing, response encoding, schema payload generation, settings persistence, and CLI platform gating. SwiftLint is configured and CI/CD workflows exist for building and releasing. The README explicitly states deprecation and points to a successor (omarshahine/HomeClaw). The last commit was 2026-05-30, and the project uses Swift 5.0 with iOS 16.0 deployment target — both showing moderate drift. The Sparkle feed URL and public key are placeholder values in the pbxproj. The codebase is well-structured but no longer maintained.