Giter VIP home page Giter VIP logo

myanimelist's Introduction

MyAnimeList

Simple sample of using the VIP (Clean Swift) architecture for iOS.

ViewController: controls the event handling, view life cycle and display logic
Interactor: app's business logic
Worker: interface and implementation of the work that need to be done as managing request and response from database
Presenter: formats data to be presented in View Controller
Router: controlls the screen transition
Configurator: configures delegates dependency
Model: pass data through the classes' boundaries

Project Setup

All pods are already commited, but if you want to install others, do:

  • Make sure you have ruby > 2.3.7
  • Update Podfile
  • Run bundle install
  • Run bundle exec pod install
  • Make sure you commit the pods, Podfile and Podfile.lock

Hacktoberfest

For beginners:

  • You can add an Anime that you like on the Realm Database file (RealmDatabase.swift)

Contribution

  • If you have a feature request, open an issue
  • If you want to contribute, submit a pull request

myanimelist's People

Contributors

andreanmasiro avatar chocochino avatar d3nzz3l avatar daniddelrio avatar daniellimadf avatar ericksimoes avatar fpg1503 avatar fradeliro avatar gitruili avatar ismaeldcom avatar jaumdx avatar jayahariv avatar jcat1504 avatar maisamilena avatar ricardorachaus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

myanimelist's Issues

Add new design for Add Anime screen

Description

Implement new design for AddAnime screen. Related to Issue #5
Follow Screen Design

You will need to:

  • Work on the storyboard AddAnime.storyboard
  • Use the colors (PrimaryBlue and SecondaryGray) available on InterfaceBuilder
  • If need to use colors in code, use the colors available as an extension of UIColor (UIColor.primaryBlue and UIColor.secondaryGray)

Criteria of acceptance:

  • Follow the spacing and elements of the prototype screen
  • Only work on the AddAnime.storyboard
  • Apply the fonts described in the prototype
  • Apply the colors described in the prototype
  • Be careful with constraints
  • The screen has to continue to check if Title and Description are empty.
  • Field Rating has to be changed to be an input. It cannot be empty, must receive values between 1 to 5

Add input validation

Description

When the user is adding a new Anime, the app does not make a validation of the data checking if is empty or not.

Criteria of acceptance

  • Title must not be empty
  • Description must not be empty
  • A proper message must appear for the users, indicating that the field cannot be empty

(remember that blank space also makes the title empty)

Update rating score from a boring UISlider to Stars

Description

Currently, the rating score is a very simples UISlider, it's not good.
Let's do it with starts like this one:
image
Tip: there are some tutorials and frameworks available to help you implement it.

Criteria of acceptance

  • Do a star rating score. You decide how to do it:
    • it can be simple: a collection of buttons with tag from 1 to 5. When a button is clicked, identify it's tag and that's the score.
    • use a framework were the slide fills the stars

New design for iOS screen

Description

The current screens of the app were designed by... well... a programmer.
It's functional but not beautiful, we can do it better.

Screen of Add Anime:
image

Criteria of acceptance

  • Do a new design for the Home Screen
  • Do a new design for the screen of Add Anime
  • A link of the design prototype must be available on InVision app or similar. It has to contain the colors used, spacing, font type and size. If some image or icon is used, add it references on the file "License - Use of image"

Add local database

Description

Add local persistency to the project. Currently, the database is an array in AnimeDatabase.swift and the new data are not really added to it because is done in memory.

Criteria of acceptance

  • Determine a local database that you want to work with. For example: Realm, Dictionary file
  • If a framework as Realm, add a podfile
  • Update AnimeDatabase to Manage the flow of data between the Workers and the database

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.