-
-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathios-usage-generator.swift
More file actions
142 lines (132 loc) · 5.14 KB
/
Copy pathios-usage-generator.swift
File metadata and controls
142 lines (132 loc) · 5.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import Foundation
/*
Eugene's low tech iOS usage generator. Easiest to run this on CodeRunner for macOS.
Steps:
1. Go to https://gs.statcounter.com/ios-version-market-share/mobile-tablet/worldwide
2. Select "Download Data (.csv)"
3. From the CSV file, copy the first line (column names) and last line (latest data)
*/
let data = """
"Date","iOS 18.6","iOS 18.5","iOS 18.7","iOS 26.3","iOS 26.2","iOS 18.4","iOS 26.4","iOS 18.3","iOS 16.7","iOS 26.1","iOS 17.6","iOS 11.0","iOS 15.8","iOS 26.0","iOS 18.1","iOS 17.5","iOS 26.5","iOS 18.2","iOS 17.7","iOS 18.0","iOS 16.6","iOS 16.1","iOS 17.4","iOS 16.3","iOS 12.5","iOS 17.3","iOS 16.2","iOS 15.6","iOS 16.0","iOS 17.1","iOS 26","iOS 16.5","iOS 17.2","iOS 15.7","iOS 17.0","iOS 15.5","iOS 15.4","iOS 10.3","iOS 16.4","iOS 19.0","iOS 15.0","iOS 14.4","iOS 9.3","iOS 15.3","iOS 13.2","iOS 15.1","iOS 14.8","iOS 14.6","iOS 15.2","iOS 14.7","iOS 11.3","iOS 13.6","iOS 6.0","iOS 14.2","iOS 12.4","iOS 7.0","iOS 14.0","iOS 14.3","iOS 13.3","iOS 13.5","iOS 12.3","iOS 13.7","iOS 12.1","iOS 4.3","iOS 14.5","iOS 12.2","iOS 11.4","iOS 14.1","iOS 11.2","Other"
2026-05,3.25,2.17,11.14,16.04,5.08,0.48,33.08,1.04,1.91,1.32,1.19,2.37,1.41,0.49,0.65,0.62,11.79,0.35,0.44,0.33,0.34,0.28,0.46,0.33,0.32,0.29,0.15,0.16,0.18,0.17,0.57,0.12,0.15,0.12,0.1,0.09,0.08,0.09,0.07,0.01,0.07,0.04,0,0.03,0.11,0.03,0.03,0.07,0.03,0.03,0.03,0.02,0,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0.09
"""
let rows = data.split(separator: "\n")
let iOSVersions = Array(rows[0].split(separator: ",")[1...])
let percentages = Array(rows[1].split(separator: ",")[1...])
var iOS26 = 0.0
var iOS18 = 0.0
var iOS17 = 0.0
var iOS16 = 0.0
var iOS15 = 0.0
var iOS14 = 0.0
var iOS13 = 0.0
var iOS12 = 0.0
var iOS11 = 0.0
var iOS10 = 0.0
var iOS9 = 0.0
var iOS8 = 0.0
var iOS7 = 0.0
var iOS6 = 0.0
var iOS5 = 0.0
var iOS4 = 0.0
var iOS3 = 0.0
var iOS2 = 0.0
var iOS1 = 0.0
for i in 0..<iOSVersions.count {
if String(iOSVersions[i]).contains("iOS 26.") {
iOS26 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 18.") {
iOS18 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 17.") {
iOS17 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 16.") {
iOS16 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 15.") {
iOS15 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 14.") {
iOS14 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 13.") {
iOS13 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 12.") {
iOS12 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 11.") {
iOS11 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 10.") {
iOS10 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 9.") {
iOS9 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 8.") {
iOS8 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 7.") {
iOS7 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 6.") {
iOS6 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 5.") {
iOS5 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 4.") {
iOS4 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 3.") {
iOS3 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 2.") {
iOS2 += Double(percentages[i])!
} else if String(iOSVersions[i]).contains("iOS 1.") {
iOS1 += Double(percentages[i])!
}
}
iOS18 += iOS26
iOS17 += iOS18
iOS16 += iOS17
iOS15 += iOS16
iOS14 += iOS15
iOS13 += iOS14
iOS12 += iOS13
iOS11 += iOS12
iOS10 += iOS11
iOS9 += iOS10
iOS8 += iOS9
iOS7 += iOS8
iOS6 += iOS7
iOS5 += iOS6
iOS4 += iOS5
iOS3 += iOS4
iOS2 += iOS3
iOS1 += iOS2
// Round to 1 decimal place
iOS26 = round(iOS26 * 10) / 10.0
iOS18 = round(iOS18 * 10) / 10.0
iOS17 = round(iOS17 * 10) / 10.0
iOS16 = round(iOS16 * 10) / 10.0
iOS15 = round(iOS15 * 10) / 10.0
iOS14 = round(iOS14 * 10) / 10.0
iOS13 = round(iOS13 * 10) / 10.0
iOS12 = round(iOS12 * 10) / 10.0
iOS11 = round(iOS11 * 10) / 10.0
iOS10 = round(iOS10 * 10) / 10.0
iOS9 = round(iOS9 * 10) / 10.0
iOS8 = round(iOS8 * 10) / 10.0
iOS7 = round(iOS7 * 10) / 10.0
iOS6 = round(iOS6 * 10) / 10.0
iOS5 = round(iOS5 * 10) / 10.0
iOS4 = round(iOS4 * 10) / 10.0
iOS3 = round(iOS3 * 10) / 10.0
iOS2 = round(iOS2 * 10) / 10.0
iOS1 = round(iOS1 * 10) / 10.0
print("iOS 26: \(iOS26)")
print("iOS 18: \(iOS18)")
print("iOS 17: \(iOS17)")
print("iOS 16: \(iOS16)")
print("iOS 15: \(iOS15)")
print("iOS 14: \(iOS14)")
print("iOS 13: \(iOS13)")
print("iOS 12: \(iOS12)")
print("iOS 11: \(iOS11)")
print("iOS 10: \(iOS10)")
print("iOS 9: \(iOS9)")
print("iOS 8: \(iOS8)")
print("iOS 7: \(iOS7)")
print("iOS 6: \(iOS6)")
print("iOS 5: \(iOS5)")
print("iOS 4: \(iOS4)")
print("iOS 3: \(iOS3)")
print("iOS 2: \(iOS2)")
print("iOS 1: \(iOS1)")