MCQ questions must need to be shuffle, so that it doesn't repeat the same question. The typical solution for this is to have an array of questions (indexes into model) and then shuffle the array; So it is generated on random manner. And shuffling the array, I can use a Fisher-Yates algorithm, which eliminates some subtle biases introduced by naive shuffling algorithms.
Basically need to apply extension MutableCollection; Shuffle the elements of self in-place. Next will apply
mutating func shuffle() {
if count < 2 { return }
It mentions that empty and single-element collections don't shuffle. I can end up with an array of the numbers 0 through n-1 that are shuffled (i.e. appear in a random order, but no number occurs more than once). Now I can iterate through this array of questionIndexes and each question will be asked once and only once, but they'll be presented in random order.
Apart from this, I will prepare the mobile Screen designs in attractive and colourful and very much user friendly manner. It will be better, if you give me a scope to share my screens with you and make the screen designs for your application. So that you will be able to check the designs and can instruct me whether you need any changes on that. Accordingly, I will make the changes. In this way, within very short time, the screen designs be ready. With your approval on the design, I will move for development part.
Please let me know your convenient time to have a discussion.