david6p2 / MeliCarViewer

This is an app to test the Mercado Libre API. Especially the one related with cars.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Meli Car Viewer

This is an app to test the Mercado Libre API. Especially the one related with cars.

App Demo

Architecture

It uses MVC but treating the ViewControllers also as Views to just show UI Elements and having Controllers to manage/format all the data that the Views/ViewControllers are going to show.

Elements used

SearchViewController

Screenshot Description
SearchViewController - Custom TextFlied that use a Picker as input view to select the Porsche model to search for
- It works in portrait and landscape mode
- Use of custom Button
- Custom AlertViewController shown if no model is selected. This custom AlertViewController is also used to show errors in all the App
- This view was made using Storyboard

CarResultsViewController

Screenshot Description
CarResultsViewController - CollectionViewController with Diffable Datasource and custom Layout
- SearchBar that filters the current results
- It works in portrait and landscape mode
- Formatted car price
- Use of custom labels
- Pagination
- Use of custom DataLoadingViewController when loading new pages of car results
- This view was made programmatically

CarDetailViewController

Screenshot Description
CarDetailViewController - Scroll view to fit all the views in different Screens
- Created using Container View Controllers to solve having a masive View controller
- It works in portrait and landscape mode
- Use of stack views
- Use of custom labels
- All the car images are downloaded using a OperationQueue, but just the first is shown. In pending task we have a PagedViewController to show all the images
- Use of date formatter and currency formatter
- This view was made programmatically

Pending tasks

  • Add more test to increase coverage
  • Use a coordinator pattern to take the navigation outside of the ViewControllers
  • Create a PagedViewController to show all the car images
  • Use SwiftUI for the UI and Combine for use reactive programming

About

This is an app to test the Mercado Libre API. Especially the one related with cars.


Languages

Language:Swift 100.0%