Skip to content

Latest commit

 

History

History
81 lines (57 loc) · 3.7 KB

File metadata and controls

81 lines (57 loc) · 3.7 KB

Music Player App

Introduction

So far in your journey as an iOS developer, you've learned how to: build responsive UI, structure an app using MVC, persist data locally and remotely, interact with a backend service and used a variety of APIs available by Apple.

There are still many other topics you can explore, but with what you know today, you are able to build apps for any domain you can think of.

This project will combine your current expertise with the content from MOB 2.3 are able to build an app that's responsive and optimizes resources.

Learning Outcomes

By the end of this project, you should be able to...

  1. Build a functional app that satisfies the requirements listed below.
  2. Implement common practices to aid with concurrency and persistence in an iOS app.
  3. Use GCD and/or Operations to work with the main and background threads.
  4. Use Xcode's Time Profiler to check the performance of your app.
  5. Be capable of explaining your coding decisions.

Description

Your task is to create an app that let's users discover new music. The app will also let users preview songs and save them as favorite songs.

  • There's a login page to authenticate the user with Spotify's API/SDK
  • The home page should display new releases (albums).
  • When you tap on an album, you will go to another view controller to view the tracks.
  • Users can listen to a preview of the songs.
  • Users can also save songs by marking them as favorite.
  • There's another view controller to list all of your favorite songs. You can preview the song from this VC too.
  • Optionally, add a VC for an artist's info and top tracks.

Check the resources for helpful documentation!

Wireframes

wireframe

Requirements

  1. Adhere to the description.
  2. You must use the Spotify API or Spotify SDK
  3. Allow for the tracks to be previewed (30-sec clips)
  4. Use a persistence method to save the favorite tracks, up to your criteria which one to use.
  5. Use GCD and/or Operations to handle concurrency.
  6. Authenticate users with the Spotify API/SDK - should also be able to log out
  7. Time profile your app and show evidence of it.

Stretch challenges

  1. Add favorite songs directly to a user's playlist in Spotify
  2. Create a VC for an artist's info and top tracks.
  3. Get creative with your designs!
  4. Implement Apple Sign In

Rubric

You must score at least 70 points to pass the assignment. Breakdown of points below:

  1. (15 points): Code Quality: intuitive variable names, conventional casing, clear comments, modules are flexible and local, short line lengths, proper formatting.
  2. (10 points) Create a usable design that follows iOS UI Guidelines
  3. (15 points) Displays 10 most played artists
  4. (15 points) Tracks can be previewed
  5. (15 points) Each artist has a view that displays the top 10 tracks by the artist
  6. (15 points) Ability to favorite a top track, and view all favorites in a list in a separate view
  7. (5 points) Uses Spotify API/SDK
  8. (5 points) Evidence of using Time Profiler
  9. (5 points) Code on GitHub. Include a README file

Resources

Past Students' Work