The final project will be very similar to the Midterm Project. You are to come up with an app idea, and implement it. That's all. You may absolutely improve on your midterm idea, but we're going to want to see some substantial change/improvement to your midterm project. You can work in a group or go solo if you wish. Those that work in groups will need to make something a bit more substantial than individual projects.
You guys have more of a blank check on this one. We won't manage you (unless you ask us to), and we won't check in on you (unless you ask us to). You're on your own. That being said, we do give you guys some requirements to meet (below), but we're hoping that you use the course staff as a resource and ask for help. For some people, this is the hardest aspect of software development.
Your final project submission must be presentable by class-time on Monday, April 27th. You will present your project in class on that day in a short, 5-minute presentation that shows off all the cool features of your app. So make sure your app is, like, 95% done by then. Your formal 100% submission is due Tuesday, April 28th at 11:59 PM. You may use any remaining late days on this project. You may not use late days for the presentation.
Remember, this final project is worth 40% of your grade. Do what you can to ensure that your app kicks ass. Good luck.
For the Final Project, we are going to require specific pieces be used that we have learned throughout the semester, or pieces that we will learn in the near future. You should plan your project around these requirements or change an existing idea to include the requirements.
You must include the following in your application:
- * A custom view - Create something with UIKit. This can be as simple as making a view a different shape for a profile picture, or as complicated as creating your own CoreGraphics graphing API, or even just a cool TableViewCell. Just don't use all stock parts throughout your app. Make the app look yours.
- * An animation - create one custom animation in your application. This can be as simple as an opacity change, a background color change, having a view transition in, etc. You are free to use the examples from the Animations application
- * Clear use of Git.
Your application must also include 2 things from the following list:
- * SpriteKit
- * Portability: your app should look good on iPhone 4, 5, 6, and 6 Plus!
- * Very nice UI!
- * Parse! Or, CoreData, if you're daring.
- * External API (Facebook, Twitter, Dropbox, etc.)
- * An Apple Watch app!
- * Camera / Photos - using a UIImagePicker to allow a user to take or select a photo from his or her library
- * Asynchronous loading - using Grand Central Dispatch to do something in the background.
- * Gestures - add a swipe, a tap, a rotate, etc. to your application
- * CocoaControls - use something someone else has built! Figure out their API and how you can include their view in your application
- * CoreLocation/MapKit - find a User's current location and use it in an interesting way, or display their location on a map!
- * CoreImage, SpeechKit, etc!
- We're very low on ideas right now! If you have an awesome app idea, let us know, and we'll let you know if it's challenging enough to count as something on this list.
Finally, you should either submit a few screenshots, or maybe even a video demo of your app. This is for course archives, as we'd like to make a gallery of all of your awesome apps. You should submit your screenshots in your final project submission directory. If you're going to submit a video, that's fine too, but please don't submit it with your project. This will kill my Google Drive account. Upload your video to a video playing service (YouTube, Vimeo, etc) and post the link in a README.txt in your final project submission.
If you're not comfortable with your project being displayed on the course website for future courses to see, you do not have to do this. However, we very strongly implore that you all do this as it helps create a historical record of our class.