Advanced iOS Final Projects

For your final project, you will design and implement an app of your choosing. If you like, you can explore frameworks that we have not yet covered in class. You may also decide to dig deeper into topics we have already covered.

The completeness of the submitted app is the most important objective, which does not necessarily mean a full realization of the developer’s vision. It’s better to submit a polished app with fewer features than an app with many unpolished features. Apps that are “App Store ready” will receive the highest grades.

Written Materials

Written materials should be submitted as a PDF in your git repository.

Executive Summary

Write a one-page summary of your application that answers the following questions:

Marketing Materials

Consider how you would market your app if you were to submit it to the App Store. Provide the following information:

Requirements

Adaptive Layout

Decide whether you want to build an iPhone, iPad or universal application. Determine which device orientations you will support.

Custom Segue

Your app should include at least one custom segue that provides a visually appealing transition between view controllers. We will talk about custom segues during an upcoming session.

Testing

Choose one class in your project that has at least 3-4 methods and contains non-trivial logic. Write unit tests covering the methods in the class.

Connectivity

Data & Persistence

Your app should persist data between sessions. You may choose the most appropriate persistence method for your application. Consider the options we’ve covered in class: UserDefaults, Documents Directory, CoreData, CloudKit. You may also choose a persistence option we haven’t covered, such as Realm or Firebase.

Third-Party Frameworks

You may use third-party frameworks with approval from the instructor. List all third-party frameworks you plan to use in your final project proposal. If you find a framework you’d like to use after your proposal has already been submitted, you must request approval at that point.

When you submit your final project, you must list any third-party frameworks you used in your README. You should be familiar enough with any third-party framework used to explain in detail how the framework works.

Grading

In your README, remember to provide the instructor with all of the information necessary to test your application. For example:

75% of your grade will be based on functionality, and 25% of your grade will be based on code quality.

Misc. Reminders

Presentations

We will have informal presentations of the final projects during the last class session on Wednesday, June 12.

Your presentation should cover the questions answered in your executive summary (above). Most importantly, you should show screenshots, play a short video or do a live demo of your application.

Due Date

Final projects will be due Wednesday, June 12, 2019 at 11:59pm.