Acceptance Criteria for Grading Beginner iOS App Projects

The content of this post is copyrighted material. If you wish to reuse any part or copy this post somewhere else, you must have written permission from me to do so

Are you a teacher or instructor teaching students the foundations of writing iOS apps? You already have a list of projects but don't know how to grade students' work.

By the way, if you still don't have any list of beginner iOS projects students can work on, please visit my earlier post where I have provided the list with top 5 iOS projects beginner students can work on.

Grading projects is a major part of instructors' work. Through grading, teachers can let their students know the gaps in their learning, how they can improve the app experience, best practices for writing apps, and whether they have completely understood all the learnings or not.

In today's post, I will give you general acceptance criteria that iOS instructors can utilize to grade their students' work and make sure they properly understood all the principles that were taught in the class.

  1. Students should know how to create a new Xcode project
  2. The app should build and run on iOS simulators (Simulators are pre-built into Xcode)
  3. While testing the functionality, the app should not crash or have any runtime issues
  4. The app should have at least two screens with forward and back navigation between them
  5. Students should show a demonstration of using assets in the app by adding and using at least one image, accent color and a custom image
  6. The app should have an app icon set up
  7. Students should demonstrate their proficiency by customizing the launch screen
  8. The app should have the title for all screens
  9. Students should be able to change elements’ attributes in the storyboard
  10. Students should know how to change elements’ attributes in Swift files (Programmatic attributes change)
  11. The app should have IBOutlets for all the UI elements in the storyboard
  12. Students should know how to update and modify IBOutlet properties
  13. Students must demonstrate how to create and attach IBAction to storyboard elements
  14. If using the list, students must demonstrate their working with table view data source
  15. The app must have validation and error reporting in case the user enters the invalid input value
  16. User–facing messaging must be clear and understandable by the layman. Meaning, students must be able to convert internal error messages into simple language that can be understood and interpreted by the casual app user
  17. Students must know how to add layout constraints in the storyboard
  18. Students should demonstrate how to access the storyboard screen in the Swift file (In case of multiple screens app)
  19. Students should know how to read, interpret and debug apps using Xcode console messages
  20. Students should be able to add a new file to the Xcode project
  21. The app should run on iPhone and iPad (If supported) and should look good in all available interface orientations (Portrait, landscape left, landscape right, and so on) (This is possible if all the constraints have been set up properly)
  22. Students should demonstrate how to add swipe actions to the table view list (If applicable)
  23. Students should know how to use the connections inspector to avoid IBOutlet/IBAction-related errors
  24. Students should know how to add at least 3 different UI elements to the storyboard screen
  25. Students should demonstrate how to work with custom objects with at least two properties (e.g. structs)
  26. Students should demonstrate how to change constant values for existing constraints without having to remove and re-add the constraint in the storyboard
  27. In case the app is dealing with a list of items, the student should demonstrate their understanding of array operations by providing examples for accessing/adding and removing array elements pertaining to the app feature

If you have any questions or comments about these ideas, feel free to message me on LinkedIn. You're not alone in this. If you want to expand on any specific bullet point, have suggestions, need correction, or need help with any of the points mentioned here, please feel free to contact me and I will be more than happy to assist

If you have any comments or questions, please feel free to reach out to me on LinkedIn.

If you like my blog content and wish to keep me going, please consider donating on Buy Me a Coffee or Patreon. Help, in any form or amount, is highly appreciated and it's a big motivation to keep me writing more articles like this.

© Jayesh K. Kawli. All Rights Reserved