GitHub - illescasDaniel/Questions: A modular iOS quiz app
source link: https://github.com/illescasDaniel/Questions
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Questions
Prototype of a Quiz app for iOS.
Trello
Check our trello board to follow the app roadmap, post your suggestions, vote your favourite features, etc.
Testing
You can test the app in your device easily by downloading it from AppCenter (formerly HockeyApp) from here.
Features
- Questions statistics
- Reset statistics and/or settings
- Haptic Feedback
- Multilanguage support
- Repeat quizzes by shaking the device
- Read Questions from a QR Code and saving them for later use
- Read Questions form a URL
- Questions can have multiple correct anwers
- Each set of questions can have different number of answers
- Each question can have an image that will appear below the question text (this will load asynchronously and will be cached)
- Add sets of questions / new topics just by dragging a formatted json file to Xcode
- You can specify some options for the questions sets, like specify a timer, show the questions in random order or not, enable the help button, etc.
- The app offers OPTIONAL privacy features such as blurring the multitask screenshot, detecting if the user is capturing the screen or if it took a screenshot
- Community topics! A section where submitted topics are available for all the users.
- Creators section! You can create your own questions, save it, send it to friends, etc.
- Dark theme
- Switch between themes by:
- Swiping up/down with 2 fingers
- Using a home quick action
(The questions included are just some simple examples.)
Screenshots
Community Topics
Since v3.9 any user is able to submit his own topics to the community!
The example community file containning the topics URL is hosted here
The file is parsed asynchronously in the app and loaded.
You can create more topics and upload them to pastebin, then in the app you send me its URL.
Topic Creator
Since v3.11 anyone is able to create their own topics within the app! You can save it or share it with a friend if you want.
Topics JSON format
{ "options": { "name": "Cool Social topic", "timePerSetInSeconds": 300, "questionsInRandomOrder": false, "helpButtonEnabled": false, "showCorrectIncorrectAnswer": false }, "sets": [ [ {"question": "How old is Barack Obama?", "answers": ["> 50", "< 50", "35 ☺️", ">60 ??"], "correct": 0, "imageURL": "https://somecoolWeb/image.jpg"}, {"question": "Google CEO", "answers": ["Larry Page", "Sergey Brin", "Sundar Pichai", "Andy Rubin"], "correct": 2} ], [ {"question": "When was Tim Cook born?", "answers": ["1967", "1970", "1940", "1960", "Test"], "correctAnswers": [3,4]}, {"question": "When did Steve Jobs die?", "answers": ["2008", "2010", "2011", "2012", "3012"], "correct": 2} ] ] }
Simple explanation:
- A topic is defined as an array of sets of questions. Ideally this sets are about the same topic...
- Each set of questions can have a different number of answers BUT all the answers in each set need to have the same number.
- Whithing a question, the answers can't repeat; as well as the correct answers.
- You can also use some images which will show below the specific questions. You must specify a URL of that image (I think the link must start with "https"). The image will load asychronously and it will be cached for later faster use too.
- Each question can have 1 or multiple correct answers. Use "correct" for a unique correct answer and "correctAnswers" for multiple ones. If you use both ("correct", "correctAnswers") it will add the "correct" index to the other array (is a set so it won't repeat).
- Each topic (JSON file) can have specific options that are optional to specify, see below for more details.
The rest can be deduced :)
Options. Possible keys and values.
Key Values Note nameString
If no name is specified, its name will be the same as its file name.
timePerSetInSeconds
An unsigned integer
or a Double
If ommited, there will be no timer.
questionsInRandomOrder
Boolean
(true/false)
Random (true) by default.
helpButtonEnabled
Boolean
(true/false)
Could be overwritten by app settings and will be hidden if the number of answers is 2 or less. True by default.
showCorrectIncorrectAnswer
Boolean
(true/false)
True by default.
multipleCorrectAnswersAsMandatory
Boolean
(true/false)
False by default. If false, when a question has multiple answers only one is required to continue; true otherwise.
ASSETS
Images
App background:
https://pixabay.com/en/banner-header-question-mark-1090830/
Some icons: https://icons8.com/
Sounds
Royalty Free Music from Bensound:
http://www.bensound.com/royalty-free-music/track/the-lounge
'Correct answer' sound:
https://www.freesound.org/people/LittleRainySeasons/sounds/335908/
'Incorrect answer' sound'. "Game Sound Wrong.wav", creator: Bertrof.
"This work is licensed under the Attribution License":
https://creativecommons.org/licenses/by/3.0/legalcode
https://www.freesound.org/people/Bertrof/sounds/131657/
Special thanks to
Carlos Rodriguez (@carlosrodriguez85)
(@gizmosachin) and his awesome VolumeBar
All the GitHub and StackOverflow community, also YouTube :)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK