Application to solve the challenge proposed by Alter Solutions.
The architecture chosen for this project was the MVVVM+C, Model View ViewModel with the Coordinator pattern to perform the navigation between scenes.
The ViewCode pattern was used to build the screens.
For this challenge, the following libraries were used:
-
Kingfisher (version 6.3.1)
- Downloading images asynchronously
-
RxSwift (version 6.2.0)
- Control the flow of communication between Controller and ViewModel
-
Firebase (version 8.6.1)
- Analytics Event Management
-
AlterSolutionsChallengeCore (https://github.com/maclacerda/alter-solutions-challenge-core)
- Internal Core Framework
The SPM (Swift Package Manager) was used as a dependency manager
Using the XCTest
framework to perform unit and UI testing
The Firebase
platform was used to send events to access the dashboard of tracked events, go to: https://analytics.google.com/analytics/web/?hl=pt#/p284946414/reports/home
Note: The event happens when you favorite or disfavor a Pokemon
- Pagination
- Functional programming
- Dependency Injection
- Unit Testing
- UI Testing
- WebHook - Firebase see # Analytics
- Adapt UI to mobile orientation changes