Skip to content

Shekly is supposed to be an app designed to help you in your budget management.

Notifications You must be signed in to change notification settings

pmieszal/shekly-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 

Repository files navigation

Shekly

Description

Shekly is supposed to be an app designed to help you in your budget management.

Architecture

This project was started at peak of my love for Rx. But then, ugh, I hated it :D Then my love for CleanSwift begun.

That said, architecture is a bit of mixture here. One constant here, is separation to modules (targets):

  • Shekly (start module),
  • UI,
  • Domain,
  • Database,
  • User,
  • Shared,
  • SHTokenField (not used any more, but good candidate for separate pod),
  • SheklyShare (kind of dummy share ios extension, just for reading data from json, only for development purposes yet)

It was started with pure Rx, using MVVM + Coordinator. Then hard refactoring appeard, mostly in Domain target. Now, it's still using RxCoordinator for navigation layer, but most of ViewModel's logic is written in pure Swift. There are some Rx left overs, but they appears mainly in not developed sections (like Category an Plan). Lately I had some time to continue refactoring and now there is null Rx in the project 🎉.

TODO

  • upgrade to Swift 5
  • move entirely to CleanSwift
  • get rid of Rx
  • propably get rid of generic SheklyViewController, since it really affects code readability (can't implement protocols in extensions) actually Swift 5 solves this problem 🎉
  • use Swinject Dip for DI instead of current factories
  • introduce SwiftLint
  • code style: remove redundant self. calls
  • code style: remove redundant ib prefix for IBOutlets
  • divide project to feature-modules
  • introduce XcodeGen
  • implement real Domain module
  • try new UICollectionView layout introduced by Paul Hudson in mobiconf
  • try SwiftUI
  • move to SPM since SwiftUI preview doesn't support cocoapods yet?
  • have fun with haptics
  • checkout new native DI with storyboards 🎉 https://www.hackingwithswift.com/example-code/uikit/how-to-use-dependency-injection-with-storyboards
  • play with Dark Mode
  • define features 😅

Author

Patryk Mieszała, [email protected]

About

Shekly is supposed to be an app designed to help you in your budget management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published