|
Bogdan Timofte
authored
2 weeks ago
|
1
|
# Platform Decision: iOS 15
|
|
|
2
|
|
|
|
3
|
Date: 2026-03-22
|
|
|
4
|
|
|
|
5
|
## Decision
|
|
|
6
|
|
|
|
7
|
Minimum deployment target for the app becomes `iOS 15`.
|
|
|
8
|
|
|
|
9
|
This is the last iOS version supported by `iPhone 6s`, which remains a valid target device for this product:
|
|
|
10
|
|
|
|
11
|
- BLE communication is fully capable on this hardware.
|
|
|
12
|
- Live data acquisition, diagnostics, and logging are within its capabilities.
|
|
|
13
|
- Local history and long-term battery tracking are also realistic for the product goals.
|
|
|
14
|
|
|
|
15
|
## Product Goals
|
|
|
16
|
|
|
|
17
|
The application is intended to support:
|
|
|
18
|
|
|
|
19
|
- live data collection for device diagnostics
|
|
|
20
|
- real battery capacity measurement using USB meters
|
|
|
21
|
- long-term degradation tracking through historical data
|
|
|
22
|
- efficiency analysis for charging chains
|
|
|
23
|
- charger efficiency analysis
|
|
|
24
|
|
|
|
25
|
## Why We Are Leaving iOS 13
|
|
|
26
|
|
|
|
27
|
`iOS 13` is too old for the current development direction:
|
|
|
28
|
|
|
|
29
|
- first-generation SwiftUI requires more workarounds and compatibility code
|
|
|
30
|
- maintenance and testing cost is higher
|
|
|
31
|
- newer Xcode / App Store tooling trends are centered around more recent deployment targets
|
|
|
32
|
|
|
|
33
|
Moving to `iOS 15` reduces risk without dropping `iPhone 6s`.
|
|
|
34
|
|
|
|
35
|
## Why We Are Not Moving to iOS 16 Yet
|
|
|
36
|
|
|
|
37
|
`iOS 16` would unlock APIs such as `NavigationStack` and `Swift Charts`, but it would also exclude `iPhone 6s`.
|
|
|
38
|
|
|
|
39
|
At this stage, preserving `iPhone 6s` support is considered more valuable than gaining those APIs.
|
|
|
40
|
|
|
|
41
|
## Charts Decision
|
|
|
42
|
|
|
|
43
|
Current conclusion:
|
|
|
44
|
|
|
|
45
|
- keep the in-house chart solution for live charts
|
|
|
46
|
- do not adopt `Swift Charts` for the live measurement view
|
|
|
47
|
- reconsider `Swift Charts` later only for historical reports and analysis screens
|
|
|
48
|
|
|
|
49
|
Reasoning:
|
|
|
50
|
|
|
|
51
|
- `Swift Charts` looks strong for reports and final analysis
|
|
|
52
|
- it does not appear ideal for high-frequency live updates
|
|
|
53
|
- zoom and pan would still require custom work
|
|
|
54
|
- the current in-house renderer gives better control for instrument-style live views
|
|
|
55
|
|
|
|
56
|
## Device Coverage Notes
|
|
|
57
|
|
|
|
58
|
Choosing `iOS 15` preserves `iPhone 6s` support.
|
|
|
59
|
|
|
|
60
|
There are also older iPads that remain on `iPadOS 15`. Apple security release notes for January 26, 2026 still list devices such as:
|
|
|
61
|
|
|
|
62
|
- `iPad Air 2`
|
|
|
63
|
- `iPad mini 4`
|
|
|
64
|
|
|
|
65
|
So this platform decision likely preserves some older iPad coverage as well.
|
|
|
66
|
|
|
|
67
|
## Revisit Trigger
|
|
|
68
|
|
|
|
69
|
We should revisit the minimum deployment target when one of the following becomes important:
|
|
|
70
|
|
|
|
71
|
- a strong need for `Swift Charts`
|
|
|
72
|
- a move toward `SwiftData` / more modern SwiftUI app architecture
|
|
|
73
|
- loss of business value in keeping `iPhone 6s` support
|
|
|
74
|
- support or distribution constraints imposed by newer Xcode / App Store requirements
|
|
|
75
|
|
|
|
76
|
## References
|
|
|
77
|
|
|
|
78
|
- Apple Xcode system requirements: https://developer.apple.com/xcode/system-requirements/
|
|
|
79
|
- Apple upcoming App Store requirements: https://developer.apple.com/news/upcoming-requirements/
|
|
|
80
|
- Apple App Store platform usage: https://developer.apple.com/support/app-store/
|
|
|
81
|
- Apple security releases: https://support.apple.com/en-lamr/100100
|