Submit the project proposal on Gradescope.
Original Authors: Jordan Hochman, Anthony Li, Yuying Fan, and the rest of the course staff.
Please leave feedback by posting on Ed or contacting the course staff.
Required Software: macOS Ventura, Xcode 15
Proposal Deadline: Thursday, 11/7 @ 11:59 PM
Milestone 1 Deadline: Thursday, 11/21 @ 11:59 PM
Final Deadline: Tuesday, 12/3 @ 5:00 PM
It is finally time. This is your chance to shine and crown your efforts throughout the semester into one final iOS app. This project makes up 30% of your final grade.
You will be working on this project in groups of 3 people, exceptions can be made for those who prefer to work in groups of 2, or alone. However, it is highly encouraged to get the experience of working with others, so we are unlikely to grant exceptions. If you donβt have a group in mind, you can make an Ed post or reach out to the instructors, and we will pair you up. We would prefer these groups to be within the same section (because of in class presentations), but it's not required. However, if you choose to form a group between sections, you will still need to present all together during one lecture.
This project will be very open ended. Your group can make basically any app, but note that this app is something you should be proud of, and want to show off. It should not be the same as something that already exists, but rather a cool, novel idea for an app that people would actually frequently use.
There is a minimum complexity needed for your app, but we believe you can judge if something would be too simple. You will need to submit a project proposal (explained later), and we will need to approve of it, so there must be some complexity to the app. We will provide you with some example project ideas whose complexity is the minimum required, so do not submit a proposal for something simpler than these examples.
You will get approximately 4 weeks to finish your project, following the timeline below.
Your project proposal should be a few short blurbs explaining your proposed app idea, as well as some very brief architecture description. Your app has to be able to do something that a website cannot do on its own. You should mention:
We will need to approve your project proposal, so make sure it is complex enough! If you are concerned about your idea or want feedback before submitting, please make an Ed post or come to OH! This app should be something you are interested in making.
For milestone 1, you will need to design and plan most of your app. NOTE: Most/a lot of this work will be done in class during Lecture 11: App Design & UX for your own project. We suggest you wait until then before completing the milestone. The requirements of what you need to include are listed below. Note that you are free to work on programming the rest of the App before this deadline due to time constraints, but we wanted to give some time to plan out the structure if needed.
The first stage is coming up with your app's user stories. User stories are a technique used in software development to capture and communicate a user's requirements or desired features in a concise and easily understandable way. A user story is typically a short sentence or paragraph that describes a specific action that a user wants to perform, why they want to perform it, and what benefit they expect to receive from it.
Here are some key steps to follow when creating user stories:
A Lo-Fi (low-fidelity) prototype is a basic, simplified version of a product or interface that is used to test and validate design concepts and ideas. It is a rough, low-tech representation of the product or interface that can be created quickly and inexpensively, allowing designers to quickly test and iterate on their ideas without investing too much time or resources.
For the purposes of our final project, make sure you have a sketch for every screen (and popup, modal, etc.) of your app.
After reviewing and refining your Lo-Fi prototype, and upon finalizing your app screens, start preparing for the Hi-Fi prototype through creating a View Hierarchy Diagram.
A View Hierarchy Diagram for an app is a visual representation of the relationship between the user interface elements (Views) in an app. It shows the layout of the UI elements and how they are organized and connected to each other. This diagram is useful for understanding the structure and layout of an app's UI, as well as for debugging and troubleshooting issues related to the app's layout.
You will create a diagram for every screen in your app.
TLDR - create a diagram that list all of your appβs views in a hierarchy, one per screen, similar to the ones we drew in class.
A Hi-Fi (high-fidelity) prototype is a more polished and detailed version of a product or interface that closely resembles the final product. It is typically created after the Lo-Fi prototype stage and is used to further test and refine the user experience, as well as to gather feedback from stakeholders, investors, and other members of the team.
It is usually developed through Figma or similar software, although some designers prefer to draw traditionally by hand. For the sake of the project, you are not required to have a hi-fi prototype, although it is highly encouraged and recommended.
Please provide the above sections in a PDF. For each of the above, you must include
As mentioned earlier, this app is very open ended. However, you will be required to include at least 2 concepts covered in the course including:
Also feel free to include other things like MapKit, HealthKit, ARKit, do whatever and go crazy!
App Store Submission note: We are not able to provide everyone with Apple Developer Accounts (which are $99/year), so by default you will not be able to publish your app on the app store without it. However, your app should still be in a state such that it could be published immediately (e.g. with purpose strings, app icon, etc.). If you are interested in getting a developer account, we highly encourage you to publish your app. There is possibly another option of having someone else with an account publish it for you, but then the app would be under their credentials if this matters for you. If you're interested in this or getting a developer account, please speak to the instructors.
During the project presentation, your group will have 3 minutes to:
Also please be prepared to demonstrate your app on a device or simulator as soon as class starts.
This is a large project! You should be making something you are proud to show off to others. We encourage you to come to office hours or ask on Ed if you have any questions or are running into trouble. We're here to help!
Some relevant course material:
This project is worth 100 points, broken down as follows:
To submit the project proposal, upload a .pdf or .docx of your proposal to Gradescope. Make sure you've given the requirements another read before you do so.
We'll provide instructions on how to submit Milestone 1 and the final project later on.