This is where your group will put your project, the Next Big Thing in apps!
You must implement the project in Swift, using SwiftUI for the View. You may not use external libraries or frameworks without prior approval. Firebase is an approved framework. If you wish to use functionality from UIKit or other built-in frameworks, you may, but the bulk of your interface must still be in SwiftUI. In particular, for UIKit, you should limit yourselves to the bare minimum functionality needed. When in doubt, ask.
Your project must go beyond the topics we covered in class in some significant way, and must somehow take advantage of features of a mobile device (mobility, camera, motion sensors, etc.).
You will need to submit the following things:
- a project proposal
- Milestone 1
- Milestone 2
- Milestone 3
- Final project, which must include
- a working Xcode project
- a 5-10 page report
- a short (about 5 minutes) demonstration video
See below for details about these.
Your project will be a series of commits, starting with a project proposal. This proposal can be in markdown, plain text, or PDF, and should have an obvious name. In addition, you should include an Xcode project, as with the solo projects.
We will discuss your proposal with you, so that it is appropriately scoped for difficulty (not too easy, nor too hard), and has clearly-identified milestones, minimal goals, and stretch goals. There will be three milestone submissions before the final submission.
The final submission must include the following:
- an Xcode project that builds and runs on the iPhone 12 simulator
- a 5-10 page (roughtly 2500 to 5000 words) report describing not just your app, but your design process, and how your ideas evolved over the course of the project
- a 5 minute screen recording of your app, including audio description; several apps will be selected for in-class demonstration based on these
Your proposal should have the following format:
- Project title
- List of team members
- General description of the app
- Minimal Goals -- these are things your app must do
- Stretch Goals -- these are additional functionality that might earn extra points
- Project timeline, including development milestones
We have provided a sample proposal on ELMS that corresponds to the in-class exercises. Your proposal will obviously have to include functionality beyond what we will do for these exercises.
Your milestone document should be named either MilestoneX.txt
,
MilestoneX.md
, or MilestoneX.pdf
, where X
is the milestone number
(1, 2, or 3). It must be committed to your repository and pushed to the
server.
In this, list what you have accomplished, and if you did not meet your proposed target for the milestone, provide an updated schedule illustrating how you will complete the project on time. Feel free to include any design changes or lessons learned. These will be useful when putting together your final report.
Your code should also be up-to-date on the server, so that we can verify that actual progress is being made. It does not need to be completely functional.
Please note that any real-world project is likely to require at least slight schedule adjustments. Don't panic if you didn't meet all of your initial milestone goals! The purpose of the milestones is for us to check on your progress and provide feedback as needed.
The final report for your project should be titled Final.txt
, Final.md
,
or Final.pdf
. It should have the following sections:
- Title
- Overview describing the motivation and high-level concept of the app
- List of goals, where each is described, not just a bullet list
- Walk-through of user interactions, including screen captures (the simulator has a built-in screenshot button)
- Discussion of the development process, including when/how tasks were completed; any setbacks encountered; decisions and changes made to the initial plan; and what you learned, both about the development process and the features you used that were not covered in class
- Potential future directions