Skip to content

An app that uses remote and local datasources to keep counters synced.

License

Notifications You must be signed in to change notification settings

dev-thalizao/counters-ios

Repository files navigation

CI Xcode Swift 5.3.2 iOS

Counters, the app who store your counters 🤖

The architecture was built using the concepts of Clean Architecture and the SOLID principles. The modularization was composed by:

  • CounterCore: Domain layer composed by counter model and all use cases.
  • CounterAPI: Data layer composed by remote implementation of domain use cases.
  • CounterStore: Data layer composed by local implementation of domain use cases.
  • CounterPresentation: Presentation layer composed by the presenters and view models.
  • CounterUI: UIKit interfaces that interact with presentation layer.
  • CounterTests: Add extra behaviours specific for unit tests.
  • CounterApp: The main module, that create features and inject the dependencies, control the navigation flow, add new behaviours trough decorators and adapters.
counters-ios.mov

Getting Started

  1. Install Xcode.
  2. Clone this repository.
  3. Open Counters.xcworkspace:
open Counters.xcworkspace

Xcode will do all the hard work for you 👨‍💻

Features

  • Load counters
  • Cache Counters
  • Create Counter
  • Increment Counters
  • Decrement Counters
  • Search Counters
  • Erase Counters
  • Share Counters

Non-functional features

  • Clean Architecture
  • SOLID Principles
  • Unit Tests using TDD
  • Modularity using Swift Package
  • Design Patterns (Strategy, Proxy, Decorator and Adapter)
  • UITableViewDiffableDataSource
  • View Code
  • Dark Mode
  • HTTP requests
  • Error Handling
  • CoreData
  • CI using GitHub Actions

About

An app that uses remote and local datasources to keep counters synced.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published