Assignments

Due to the disruption of the Spring Semester, we will only have one more project. We will continue with Project 2 as the final project. I have updated the point values. Elements that would have been associated with Project 3 can be added to Project 2 as “extras,” based on your ability to implement them. There will be tutorials and examples for each feature. Each tutorial has a GitHub repository with a working example.

Project 1 Basic iPhone Application – game, quiz, calculator or other type of interactive application 30%

Make a basic app with a single View Controller that demonstrates the functionality you have learned in the class. This application should get information from a user, process it and return it to the app. This can be a quiz, calculator, game or other interactive application.

Requirements – app must demonstrate use of the following:

  • Label
  • Text Field
  • Button
  • Switches or Sliders (either or both)
  • Image View
  • Appropriate code for Outlets and Actions as required by the application
  • Application functions properly for its purpose
  • Proper use of text and concatenation
  • App should demonstrate good content practices and basic color/design/layout techniques

Possible Extras

  • An advanced calculation
  • Use of random number generator
  • Use of timer
  • Other advanced features that you determine that we have not yet covered in class
  • Have the Image View change programmatically.

Turn in the project via GitHub. Upload the entire XCode folder that contains your project. Make sure to initialize with a Readme, so you can have access to the Upload Files button.

Put the url of the github repository on the #appproject1 Slack channel. I will be downloading your repositories and opening them in XCode to grade them.

If you make a mistake, you can go to the Settings area, all the way to the bottom and delete the repository and start again. The Delete feature requires you to type in the exact name of the repository you are deleting.

Project 2 – Mobile application using multiple ViewControllers 40% – this is now the final project

This project should demonstrate most of the things you have learned this semester. Make an interactive application that contains the following:

Requirements 

  • Multiple View Controllers and appropriate navigation – have at least 3 view controllers with functionality.
  • Use of Navigation Controller for Back button to main scene
  • Return data across scenes
  • Picker View
  • Labels
  • Image View – still or interactive, as required for your project’s purpose
  • Appropriate code for Outlets and Actions as required by the application
  • Application functions properly for its purpose
  • Proper use of text and concatenation
  • App should demonstrate good content practices and basic design techniques
  • Optional: TextFields, Switches, Sliders, Buttons used as necessary to achieve your projects goals. But choose the appropriate method for your actions.

Possible Extras

  • New extra added to final project – Data source from Firebase, presented in a TableView. Can read from and/or write to database.
  • Correction of potential user input errors
  • Use of random number generator
  • Use of timer
  • Advanced logic for a calculation
  • Other advanced features that you determine

Turn In Project – If you have not used a cloud, Firebase feature, you can turn in this project as you have before. Make a GitHub repository, post then entire project from the top-level folder. Provide the github url in the #finalproject folder.

If you have use a Firebase feature, you will turn in this project differently than previous projects. At the top-level folder of your project, create a zip archive (in the Finder, ctrl-click on the folder and click Compress). This will create a zip archive. Find the #finalproject Slack channel and upload that Zip file only there. I will be able to download your zip, uncompress it and run your app. The pod files create too many files to load on GitHub, even if it is zipped.

GitHub for Portfolio – This is not required for turning in the project, but for your own portfolio, you should also upload the project to GitHub. But because these projects have keys associated with your Firebase account, do not upload the Pod folder nor the GoogleService-info.plist file to GitHub. Also, GitHub only allows up to 100 files to be uploaded via their interface, and the Pod folder causes you to exceed that amount (more are allowed via Terminal upload, but we haven’t covered that). Make sure you remove these folders/files from any GitHub upload you make. You really only need users to see your code in the View Controllers to see what you created.

Also for your own portfolio, you should represent these projects via screenshots (or screencast video) and include with a description on your website.

To receive an A on the project, you must demonstrate all the required elements, the application must function as intended, must be designed well, must include good content and must demonstrate creativity.

Final Project 25% – Project 2 is now the final project. The data elements described for the final project may be included as “extras.”

Combine all techniques and include a database option

Create a new project that combines all the elements we have discussed this semester with a cloud data feature using Firebase. See the tutorials on CodeActually.com to learn how to implement a TableView, Data and Messaging.

This is to be an app with a specific purpose and utilizes appropriate code and algorithms to support desired functionality. The project will have appropriate navigation and instructions so users can understand how to operate the app. It should be designed well, using appropriate images, objects and typography.

Requirements

  • Data source from Firebase, presented in a TableView. Can read from and/or write to database.
  • Multiple View Controllers and appropriate navigation – have at least 3 view controllers with functionality.
  • Use of Navigation Controller for Back button to main scene
  • Return data across scenes
  • Appropriate use of user input methods: Picker View, TextField, Switch, Slider, Buttons
  • Labels
  • Image View – still or interactive, as required for your project’s purpose
  • Appropriate code for Outlets and Actions as required by the application
  • Application functions properly for its purpose
  • Proper use of text and concatenation
  • App should demonstrate good content practices and basic design techniques

Possible Extras

  • Picker as navigation
  • Advanced logic for a calculation
  • Use of map
  • Use of random number generator
  • Use of timer
  • Correction of potential user input errors
  • Other advanced features that you determine

Turn In Project – You will turn in this project differently than previous projects. At the top-level folder of your project, create a zip archive (in the Finder, ctrl-click on the folder and click Compress). This will create a zip archive. Find the #finalproject Slack channel and upload that Zip file only there. I will be able to download your zip, uncompress it and run your app.

GitHub for Portfolio – This is not required for turning in the project, but for your own portfolio, you should also upload the project to GitHub. But because these projects have keys associated with your Firebase account, do not upload the Pod folder nor the GoogleService-info.plist file to GitHub. Also, GitHub only allows up to 100 files to be uploaded via their interface, and the Pod folder causes you to exceed that amount (more are allowed via Terminal upload, but we haven’t covered that). Make sure you remove these folders/files from any GitHub upload you make. You really only need users to see your code in the View Controllers to see what you created.

Also for your own portfolio, you should represent these projects via screenshots (or screencast video) and include with a description on your website.

To receive an A on the project, you must demonstrate all the required elements, the application must function as intended, must be designed well, must include good content and must demonstrate creativity.

Quizzes 5%

Discussion posts 15%

Attendance/Participation 10%

Grading

For all projects, the following rubric will be utilized. Degrees within each grade may be handled by + and – . Since this is an advanced course in the Digital Media Innovation curriculum, we have high expectations for the execution of work in this course.

A – All requirements are met and are executed exceptionally well. Creativity evident in execution and some aspects of the project go beyond requirements.

B – All requirements are met and are executed in an acceptable manner. There is some creativity evident in execution, but the project does not go beyond requirements.

C – Most requirements are met and are executed in an acceptable manner. There is minimal creativity evident in execution and the project does not go beyond requirements.

D – Some requirements are not met or are not executed in an acceptable manner. No creativity evident in execution.

F – Failure to deliver on several of the requirements of the project in an acceptable manner.