Giter VIP home page Giter VIP logo

ios-test's Introduction

Mobile iOS Developer Test

Description

Hey!, Thank you for giving me the opportunity for this task. Please feel free to ask any question if you have during the code review.

Instructions to Run

  • Unzip files/Clone repo.
  • Resolve/Reset Package.
  • Build and run.
  • Xcode Version 14.1 (14B47b)

Features

  • Swift + UIKit with MVVM Architecture.
  • AppSetup to startMainScene and Dependency injection.
  • ListViewModel Protocol is used to handle ViewModel tasks.
  • ListView Protocol to handle View tasks.
  • ListViewUIState enum for updating view states.
  • DomainToUIMapper for mapping object to CellViewModel.
  • Service Protocol to fetch data via Service.
  • JSONLoader Protocol to mock DataSource from JSON.
  • CellReusableView protocol to fetch cell reuseableIdentifier.
  • Pull to Refresh.
  • Dependecny Injection.
  • Codables.
  • Handle errors while loading the json file.
  • HTTP protocl for sending request via URLSession.
  • Endpoint protocol to implement custom Endpoint class e.g UserEndpoint.
  • SOLID Priniciples.
  • Unit Testing.
  • iPad Support.
  • Orientation support (Portrait, Landscape).
  • Swift Package Manager.
  • SDWebImage for setting imageView.
  • Reachability class for checking internet connection before service call.
  • Shimmer View.
  • Models created from web: "app.quicktype.io/".

Improvements that can be done:

  • UI testing.
  • Dark mode if mandatory.
  • Period Selection with action sheet or any other listing menu

*Selection:

LandScape:

Selection Limit Error:

Shimmer:

iPad Support:

ios-test's People

Contributors

usmantarar51 avatar

Watchers

 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.