Project for Mobile & IoT Computing Services
This app is written in Swift 5 and Xcode 12.4.
With lovely Swift Package Manager, the life of managing 3rd party libraries has been way easier than before...
- Open
GimmeAHand.xcworkspace. Cmd + Rto run.- To modify the default launching storyboard, in Xcode, click
GimmeAHand.xcodeproj -> Generaland change inDeployment Info -> Main InterfaceandInfo.plist -> Application Scene Manifest -> Scene Configuration -> Application Session Role -> Item 0 -> Storyboard Name.
- This app is constructed in MVC (model-view-controller) architecture.
- The files are organized and grouped by modules, i.e. Homepage, Order, Profile and Login/Register.
- The view components are mostly in
*.storyboardfiles, along with other reusable views written in code (located inCustomizedViewsfolder) for fast prototyping and work division. - The controller components are in
*ViewController.swiftfiles. - The model components are in
*Model.swiftfiles and managed by*Helper.swiftfiles. The models all comply toNSSecureCodingprotocol so that they can be serialized toDataand saved inUserDefaults. - There is a
MockDataStore.swiftfile to provide some realistic mock data for demo purposes.
A folder-level app strcture is described in the following tree (only folders are displayed).
.
└── GimmeAHand
├── Common # common reusable view controllers
├── Constants # constants and enumerations used across the app
├── CustomizedViews # common reusable views
├── DataHelper # helpers to get/save data models on device
├── DataModel # data models (Order, User, Community)
├── Extensions # extensions for UIView, UIViewController, etc.
├── Homepage # all view controllers related to homepage module
├── LoginRegister # all view controllers related to login and register module
├── Order # all view controllers related to order module
└── Profile # all view controllers related to profile module
- Kuixi Song
- Chengyongping Lu
- Linxiao Cui
- Yifan Huang
- Yue Xu