# 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+`**. π π± βοΈ π»
# 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.
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`:
[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**_"
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)
https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)_per_capita
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)
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!)
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.