Hi! Chances are you found yourself here because you asked to see some sample code from me
This project orginally started in UIKit however I believe it's more beneficial to use SwiftUI. The original UIKit project still exists a seprate branch but chances are it will never be touched again.
In this repository, you can expect to find;
- SwiftUI - The user interface is built using Apple's new shiny UI toy.
- Architecture Pattern - Within the SwiftUI world there's much discussion about what patterns, The Composable Architecture is well regarded, along with other like it, how it's use would go against one of the core reasons for this project.
- Design Patterns - This is where most of the fun lives, deciding how best different blocks of code interact with others. So far I'm aiming to showcase;
- Composition Root
- Repository
- No 3rd Frameworks - I want to stay away from using 3rd party frameworks. I feel it's more important to display my knowledge of the underlying frameworks instead displaying which popular ones I am aware of.
- Unit Testing - I'm a big proponent of unit testing, hence it's inclusion here. With the patterns and ideas I have in place it's fairly easy to test everything apart the Views. Currently I'm attempting to sustain over 65% code coverage.
- Pipeline/Dev Ops - GitHub Actions running tests on Merge Requests along with a clear process for Merge Requests
- Cool Features - Another core part of this project is adding cool stuff (where appropriate, obviously)
- TBC
Needless to say this project will not be perfect/complete, but here's a list of features I'm looking implement in due time;
- Full Dark Mode support
- Full Dynamic Font support
- Voice Over support
- UI Testing
- Localisation of static text
- Image Caching
- Banishing magic strings and numbers
- Support for iPad, MacOS & TvOS
This repository is a continual work in progress and will be constantly updated with with ideas and patterns I like the sound of. With that being said, chances are this project can (and mostly will) never be truly completed. Then again what software is ever finished?