iosNudge

Preparation plan

Chapter 3 of 10 7 min read

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.

AreaQuick testReady if…
DSASolve one easy and one medium coding question.You solve both in 45 min total.
Swift and iOSExplain ARC, async/await and @State out loud.Each answer takes under 2 minutes, with an example.
UI codingBuild a list screen that loads data from an API.It works in under 60 minutes, with loading and error states.
System designDraw the layers of an app you know (for example a chat app).You can talk for 15 minutes with a clear structure.
BehavioralTell 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:

AreaHours
DSA (easy and medium)30–60
iOS knowledge15–25
UI coding10–15
System design10–20
Behavioral stories4–6
Resume2–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.

DayFocusWhat to do
1Process + storiesAsk the recruiter about the rounds. Write 4 STAR stories (see the Behavioral chapter).
2DSA patternsSolve 4 problems: hash map, two pointers, sliding window, stack.
3DSA patternsSolve 4 problems: BFS, DFS on a tree, binary search, sorting.
4iOS knowledgeAnswer 15 high-importance quiz questions out loud. Focus on memory and concurrency.
5UI codingBuild one list + detail screen with networking in 60 minutes. Time yourself.
6System designRead 2 system design questions. Practise the framework out loud once.
7Mock + restDo 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 design

Short, 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, some vs any, 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)   // 1

If 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.

  1. Pick one question you have not seen.
  2. Set a timer: 45 minutes.
  3. Talk out loud the whole time, even when alone.
  4. Record the screen and your voice.
  5. 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.