Mid Term Project

Goal

Create an app that not only incorporates the things you’ve learned up to this point, but one that also stretches you a bit. Additionally, this app should be focused around a topic/feature you are INTERESTED in. The best projects typically emerge from a passion, so leverage your interests to create something cool! A big purpose of this assignment is to solidify your knowledge of the topics we have covered up to this point, but don’t be afraid to incorporate elements that we have not covered yet such as pickers (date, color, or roll your own), progress views, forms, and more!

Projects from the past

Feeling a little stumped? Follow this link to see what students from previous semesters have created. The most recent submissions are at the bottom.

Rubric

  1. Parsimony. Your app shouldn’t have any more views than necessary. Ie. don’t create a bunch of unnecessary views when one view that displays multiple sets of data can work just as well. Think about what provides the best user experience and design/develop accordingly.
  2. Responsiveness. Your app should look great on different screen sizes, from iPhone to iPad. Fortunately, this requirement is much simpler to accomplish in SwiftUI than in the previous version of Swift. Regardless, be sure to test your app out on devices of varying sizes via the simulator.
  3. Ambition. The goal of this project is for you to push yourself to build something that goes just a bit—maybe 15-25%—beyond what feels comfortable.
  4. Polish. Your app should look great. It doesn’t have to be an exquisite work of art with super complex UI. However, it should be evident that you’ve invested in making it look the best you can with the knowledge you have acquired to this point.
  5. Usability. Your app should have an interface that is easy to use and makes sense to the average user. Again, consider the UX throughout your design/development process.

Things I would like to see

Be sure to keep your code tidy and efficient by extracting views when suitable (multiple items styled similarly), so you can format that single view rather than formatting each element independently.

Things that enhance user interaction. Whether that’s leveraging buttons and actions to create satisfying experiences or implementing something new like a dynamic form that changes based on user input. Think of a “it would be cool if…” feature and try to make it!

Good organization. As mentioned previously, projects are always more impressive when they look great on the front end AND back end. For instance, if you can avoid storing 50 lines of date in ContentView by leveraging external swift files, then do it. If you can leverage extracted views and variables to keep your code much shorter, go for it. At the end of the day, we just want to keep things tidy and efficient.

Submission

Once completed, zip your project file and upload it in the appropriate folder in our class OneDrive.

Residential Students: We’ll likely do a casual walkthrough of your apps in class, so be ready! While this won’t be a formal presentation, practice walking through a succinct demo (around 2 min), so we can efficiently see all the cool class creations!

Online Students: We’ll also do a casual walkthrough. Since we can’t share during class, you’ll share some screenshots and/or a short demo video along with a sentence or two about what/why/how you created your app in a thread on Slack so everyone can see your hard work!

📓 GRADING (15 POINTS TOTAL)

✅ Development of working Product (9 POINTS)

The majority of the points for the Midterm will come from the development of a working app. 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 (5 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. Spend some time with custom buttons, font, font colors, background colors, etc.

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.

🗣️ 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!