JTransactions 🍔

Platform Compatibility

Platform Swift Version XCode Version

Welcome

Project based on trasactions list API, to show a list of transactions and detail for each.

Project features

  • App iOS
  • Basic integration with github actions for CI
  • Unit tests
  • Auto Layout
  • Code coverage (with Slather)

App Main features

  • Show list of transactions (grouped by month)
  • Show detail of each transaction

Available resources

  • Loading state
  • Empty state
  • Error state
  • Transition Animations

Developing

Architecture

VIPER

Why VIPER?
  • Clean architecture
  • Isolation of each layer
  • Scalable

PS. This is a small project, but VIPER was chosen thinking in a complex project, and I'm familiar with that im my day-to-day

Tools

How to build and run

This project don't use any third party libraries. So just open JTransactions.xcodeproj and run it on iPhone device or simulator.

How to run tests

The project use Bundler to manage all gem dependencies, so first we have to install it (if you it installed, skip to next step):

sudo gem install bundler

Aftter installed, install your gem dependencies using this command in main folder of project:

bundle install

Unit tests can be run by Xcode or on your terminal (CLI) with Fastlane, if you run with fastlane it you generate a full report html.

To run with Fastlane:

bundle exec fastlane unit_tests

Requirements

  • iOS Version: 16.1+
  • Xcode Version: 14.0+
  • Swift Version: 5.0

Helpers