• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    Swift
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A modular iOS quiz app

Questions

Swift version Version license

Trello AppCenter

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
name String 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)
SideVolumeHUD
All the GitHub and StackOverflow community, also YouTube :)

More Repositories

1

99StocksSwiftUI

SwiftUI app that fetches a list of companies, sort them by their share price and can show its details on a separate view
Swift
36
star
2

CustomizableAlertController

Hacking the UIAlertController to fully customize it
Swift
30
star
3

Inject-Swift

Easy dependency injection for swift with nice scalability
Swift
18
star
4

File

C++ class to easily read and write to files
C++
7
star
5

WhatsNew

"What's New" screen
Swift
6
star
6

Inject-Swift-example

Inject Swift example
Swift
5
star
7

SimplePrefs

A simple way to manage your app preferences in your Swift projects
Swift
5
star
8

FutureAwaits

Lightweight async-await library for Swift
Swift
4
star
9

Logger

Swift logger using apple's latest logging classes (os.log)
Swift
4
star
10

DocDB

Document-oriented database built upon LowDocDB
Swift
3
star
11

DynamicJson

An enjoyable way to manage json objects in Swift
Swift
3
star
12

Emoji-Program-1

Program made with emojis!
C++
2
star
13

GMapsTest

A simple app that uses Google Maps SDK
Swift
2
star
14

print.hpp

An easier and prettier way to print content, including containers, in C++
C++
2
star
15

CppStyleGuide

C++ style guide
HTML
2
star
16

Recipes

A simple app to retrieve recipes by their title and/or ingredients - Uses RecipePuppy API
Swift
2
star
17

LowDocDB

Low level NoSQL database
Swift
2
star
18

Super_Ranges

Intuitive Range class for Dart
Dart
2
star
19

UserDefaultsManager

Load user preferences in a more simple and dynamic way.
Swift
2
star
20

Swift-Resources

Python scripts to dynamically generate variables referencing your resources. (Similar to R class in Android)
Swift
2
star
21

BetterLogger

A customisable logger class for Swift with custom handlers and listeners
Swift
2
star
22

ShrinkVC-RecipesExample

Project example using viewModels, adapters, dataSources, dynamic data, etc
Swift
2
star
23

OverReactTS

React template with TypeScript plus SASS, Bootstrap, React-Router, Font awesome, CSS Modules
TypeScript
1
star
24

dotfiles

My config files for linux. (This is a mirror of my illescasdaniel-linux-unix/dotfiles GitLab repo)
Shell
1
star
25

PersonalWeb

My personal website:
HTML
1
star
26

SideVolumeHUD

Volume HUD that appears right to iPhone physical volume buttons
Swift
1
star
27

EverythingKT

A Kotlin library to create Websites in one language, with compilation time checks and Android interoperability.
Kotlin
1
star
28

PreferencesManagerKT

A simple way to manage local values in your Android apps, in Kotlin.
Kotlin
1
star
29

OverReact

A cool template for React with sass, bootstrap, font awesome, routes, prop type...
JavaScript
1
star
30

cppfetch

Displays system information faster than neofetch.
C++
1
star
31

Swift-Streams

Stream<T> and BroadcastStream<T> classes to emit a flow of values and subscribe to them
Swift
1
star
32

Modern-Cpp-Slides

Good practices and new c++ content
TeX
1
star
33

EvilWebClipsProfile

Easily create a profile of X web clips for iOS
Swift
1
star
34

HapticFeedbackPlayer

Create fun combination of haptics for iOS
Swift
1
star
35

Array.hpp

Fast & pretty container for C++
C++
1
star
36

WarCardGame

War (Card Game) for iOS
Swift
1
star
37

Copyable

(Swift) Easily copy models with some properties changed
Swift
1
star
38

iOSProjectTemplate-1

A custom iOS project template
Swift
1
star
39

RestApiClient

A simple way to create an API client service to retrieve or manage remote data.
Swift
1
star
40

EverythingLibs

Improve your productivity with these useful and small C++ libraries.
C++
1
star
41

BokehCIFilterEffect

Swift 4 version of the Filterpedia's filter
Swift
1
star
42

Flappy-Bird

Flappy Bird remake in Swift 4.0 for iOS 11+
Swift
1
star
43

ChatGPTWebViewSwiftUI

A simple SwiftUI WebView wrapper for ChatGPT - iOS macOS
Swift
1
star
44

MarvelCharacters-iOS

Mini app to display and search marvel characters.
Swift
1
star
45

PreferencesManagerSwift

A simple way to manage local values in your iOS apps.
Swift
1
star