Project
Project Possibilities
At least three screens are required.
Generically the screens could be:
• A “main” screen where something is done.
• A “config” screen
• A “keep track of …” screen
Or:
• A “main” screen that has a list of things
• A “details” screen for each thing in the list
• An additional screen
Also consider using things like:
• MapKit
• WebKit
• SpriteKit, SceneKit for a game
• Networking
• A database
• Phone sensors (may require a device)
• Location (may require a device)
• Or other iOS capability
Some of the above would require a mobile device to use.
We will talk about some, but not all, of the above.
Future topics will include:
• Table views
• Archiving, saving data
• Layout
You will be able to use these in your project.
Project Design
Think about a user using your app.
Do the screen functionality and navigation design first.
Draw rectangles to represent screens.
For each rectangle/screen write in the rectangle what the user can do on that screen.
Figure out the navigation between the screens.
Think about it from a user’s perspective.
The first screen should be the screen the user wants to see/use first or the most.
There should not be a login screen.
• A user can have a passcode to limit access to her/his device.
• Thus there is no need for a login screen.
• A login screen requires permission in an email from the instructor.
• If you think you have a legitimate need for a login screen talk to me and tell me why your app needs one.
Three Screens
A minimum of three screens is required for all projects.
For all projects a splash or intro screen does not count as one of the three required screens.
Similarly a screen that is simply “Game Over”, even if it allows a restart, does not count as one of the three required screens.
A screen that only has descriptive information about the project does not count as one of the three required screens.
If you have a question about a specific screen talk to the instructor.
Project Proposal
Send an email to the instructor by the project proposal due date with the following information:
• The name of your project.
• The person you are working with, if any.
• A paragraph describing your project.
• List and describe the screens your project will have.
Number the screens so it is clear what each screen is.
Describe each screen separately in its own paragraph.
Do not have a single paragraph that describes all screens.
• List the special features of your project, if any.
• Additional relevant information, if any.
Project proposals that are not structured as specified above will not be accepted.
In your proposal describe each screen separately in its own paragraph or use a list.
Do not have a single paragraph that describes all screens.
Once a proposal has been accepted the persons working together, if any, cannot be changed.
Your project must be approved.
Your document proposal should be a pdf if it sent as an attachment.
Don’t send a word processor file.
Requirements for All Projects
Project Documentation Requirements
A user’s guide document must be provided.
Put the user’s guide document at the top level of your repository folder.
Do not put the user’s guide document in your project folder.
The guide must have:
• A description of the app
• A description of each screen
• A description of any special features of the app
For two person projects provide a section in the documentation that names each person and specifies the contribution of each person.
One or two pages is sufficient for the documentaiton.
Your document should be a pdf if it sent as an attachment.
Don’t send a word processor file.
Project Code Requirements
All code, except Xcode template code, Xcode framework code, and examples provided by the instructor must be your own.
• You are not permitted to use someone else’s existing code.
• You are not permitted to have someone else write code for you.
• You are not permitted to copy and paste code from another source into your project.
• You may model some of your code on existing code, if so cite your source.
If you need to use an additional library that is not part of the Xcode SDK you must get email permission from the instructor.
Plagiarized code will result in a project score of 0.
See the syllabus also.
General Project Requirements
Points will be deducted for requirements not fulfilled.
The deduction listed is the maximum.
Deduction
Requirement
-3
No top-level file or folder has a space in its name.
-3
No top-level file or folder has a space in its name.
-5
The project proposal is turned in on time.
-5
The app must be well organized.
-5
The app must be app visually appealing.
-5
The app must do something someone might have a use for.
-5
The first screen must be the screen the user would use the most.
-10
A user guide is turned in and contains the information described above.
-2
The user guide is in the top-level of your repository folder.
Don’t put the user guide in the project folder.
-8
The app does not retain and restore data/state.
An app must retain the data/state so that when the app is re-run the previous data/state is retained and reinstated.
-5
The app must use something beyond the basics covered in the first two thirds of the class such as, maps, networking, webkit, database, use phone sensors, location, etc.
-15
A user’s guide document must be supplied.
See the section on this below.
-35
The project must have three or more screens.
• For all projects, a screen that simply describes the project does not count for one of the required 3 screens.
• For all projects a splash or intro screen does not count for one of the required 3 screens.
• There should not be a login screen.
A login screen requires permission in an email from the instructor.
If you think you have a legitimate need for a login screen talk to me and tell me why your app needs one.
-30
The project must have code from one screen affect, or be affected by, another screen, for example a config screen, or a summary screen.
-35
The project must have a means to navigate to each screen.
-50
The instructor can access all screens.
If your app requires a password and the instructor cannot get to all screens the 50 point deduction will be given.
-??
The General Programming Requirements apply.
The deduction varies.
-??
The project specified in the project proposal has not be implemented.
Project Submission Requirements
The following must be true when you are done, the indicated deduction will be taken if not.
Deduction
Requirement
-4
In your top-level repository directory you have a directory named YourProjectName or a zip file named YourProjectName.zip.
-4
If you provide a zip file, when the file is unzipped there is a single directory named YourProjectName
-50
Swift 4 is used.
Any app that uses Objective C, Swift 2, or Swift 3, will have this deduction and no resubmission will be permitted.
-50
When your code is checked out from the repository your application will build, run, and perform as described in your project proposal and user’s guide.
The project does not need to be exactly as specified in the proposal but cannot be less.
The maximum score for an application that does not run, but seems mostly complete, is 50. See the syllabus.