The best timetable application for SNU students, developed and maintained by SNU students.
App Store · Request Feature · Report Bug · WafflestudioThis repository contains two iOS projects in the root directory: ./SNUTT
and ./SNUTT-2022
.
SNUTT | SNUTT-2022 | |
---|---|---|
First Release | 2017.03.22 | 2022.11.12 |
Directory | ./SNUTT |
./SNUTT-2022 |
Version | <=2.1.3 |
>=3.0.0 |
Framework | UIKit | SwiftUI |
Status |
- ♻️ Clean Architecture + MVVM
- 🌓 Dark Mode Support
- 🖼️ Widgets Support
- 💫 Hand-crafted UI components
To get the project up and running, ensure that you have the following files in appropriate path:
SNUTT-2022/SNUTT/DebugConfig.xcconfig
SNUTT-2022/SNUTT/ReleaseConfig.xcconfig
SNUTT-2022/SNUTT/GoogleServiceDebugInfo.plist
SNUTT-2022/SNUTT/GoogleServiceReleaseInfo.plist
You'll need to have fastlane installed on your local development machine. See fastlane installation guide for more information. One of the possible methods could be using homebrew:
brew install fastlane
-
Clone the repository.
git clone https://github.com/wafflestudio/snutt-ios.git
-
Navigate to the project folder.
cd SNUTT-2022
-
Configure necessary certificate and provisioning profile. You can switch between multiple environments, including environment variables and code signing settings, all at once via following commands. Note that you must provide a valid passphrase when prompted.
fastlane certificates_development --env dev # or fastlane certificates_development --env prod # or fastlane certificates_distribution --env dev # or fastlane certificates_distribution --env prod
-
Now you should be able to run the app on your real iOS devices!
⚠️ Admin privileges for this repository are required in order to push this app to the App Store or TestFlight.
This project is deployed by the tag-based deployment method. Simply create and push tags according to the rules below, and fastlane will take care of the rest.
^(testflight|appstore)\/v(\d+)\.(\d+)\.(\d+)-(release|debug)\.(\d+)$
For instance, a tag named testflight/v3.0.0-debug.1
will trigger an action that creates a debug
build of the app, sets the version and build number as 3.0.0
and 1
respectively, and uploads it to TestFlight.
Alternatively, an action scheduled under the tag named appstore/v3.0.0-release.1
will create a release build and submit it to App Store for review. Note that after the review process is complete, you should manually choose to release the app on App Store Connect.
- You cannot upload debug builds to App Store. In other words, tag names such as
appstore/v3.0.0-debug.1
will be ignored. - The build numbers for any specific version should be monotonically increasing for each build configuration. For example,
appstore/v3.0.0-release.5
can't precedetestflight/v3.0.0-release.3
. - To submit a build to App Store, you must create a new release. The release description should be carefully written, because it will go directly into the App Store changelog.
- iOS 16 support (Lock Screen Widgets, Live Activities, etc.)
- Multi-language support
- Apple Watch support
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Distributed under the MIT License. See LICENSE
for more information.
The app architecture is highly inspired by the following source codes and articles.
Big credit to @Rajin9601, who is the original author of this project.