Contribution Guidelines
Help build the most authoritative, open-source iOS interview and practice curriculum. Questions live as Markdown files and compile into deterministic quizzes with verified references.
How to Contribute in 4 Steps
Fork & Clone Repository
Fork sokpichdev/ios-qa and clone your fork locally:
git clone https://github.com/<your-username>/ios-qa.git
Choose Topic & Author Markdown
Navigate to content/questions/<topic-slug>/. Append your question block to an existing file or add a new .md file.
Available topics: swift, swiftui, concurrency, architecture, oop, networking, testing, uikit, xcode-tools, security, interview-prep.
Validate with Build Scripts
Run the build validation script to check question syntax, MCQ option generation, and reference URLs:
npm run build-data && npm run build
Open a Pull Request
Push your branch and open a PR against main. Provide a brief summary of the questions and concepts added.
Markdown Format Specification
## Q: What is [Question Title]? **Answer:** A concise, standalone first sentence summarizing the answer accurately. Follow with any further technical explanation, architectural details, or context. **Code Example:** ```swift // Provide a realistic, idiomatic Swift or UIKit/SwiftUI snippet let example = "Idiomatic Swift" ``` **Key Points:** - Concise summary bullet point 1 - Important nuance or trade-off bullet point 2 **Tags:** #topic #concept #interview **Difficulty:** Intermediate **References:** - [Topic Documentation — Apple Developer](https://developer.apple.com/documentation/...) - [Deep Dive Article — Swift by Sundell](https://swiftbysundell.com/articles/...)
Field Requirements:
## Q: [Title]: Starts a single question block.**Answer:**: Must open with a standalone, complete sentence.**Tags:**: Space-separated hash tags (e.g.#swift #arc).**Difficulty:**:Beginner,Intermediate, orAdvanced.
MCQ Auto-Generation Rules:
- Questions opening with What is, Which, When should, How does become candidate MCQs.
- The first sentence of the answer becomes the correct option (≤ 200 characters).
- Distractor options are deterministically sourced from the same topic.
Authoritative Reference Sources
All questions should include credible references. The build validation script verifies that links use https:// and originate from approved primary domains:
Best Practices for Contributions
DO:
- Write concise, direct answers that stand on their own.
- Include modern Swift 5.9+ and concurrency syntax.
- Provide realistic, syntax-highlighted code snippets.
- Append questions at the end of files to maintain stable IDs.
AVOID:
- Do not insert questions into the middle of existing files (resets user progress IDs).
- Do not use insecure
http://links. - Avoid opinion-based or framework-war discussions without technical basis.
- Avoid deprecated Objective-C APIs unless explicitly contrasting.
Have an idea for a topic or question that isn't covered yet?