Preparation plan
A plan beats motivation. Pick how much time you have, then follow the plan for that length. Each plan below says what to practise and how many hours it needs.
Step 1: Find your starting point
Before you plan, test yourself for one hour. Answer these honestly.
| Area | Quick test | Ready if… |
|---|---|---|
| DSA | Solve one easy and one medium coding question. | You solve both in 45 min total. |
| Swift and iOS | Explain ARC, async/await and @State out loud. | Each answer takes under 2 minutes, with an example. |
| UI coding | Build a list screen that loads data from an API. | It works in under 60 minutes, with loading and error states. |
| System design | Draw the layers of an app you know (for example a chat app). | You can talk for 15 minutes with a clear structure. |
| Behavioral | Tell one story about a hard bug. | It is under 2 minutes and has a clear result. |
Write down your weakest two areas. Your plan should give them the most time.
Step 2: Know the time cost
Rough hours to get "interview ready" from a normal working level:
| Area | Hours |
|---|---|
| DSA (easy and medium) | 30–60 |
| iOS knowledge | 15–25 |
| UI coding | 10–15 |
| System design | 10–20 |
| Behavioral stories | 4–6 |
| Resume | 2–4 |
You cannot do all of this in one week. That is fine. A short plan focuses on what gives the most points.
The 1-week plan (crash plan)
Use this when the interview is already booked. Goal: fix the biggest gaps and stop making simple mistakes. About 2–3 hours a day.
| Day | Focus | What to do |
|---|---|---|
| 1 | Process + stories | Ask the recruiter about the rounds. Write 4 STAR stories (see the Behavioral chapter). |
| 2 | DSA patterns | Solve 4 problems: hash map, two pointers, sliding window, stack. |
| 3 | DSA patterns | Solve 4 problems: BFS, DFS on a tree, binary search, sorting. |
| 4 | iOS knowledge | Answer 15 high-importance quiz questions out loud. Focus on memory and concurrency. |
| 5 | UI coding | Build one list + detail screen with networking in 60 minutes. Time yourself. |
| 6 | System design | Read 2 system design questions. Practise the framework out loud once. |
| 7 | Mock + rest | Do one mock interview (with a friend or alone with a timer). Rest in the evening. |
What to skip in one week: hard DSA problems, rare topics (Core Animation details, Objective-C runtime), building a portfolio app.
Swift basics to review on day 2. You must write these without thinking:
// Frequency count
var freq: [Character: Int] = [:]
for c in "banana" { freq[c, default: 0] += 1 }
// Sort by a property
let byAge = people.sorted { $0.age < $1.age }
// Loop backwards
for i in stride(from: nums.count - 1, through: 0, by: -1) { print(nums[i]) }
// 2D grid
var grid = Array(repeating: Array(repeating: 0, count: cols), count: rows)The 1-month plan
Use this when you start applying soon. Goal: be solid in every round. About 1.5–2 hours on weekdays and 3–4 hours on weekend days.
Week 1: Foundations
- DSA: arrays, strings, hash maps, two pointers. 8–10 easy problems.
- iOS: Swift basics — value vs reference types, optionals, protocols, generics, closures.
- Resume: rewrite it using the Resume chapter. Ask one friend to review it.
- Behavioral: write a list of 8 projects or moments from your work.
Week 2: Core iOS + more DSA
- DSA: stacks, queues, binary search, sliding window. 8–10 problems, some medium.
- iOS: memory (ARC, retain cycles), concurrency (GCD,
async/await, actors,@MainActor). - UI: build one SwiftUI list screen with networking and states.
- Behavioral: turn 4 moments into STAR stories.
Week 3: Building and design
- DSA: trees (DFS, BFS), recursion, heaps. 6–8 problems.
- iOS: UIKit (view controller lifecycle, cell reuse, Auto Layout), SwiftUI (state, identity,
@Observable), architecture (MVVM, dependency injection). - UI: build the same screen in UIKit. Add unit tests for the view model.
- System design: learn the framework. Do 2 designs: an image feed and a chat app.
Week 4: Mock interviews
- DSA: graphs and mixed review. Redo 5 problems you failed before.
- iOS: persistence, networking, testing, performance. Review your weak quiz answers.
- System design: 2 more designs, out loud, 45 minutes each.
- Mocks: at least 3 full mock interviews (one coding, one iOS, one design).
- Behavioral: say every story out loud and time it. Aim for 2 minutes each.
A sample weekday
07:30 - 08:15 2 DSA problems (timer on)
12:30 - 12:50 3 quiz questions, answered out loud
20:00 - 20:45 UI coding or system designShort, daily practice works better than one long weekend session.
The 3-month plan
Use this when you are planning a career move, or moving from another platform to iOS. Goal: be strong, not just ready. You can aim for a higher level. About 8–10 hours a week.
Month 1: Build the base
- Weeks 1–2: Swift language in depth. Value types, copy-on-write, protocols with associated types, generics,
somevsany, error handling. - Weeks 3–4: DSA basics. 20–25 easy problems across arrays, strings, hash maps, stacks, linked lists.
- Every week: 10 quiz questions out loud.
- Side task: update your resume and LinkedIn profile.
Example check for the end of month 1. Can you explain why a.value is still 0?
struct Counter { var value = 0 }
var a = Counter()
var b = a // b is a copy
b.value += 1
print(a.value) // 0
print(b.value) // 1If yes, and you can explain what changes when Counter is a class, your base is good.
Month 2: Go deep on iOS
- Weeks 5–6: concurrency in depth. Structured concurrency, task groups, cancellation, actors,
Sendable, Swift 6 strict concurrency. - Weeks 7–8: UI frameworks and architecture. Build 3 UI build questions in Xcode: one SwiftUI, one UIKit, one with a custom component.
- DSA: 15–20 medium problems. Trees, BFS/DFS, binary search, heaps.
- System design: learn the framework. One design per week.
Month 3: Practise like the real thing
- Weeks 9–10: one full take-home project under real time limits. Write a README. Ask a senior friend to review it.
- Weeks 11–12: mock interviews. 2 per week. Mix coding, iOS knowledge, design and behavioral.
- DSA: redo old problems without looking. Speed and clean code matter now.
- Applications: start applying in week 9. Put the companies you want most at the end, after you have practised on others.
What to practise each week (any plan)
No matter which plan you choose, every week should have a little of each:
- Coding: at least 4 problems, with a timer.
- iOS knowledge: at least 10 questions, answered out loud.
- Building: at least one small screen or feature in Xcode.
- Design: at least one system design, from week 2 or 3.
- Stories: say one behavioral story out loud.
- Review: look back at what you got wrong and add it to a "mistakes" list.
Keep a mistakes list
This is the most useful habit. Every time you get something wrong, write one line.
- Forgot that String cannot be indexed with Int. Use Array(s).
- Said "unowned is faster" with no reason. Real point: unowned crashes if the object is gone.
- In design round, forgot pagination for the feed.
- In BFS, used removeFirst() on Array (O(n)). Use an index instead.Read the list before every interview. You will stop repeating the same mistakes.
How to do a mock interview
You do not need a paid service. A friend, a colleague, or even you alone with a timer works.
- Pick one question you have not seen.
- Set a timer: 45 minutes.
- Talk out loud the whole time, even when alone.
- Record the screen and your voice.
- Watch the first 10 minutes of the recording. Look for long silences, unclear explanations and skipped questions.
It feels strange the first time. It is still the fastest way to improve.
How to use the site with your plan
- Study plans match these plan lengths. Pick one and follow its daily list.
- Roadmap shows what to study next if you finish early.
- Coding questions let you run Swift in the browser, so you can practise on any computer.
- Quiz questions are marked by importance. In a short plan, do "high" importance first.
Common planning mistakes
- Only doing DSA. Many iOS loops have only one DSA round. Do not ignore the other rounds.
- Only reading. Reading an answer is not the same as saying it. Practise out loud.
- No timer. Real rounds have time limits. Practise with them.
- Applying to the dream company first. Do 2–3 "practice" interviews before it.
- No rest. Sleep well the night before. A tired brain makes simple mistakes.
Next, the Resume chapter shows how to get more interviews in the first place.