CIS 1951
Fall 2025

Final Project

Submit the project proposal on Gradescope.

Please leave feedback by posting on Ed or contacting the course staff.

Required Software: macOS Ventura, Xcode 15

Proposal Deadline: Tuesday, 11/11 @ 11:59 PM
Milestone 1 Deadline: Wednesday, 11/19 @ 11:59 PM
Final Deadline: Wednesday, 12/3 @ 5:00 PM

Introduction

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.

Project Structure

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 novel idea for an app that people would actually 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.

Example Projects

  • Fitness Tracker: An app that tracks your workouts, monitors your progress, and provides personalized fitness tips. This would probably use HealthKit, persistent storage, and maybe location/motion.
  • Budget Planner: An app that helps users manage their finances, track expenses, and set budgeting goals, integrated with some online APIs for finance data (just for more complexity). This would need persistent storage and network requests.
  • Recipe Finder: An app that suggests recipes based on ingredients you have at home and dietary preferences. This would require network requests, and to be complex enough would require persistent storage (and would be cool to do GPT integration)!

Project Proposal

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:

  • App name
  • Your group members
  • What your idea is
  • Motivation: why you want to do this / how it would be helpful for people to use / the purpose of the app
  • A brief description of the general app architecture and views planned (keep it short though, doesn't need to be very detailed)
  • Mention what course concepts will be included in your app (note that at least 2 are required, see the section below)

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.

The proposal should be short! (No more than half a page.)

Milestone 1

Details will be released during Lecture 11: App Design & UX on November 12.

Requirements

As mentioned earlier, this app is very open ended. However, you will be required to include at least 2 of these concepts:

  • Gesture recognition
  • Location data
  • Motion data
  • Network requests
  • Persistent data storage

The core (i.e. the concepts you choose to implement) of your app must be implemented in SwiftUI. Do not use any APIs that were deprecated in iOS 17.0 or earlier. If you would like to use a third-party library to help with these course concepts, you must let us know in your project proposal or on Ed beforehand, and we must approve it.

Your app must have an icon that would be suitable for submission to the App Store.

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.

Academic Integrity

Final project submissions, like other Penn coursework, are subject to the Code of Academic Integrity. This means:

  • You may not copy code (or other substantial work) from other teams.
  • You may not submit work that has, or is being submitted for another class. You must inform us, and we must approve it, if you would like to submit something adjacent to work you may have done for another class.
  • You must appropriately cite any code, libraries, or other resources you use that are not your own original work.

Specifically for this class and project, we will allow you to:

  • Discuss the project with other students in the class, provided there is no copying of code
  • Use open source libraries, provided they are not responsible for the course concepts you will be implemented (unless explicitly authorized by us) and you cite them appropriately
  • Use AI for your project in accordance with the AI policy

Project Presentation

During the project presentation, your group will have 3 minutes to:

  1. Introduce your app idea and its main features
  2. Walk through the key functionalities and user interface of your app (live demo)
  3. Highlight how you incorporated course concepts into your app There might be a brief Q&A session after your presentation, so be prepared to answer questions!

Also please be prepared to demonstrate your app on a device or simulator as soon as class starts.

Resources

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:

Grading

This project is worth 100 points, broken down as follows:

Project Proposal (5 points)

  • 5 points: Group formation is complete, app idea is interesting and complex enough to work on for project, good amount of thought put into creation, design, and architecture

Milestone 1 (10 points)

  • 10 points: Detailed rubric TBD

Project Code (40 points)

  • 10 points: App architecture makes sense (e.g. views/view models/models)
  • 10 points: App functions as intended with no bugs
  • 10 points: Correctly implements one course concept
  • 10 points: Correctly implements second course concept

Project Presentation (40 points)

  • 10 points: Clarity - is presentation clear and app idea well-motivated
  • 10 points: Demo covers the important functionality of app
  • 20 points: Is the app a finished product? Ask yourself, if someone else made this app and I downloaded it from the App Store, would I enjoy using it and is it polished? It should be a fully functional, complete, error free, and enjoyable app.

Code Quality & Style (5 points)

  • 5 points: Code is readable (i.e. indentation and naming of symbols is reasonable)

Deductions

  • -40 points: App doesn't compile
  • -20 points: App crashes or fails to launch during normal execution
  • -20 points: App doesn't meet standards for technical complexity
  • -5 points: Use of a deprecated API as of iOS 17

Submission

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.

Dates and times are displayed in EST.