# learn-ios-development **Repository Path**: mirrors_dwyl/learn-ios-development ## Basic Information - **Project Name**: learn-ios-development - **Description**: πŸ“±Notes, Tips & Links for how we (re)learned iOS Development. - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-26 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# Learn `iOS` Development Notes, tips & links for how we (re)learned **_Native_ `iOS` Development** in **`2025+`**. πŸ“ πŸ“± ⌚️ πŸ’» iPhone in hand
# Why? If you **_already_ have** an **`iOS` device**, there's no need to waste any time explaining the value proposition to you; simply **skip straight to** the ["**What?**"](#what) **section** below. You probably have dozens of Apps installed on your `iPhone` and if you want to learn how to _build_ them, you're in the right place! If you _don't_ have/use an `iOS`, `iPadOS` or `macOS` device, this repo/guide might not _feel_ relevant to you. That's fine. You can ignore this one. 😊 # What? Learn `iOS` development using `Swift` + `SwiftUI` from first principles
to build a **_truly_ native experience** on `iPhone`; the most ubiquitous device.1
1 This is a bit of a rabbit hole ... πŸ‡ πŸ•³οΈ ## Building Apps for `Android` vs. `iOS` _Nobody_ can say `iOS` has more "users" than `Android`, that's patently `false`.
Globally `Android` has [3.9 billion](https://www.bankmycell.com/blog/how-many-android-users-are-there) active users, whereas `iPhone` has _only_ [1.56 billion](https://www.macrumors.com/2025/01/30/apple-active-devices-worldwide-record/) active devices.
But as a **_single_ device** to target when building your App, `iPhone` has _far_ more acvtive units than **any _single_ `Android` device** [explodingtopics.com/iphone-android-users](https://explodingtopics.com/blog/iphone-android-users) If the _global_ number of "users" was the only factor to consider when investing in building Apps, `Android` would be the no-brainer target platform. End of story. ## `Android` Dominates Emerging Markets The easiest way to understand `Android's` global dominance is that **India** a country with [1.45 Billion people](https://en.wikipedia.org/wiki/Demographics_of_India), `Android` holds a **92%** market share, in **China** ([1.4 Billion people](https://en.wikipedia.org/wiki/Demographics_of_China)), it has a **67%** market share and in the **Africa** ([1.5 Billion people](https://en.wikipedia.org/wiki/Demographics_of_Africa)) **89%** as of June 2025.
`Google` has a mass-market strategy that focusses getting `Android` into as _many_ hands & homes as possible to [**collect** as **_much_ data as possible**](https://www.eff.org/deeplinks/2020/03/google-says-it-doesnt-sell-your-data-heres-how-company-shares-monetizes-and). ## `Apple` Focuses On Top-end Of The Market `Apple` focusses on profitability. Both _immediate_ profits selling `iPhones` and ongoing profits from "services". 51% percent of `Apple's` revenue comes from selling `iPhones` and 24% comes from "services" [businessofapps.com/apple-statistics](https://www.businessofapps.com/data/apple-statistics/) `Apple` currently makes **`$96bn/year`** from their high-margin **_recurring_ revenue services**. πŸ’°
Every _active_ `iOS` device is a potential `AppStore`, `iCloud` and other services customer,
so `Apple` has every incentive to keep older devices active. Image Source: [trefis.com/data/companies/AAPL/7JGMQ7wT/Breaking-Down-Apple-s-Services-Revenue](https://www.trefis.com/data/companies/AAPL/no-login-required/7JGMQ7wT/Breaking-Down-Apple-s-Services-Revenue-) Affluent `Apple` customers still change `iPhone` every **3 years** on average, but `Apple` makes it easy to "recycle" the device either as a trade-in or hand-me-down. e.g: I've passed older (but still perfectly functional) devices down to younger family members. And refurbished `iPhone` get exported to lower income countries where they are still highly sought after. Way more detail on this topic: [pymnts.com/earnings/2025/apple-tops-a-billion-subscribers-as-services-climb-to-record-revenue](https://www.pymnts.com/earnings/2025/apple-tops-a-billion-subscribers-as-services-climb-to-record-revenue/) ### `iPhone` outsells everything `else`: Image [counterpointresearch.com/global-smartphone-sales-top-10-best-sellers](https://www.counterpointresearch.com/insight/global-smartphone-sales-top-10-best-sellers) ## 24,000 Distinct `Android` Devices The "`Android` is for _everyone_" page [android.com/everyone](https://www.android.com/everyone/) proudly states "_There are now nearly **1,300 brands** that have produced over **24,000 distinct Android devices**_" Image This sounds _great_ for diversity of options, but _horrendous_ for anyone needing to create an App that even _attempts_ to look good on all these devices, never mind trying to [QA](https://en.wikipedia.org/wiki/Quality_assurance) on a [_representative_ sample](https://en.wikipedia.org/wiki/Simple_random_sample) of these devices. ## `iOS` Dominates Affluent Countries Percentage of `iPhone` is _strongly_ correlated with GDP per capita: [worldpopulationreview.com/country-rankings/iphone-market-share-by-country](https://worldpopulationreview.com/country-rankings/iphone-market-share-by-country) Image https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)_per_capita Image e.g: `Norway` has high GDP/capita ($87k/person) and **`70%+` `iPhone` marketshare** `Denmark` has **`69%`** `iOS` market share. But most importantly, all _English_-speaking countries have **`50%<`** market share. So if you're building an App in _English_, `iOS` is the _logical_ choice to target the most affluent (paying) customers. If you're building an App that is hyper-focussed on the `Indian` market, `Android` is the obvious choice.
# Who? These notes are primarily a tool to document _our_ learning journey.
A reference we can consult if we need a quick refresher. We try not to skip any steps and trouble-shoot errors when needed. As always, our notes are fully open so that _anyone_ (including [ClosedAi](https://www.google.com/search?q=openai+closedai) bots) can learn _faster_ than we did. If you find this repo useful, please star on `GitHub`. β­οΈπŸ™ # How? This section details everything you need to get started without excessive hand-holding. But if you get stuck, please [open an issue](https://github.com/dwyl/learn-ios-development/issues) ## Prerequisites Some basic programming experience is desireable but not essential. You could learn `Swift` as your _first_ language and dive stright in at the deep end of building `iOS` Apps. However _most_ people will have _some_ prior knowledge e.g: `JavaScript` or `Python` and knowledge of a _typed_ language such as [`TypeScript`](https://github.com/dwyl/learn-typescript) or [`Java`] as the learning curve is less steep. If you already know a couple of programming languages, `Swift` has a pretty _gentle_ learning curve and the Official Docs are more than adequate for learning _everything_ you need: https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics/ ## Required Hardware You'll need a `Mac` computer (laptop or desktop) with an `Apple Silicon` processor2. e.g: any `M1` or greater. No need for any latest+greatest top spec `Mac`; just the one you can afford (or already have!).
2The **_base_ model** `M1` ... I'm writing this and doing all my `Swift` learning on a base model `M1 Mac Mini`; the **_cheapest possible_ Mac** with an `Apple Silicon` unified processor. `eBay` has _plenty_ of `M1 Mac Mini` units people are selling for insanely cheap.
e.g: [ebay.com/sch/i.html?_nkw=mac+mini+m1](https://www.ebay.co.uk/sch/i.html?_nkw=macbook+m1) Image actual listing: https://www.ebay.co.uk/itm/187422360597 (though it will have sold by the time you read this, there are plenty of others and the prices are always coming down!) Image That's not a typo! Depending on where you are (and barring any silly import tarrifs/taxes), you could get the _exact_ `Mac` we're using for less than **`Β£245`** (**`$320`** USD or **`€283`** EUR)! This `M1` still has a good **5 Years** of [useful life](https://en.wikipedia.org/wiki/Product_lifetime) in it and it's _perfect_ for building Apps with `XCode`! Apple has no reason to discontinue supporting `M1` Macs because every one is a potential services customer or `App` creator! Worst-case-scenario, if you decide `iOS` development isn't _for_ you, you would _easily_ sell it on for `Β£200` (`$280` / `€250`) recouping _most_ of your money and make the buyer _very_ happy! If you are _not_ short on cash, you can always get one with more `RAM`, but **definitely don't** go out and spend a fortune on a **brand new `Mac`** just to learn `iOS` development. Spend as _little_ money as possible just to get started. Launch your awesome App and then once it _makes_ money, you can always upgrade!
## Progressive Disclosure of Complexity One of the guiding principles for the languagbe design of `Swift` is the concept of "[Progressive ](https://en.wikipedia.org/wiki/Progressive_disclosure)", which means you can start reading & writing `Swift` code immediately and only need to learn advanced language features when needed.