Wikimedia Apps/Team/iOS/Engineering Pre-release Checklist
Note: This checklist is no longer a part of our release process.
Record binary size
[edit]Install the release candidate from TestFlight, then go to General > Storage > record the Wikipedia app size.
Device | OS | Release | Size | % change |
---|---|---|---|---|
? | ? | 6.6.0 (1742) | 33.1MB | |
iPad Pro (11-inch) | iOS 14.4 | 6.8.0 (1803) | 35.4MB | β07% |
iPhone 7 | iOS 14.4.2 | 6.8.0 (1803) | 35.4MB | β07% |
iPad Pro (11-inch) | iOS 14.8.1 | 6.8.2 (1867) | 33.5MB | β05% |
iPhone 7 | iOS 14.8.1 | 6.8.2 (1867) | 33.5MB | β05% |
iPad Pro (11-inch) | iOS 15.4.1 | 6.9.0 (1921) | 38.4 MB | β15% |
iPhone 7 | iOS 15.4.1 | 6.9.0 (1921) | 38.3 MB | β14% |
iPad Pro (11-inch) | iOS 16.3 | 7.1.0 (2027) | 36.9 MB | β3.67% |
iPhone 7 | iOS 15.7 | 7.1.0 (2027) | 36.9 MB | β3.66% |
iPad Pro (11-inch) | iOS 16.3 | 7.2.0 (2061) | 37.2 MB | β0.81% |
iPhone 7 | iOS 15.7.3 | 7.2.0 (2061) | 37.3 MB | β1.08% |
iPad Pro (11-inch) | iOS 16.4 | 7.2.1 (2090) | 37 MBβ | β0.53% |
iPhone 7 | iOS 15.7.3 | 7.2.1 (2090) | β(won't load) | |
iPhone 13 mini | iOS 16.4.1 | 7.2.2 (2182) | 37.7MB | |
iPad (9th gen) | iOS 16.2 | 7.2.2 (2182) | 37MB | |
iPad Pro (11-inch) | iOS 16.5 | 7.3.0 (2242) | 40.3 MB | β8.91% |
iPhone 7 | iOS 15.7.6 | 7.3.0 (2242) | 40.3 MB | β8.04% |
iPhone 7 | iOS 15.7.6 | 7.3.1 (2342) | 41.2MB | β2.23% |
iPad Pro (11-inch) | iOS 16.5 | 7.3.1 (2342) | 45.4MB | β12.66% |
iPhone 13 mini | iOS 16.5.1 (c) | 7.4.0 (2459) | 38.6MB | β2.4% (comparing same model) |
iPad (9th gen) | iPadOS 16.2 | 7.4.0 (2459) | 38MB | |
iPhone 7 | iOS 15.7.6 | 7.4.2 (2736) | 41.8MB | β1.45% |
iPad Pro (11-inch) | iPadOS 16.6 | 7.4.2 (2736) | 41.8MB | β7.92% |
iPhone 7 | iOS 15.7.6 | 7.4.3 (2817) | 43.6MB | β4.3Β % |
iPad Pro (11-inch) | iPadOS 16.6 | 7.4.3 (2817) | 43.6MB | β4.3Β % |
iPhone 7 | iOS 15.8 | 7.4.6 (2963) | 43.8MB | β.045% |
iPad Pro (11-inch) | iPadOS 16.7.2 | 7.4.6 (2963) | 43.8MB | β.045% |
iPhone 13 mini | iOS 17.4.1 | 7.5.0 (3550) | 46,8MB | β4.7% |
Record launch time
[edit]Do these steps for at least two physical devices and record the results.
- Run the "App Launch" instrument in instruments. Hover over when the purple phase ends (pre-main time), record the miliseconds timestamp in table below. Hover over when the green phase ends (total time), record the miliseconds timestamp in table below. (Note: until 7.2.0, I did not record the green total time, which is why you see some missing values there).
- Do this for a fresh install and for upgrading from the current App Store app with some saved articles.
Device | OS | Release | Type | pre-main time
total time |
% change |
---|---|---|---|---|---|
iPhone 7 | 13.4.1 | 6.6.0 | Fresh install | 318.39ms | |
iPhone 7 | 13.4.1 | 6.6.0 | Upgrade | 326.69ms | |
iPad Pro 11-inch | 13.4.1 | 6.6.0 | Fresh install | 328.94ms | |
iPad Pro 11-inch | 13.4.1 | 6.6.0 | Upgrade | 405.57ms | |
iPhone 7 | 14.4.2 | 6.8.0 | Fresh install | 261.58ms | β18% |
iPhone 7 | 14.4.2 | 6.8.0 | Upgrade | 229.45ms | β30% |
iPad Pro 11-inch | 14.4 | 6.8.0 | Fresh install | 246.05ms | β25% |
iPad Pro 11-inch | 14.4 | 6.8.0 | Upgrade | 248.27ms | β39% |
iPhone 7 | 14.8.1 | 6.8.2 | Fresh install | 93.73ms | β64% |
iPhone 7 | 14.8.1 | 6.8.2 | Upgrade | 83.00ms | β64% |
iPad Pro 11-inch | 14.8.1 | 6.8.2 | Fresh install | 242.78ms | β01% |
iPad Pro 11-inch | 14.8.1 | 6.8.2 | Upgrade | 254.39ms | β02% |
iPhone 7 | 15.4.1 | 6.9.0 | Fresh install | 231.43ms | β147% |
iPhone 7 | 15.4.1 | 6.9.0 | Upgrade | 221.39ms | β168% |
iPad Pro 11-inch | 15.4.1 | 6.9.0 | Fresh install | 194.73ms | β20% |
iPad Pro 11-inch | 15.4.1 | 6.9.0 | Upgrade | 177.32ms | β30% |
iPhone 7 | 15.7 | 7.1.0 | Fresh install | 188.15ms | β18% |
iPhone 7 | 15.7 | 7.1.0 | Upgrade | 198.5ms | β10% |
iPad Pro 11-inch | 16.3 | 7.1.0 | Fresh install | 134.79ms | β31% |
iPad Pro 11-inch | 16.3 | 7.1.0 | Upgrade | 150.6ms | β15% |
iPhone 7 | 15.7.3 | 7.2.0 | Fresh install | 139.760ms
387.975ms |
β25.72%
? |
iPhone 7 | 15.7.3 | 7.2.0 | Upgrade | 141.84ms
298.764ms |
β28.54%
? |
iPad Pro 11-inch | 16.3 | 7.2.0 | Fresh install | 158.444ms
334.627ms |
β17.55%
? |
iPad Pro 11-inch | 16.3 | 7.2.0 | Upgrade | 165.978ms
324.020ms |
β10.21%
? |
iPhone 7 | 15.7.3 | 7.2.1 (2090) | Fresh install | 207.493ms
525.212ms |
β48.44%
β35.37% |
iPhone 7 | 15.7.3 | 7.2.1 (2090) | Upgrade | 133.519ms
311.151ms |
β05.87%
β04.14% |
iPad Pro 11-inch | 16.4 | 7.2.1 (2090) | Fresh install | 171.112ms
480.292ms |
β08.00%
β43.53% |
iPad Pro 11-inch | 16.4 | 7.2.1 (2090) | Upgrade | 147.925ms
303.338ms |
β06.63%
β06.38% |
iPhone 13 mini | 16.4.1 | 7.2.2 (2182) | Fresh Install | 162.174ms
326.862ms |
|
iPhone 13 mini | 16.4.1 | 7.2.2 (2182) | Upgrade | 133.488ms
246.054ms |
|
iPad Pro 11-inch | 16.5 | 7.3.0 (2242) | Fresh install | 201.014ms
431.290ms |
β17.48%
β10.20% |
iPad Pro 11-inch | 16.5 | 7.3.0 (2242) | Upgrade | 166.278ms
301.526ms |
β12.41%
β0.60% |
iPhone 7 | 15.7.6 | 7.3.0 (2242) | Fresh install | 188.099ms
414.849ms |
β9.35%
β21% |
iPhone 7 | 15.7.6 | 7.3.0 (2242) | Upgrade | 119.664ms
267.693ms |
β10.38%
β13.97% |
iPhone 7 | 15.7.6 | 7.3.1 (2342) | Fresh install | 144ms
275ms |
β23%
β33.71% |
iPhone 7 | 15.7.6 | 7.3.1 (2342) | Upgrade | 130ms
257ms |
β8.64%
β4% |
iPad Pro 11-inch | 16.5 | 7.3.1 (2342) | Fresh install | 173ms
292ms |
β14%
β32% |
iPad Pro 11-inch | 16.5 | 7.3.1 (2342) | Upgrade | 154ms
278ms |
β7%
β8% |
iPhone 13 mini | 16.5.1 (c) | 7.4.0 (2459) | Fresh install | 144ms
205ms |
|
iPhone 13 mini | 16.5.1 (c) | 7.4.0 (2459) | Upgrade | 155ms
194ms |
|
iPad (9th gen) | 16.2 | 7.4.0 (2459) | Fresh install | 163ms
237ms |
|
iPad (9th gen) | 16.2 | 7.4.0 (2459) | Upgrade | 167ms
253ms |
|
iPhone 7 | 15.7.6 | 7.4.2 (2736) | Fresh install | 241ms
570ms |
β67%
β107% |
iPhone 7 | 15.7.6 | 7.4.2 (2736) | Upgrade | 124ms
244ms |
β4.61%
β5.06% |
iPad Pro 11-inch | 16.6 | 7.4.2 (2736) | Fresh install | 175ms
416ms |
β1.15%
β42.4% |
iPad Pro 11-inch | 16.6 | 7.4.2 (2736) | Upgrade | 147ms
267ms |
β4.54%
β3.95% |
iPhone 7 | 15.7.6 | 7.4.3 (2817) | Fresh install | 376ms
591ms |
β56%
β3.7% |
iPhone 7 | 15.7.6 | 7.4.3 (2817) | Upgrade | 174ms
319ms |
β40%
β31% |
iPad Pro 11-inch | 16.6 | 7.4.3 (2817) | Fresh install | 167ms
284ms |
β5%
β32% |
iPad Pro 11-inch | 16.6 | 7.4.3 (2817) | Upgrade | 150ms
248ms |
β2%
β7% |
iPhone 7 | 15.8 | 7.4.6 (2963) | Fresh install | 210ms
364ms |
β44%
β38% |
iPhone 7 | 15.8 | 7.4.6 (2963) | Upgrade | 134ms
253ms |
β22%
β20% |
iPad Pro (11-inch) | 16.7.2 | 7.4.6 (2963) | Fresh install | 175ms
297ms |
β4.7%
β4.5% |
iPad Pro (11-inch) | 16.7.2 | 7.4.6 (2963) | Upgrade | 156ms
260ms |
β4%
β4.83% |
Run article load performance tests
[edit]Currently we have some performance tests that are not set up to work with our build server / CI process. Until then, it's good to run these manually pre-release as a sanity check. The article loading performance tests are in ArticleManualPerformanceTests.swift. Run these on at least two devices from the Performance Testing scheme. Note that ArticleManualPerformanceTests.swift will stub out the network call with Nocilla, so it is a true native-only performance test.
Device | OS | Release | Test name | average time | % change |
---|---|---|---|---|---|
iPhone 7 | 14.4.2 | 6.6.0 (1742) | testArticleSetupTime | 0.452s | |
iPhone 7 | 14.4.2 | 6.6.0 (1742) | testContextMenuConfigTime | 0.120s | |
iPhone 7 | 14.4.2 | 6.6.0 (1742) | testArticlePeekPreviewControllerDisplayTime | 0.085s | |
iPad Pro 11-inch | 14.4 | 6.6.0 (1742) | testArticleSetupTime | 0.351s | |
iPad Pro 11-inch | 14.4 | 6.6.0 (1742) | testContextMenuConfigTime | 0.093s | |
iPad Pro 11-inch | 14.4 | 6.6.0 (1742) | testArticlePeekPreviewControllerDisplayTime | 0.061s | |
iPhone 7 | 14.4.2 | 6.8.0 | testArticleSetupTime | 0.501s | β11% |
iPhone 7 | 14.4.2 | 6.8.0 | testContextMenuConfigTime | 0.106s | β12% |
iPhone 7 | 14.4.2 | 6.8.0 | testArticlePeekPreviewControllerDisplayTime | 0.051s | β40% |
iPad Pro (11-inch) | 14.4 | 6.8.0 | testArticleSetupTime | 0.309s | β12% |
iPad Pro (11-inch) | 14.4 | 6.8.0 | testContextMenuConfigTime | 0.080s | β14% |
iPad Pro (11-inch) | 14.4 | 6.8.0 | testArticlePeekPreviewControllerDisplayTime | 0.039s | β36% |
iPhone 7 | 14.8.1 | 6.8.2 | testArticleSetupTime | 0.456s | β9% |
iPhone 7 | 14.8.1 | 6.8.2 | testContextMenuConfigTime | 0.150s | β41% |
iPhone 7 | 14.8.1 | 6.8.2 | testArticlePeekPreviewControllerDisplayTime | 0.059 | β15% |
iPad Pro (11-inch) | 14.8.1 | 6.8.2 | testArticleSetupTime | 0.329s | β6% |
iPad Pro (11-inch) | 14.8.1 | 6.8.2 | testContextMenuConfigTime | 0.090s | β12.5% |
iPad Pro (11-inch) | 14.8.1 | 6.8.2 | testArticlePeekPreviewControllerDisplayTime | 0.050s | β28% |
iPhone 7 | 15.4.1 | 6.9.0 | testArticleSetupTime | 0.463s | β2% |
iPhone 7 | 15.4.1 | 6.9.0 | testContextMenuConfigTime | 0.042s | β72% |
iPhone 7 | 15.4.1 | 6.9.0 | testArticlePeekPreviewControllerDisplayTime | 0.036s | β39% |
iPad Pro (11-inch) | 15.4.1 | 6.9.0 | testArticleSetupTime | 0.326s | β1% |
iPad Pro (11-inch) | 15.4.1 | 6.9.0 | testContextMenuConfigTime | 0.064s | β29% |
iPad Pro (11-inch) | 15.4.1 | 6.9.0 | testArticlePeekPreviewControllerDisplayTime | 0.036s | β28% |
iPhone 7 | 15.7 | 7.1.0 | testArticleSetupTime | 0.541s | β17% |
iPhone 7 | 15.7 | 7.1.0 | testContextMenuConfigTime | 0.121s | β188% |
iPhone 7 | 15.7 | 7.1.0 | testArticlePeekPreviewControllerDisplayTime | 0.063s | β75% |
iPad Pro (11-inch) | 16.3 | 7.1.0 | testArticleSetupTime | 0.493s | β51% |
iPad Pro (11-inch) | 16.3 | 7.1.0 | testContextMenuConfigTime | 0.262s | β309% |
iPad Pro (11-inch) | 16.3 | 7.1.0 | testArticlePeekPreviewControllerDisplayTime | 0.235s | β552% |
iPhone 7 | 15.7.3 | 7.2.0 | testArticleSetupTime | 0.539s | β0.37% |
iPhone 7 | 15.7.3 | 7.2.0 | testContextMenuConfigTime | 0.122s | β0.83% |
iPhone 7 | 15.7.3 | 7.2.0 | testArticlePeekPreviewControllerDisplayTime | 0.059s | β6.34 |
iPad Pro (11-inch) | 16.3 | 7.2.0 | testArticleSetupTime | 0.517s | β4.87% |
iPad Pro (11-inch) | 16.3 | 7.2.0 | testContextMenuConfigTime | 0.288s | β136% |
iPad Pro (11-inch) | 16.3 | 7.2.0 | testArticlePeekPreviewControllerDisplayTime | 0.031s | β47.46% |
iPhone 7 | 15.7.3 | 7.2.1 (2090) | testArticleSetupTime | 0.627s | β16.33% |
iPhone 7 | 15.7.3 | 7.2.1 (2090) | testContextMenuConfigTime | 0.162s | β32.79% |
iPhone 7 | 15.7.3 | 7.2.1 (2090) | testArticlePeekPreviewControllerDisplayTime | 0.036s | β38.98% |
iPad Pro (11-inch) | 16.4 | 7.2.1 (2090) | testArticleSetupTime | 0.495s | β04.26% |
iPad Pro (11-inch) | 16.4 | 7.2.1 (2090) | testContextMenuConfigTime | 0.276s | β04.17% |
iPad Pro (11-inch) | 16.4 | 7.2.1 (2090) | testArticlePeekPreviewControllerDisplayTime | 0.027s | β12.90% |
iPhone 13 mini | 16.4.1 | 7.2.2 (2182) | testArticleSetupTime | 0.266s | |
iPhone 13 mini | 16.4.1 | 7.2.2 (2182) | testContextMenuConfigTime | 0.158s | |
iPhone 13 mini | 16.4.1 | 7.2.2 (2182) | testArticlePeekPreviewControllerDisplayTime | 0.139s | |
iPad Pro (11-inch) | 16.5 | 7.3.0 (2242) | testArticleSetupTime | 0.437s | β12% |
iPad Pro (11-inch) | 16.5 | 7.3.0 (2242) | testContextMenuConfigTime | 0.267s | β3% |
iPad Pro (11-inch) | 16.5 | 7.3.0 (2242) | testArticlePeekPreviewControllerDisplayTime | 0.224s | β730% |
iPhone 7 | 15.7.6 | 7.3.0 (2242) | testArticleSetupTime | 0.434s | β30.78% |
iPhone 7 | 15.7.6 | 7.3.0 (2242) | testContextMenuConfigTime | 0.162s | 0% |
iPhone 7 | 15.7.6 | 7.3.0 (2242) | testArticlePeekPreviewControllerDisplayTime | 0.049s | β36% |
iPad Pro (11-inch) | 16.5 | 7.3.1 (2342) | testArticleSetupTime | 0.252s | β42% |
iPad Pro (11-inch) | 16.5 | 7.3.1 (2342) | testContextMenuConfigTime | 0.117s | β56% |
iPad Pro (11-inch) | 16.5 | 7.3.1 (2342) | testArticlePeekPreviewControllerDisplayTime | 0.031s | β86% |
iPhone 7 | 15.7.6 | 7.3.1 (2342) | testArticleSetupTime | 0.384s | β12% |
iPhone 7 | 15.7.6 | 7.3.1 (2342) | testContextMenuConfigTime | 0.121s | β25% |
iPhone 7 | 15.7.6 | 7.3.1 (2342) | testArticlePeekPreviewControllerDisplayTime | 0.047s | β4% |
iPhone 13 mini | 16.5.1 (c) | 7.4.0 (2459) | testArticleSetupTime | 0.169s | |
iPhone 13 mini | 16.5.1 (c) | 7.4.0 (2459) | testContextMenuConfigTime | 0.050s | |
iPhone 13 mini | 16.5.1 (c) | 7.4.0 (2459) | testArticlePeekPreviewControllerDisplayTime | 0.021s | |
iPad (9th gen) | 16.2 | 7.4.0 (2459) | testArticleSetupTime | 0.393s | |
iPad (9th gen) | 16.2 | 7.4.0 (2459) | testContextMenuConfigTime | 0.210s | |
iPad (9th gen) | 16.2 | 7.4.0 (2459) | testArticlePeekPreviewControllerDisplayTime | 0.170s | |
iPhone 7 | 15.7.6 | 7.4.2 (2736) | testArticleSetupTime | 0.345s | β10% |
iPhone 7 | 15.7.6 | 7.4.2 (2736) | testContextMenuConfigTime | 0.126s | β4% |
iPhone 7 | 15.7.6 | 7.4.2 (2736) | testArticlePeekPreviewControllerDisplayTime | 0.036s | β23% |
iPad Pro (11-inch) | 16.6 | 7.4.2 (2736) | testArticleSetupTime | 0.258s | β2.38% |
iPad Pro (11-inch) | 16.6 | 7.4.2 (2736) | testContextMenuConfigTime | 0.129s | β10.26% |
iPad Pro (11-inch) | 16.6 | 7.4.2 (2736) | testArticlePeekPreviewControllerDisplayTime | 0.205 | β561.2% |
iPhone 7 | 15.7.6 | 7.4.3 (2817) | testArticleSetupTime | 0.45s | β30% |
iPhone 7 | 15.7.6 | 7.4.3 (2817) | testContextMenuConfigTime | 0.141s | β12% |
iPhone 7 | 15.7.6 | 7.4.3 (2817) | testArticlePeekPreviewControllerDisplayTime | 0.058s | β61% |
iPad Pro (11-inch) | 16.6 | 7.4.3 (2817) | testArticleSetupTime | 0.776s | β201% |
iPad Pro (11-inch) | 16.6 | 7.4.3 (2817) | testContextMenuConfigTime | 0.648s | β402% |
iPad Pro (11-inch) | 16.6 | 7.4.3 (2817) | testArticlePeekPreviewControllerDisplayTime | 0.058s | β72% |
iPhone 7 | 15.8 | 7.4.6 (2963) | testArticleSetupTime | 0.408s | β806% |
iPhone 7 | 15.8 | 7.4.6 (2963) | testContextMenuConfigTime | 0.146s | β3.54% |
iPhone 7 | 15.8 | 7.4.6 (2963) | testArticlePeekPreviewControllerDisplayTime | 0.055s | β5% |
iPad Pro (11-inch) | 16.7.2 | 7.4.6 (2963) | testArticleSetupTime | 0.729s | β6% |
iPad Pro (11-inch) | 16.7.2 | 7.4.6 (2963) | testContextMenuConfigTime | 0.620s | β4% |
iPad Pro (11-inch) | 16.7.2 | 7.4.6 (2963) | testArticlePeekPreviewControllerDisplayTime | 0.588s | β913% |