I can't speak for android, however for iOS you'll be looking to subclass a UIViewController
. This will allow you to create a class that has all the common functionality that all your screens require (layout, color schemes, buttons etc).
You will also want to configure this subclass to accept inputs of the properties that you'll want to change across each individual screen (character name, images, etc). You could easily do this through properties and overriding their setters. Or you'd want to look at subclassing again in order to further override the functionality of the base subclass.
I suggest have you a good look at the Apple Swift documentation on Inheritance & Subclassing.
In terms of data input for the view controllers (character names, images etc), it really depends on how complex this data is.
If it's only simple plain text and resource names, you'll want to look at storing them in a property list file (.plist
) that you can load into your code as an NSDictionary
or NSArray
very easily. This answer should help you get started out how to read/write plist files.
More complicated data will probably require the use of a database, either through Core Data or an external library. However, I usually prefer using a custom storage object that you can write to disk though NSKeyedArchiver
.