Skip to content

lukacs-m/Bright

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bright

Bright is meant as a little demonstration application showcasing several aspect of iOS development.

What

  • SwiftUI
  • MVVM & Coordinator
  • Big usage of protocols oriented dev
  • Uses latest Apple's Combine
  • Use dependency injection
  • Embarks Cache / Image lazy loading / Network / Some animation
  • Pure Swift
  • iOS 13 compitible
  • Search page

ToDo

  • Implement Linters (swiftlint/ swiftformat)
  • Implement Testing
  • Implement new feature
  • Use dependency injection further
  • Documentation
  • Crash logger (firebase)
  • Refined caching system
  • Paginated network call
  • Infinite scrolling in pages

About the project

I wanted to try a achieve the implementation of this project using only SwiftUI. This is quite a challenge about of the iOS backward compatibility going back to iOS13 and SwitUI 1.0. This version of SwiftUI is limited compared to the new versions. Therefor I had to try and find or build workarounds for some of the difficulties I encountered.

The project in build around the MVVM & Coordinator pattern. It is a well known and shoudl be easy to comprehend. To keep a Clean and SOLID architecture all the networking is done in repositories that are injected through dependency injection to the viewModel.

The communication between the element of the project is mainly done throught Combine Publishers. The data flow come from single soruces of trouth that are the repositories.

Tooling

The Cache system is based on a very simple Generic NSCache implementation.

The Network implementation is based on a small networking library I created based around the new combine publisher integrated into URLSession Data tasks. I enables us to easily create network services using the power of swift generics. Jolt

The Depency injection tool is a simplyfied version of Resolver. Resolver

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages