Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Remove deprecated Objective-C iOS app create template #169547

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

Open
wants to merge 4 commits into
base: master
Choose a base branch
Loading
from

Conversation

jmagman
Copy link
Member

@jmagman jmagman commented May 27, 2025

Remove Objective-C template for new apps. Existing apps won't be impacted.

Keep Objective-C templates for plugins, though their example apps will be Swift instead. See #148586 (comment)

Move templates/app/ios-swift.tmpl to templates/app/ios.tmpl.

Fixes #148586

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added tool Affects the "flutter" command-line tool. See also t: labels. a: desktop Running on desktop team-ios Owned by iOS platform team labels May 27, 2025
@@ -212,7 +212,7 @@ void main() {
workflow: 'create',
commandHasTerminal: false,
createAndroidLanguage: 'java',
createIosLanguage: 'objc',
createIosLanguage: 'swift',
Copy link
Member Author

Choose a reason for hiding this comment

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

Keep the createIosLanguage usage data to check when -t plugin usages becomes low enough to remove that too.

@@ -1761,91 +1726,7 @@ void main() {
},
);

testUsingContext(
'Correct info.plist key-value pairs for swift iOS module.',
Copy link
Member Author

@jmagman jmagman May 27, 2025

Choose a reason for hiding this comment

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

This test was redundant, iOS modules are only supported for Objective-C.

@@ -1,121 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
Copy link
Member Author

Choose a reason for hiding this comment

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

Odd we had an Objective-C and Swift version of schemes, they were identical except for a single BlueprintIdentifier.

@jmagman jmagman force-pushed the objc-template branch 2 times, most recently from d8e1c03 to f52fb00 Compare May 29, 2025 16:28
);
});

section('Build Objective-C application with Swift and Objective-C plugins as libraries');
section('Build iOS application with Swift and Objective-C plugins as frameworks');
Copy link
Member Author

Choose a reason for hiding this comment

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

This diff is confusing, but I removed the Build Objective-C application with Swift and Objective-C plugins as libraries and Build Objective-C application with Swift and Objective-C plugins as frameworks sections, and renamed Build Swift iOS application with Swift and Objective-C plugins as frameworks to remove "Swift".

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

LGTM 🎉

@@ -3185,34 +3064,6 @@ void main() {
overrides: <Type, Generator>{FeatureFlags: () => TestFeatureFlags(), Logger: () => logger},
);

testUsingContext(
'plugin includes native Objective-C unit tests',
Copy link
Contributor

Choose a reason for hiding this comment

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

Optional: instead of deleting this, you could rename it "Obj-C plugin includes native Swift unit tests" and adjust the expectations accordingly.

But it also wouldn't really matter if a feature I think almost nobody but us uses regresses for a deprecated flag, so I'm fine with axing it.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done.

Copy link
Member

@cbracken cbracken left a comment

Choose a reason for hiding this comment

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

LGTM stamp from a Japanese personal seal

);
if (stringArg('ios-language') == 'objc') {
globals.printWarning(
'Please comment in https://github.com/flutter/flutter/issues/148586 describing your use-case for using Objective-C instead of Swift.',
Copy link
Contributor

Choose a reason for hiding this comment

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

This will need an update per #148586 (comment)

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g May 29, 2025

Choose a reason for hiding this comment

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

(It's interesting that the warning has been in stable for (I think; I didn't check branch alignment) 5 months now, and we haven't had any comments so far.)

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated the link.
I suppose it wasn't a very beloved feature. I checked again and in the last 3 months the Obj-C app creation is ~1%.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: desktop Running on desktop team-ios Owned by iOS platform team tool Affects the "flutter" command-line tool. See also t: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deprecate iOS Objective-C create template flutter create --ios-language objc for new apps
4 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.