English | 正體中文
Magic Pinecone(神奇松果)is an all-in-one campus app for National Central University students.
This repository is the Kotlin Multiplatform rewrite of the original Flutter app. It is under active development.
Want to try Magic Pinecone in a browser? Check out the Lite version.
- Course search: Browse and search the NCU course catalog.
- Timetable planning: Select courses, preview them on a timetable, and explicitly save a plan.
- Offline persistence: Store course data and saved plans in a local SQLite database with Room.
- Native platform shells: Use Jetpack Compose on Android and SwiftUI on iOS while reusing core logic, data, and Compose UI through KMP.
Portal integration and session management from the Flutter app have not been migrated yet.
- JDK 17
- Android Studio with an Android SDK for API 37
- Xcode for the iOS app
git clone https://github.com/magic-pinecone/mpc-compose.git
cd mpc-composeOpen the project in Android Studio and run the androidApp configuration, or build a debug APK from the command line:
./gradlew :androidApp:assembleDebug- Set your Apple development team in
iosApp/Configuration/Config.xcconfig. - Open
iosApp/iosApp.xcodeprojin Xcode. - Select a target device and run the app.
Run the shared Android-hosted and iOS simulator tests:
./gradlew :shared:testAndroidHostTest
./gradlew :shared:iosSimulatorArm64TestRun all configured project checks:
./gradlew checkThe full check also requires SwiftLint to be installed.
- App icon: Designed by Jui-Ting Wu.
- Course data: NCU-Course-Finder-DataFetcher-v2.