[Swift] Milan Metro app

Complete navigable sample app.

  • Universal target (iPhone/iPad)
  • Apple Watch (watchOS 2)
  • Apple TV (tvOS)
  • Swift 2.0
  • Autolayout

Made up for Coursera exam


Instructions

In this course you’ve learned how to make a much more complete iOS app with complex user interactions, navigation between multiple view controllers, and even networking.

You’ve also taken a dip into the worlds of watchOS 2 and tvOS development.

For this assignment, you can choose what you are most excited about from the following three options and develop a fully functional app.
Your app(s) can be extended from Filterer if you wish to do so but can also be a brand new app of your own design. You can also go ahead and complete two or even all three of the the options if you are feeling ambitious.

Make sure your app runs fine on the simulator as your reviewers may not have access to an iPhone, Apple Watch, or Apple TV.

  • Option 1: iPhone App:
    For Option 1, you will build an iPhone app with the following requirements:

    • Your app must have user interaction in the form of a scrollview, gesture recognizers or custom touch handling.
    • Your app must have at least three view controllers that all play a role in the app.
    • Your app must have data that persists between app sessions and/or networking functionality.

 

  • Option 2: watchOS 2 App:
    For Option 2, you will build a simple iPhone app with an accompanying watchOS 2 app with the following requirements:

    • You will need a simple, functional iPhone app
    • Your watchOS app must have at least three interface controllers that all play a role in the app
    • Your watchOS app should make use of groups to create a nicely structured user interface and have at least one animation

 

  • Option 3: tvOS App:
    For Option 3, you will build a tvOS app with the following requirements:

    • Your app must use the Focus Engine in a non-trivial way and have animations that follow the focus
    • Your app must have three view controllers that all play a role in the app
    • Your app should have a complex component such as a collection view, data persistence, or networking functionality

 

SUBMISSION: Make sure all your project files are in a single folder with the main Xcode project file (with the .xcodeproj extension) at the top level.
Zip the folder first using the Mac’s compression command. (In Finder, right-click the folder and select “Compress”.)
Upload this zipped archive for review. Your peer reviewers will download your zipped file and run the project in their own Xcode.

Review criteria

To evaluate your peers in the best way possible, you should briefly review the work of your peers using the buttons near the top of this screen before giving scores and feedback on any of them. This will help open your eyes to what others have done.

You will be asked to provide feedback to your peers in the following areas:

  • Does the app fulfill the three requirements for each option? 2pts per requirement.
  • Does the app provide useful or interesting functionality? 1 pt
  • Does the app have a nice, structured user interface? 1pt
  • Does the app exhibit any bugs or crashes? 1pt if no

LANGUAGE: Submissions must be in English

Results /iPhone App:

  • user interaction in the form of a scrollview
  • gesture recognizers or custom touch handling
  • app must have at least three view controllers that all play a role in the app
  • app must have data that persists between app sessions
  • networking functionality.

Results /watchOS 2 App:

  • simple, functional iPhone app
  • watchOS app must have at least three interface controllers that all play a role in the app
  • watchOS app should make use of groups to create a nicely structured user interface
  • have at least one animation.

Results /tvOS App:

  • app must use the Focus Engine in a non-trivial way
  • have animations that follow the focus
  • app must have three view controllers that all play a role in the app
  • app should have a complex component such as a collection view
  • data persistence
  • networking functionality.
Happy study.

Download code here: https://github.com/elpsk/MetroApp

 

Alberto Pasca

Software engineer @ Pirelli & C. S.p.A. with a strong passion for mobile  development, security, and connected things.