USB-Meter / Documentation / Platform Decision - iOS 15.md
Newer Older
81 lines | 2.886kb
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