The Final Project

This is it. It all comes down to this—the final project. This project’s aim is to test your knowledge and the abilities you’ve acquired throughout the semester as well as your drive and ambition to not only make it work, but make it work better (you know we had to fit the NMI tagline in there)!

As you likely noticed, at the NMI, we believe in the power of experiential learning. You can read books, learn concepts, and memorize syntax, but it’s the application of that knowledge that deepens our understanding, strengthens our retention, and forces our curiosity and tenacity to make it work. However, in today’s age of resource abundance and powerful tools, we’re now equipped to take what we’ve made work, and make it work even better. Therefore, this project is divided into two phases:

Phase 1: Make it work.

Similar to the midterm, you’re going to create an app. The purpose of this app is entirely up to you. However, I encourage you to create something compelling to more than just yourself. In other words, if you were to publish this in the App Store, other people should be interested in downloading it.

In this phase, we’re going to test that creativity and tenacity by taking everything we’ve learned in our textbook (Mastering SwiftUI) and this workbook and build your app idea. If we’ve covered the content in class, it’s game to use. Additionally, you can lean on other projects from the textbook or online resources such as Stack Overflow for troubleshooting and debugging. HOWEVER, in this phase, you are NOT permitted to use any AI tools at all. Again, this project is meant to test your understanding of the material we’ve covered and your ability to apply that material to create something cool, useful, and compelling. This app should fully function, be designed well (aesthetics + UX), and demonstrate your understanding of the material covered in this class. Realistically, this app will have its limitations. While we’ve covered a lot in this class, there’s so much more to learn in the world of app dev. Therefore, your app may not be able to do everything you dream up. However, that’s where Phase 2 comes in…

Phase 2: Make it work better.

In this phase, we remove the bridle (not to compare you to a horse) and let you run free. While it’s important to have a thorough understanding of everything we’ve covered in this class, it’s also important to be able to effectively leverage all of your resources to maximize your potential and take your work to the next level. AI tools (ChatGPT, Gemini, Cursor, etc) enable us to research and parse concepts quicker, debug code more efficiently, and even provide inspiration when our imagination isn’t cooperating. It’s imperative to learn how to leverage these tools in our work effectively and ethically. So in true NMI fashion, we’re going to learn by doing. Welcome to Phase 2 of the Final project.

In Phase 2, you’re going to take what you’ve made work, and make it work better. This could be adding a compelling feature(s) or more advanced functionality. It could be a full redesign, enhancing the look and feel of your product. The sky is the limit, and you’re welcome to use any online resources available to you (including AI) to get there. However, this does need to be a product of your creation. You can use AI as inspiration to get you started. You can use it to debug those pesky errors. You can even use it to learn how to integrate a new feature in your product. However, you are not to type in a prompt for an app and copy and paste the code, presenting it as your work. Instead, you’re going to leverage commenting in Xcode to outline the following in your code:

  • Each area you used AI to troubleshoot or generate code, leave a comment noting how AI was used there. Also, if you generated code, ask AI to provide attribution and include that in the comment.
  • For each of those areas, ask AI to provide context, explaining the code to you. Include a line of context you learned in each comment.
  • If it’s work that you added after Phase 1 without the help of AI, note that in a comment as well. Flex those skills.

By the time you’re finished, you’ll likely have many, many comments throughout your code, and it will be beautiful. By doing this, not only are you leveraging tools to create something awesome but you’re doing so transparently, resulting in an end product you can be proud of. Plus, this process is gold for case study content (*cough* Dossier *cough*).

So that’s the gist. Go forth conquer thy app. Make it work. Then make it work better.

📓 GRADING (25 POINTS TOTAL)

PHASE 1 (12 Points)

✅ Development of working Product (8 POINTS)

The majority of the points for Phase 1 of the Final Project will come from the development of a working app using the course resources. Regardless of what you build, your app must successfully build and perform intended functions. 

Additional things that might be assessed:

  • Code formatting
  • File and variable naming conventions
  • Use of comments

😍 App Design (4 POINTS)

Your app should not only run well, but should look good too. You’ll be assessed on the design of your app in addition to its functions. You should also spend time developing a good user experience. This can include ensuring navigation between views is easy, colors have appropriate contrast, and text and images are well sized and legible. 

Note: Any evidence of AI use for Phase 1 will result in a 0.

PHASE 2 (12 Points)

✅ App Enhancement(s) (8 POINTS)

As mentioned in the assignment description above, in this phase, you should make significant improvements or additions to your application from Phase 1. This can be an additional feature or features, more advanced functionality, an enhanced redesign with animations, etc. If you have any questions of whether your Phase 2 idea is sufficient, ask your instructor early in the Final Project timeline.

👨‍💻👩‍💻 In-Code Comments (4 POINTS)

In this phase, you’re leveraging all of your resources (including AI) to help take your product to the next level. As part of this process, it’s imperative that you provide transparency and attribution through comments in your code as outlined in the prompt above. Therefore, 4 points will be dedicated to sufficient commenting. If you did not use AI in any way for your product, you can still provide comments outlining your Phase 2 app enhancements along with any attribution of where you learned the new concepts (if applicable).

🗣️ Presentation or Slack Participation (1 POINT)

While casual, participation in residential and online sections is required. Refer to specific instructor guidelines for dates and expectations.

This is your time to show off all that hard work!