RNM UNIVERSE PROJECT

Kinzoo iOS Challenge

An iOS app with a list and details of characters.

Nice to know

  • I believe that I've built this project following all the requested requirements, except for the "Universal link support".
  • I've used some third-party libraries and I've developed other points manually, such as the network layer, for example.
  • I took advantage of this opportunity to extract a local target from one of my projects for a Pod. A library that I developed a few years ago with the desire to make UICollectionView and UITableView easier to use.
  • I tried to address some points that were not directly requested, but that I understand are fundamental for a good app, such as icons, fonts, responsiveness, dark mode, location, loader and error handling, for example.
  • I chose to use CocoaPods for all libs and not mix in with SPM.
  • I've already used Rswift and SwiftGen to generate typed resources, however, I had difficulties configuring both in Xcode 15 with the new String Catalog (I got SwiftGen for the other resources, but not for strings). As I wouldn't use it for the others, since Xcode is creating some now, I preferred not to use it.
  • I preferred to use Promise instead of async/await, as I see a more pleasant syntax and I'm more used to it at the moment.
  • ViewModels and DataSource could have a parameter reference relationship with each other. Transforming the DataSource into a protocol could even be used as mocked in tests, but I believe that a Stub approach is easier and clean than the first one to coding.
  • I only made 2 test cases as examples, one for Model and one for the ViewModel. I believe it's not a problem.

Some Prints

Light mode

Dark mode