beeminder / BeeSwift

Official Beeminder for iOS app
Other
29 stars 5 forks source link

Use server logs/metrics to determine the breakdown of iOS versions amongst Beeswift Users #326

Closed theospears closed 1 year ago

theospears commented 1 year ago

New versions of BeeSwift currently support iOS 11+. I'm trying to work out if we should continue to target this version, or if it is appropriate to increase the minimum version to something newer. Targeting a newer version would allow the usage of some cleaner code patterns (e.g. around async) and remove some of the special casing for older versions currently existing in the app.

To figure out the downsides of this it would help to know the distribution of iOS versions for BeeSwift users. The only way I know of to obtain this data is via API server logs. The BeeSwift user agent includes iOS version (e.g. BeeSwift/6.0 (com.beeminder.beeminder; build:19; iOS 15.6.1) Alamofire/4.9.1).

If it's relatively straightforward could you run a query against the API log database to get an idea of iOS version distribution and share the results?

shanaqui commented 1 year ago

Not sure what version of iOS my test device is on, though I know it can't seem to update further and I have a suspicion it's 11... I will look it up once I can get some charge into the device, because I'd like that to factor into this discussion: if I can't update the app anymore, then I won't be able to provide accurate support for iOS users nor keep the iOS help docs properly up to date. I don't think any of the other members of my team use iOS either (though members of the wider Beeminder team do and can provide me with screenshots... albeit rarely at the moment I need them). A new test device is not in my budget for the foreseeable future.

It wouldn't necessarily be a dealbreaker, mind you; I'd just like it to be factored into the decision about the pros and cons.

theospears commented 1 year ago

Thanks @shanaqui, that's really valuable input.

https://iosref.com/ios-usage has a table of newest iOS versions supported by different models. Based on that I would guess your test device is on iOS 10 or iOS 12.

adamwolf commented 1 year ago
I ran the numbers for raw API calls from the past 14 days. This isn't raw user numbers, just raw API calls. version # calls
16.1.0 45,604
16.0.3 10,968
16.0.2 166,364
16.0.1 8,938
16.0.0 146,104
15.7.0 37,060
15.6.1 201,314
15.6.0 10,750
15.5.0 9,104
15.4.1 4,078
15.4.0 710
15.3.1 2,648
15.2.1 816
15.2.0 2,560
15.1.1 594
15.1.0 760
15.0.2 9,652
15.0.1 6
15.0.0 4
14.8.1 1,700
14.8.0 1,220
14.7.1 7,290
14.7.0 170
14.6.0 1,534
14.5.1 252
14.4.2 1,416
14.2.1 8
14.1.0 236
13.7.0 186
13.5.1 22
13.4.1 2
12.5.6 558
12.5.5 216

We can massage the data to get number of users and various rollups--let me know if any would be useful.

theospears commented 1 year ago

According to this 99.85% of requests are from devices running 14.1 or newer, which is the version I was thinking of bumping to. And 97.8% of requests are from 15.0 or newer, so this would also be reasonable, but there's less of a compelling reason from my side to do this.

But the support team not being able to support the current version of the app would be really unfortunate, so I'm not going to make any decision here until we have an answer on that aspect.

dreeves commented 1 year ago

Thanks so much everyone! Executive decisions: A version requirement that 97%+ of users meet is 💯 and we'll send Nicky a modern iOS device if no other support workerbee has such a device already.