The main objective is to create a tiny task manager application for managing tasks on iOS devices.
- Swift
- CleanSwift
- UIKit
- XCTest
- The App is fully test covered
- OOP/POP
- SwiftGen
- Used to solve localization issues
- Swift Package Manager
- All business logic is carried away in the separate package - TaskManagerPackage
- SwiftLint
- PinLayout
- PinLayout - used for interface layout
- SwiftLint - a tool to enforce Swift style and conventions
- Create taskManager, which manage tasks in app
- Create MVC app to show tasks from manager in tableView
- Add repository to loadTasks
- Move app to MVP architecture
- Add sortedManager to sort tasks
- Add sectionManager to work with tableViewSections
- Move app to CleanSwift architecture
- Add Login screen
- Add module assemblers
- Add gitignore
- Integrate SwiftLint into the project
- Cover the following classes with tests: TaskManager, Task, RegularTask, ImportantTask
- Create SPM package and move all the business logic into it
- Write tests for TaskRepository and SectionManager
- Cover the authorization VIP cycle with tests
- Cover the task list VIP cycle with tests
- Get rid of the storyboard
- Enable PinLayout usage via SPM
- Layout both scenes using PinLayout concise syntax
- Cover two scenes with UI tests
- Continuos Integration (CI) included into the project. It helps in stabilizing the git flow and makes sure that tests run outcome is successfull and the project compiles before merging
- Clone
- Open .xcodeproj file
- Run simulator