Coder Social home page Coder Social logo

bop's Introduction

BOP

Bag of Popcorn (BOP) is an iOS application that shows the upcomig movies from The Movie Database (TMDb) Api.

Project Description

As a mobile engineer you've been tasked with the development of an app for cinephiles and movie hobbyists. This first version (MVP) of the app will be very simple and limited to show the list of upcoming movies. The app will be fed with content from The Movie Database (TMDb). No design specs were given, so you're free to follow your UX and UI personal preferences. However the app should work both in landscape and portrait orientations. The choice of platform (iOS, Android, Xamarin) and development approach is also for you to decide based on previous experience and/or personal interest.

Functional Requirements

The first release of the app will be very limited in scope, but will serve as the foundation for future releases. It's expected that user will be able to:

  • Scroll through the list of upcoming movies - including movie name, poster or backdrop image, genre and release date. List should not be limited to show only the first 20 movies as returned by the API.
  • Select a specific movie to see details (name, poster image, genre, overview and release date).
  • (Optional) Search for movies by entering a partial or full movie name.

Technical Requirements

You should see this project as an opportunity to create an app following modern development best practices (given your platform of choice), but also feel free to use your own app architecture preferences (coding standards, code organization, third-party libraries, etc).

A TMDb API key is already available so you don't need to request your own: 1f54bd990f1cdfb230adb312546d765d. The API documentation and examples of use can be found here:

DELIVERABLES

The project source code and dependencies should be made available in GitHub. Here are the steps you should follow:

  1. Create a public repository on GitHub (create an account if you don't have one).
  2. Create a "development" branch and commit the code to it. Do not push the code to the master branch.
  3. Create a "screenshots" sub-folder and include at least two screenshots of the app.
  4. Include a README file that describes:
  • Special build instructions, if any
  • List of third-party libraries used and short description of why/how they were used
  1. Once the work is complete, create a pull request from "development" into "master" and send us the link. We will review your code and might ask you some questions directly on your pull request.

Libraries

Alamofire

  • Alamofire, I used Alamofire because it became the HTTP Requests manager easy.

SwiftyJSON

  • SwiftyJSON, I used SwiftyJSON to help me work easily with JSON Objects.

SDWebImage

  • SDWebImage, I used SDWebImage to do image cache.

Hero

  • Hero, I used Hero to improve the user experience throught the view animations.

SwiftNotice

  • SwiftNotice, I used SwiftNotice to show alerts with errors and informations messages for users.

FCAlertView

  • FCAlertView, I used FCAlertView to show alert with internet connection error message for users.

bop's People

Contributors

hoffsilva avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.