jeudi 11 mai 2017

Swift iOS App - Built with Concrete Classes, Views and ViewControllers to be abstracted for client-by-client overrides

This is a conceptual question regarding an App that my team has nearly finished in the most top-down, concrete way possible. All the features work, it's being polished to be published, but here's the rub:

We will white-label the App and publish ~20 versions of it, some clients requesting customizations to certain Views and View Controllers, other clients requesting customization in other Views and VCs. So I need the ability to override particular Views or ViewControllers (and if possible be more granular and override a single function on a VC).

I think the approach is submodules per client, with a folder structure like:

  1. system/ - core project files
  2. apps/ - client specific files (git submodules)
  3. apps/client1 - example client folder with client specific overrides

So, if I have a class like RootViewController.swift, that has particular methods on it and functionality, including instantiating several UIViews, how could I build an override system to look in the client's override folder for overrides, if does not exist, use system level.

Really appreciate any help or guidance in this.

Cheers, Rob

Aucun commentaire:

Enregistrer un commentaire