Git Product home page Git Product logo

brastlewark's Introduction

Brastlewark

a simple list of inhabitants of Brastlewark obtained from a public json list: https://raw.githubusercontent.com/rrafols/mobile_test/master/data.json

Instructions

  • From your computer in a terminal run git clone https://github.com/DroidFxGit/Brastlewark.git and wait until repository is downloaded.

  • Please verify if you have right version of Cocoapods for this project pods are installed under 1.9.0 version

    • In case you haven't installed Cocoapods in your Mac, you can follow the instructions of the link: https://cocoapods.org/
  • Go to the main path of the project and run pod installand wait until pods are installed under the project.

  • Once pods are installed please open file Brastlewark.xcworkspace, for this project please check you have installed Xcode Version 11.3.1 (11C504) or later.

Main Modules

  • Home screen: Basically shows all results from json list. every component shows and image, name and age of every Gnome, also you can filter information writing a name of a random Gnome in the search bar and that way you can filter similar names from the list.

  • Detail Screen: Shows all the details for a selected Gnome in particular.

Arquitecture

  • For this exercise in particular I followed MVVM-C arquitecture. Which is basically Model, View, ViewModel and coordinators.

The model: represents the actual data and/or information we are dealing with.

The view: is what most of us are familiar with and the only thing the end user really interacts with. It is the presentation of the data.

The viewmodel: Exposes methods, commands, and other points that help maintain the state of the view, manipulate the model as the result of actions on the view, and trigger events in the view itself.

Coordinator: Basically handles the flow for present the views into the application, and also takes care about build entire flows and have te ability to mainipulate them easily in case a flow is presented in different ways into the app.

Third party Libraries used in this project

  • PINRemoteImage: is an image downloading, processing and caching manager. It uses the concept of download and processing tasks to ensure that even if multiple calls to download or process an image are made, it only occurs one time (unless an item is no longer in the cache).

Mainly reason I used this third party library is because is from a confident resource and implemented by Pinterest, one of the best mobile apps for image sourcing, and of course to save some time. While developing this I tried to use my own library but it had some limitations, after use this library I noticed image downloading was faster than before. To see more details about this library you can check their repository: https://github.com/pinterest/PINRemoteImage

brastlewark's People

Contributors

droidfxgit 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.