Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(ios): drop iOS 9 support #11385

Merged
merged 7 commits into from Dec 16, 2019
Merged

Conversation

vijaysingh-axway
Copy link
Contributor

@build
Copy link
Contributor

build commented Dec 9, 2019

Messages
📖 👍 Hey!, You deleted more code than you added. That's awesome!
📖

💾 Here's the generated SDK zipfile.

📖 ✊ The commits in this PR match our conventions! Feel free to Rebase and Merge this PR when ready.
📖

✅ All tests are passing
Nice one! All 6680 tests are passing.
(There are 700 skipped tests not included in that total)

Generated by 🚫 dangerJS against 3042933

@hansemannn
Copy link
Collaborator

Is this really necessary? I see many apps that want to support this version, as well as competitive frameworks that still maintain it. And since it's compiled out during build time anyways, it doesn't hurt anyone.

}

[(UIMutableUserNotificationAction *)[self notificationAction] setAuthenticationRequired:[TiUtils boolValue:value]];
DebugLog(@"[WARN] This property is not available in iOS 10+.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mark as deprecated/removed in 9.0.0 in our docs

}

[(UIMutableUserNotificationAction *)[self notificationAction] setDestructive:[TiUtils boolValue:value]];
DebugLog(@"[WARN] This property is not available in iOS 10+.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mark as deprecated/removed in 9.0.0 in our docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually these properties are available but at creation time only for iOS 10+. Manual setters are not available. I think I should delete these setters.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sgtcoolguy Deleted setters as these are creation-only. These properties are already used while calling - (void)_initWithProperties:(NSDictionary *)properties.

}

[(UIMutableUserNotificationAction *)[self notificationAction] setBehavior:[TiUtils intValue:value]];
DebugLog(@"[WARN] This property is not available in iOS 10+.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mark as deprecated/removed in 9.0.0 in our docs

}

[(UIMutableUserNotificationAction *)[self notificationAction] setActivationMode:[TiUtils intValue:value]];
DebugLog(@"[WARN] This property is not available in iOS 10+.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mark as deprecated/removed in 9.0.0 in our docs

@sgtcoolguy
Copy link
Contributor

@hansemannn Is it necessary, I suppose not we: could try to maintain backwards compatibility with every version of every OS. But we kept iOS 9 around for at least one (possibly 2) full breaking release cycles past our own internal usage thresholds before.

This cleans up some of our code, and according to analytics we have near-zero usage on iOS 9 devices (and looking at Apple/3rd party stats also confirms this - there's really only the interesting case of old iPads "stuck" at 9 due to Apple's OS upgrade limit on them). Additionally, what's not really shown/discussed here is that the minimum iOS version also plays role in the JS polyfilling layer we have. Moving up one major version should help drop a significant number of shims/polyfills for ES6 support. (See https://caniuse.com/#compare=safari+9,safari+10&compare_cats=JS )

@hansemannn
Copy link
Collaborator

Despite the fact that probably only 20 % of the Titanium actually use the Appcelerator Analytics, I feel like the benefits are not enough to do this right now. iOS 8 was dropped just in SDK 8.0.0, but if no one complains now, it's probably okay.

@sgtcoolguy sgtcoolguy self-requested a review December 10, 2019 19:41
Copy link
Contributor

@sgtcoolguy sgtcoolguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

code changes look good.

QE, please ask me to merge this after FR so that I can squash it to one commit and tweak the commit message. Thanks!

Copy link
Collaborator

@ewanharris ewanharris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a minor comment around maybe removing some (what appear to me at least) dupe logic checks, but looks good to me!


this.minIosVer = this.tiapp.ios['min-ios-ver'] || defaultMinIosVersion;

if (version.gte(this.iosSdkVersion, '10.0') && version.lt(this.minIosVer, '10.0')) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think maybe this check and the check on 2125 used to be useful (this line looks to have been to force people down the right path #8198) but now our minimum is 10 maybe it's redundant?

this.iosSdkVersion >= 10 and this.iosSdkVersion >= 6 will always be true nowadays, and this.minIosVer < 10 being true seems to duplicate the check on 2128 where we force the minimum to 10 if someone sets it to 9??

@ssekhri
Copy link

ssekhri commented Dec 16, 2019

FR Passed.
Verified on:
Mac OS: 10.15.1
SDK: 9.0.0.v20191213104900
Appc CLI: 7.1.2
JDK: 11.0.4
Node: 10.16.3
Studio: 6.0.0.201911251516
Xcode: 11.2

@ssekhri ssekhri merged commit 2abca7b into tidev:master Dec 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants