I am currently developing an iOS app that can be used by different clients keeping pretty much the same interface for all of them. I would like to make this interface somehow “customisable” without having to change the storyboard for every client but I am not sure how to do so.
I thought that maybe I could have some sort of XML file that would contain the value of the UI elements, modify it and have the app read the value of the UI elements from it at compile time so the final app would contain the desired messages, images, etc.
To make the changes easier I also thought of some kind of “wizard” that would show the UI elements that can be changed, allow me to edit and write them to the xml file and after all that, compile the app from the command line (running a script from inside the wizard).
Is my idea viable? If so, how can I accomplish it or what tool are out there that might help me?
Is there another option that would help me accomplish this “customisable” interface?
Note: this is my first iOS app and is still being developed, I searched for related topics and info but found nothing useful so I am not sure if I am asking even possible to do for iOS or if it is out there under another "name".
Edit: by customisable I mean being able to change the text of the messages, the labels, the banner, the clients img logo, color of some elements and that kind of things.
Edit 2 what I would like is to develop a "wizard" that will modify an xml file and maybe replace some images in my app before it is compiled (that is my current idea). After that I would compile it and all the customisation would be done and the app would be ready for the client.
I would suggest that you look at targets http://www.itexico.com/blog/bid/99497/iOS-Mobile-Development-Using-Xcode-Targets-to-Reuse-the-Code
You could generate your XML file for each "Target", but only include the correct one for each target. Then when the app is compiled it should include all the relevant information. If you are producing multiple apps, you also need to consider that the app bundle Id would need to be different for each. Again Targets handles this