/awesomeBeers

:book: A simple MVVM-C app that uses https://api.punkapi.com API to show a list of beers and details.

Primary LanguageSwift

codebeat badge

AwesomeBeers

  • Studying project with +80% test coverage.

Requirements

  • iOS 14.0+
  • Xcode 12+
  • Swift 5.4+
  • Cocoapods 1.9.1+

QuickStart

How to run the project

This project uses Cocoapods and Swift Package Manager - which manages NetworkHelper, a networking framework that I'm currenctly working on. The pods are not included in the project so you need open this folder in Terminal and run the following command:

pod install

Architecture

When possible, AwesomeBeers follows MVVM-C architecture. View controllers send events to the coordinator by using the delegate pattern and networking session stored in a interface using Facade pattern.

Project structure

The whole project is structured in modules where each module represents one screen in the app. Each module consists of one *ViewController, *ViewModel, and a *view file.

All the other files are structured in their particular category, e.g. Model, Networking, Extensions, etc.

Testing

The project has a few unit and UI tests implemented. The tests are written using the standart XCTest framework and are mainly focused on JSON parsing. You can run the tests by simply pressing CMD+U in Xcode.

Contact