From 0ff9e8a928c80ba3ebbacec8ac08f991d3d04c5c Mon Sep 17 00:00:00 2001 From: Greg Spencer Date: Wed, 10 Oct 2018 11:01:40 -0700 Subject: [PATCH] Rename 'application' back to 'module', and make 'app' the default again for templates. (#22888) We decided that redefining the default for templates was premature. We're going to go back to having "module" in experimental land again, and we'll try again when we have the feature set fully baked. This keeps the writing of the .metadata files, and writing the template type to them, because that was a good improvement, and there are still a bunch of added tests that improve our coverage. --- ...application_test.dart => module_test.dart} | 10 +- ...ion_test_ios.dart => module_test_ios.dart} | 8 +- dev/devicelab/manifest.yaml | 8 +- packages/flutter_tools/lib/executable.dart | 2 +- .../lib/src/commands/create.dart | 58 ++--- .../src/commands/make_host_app_editable.dart | 4 +- .../lib/src/flutter_manifest.dart | 24 +-- packages/flutter_tools/lib/src/ios/mac.dart | 2 +- .../flutter_tools/lib/src/ios/xcodeproj.dart | 4 +- packages/flutter_tools/lib/src/plugins.dart | 4 +- packages/flutter_tools/lib/src/project.dart | 72 +++---- .../flutter_tools/schema/pubspec_yaml.json | 2 +- .../{application => module}/README.md | 0 .../android/gradle/build.gradle.copy.tmpl | 0 .../gradle/gradle.properties.copy.tmpl | 0 .../app.tmpl/build.gradle.tmpl | 0 .../src/main/AndroidManifest.xml.tmpl | 0 .../host/MainActivity.java.tmpl | 0 .../main/res/drawable/launch_background.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../app.tmpl/src/main/res/values/styles.xml | 0 .../settings.gradle.copy.tmpl | 0 .../settings.gradle.copy.tmpl | 0 .../library/Flutter.tmpl/build.gradle.tmpl | 0 .../src/main/AndroidManifest.xml.tmpl | 0 .../main/java/io/flutter/facade/Flutter.java | 0 .../io/flutter/facade/FlutterFragment.java | 0 .../library/include_flutter.groovy.copy.tmpl | 0 .../android/library/settings.gradle.copy.tmpl | 0 .../common/.gitignore.tmpl | 0 .../common/.idea/libraries/Dart_SDK.xml.tmpl | 0 .../libraries/Flutter_for_Android.xml.tmpl | 0 .../common/.idea/modules.xml.tmpl | 0 .../common/.idea/workspace.xml.tmpl | 0 .../common/.metadata.tmpl | 2 +- .../common/README.md.tmpl | 0 .../common/lib/main.dart.tmpl | 0 .../common/projectName.iml.tmpl | 0 .../common/projectName_android.iml.tmpl | 0 .../common/pubspec.yaml.tmpl | 2 +- .../common/test/widget_test.dart.tmpl | 0 .../Config.tmpl/Flutter.xcconfig | 0 .../Config.tmpl/Debug.xcconfig | 0 .../Config.tmpl/Flutter.xcconfig | 0 .../Config.tmpl/Release.xcconfig | 0 .../Runner.tmpl/AppDelegate.h | 0 .../Runner.tmpl/AppDelegate.m | 0 .../AppIcon.appiconset/Contents.json | 0 .../Icon-App-1024x1024@1x.png | Bin .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin .../Icon-App-83.5x83.5@2x.png | Bin .../LaunchImage.imageset/Contents.json | 0 .../LaunchImage.imageset/LaunchImage.png | Bin .../LaunchImage.imageset/LaunchImage@2x.png | Bin .../LaunchImage.imageset/LaunchImage@3x.png | Bin .../LaunchImage.imageset/README.md | 0 .../Base.lproj/LaunchScreen.storyboard | 0 .../Runner.tmpl/Base.lproj/Main.storyboard | 0 .../Runner.tmpl/Info.plist.tmpl | 0 .../ios/host_app_ephemeral/Runner.tmpl/main.m | 0 .../project.pbxproj.tmpl | 0 .../contents.xcworkspacedata | 0 .../xcshareddata/xcschemes/Runner.xcscheme | 0 .../contents.xcworkspacedata | 0 .../Config.tmpl/Debug.xcconfig | 0 .../Config.tmpl/Release.xcconfig | 0 .../Podfile.copy.tmpl | 0 .../Runner.tmpl/AppDelegate.m | 0 .../Flutter.tmpl/AppFrameworkInfo.plist | 0 .../ios/library/Flutter.tmpl/README.md | 0 .../ios/library/Flutter.tmpl/podhelper.rb | 0 .../test/commands/create_test.dart | 204 ++++++++---------- .../test/commands/packages_test.dart | 38 ++-- .../test/flutter_manifest_test.dart | 8 +- packages/flutter_tools/test/project_test.dart | 48 ++--- 87 files changed, 233 insertions(+), 267 deletions(-) rename dev/devicelab/bin/tasks/{application_test.dart => module_test.dart} (94%) rename dev/devicelab/bin/tasks/{application_test_ios.dart => module_test_ios.dart} (94%) rename packages/flutter_tools/templates/{application => module}/README.md (100%) rename packages/flutter_tools/templates/{application => module}/android/gradle/build.gradle.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/gradle/gradle.properties.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_common/app.tmpl/build.gradle.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_common/app.tmpl/src/main/AndroidManifest.xml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_common/app.tmpl/src/main/res/drawable/launch_background.xml (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_common/app.tmpl/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_common/app.tmpl/src/main/res/values/styles.xml (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_editable/settings.gradle.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/host_app_ephemeral/settings.gradle.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/library/Flutter.tmpl/build.gradle.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/library/Flutter.tmpl/src/main/AndroidManifest.xml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/Flutter.java (100%) rename packages/flutter_tools/templates/{application => module}/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/FlutterFragment.java (100%) rename packages/flutter_tools/templates/{application => module}/android/library/include_flutter.groovy.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/android/library/settings.gradle.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/.gitignore.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/.idea/libraries/Dart_SDK.xml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/.idea/libraries/Flutter_for_Android.xml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/.idea/modules.xml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/.idea/workspace.xml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/.metadata.tmpl (91%) rename packages/flutter_tools/templates/{application => module}/common/README.md.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/lib/main.dart.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/projectName.iml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/projectName_android.iml.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/common/pubspec.yaml.tmpl (96%) rename packages/flutter_tools/templates/{application => module}/common/test/widget_test.dart.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_editable_cocoapods/Config.tmpl/Flutter.xcconfig (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Config.tmpl/Debug.xcconfig (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Config.tmpl/Flutter.xcconfig (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Config.tmpl/Release.xcconfig (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.h (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.m (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/Contents.json (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/README.md (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/LaunchScreen.storyboard (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/Main.storyboard (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/Info.plist.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.tmpl/main.m (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.xcworkspace/contents.xcworkspacedata (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/xcshareddata/xcschemes/Runner.xcscheme (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral/Runner.xcworkspace.tmpl/contents.xcworkspacedata (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral_cocoapods/Config.tmpl/Debug.xcconfig (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral_cocoapods/Config.tmpl/Release.xcconfig (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl (100%) rename packages/flutter_tools/templates/{application => module}/ios/host_app_ephemeral_cocoapods/Runner.tmpl/AppDelegate.m (100%) rename packages/flutter_tools/templates/{application => module}/ios/library/Flutter.tmpl/AppFrameworkInfo.plist (100%) rename packages/flutter_tools/templates/{application => module}/ios/library/Flutter.tmpl/README.md (100%) rename packages/flutter_tools/templates/{application => module}/ios/library/Flutter.tmpl/podhelper.rb (100%) diff --git a/dev/devicelab/bin/tasks/application_test.dart b/dev/devicelab/bin/tasks/module_test.dart similarity index 94% rename from dev/devicelab/bin/tasks/application_test.dart rename to dev/devicelab/bin/tasks/module_test.dart index 1136544883e..54356fd7b70 100644 --- a/dev/devicelab/bin/tasks/application_test.dart +++ b/dev/devicelab/bin/tasks/module_test.dart @@ -9,7 +9,7 @@ import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/utils.dart'; import 'package:path/path.dart' as path; -/// Tests that the Flutter application project template works and supports +/// Tests that the Flutter module project template works and supports /// adding Flutter to an existing Android app. Future main() async { await task(() async { @@ -21,15 +21,15 @@ Future main() async { return TaskResult.failure('Could not find Java'); print('\nUsing JAVA_HOME=$javaHome'); - section('Create Flutter application project'); + section('Create Flutter module project'); - final Directory tempDir = Directory.systemTemp.createTempSync('flutter_application_test.'); + final Directory tempDir = Directory.systemTemp.createTempSync('flutter_module_test.'); final Directory projectDir = Directory(path.join(tempDir.path, 'hello')); try { await inDirectory(tempDir, () async { await flutter( 'create', - options: ['--org', 'io.flutter.devicelab', '--template=application', 'hello'], + options: ['--org', 'io.flutter.devicelab', '--template=module', 'hello'], ); }); @@ -49,7 +49,7 @@ Future main() async { ); }); - section('Build Flutter application library archive'); + section('Build Flutter module library archive'); await inDirectory(Directory(path.join(projectDir.path, '.android')), () async { await exec( diff --git a/dev/devicelab/bin/tasks/application_test_ios.dart b/dev/devicelab/bin/tasks/module_test_ios.dart similarity index 94% rename from dev/devicelab/bin/tasks/application_test_ios.dart rename to dev/devicelab/bin/tasks/module_test_ios.dart index e3dfa9a31d1..af3cb69648c 100644 --- a/dev/devicelab/bin/tasks/application_test_ios.dart +++ b/dev/devicelab/bin/tasks/module_test_ios.dart @@ -10,20 +10,20 @@ import 'package:flutter_devicelab/framework/ios.dart'; import 'package:flutter_devicelab/framework/utils.dart'; import 'package:path/path.dart' as path; -/// Tests that the Flutter application project template works and supports +/// Tests that the Flutter module project template works and supports /// adding Flutter to an existing iOS app. Future main() async { await task(() async { - section('Create Flutter application project'); + section('Create Flutter module project'); - final Directory tempDir = Directory.systemTemp.createTempSync('flutter_application_test.'); + final Directory tempDir = Directory.systemTemp.createTempSync('flutter_module_test.'); final Directory projectDir = Directory(path.join(tempDir.path, 'hello')); try { await inDirectory(tempDir, () async { await flutter( 'create', - options: ['--org', 'io.flutter.devicelab', '--template=application', 'hello'], + options: ['--org', 'io.flutter.devicelab', '--template=module', 'hello'], ); }); await prepareProvisioningCertificates(projectDir.path); diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml index ee8c90d0ca8..699af3257a3 100644 --- a/dev/devicelab/manifest.yaml +++ b/dev/devicelab/manifest.yaml @@ -263,9 +263,9 @@ tasks: stage: devicelab required_agent_capabilities: ["linux/android"] - application_test: + module_test: description: > - Checks that the application project template works and supports add2app on Android. + Checks that the module project template works and supports add2app on Android. stage: devicelab required_agent_capabilities: ["linux/android"] @@ -297,9 +297,9 @@ tasks: stage: devicelab_ios required_agent_capabilities: ["mac/ios"] - application_test_ios: + module_test_ios: description: > - Checks that the application project template works and supports add2app on iOS. + Checks that the module project template works and supports add2app on iOS. stage: devicelab required_agent_capabilities: ["mac/ios"] diff --git a/packages/flutter_tools/lib/executable.dart b/packages/flutter_tools/lib/executable.dart index 6d62a5eca8f..d8c8c1ab6c9 100644 --- a/packages/flutter_tools/lib/executable.dart +++ b/packages/flutter_tools/lib/executable.dart @@ -56,7 +56,7 @@ Future main(List args) async { ChannelCommand(verboseHelp: verboseHelp), CleanCommand(), ConfigCommand(verboseHelp: verboseHelp), - CreateCommand(verboseHelp: verboseHelp), + CreateCommand(), DaemonCommand(hidden: !verboseHelp), DevicesCommand(), DoctorCommand(verbose: verbose), diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 0fec5f0efd6..a99b75cb66a 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -25,15 +25,13 @@ import '../template.dart'; import '../version.dart'; enum _ProjectType { - /// This is the legacy "app" module type that was created before the default - /// was "application". It is kept around to allow users to recreate files that - /// have been removed in old projects. + /// This is the default project with the user-managed host code. + /// It is different than the "module" template in that it exposes and doesn't + /// manage the platform code. app, - /// The is the default type of project created. It is an application with + /// The is a project that has managed platform host code. It is an application with /// ephemeral .ios and .android directories that can be updated automatically. - application, - /// This is the old name for the [application] style project. - module, // TODO(gspencer): deprecated -- should be removed once IntelliJ no longer uses it. + module, /// This is a Flutter Dart package project. It doesn't have any native /// components, only Dart. package, @@ -43,11 +41,6 @@ enum _ProjectType { _ProjectType _stringToProjectType(String value) { _ProjectType result; - // TODO(gspencer): remove module when it is no longer used by IntelliJ plugin. - // Module is just an alias for application. - if (value == 'module') { - value = 'application'; - } for (_ProjectType type in _ProjectType.values) { if (value == getEnumName(type)) { result = type; @@ -58,7 +51,7 @@ _ProjectType _stringToProjectType(String value) { } class CreateCommand extends FlutterCommand { - CreateCommand({bool verboseHelp = false }) { + CreateCommand() { argParser.addFlag('pub', defaultsTo: true, help: 'Whether to run "flutter packages get" after the project has been created.' @@ -82,23 +75,13 @@ class CreateCommand extends FlutterCommand { help: 'Specify the type of project to create.', valueHelp: 'type', allowedHelp: { - getEnumName(_ProjectType.application): '(default) Generate a Flutter application.', + getEnumName(_ProjectType.app): '(default) Generate a Flutter application.', getEnumName(_ProjectType.package): 'Generate a shareable Flutter project containing modular ' 'Dart code.', getEnumName(_ProjectType.plugin): 'Generate a shareable Flutter project containing an API ' 'in Dart code with a platform-specific implementation for Android, for iOS code, or ' 'for both.', - }..addAll(verboseHelp - ? { - getEnumName(_ProjectType.app): 'Generate the legacy form of an application project. Use ' - '"application" instead, unless you are working with an existing legacy app project. ' - 'This is not just an alias for the "application" template, it produces different ' - 'output.', - getEnumName(_ProjectType.module): 'Legacy, deprecated form of an application project. Use ' - '"application" instead. This is just an alias for the "application" template, it ' - 'produces the same output. It will be removed in a future release.', - } - : {}), + }, defaultsTo: null, ); argParser.addOption( @@ -227,7 +210,7 @@ class CreateCommand extends FlutterCommand { } } } - template ??= detectedProjectType ?? _ProjectType.application; + template ??= detectedProjectType ?? _ProjectType.app; if (detectedProjectType != null && template != detectedProjectType && metadataExists) { // We can only be definitive that this is the wrong type if the .metadata file // exists and contains a type that doesn't match. @@ -235,7 +218,7 @@ class CreateCommand extends FlutterCommand { "existing template type of '${getEnumName(detectedProjectType)}'."); } - final bool generateApplication = template == _ProjectType.application; + final bool generateModule = template == _ProjectType.module; final bool generatePlugin = template == _ProjectType.plugin; final bool generatePackage = template == _ProjectType.package; @@ -283,11 +266,10 @@ class CreateCommand extends FlutterCommand { int generatedFileCount = 0; switch (template) { case _ProjectType.app: - generatedFileCount += await _generateLegacyApp(relativeDir, templateContext); + generatedFileCount += await _generateApp(relativeDir, templateContext); break; case _ProjectType.module: - case _ProjectType.application: - generatedFileCount += await _generateApplication(relativeDir, templateContext); + generatedFileCount += await _generateModule(relativeDir, templateContext); break; case _ProjectType.package: generatedFileCount += await _generatePackage(relativeDir, templateContext); @@ -305,13 +287,13 @@ class CreateCommand extends FlutterCommand { '${templateContext['projectName']}.dart', )); printStatus('Your package code is in $relativeMainPath'); - } else if (generateApplication) { + } else if (generateModule) { final String relativeMainPath = fs.path.normalize(fs.path.join( relativeDirPath, 'lib', 'main.dart', )); - printStatus('Your application code is in $relativeMainPath.'); + printStatus('Your module code is in $relativeMainPath.'); } else { // Run doctor; tell the user the next steps. final FlutterProject project = await FlutterProject.fromPath(projectDirPath); @@ -359,13 +341,13 @@ To edit platform code in an IDE see https://flutter.io/developing-packages/#edit return null; } - Future _generateApplication(Directory directory, Map templateContext) async { + Future _generateModule(Directory directory, Map templateContext) async { int generatedCount = 0; final String description = argResults.wasParsed('description') ? argResults['description'] - : 'A new flutter application project.'; + : 'A new flutter module project.'; templateContext['description'] = description; - generatedCount += _renderTemplate(fs.path.join('application', 'common'), directory, templateContext); + generatedCount += _renderTemplate(fs.path.join('module', 'common'), directory, templateContext); if (argResults['pub']) { await pubGet( context: PubContext.create, @@ -382,7 +364,7 @@ To edit platform code in an IDE see https://flutter.io/developing-packages/#edit int generatedCount = 0; final String description = argResults.wasParsed('description') ? argResults['description'] - : 'A new flutter package project.'; + : 'A new Flutter package project.'; templateContext['description'] = description; generatedCount += _renderTemplate('package', directory, templateContext); if (argResults['pub']) { @@ -423,11 +405,11 @@ To edit platform code in an IDE see https://flutter.io/developing-packages/#edit templateContext['pluginProjectName'] = projectName; templateContext['androidPluginIdentifier'] = androidPluginIdentifier; - generatedCount += await _generateLegacyApp(project.example.directory, templateContext); + generatedCount += await _generateApp(project.example.directory, templateContext); return generatedCount; } - Future _generateLegacyApp(Directory directory, Map templateContext) async { + Future _generateApp(Directory directory, Map templateContext) async { int generatedCount = 0; generatedCount += _renderTemplate('app', directory, templateContext); final FlutterProject project = await FlutterProject.fromDirectory(directory); diff --git a/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart b/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart index 2eee49b64f8..d40dcd62fe2 100644 --- a/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart +++ b/packages/flutter_tools/lib/src/commands/make_host_app_editable.dart @@ -37,8 +37,8 @@ class MakeHostAppEditableCommand extends FlutterCommand { Future validateCommand() async { await super.validateCommand(); _project = await FlutterProject.current(); - if (!_project.isApplication) - throw ToolExit("Only projects created using 'flutter create -t application' can have their host apps made editable."); + if (!_project.isModule) + throw ToolExit("Only projects created using 'flutter create -t module' can have their host apps made editable."); } @override diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart index 7e4068e064f..bb731d88306 100644 --- a/packages/flutter_tools/lib/src/flutter_manifest.dart +++ b/packages/flutter_tools/lib/src/flutter_manifest.dart @@ -110,14 +110,14 @@ class FlutterManifest { return _flutterDescriptor['uses-material-design'] ?? false; } - /// True if this manifest declares a Flutter application project. + /// True if this manifest declares a Flutter module project. /// - /// A Flutter project is considered an application when it has a `application:` - /// descriptor. A Flutter application project supports integration into an - /// existing host app. + /// A Flutter project is considered a module when it has a `module:` + /// descriptor. A Flutter module project supports integration into an + /// existing host app, and has managed platform host code. /// - /// Such a project can be created using `flutter create -t application`. - bool get isApplication => _flutterDescriptor.containsKey('application'); + /// Such a project can be created using `flutter create -t module`. + bool get isModule => _flutterDescriptor.containsKey('module'); /// True if this manifest declares a Flutter plugin project. /// @@ -130,21 +130,21 @@ class FlutterManifest { bool get isPlugin => _flutterDescriptor.containsKey('plugin'); /// Returns the Android package declared by this manifest in its - /// application or plugin descriptor. Returns null, if there is no + /// module or plugin descriptor. Returns null, if there is no /// such declaration. String get androidPackage { - if (isApplication) - return _flutterDescriptor['application']['androidPackage']; + if (isModule) + return _flutterDescriptor['module']['androidPackage']; if (isPlugin) return _flutterDescriptor['plugin']['androidPackage']; return null; } /// Returns the iOS bundle identifier declared by this manifest in its - /// application descriptor. Returns null, if there is no such declaration. + /// module descriptor. Returns null if there is no such declaration. String get iosBundleIdentifier { - if (isApplication) - return _flutterDescriptor['application']['iosBundleIdentifier']; + if (isModule) + return _flutterDescriptor['module']['iosBundleIdentifier']; return null; } diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index ea367fb11e8..346392a7e3a 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -335,7 +335,7 @@ Future buildXcodeProject({ buildInfo: buildInfo, ); refreshPluginsList(project); - if (hasPlugins(project) || (project.isApplication && project.ios.podfile.existsSync())) { + if (hasPlugins(project) || (project.isModule && project.ios.podfile.existsSync())) { // If the Xcode project, Podfile, or Generated.xcconfig have changed since // last run, pods should be updated. final Fingerprinter fingerprinter = Fingerprinter( diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 4b99549fcfc..2bb2a20c5ee 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart @@ -57,8 +57,8 @@ Future updateGeneratedXcodeProperties({ localsBuffer.writeln('SYMROOT=\${SOURCE_ROOT}/../${getIosBuildDirectory()}'); - if (!project.isApplication) { - // For application projects we do not want to write the FLUTTER_FRAMEWORK_DIR + if (!project.isModule) { + // For module projects we do not want to write the FLUTTER_FRAMEWORK_DIR // explicitly. Rather we rely on the xcode backend script and the Podfile // logic to derive it from FLUTTER_ROOT and FLUTTER_BUILD_MODE. localsBuffer.writeln('FLUTTER_FRAMEWORK_DIR=${flutterFrameworkDir(buildInfo.mode)}'); diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart index ba274ebd162..cd4827b43a5 100644 --- a/packages/flutter_tools/lib/src/plugins.dart +++ b/packages/flutter_tools/lib/src/plugins.dart @@ -248,7 +248,7 @@ Future _writeIOSPluginRegistrant(FlutterProject project, List plug }; final String registryDirectory = project.ios.pluginRegistrantHost.path; - if (project.isApplication) { + if (project.isModule) { final String registryClassesDirectory = fs.path.join(registryDirectory, 'Classes'); _renderTemplateToFile( _iosPluginRegistrantPodspecTemplate, @@ -297,7 +297,7 @@ Future injectPlugins(FlutterProject project) async { final List plugins = findPlugins(project); await _writeAndroidPluginRegistrant(project, plugins); await _writeIOSPluginRegistrant(project, plugins); - if (!project.isApplication && project.ios.hostAppRoot.existsSync()) { + if (!project.isModule && project.ios.hostAppRoot.existsSync()) { final CocoaPods cocoaPods = CocoaPods(); if (plugins.isNotEmpty) cocoaPods.setupPodfile(project.ios); diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index aade35b4fb9..9e9904dc191 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart @@ -110,10 +110,10 @@ class FlutterProject { FlutterManifest.empty(), ); - /// True, if this project is a Flutter application. - bool get isApplication => manifest.isApplication; + /// True if this project is a Flutter module project. + bool get isModule => manifest.isModule; - /// True, if this project has an example application. + /// True if this project has an example application. bool get hasExampleApp => _exampleDirectory(directory).existsSync(); /// The directory that will contain the example if an example exists. @@ -132,7 +132,7 @@ class FlutterProject { } /// Generates project files necessary to make Gradle builds work on Android - /// and CocoaPods+Xcode work on iOS, for app and application projects only. + /// and CocoaPods+Xcode work on iOS, for app and module projects only. Future ensureReadyForPlatformSpecificTooling() async { if (!directory.existsSync() || hasExampleApp) return; @@ -146,7 +146,7 @@ class FlutterProject { /// Represents the iOS sub-project of a Flutter project. /// /// Instances will reflect the contents of the `ios/` sub-folder of -/// Flutter applications and the `.ios/` sub-folder of Flutter applications. +/// Flutter applications and the `.ios/` sub-folder of Flutter module projects. class IosProject { IosProject._(this.parent); @@ -162,7 +162,7 @@ class IosProject { /// This parent folder of `Runner.xcodeproj`. Directory get hostAppRoot { - if (!isApplication || _editableDirectory.existsSync()) + if (!isModule || _editableDirectory.existsSync()) return _editableDirectory; return _ephemeralDirectory; } @@ -172,14 +172,14 @@ class IosProject { /// during build. /// /// This is the same as [hostAppRoot] except when the project is - /// a Flutter application with an editable host app. - Directory get _flutterLibRoot => isApplication ? _ephemeralDirectory : _editableDirectory; + /// a Flutter module with an editable host app. + Directory get _flutterLibRoot => isModule ? _ephemeralDirectory : _editableDirectory; /// The bundle name of the host app, `Runner.app`. String get hostAppBundleName => '$_hostAppBundleName.app'; - /// True, if the parent Flutter project is an application. - bool get isApplication => parent.isApplication; + /// True, if the parent Flutter project is a module project. + bool get isModule => parent.isModule; /// The xcode config file for [mode]. File xcodeConfigFor(String mode) => _flutterLibRoot.childDirectory('Flutter').childFile('$mode.xcconfig'); @@ -264,32 +264,32 @@ class IosProject { } void _regenerateFromTemplateIfNeeded() { - if (!isApplication) + if (!isModule) return; final bool pubspecChanged = isOlderThanReference(entity: _ephemeralDirectory, referenceFile: parent.pubspecFile); final bool toolingChanged = Cache.instance.isOlderThanToolsStamp(_ephemeralDirectory); if (!pubspecChanged && !toolingChanged) return; _deleteIfExistsSync(_ephemeralDirectory); - _overwriteFromTemplate(fs.path.join('application', 'ios', 'library'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'library'), _ephemeralDirectory); // Add ephemeral host app, if a editable host app does not already exist. if (!_editableDirectory.existsSync()) { - _overwriteFromTemplate(fs.path.join('application', 'ios', 'host_app_ephemeral'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'host_app_ephemeral'), _ephemeralDirectory); if (hasPlugins(parent)) { - _overwriteFromTemplate(fs.path.join('application', 'ios', 'host_app_ephemeral_cocoapods'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'host_app_ephemeral_cocoapods'), _ephemeralDirectory); } } } Future makeHostAppEditable() async { - assert(isApplication); + assert(isModule); if (_editableDirectory.existsSync()) throwToolExit('iOS host app is already editable. To start fresh, delete the ios/ folder.'); _deleteIfExistsSync(_ephemeralDirectory); - _overwriteFromTemplate(fs.path.join('application', 'ios', 'library'), _ephemeralDirectory); - _overwriteFromTemplate(fs.path.join('application', 'ios', 'host_app_ephemeral'), _editableDirectory); - _overwriteFromTemplate(fs.path.join('application', 'ios', 'host_app_ephemeral_cocoapods'), _editableDirectory); - _overwriteFromTemplate(fs.path.join('application', 'ios', 'host_app_editable_cocoapods'), _editableDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'library'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'host_app_ephemeral'), _editableDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'host_app_ephemeral_cocoapods'), _editableDirectory); + _overwriteFromTemplate(fs.path.join('module', 'ios', 'host_app_editable_cocoapods'), _editableDirectory); await _updateGeneratedXcodeConfigIfNeeded(); await injectPlugins(parent); } @@ -297,7 +297,7 @@ class IosProject { File get generatedXcodePropertiesFile => _flutterLibRoot.childDirectory('Flutter').childFile('Generated.xcconfig'); Directory get pluginRegistrantHost { - return isApplication + return isModule ? _flutterLibRoot.childDirectory('Flutter').childDirectory('FlutterPluginRegistrant') : hostAppRoot.childDirectory(_hostAppBundleName); } @@ -319,7 +319,7 @@ class IosProject { /// Represents the Android sub-project of a Flutter project. /// /// Instances will reflect the contents of the `android/` sub-folder of -/// Flutter applications and the `.android/` sub-folder of Flutter applications. +/// Flutter applications and the `.android/` sub-folder of Flutter module projects. class AndroidProject { AndroidProject._(this.parent); @@ -333,21 +333,21 @@ class AndroidProject { /// containing the `app/` subdirectory and the `settings.gradle` file that /// includes it in the overall Gradle project. Directory get hostAppGradleRoot { - if (!isApplication || _editableHostAppDirectory.existsSync()) + if (!isModule || _editableHostAppDirectory.existsSync()) return _editableHostAppDirectory; return _ephemeralDirectory; } /// The Gradle root directory of the Android wrapping of Flutter and plugins. /// This is the same as [hostAppGradleRoot] except when the project is - /// a Flutter application with an editable host app. - Directory get _flutterLibGradleRoot => isApplication ? _ephemeralDirectory : _editableHostAppDirectory; + /// a Flutter module with an editable host app. + Directory get _flutterLibGradleRoot => isModule ? _ephemeralDirectory : _editableHostAppDirectory; Directory get _ephemeralDirectory => parent.directory.childDirectory('.android'); Directory get _editableHostAppDirectory => parent.directory.childDirectory('android'); - /// True, if the parent Flutter project is an application. - bool get isApplication => parent.isApplication; + /// True if the parent Flutter project is a module. + bool get isModule => parent.isModule; File get appManifestFile { return isUsingGradle @@ -376,12 +376,12 @@ class AndroidProject { } Future ensureReadyForPlatformSpecificTooling() async { - if (isApplication && _shouldRegenerateFromTemplate()) { + if (isModule && _shouldRegenerateFromTemplate()) { _regenerateLibrary(); // Add ephemeral host app, if an editable host app does not already exist. if (!_editableHostAppDirectory.existsSync()) { - _overwriteFromTemplate(fs.path.join('application', 'android', 'host_app_common'), _ephemeralDirectory); - _overwriteFromTemplate(fs.path.join('application', 'android', 'host_app_ephemeral'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'host_app_common'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'host_app_ephemeral'), _ephemeralDirectory); } } if (!hostAppGradleRoot.existsSync()) { @@ -396,13 +396,13 @@ class AndroidProject { } Future makeHostAppEditable() async { - assert(isApplication); + assert(isModule); if (_editableHostAppDirectory.existsSync()) throwToolExit('Android host app is already editable. To start fresh, delete the android/ folder.'); _regenerateLibrary(); - _overwriteFromTemplate(fs.path.join('application', 'android', 'host_app_common'), _editableHostAppDirectory); - _overwriteFromTemplate(fs.path.join('application', 'android', 'host_app_editable'), _editableHostAppDirectory); - _overwriteFromTemplate(fs.path.join('application', 'android', 'gradle'), _editableHostAppDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'host_app_common'), _editableHostAppDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'host_app_editable'), _editableHostAppDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'gradle'), _editableHostAppDirectory); gradle.injectGradleWrapper(_editableHostAppDirectory); gradle.writeLocalProperties(_editableHostAppDirectory.childFile('local.properties')); await injectPlugins(parent); @@ -410,12 +410,12 @@ class AndroidProject { File get localPropertiesFile => _flutterLibGradleRoot.childFile('local.properties'); - Directory get pluginRegistrantHost => _flutterLibGradleRoot.childDirectory(isApplication ? 'Flutter' : 'app'); + Directory get pluginRegistrantHost => _flutterLibGradleRoot.childDirectory(isModule ? 'Flutter' : 'app'); void _regenerateLibrary() { _deleteIfExistsSync(_ephemeralDirectory); - _overwriteFromTemplate(fs.path.join('application', 'android', 'library'), _ephemeralDirectory); - _overwriteFromTemplate(fs.path.join('application', 'android', 'gradle'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'library'), _ephemeralDirectory); + _overwriteFromTemplate(fs.path.join('module', 'android', 'gradle'), _ephemeralDirectory); gradle.injectGradleWrapper(_ephemeralDirectory); } diff --git a/packages/flutter_tools/schema/pubspec_yaml.json b/packages/flutter_tools/schema/pubspec_yaml.json index c7fb2f82af3..0a4b56e97db 100644 --- a/packages/flutter_tools/schema/pubspec_yaml.json +++ b/packages/flutter_tools/schema/pubspec_yaml.json @@ -43,7 +43,7 @@ } } }, - "application": { + "module": { "type": "object", "additionalProperties": false, "properties": { diff --git a/packages/flutter_tools/templates/application/README.md b/packages/flutter_tools/templates/module/README.md similarity index 100% rename from packages/flutter_tools/templates/application/README.md rename to packages/flutter_tools/templates/module/README.md diff --git a/packages/flutter_tools/templates/application/android/gradle/build.gradle.copy.tmpl b/packages/flutter_tools/templates/module/android/gradle/build.gradle.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/gradle/build.gradle.copy.tmpl rename to packages/flutter_tools/templates/module/android/gradle/build.gradle.copy.tmpl diff --git a/packages/flutter_tools/templates/application/android/gradle/gradle.properties.copy.tmpl b/packages/flutter_tools/templates/module/android/gradle/gradle.properties.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/gradle/gradle.properties.copy.tmpl rename to packages/flutter_tools/templates/module/android/gradle/gradle.properties.copy.tmpl diff --git a/packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/build.gradle.tmpl b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/build.gradle.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/build.gradle.tmpl rename to packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/build.gradle.tmpl diff --git a/packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/AndroidManifest.xml.tmpl b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/AndroidManifest.xml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/AndroidManifest.xml.tmpl rename to packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/AndroidManifest.xml.tmpl diff --git a/packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl rename to packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/java/androidIdentifier/host/MainActivity.java.tmpl diff --git a/packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/res/drawable/launch_background.xml b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/res/drawable/launch_background.xml similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/res/drawable/launch_background.xml rename to packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/res/drawable/launch_background.xml diff --git a/packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/res/mipmap-hdpi/ic_launcher.png rename to packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/res/values/styles.xml b/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/res/values/styles.xml similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_common/app.tmpl/src/main/res/values/styles.xml rename to packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/src/main/res/values/styles.xml diff --git a/packages/flutter_tools/templates/application/android/host_app_editable/settings.gradle.copy.tmpl b/packages/flutter_tools/templates/module/android/host_app_editable/settings.gradle.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_editable/settings.gradle.copy.tmpl rename to packages/flutter_tools/templates/module/android/host_app_editable/settings.gradle.copy.tmpl diff --git a/packages/flutter_tools/templates/application/android/host_app_ephemeral/settings.gradle.copy.tmpl b/packages/flutter_tools/templates/module/android/host_app_ephemeral/settings.gradle.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/host_app_ephemeral/settings.gradle.copy.tmpl rename to packages/flutter_tools/templates/module/android/host_app_ephemeral/settings.gradle.copy.tmpl diff --git a/packages/flutter_tools/templates/application/android/library/Flutter.tmpl/build.gradle.tmpl b/packages/flutter_tools/templates/module/android/library/Flutter.tmpl/build.gradle.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/library/Flutter.tmpl/build.gradle.tmpl rename to packages/flutter_tools/templates/module/android/library/Flutter.tmpl/build.gradle.tmpl diff --git a/packages/flutter_tools/templates/application/android/library/Flutter.tmpl/src/main/AndroidManifest.xml.tmpl b/packages/flutter_tools/templates/module/android/library/Flutter.tmpl/src/main/AndroidManifest.xml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/library/Flutter.tmpl/src/main/AndroidManifest.xml.tmpl rename to packages/flutter_tools/templates/module/android/library/Flutter.tmpl/src/main/AndroidManifest.xml.tmpl diff --git a/packages/flutter_tools/templates/application/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/Flutter.java b/packages/flutter_tools/templates/module/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/Flutter.java similarity index 100% rename from packages/flutter_tools/templates/application/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/Flutter.java rename to packages/flutter_tools/templates/module/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/Flutter.java diff --git a/packages/flutter_tools/templates/application/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/FlutterFragment.java b/packages/flutter_tools/templates/module/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/FlutterFragment.java similarity index 100% rename from packages/flutter_tools/templates/application/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/FlutterFragment.java rename to packages/flutter_tools/templates/module/android/library/Flutter.tmpl/src/main/java/io/flutter/facade/FlutterFragment.java diff --git a/packages/flutter_tools/templates/application/android/library/include_flutter.groovy.copy.tmpl b/packages/flutter_tools/templates/module/android/library/include_flutter.groovy.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/library/include_flutter.groovy.copy.tmpl rename to packages/flutter_tools/templates/module/android/library/include_flutter.groovy.copy.tmpl diff --git a/packages/flutter_tools/templates/application/android/library/settings.gradle.copy.tmpl b/packages/flutter_tools/templates/module/android/library/settings.gradle.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/android/library/settings.gradle.copy.tmpl rename to packages/flutter_tools/templates/module/android/library/settings.gradle.copy.tmpl diff --git a/packages/flutter_tools/templates/application/common/.gitignore.tmpl b/packages/flutter_tools/templates/module/common/.gitignore.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/.gitignore.tmpl rename to packages/flutter_tools/templates/module/common/.gitignore.tmpl diff --git a/packages/flutter_tools/templates/application/common/.idea/libraries/Dart_SDK.xml.tmpl b/packages/flutter_tools/templates/module/common/.idea/libraries/Dart_SDK.xml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/.idea/libraries/Dart_SDK.xml.tmpl rename to packages/flutter_tools/templates/module/common/.idea/libraries/Dart_SDK.xml.tmpl diff --git a/packages/flutter_tools/templates/application/common/.idea/libraries/Flutter_for_Android.xml.tmpl b/packages/flutter_tools/templates/module/common/.idea/libraries/Flutter_for_Android.xml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/.idea/libraries/Flutter_for_Android.xml.tmpl rename to packages/flutter_tools/templates/module/common/.idea/libraries/Flutter_for_Android.xml.tmpl diff --git a/packages/flutter_tools/templates/application/common/.idea/modules.xml.tmpl b/packages/flutter_tools/templates/module/common/.idea/modules.xml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/.idea/modules.xml.tmpl rename to packages/flutter_tools/templates/module/common/.idea/modules.xml.tmpl diff --git a/packages/flutter_tools/templates/application/common/.idea/workspace.xml.tmpl b/packages/flutter_tools/templates/module/common/.idea/workspace.xml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/.idea/workspace.xml.tmpl rename to packages/flutter_tools/templates/module/common/.idea/workspace.xml.tmpl diff --git a/packages/flutter_tools/templates/application/common/.metadata.tmpl b/packages/flutter_tools/templates/module/common/.metadata.tmpl similarity index 91% rename from packages/flutter_tools/templates/application/common/.metadata.tmpl rename to packages/flutter_tools/templates/module/common/.metadata.tmpl index a124080346c..46c99adce2a 100644 --- a/packages/flutter_tools/templates/application/common/.metadata.tmpl +++ b/packages/flutter_tools/templates/module/common/.metadata.tmpl @@ -7,4 +7,4 @@ version: revision: {{flutterRevision}} channel: {{flutterChannel}} -project_type: application +project_type: module diff --git a/packages/flutter_tools/templates/application/common/README.md.tmpl b/packages/flutter_tools/templates/module/common/README.md.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/README.md.tmpl rename to packages/flutter_tools/templates/module/common/README.md.tmpl diff --git a/packages/flutter_tools/templates/application/common/lib/main.dart.tmpl b/packages/flutter_tools/templates/module/common/lib/main.dart.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/lib/main.dart.tmpl rename to packages/flutter_tools/templates/module/common/lib/main.dart.tmpl diff --git a/packages/flutter_tools/templates/application/common/projectName.iml.tmpl b/packages/flutter_tools/templates/module/common/projectName.iml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/projectName.iml.tmpl rename to packages/flutter_tools/templates/module/common/projectName.iml.tmpl diff --git a/packages/flutter_tools/templates/application/common/projectName_android.iml.tmpl b/packages/flutter_tools/templates/module/common/projectName_android.iml.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/projectName_android.iml.tmpl rename to packages/flutter_tools/templates/module/common/projectName_android.iml.tmpl diff --git a/packages/flutter_tools/templates/application/common/pubspec.yaml.tmpl b/packages/flutter_tools/templates/module/common/pubspec.yaml.tmpl similarity index 96% rename from packages/flutter_tools/templates/application/common/pubspec.yaml.tmpl rename to packages/flutter_tools/templates/module/common/pubspec.yaml.tmpl index 2435585c5ad..cb4befb0b52 100644 --- a/packages/flutter_tools/templates/application/common/pubspec.yaml.tmpl +++ b/packages/flutter_tools/templates/module/common/pubspec.yaml.tmpl @@ -20,6 +20,6 @@ dev_dependencies: flutter: uses-material-design: true - application: + module: androidPackage: {{androidIdentifier}} iosBundleIdentifier: {{iosIdentifier}} diff --git a/packages/flutter_tools/templates/application/common/test/widget_test.dart.tmpl b/packages/flutter_tools/templates/module/common/test/widget_test.dart.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/common/test/widget_test.dart.tmpl rename to packages/flutter_tools/templates/module/common/test/widget_test.dart.tmpl diff --git a/packages/flutter_tools/templates/application/ios/host_app_editable_cocoapods/Config.tmpl/Flutter.xcconfig b/packages/flutter_tools/templates/module/ios/host_app_editable_cocoapods/Config.tmpl/Flutter.xcconfig similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_editable_cocoapods/Config.tmpl/Flutter.xcconfig rename to packages/flutter_tools/templates/module/ios/host_app_editable_cocoapods/Config.tmpl/Flutter.xcconfig diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Config.tmpl/Debug.xcconfig b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Config.tmpl/Debug.xcconfig similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Config.tmpl/Debug.xcconfig rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Config.tmpl/Debug.xcconfig diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Config.tmpl/Flutter.xcconfig b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Config.tmpl/Flutter.xcconfig similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Config.tmpl/Flutter.xcconfig rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Config.tmpl/Flutter.xcconfig diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Config.tmpl/Release.xcconfig b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Config.tmpl/Release.xcconfig similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Config.tmpl/Release.xcconfig rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Config.tmpl/Release.xcconfig diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.h b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.h similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.h rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.h diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.m b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.m similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.m rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/AppDelegate.m diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Contents.json rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/Contents.json b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/Contents.json rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/README.md b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/README.md rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/LaunchScreen.storyboard b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/LaunchScreen.storyboard rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/LaunchScreen.storyboard diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/Main.storyboard b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/Main.storyboard similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/Main.storyboard rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Base.lproj/Main.storyboard diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Info.plist.tmpl b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Info.plist.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/Info.plist.tmpl rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/Info.plist.tmpl diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/main.m b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/main.m similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.tmpl/main.m rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.tmpl/main.m diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.xcworkspace/contents.xcworkspacedata b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.xcworkspace/contents.xcworkspacedata rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.xcworkspace/contents.xcworkspacedata diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/xcshareddata/xcschemes/Runner.xcscheme b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/xcshareddata/xcschemes/Runner.xcscheme rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/xcshareddata/xcschemes/Runner.xcscheme diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcworkspace.tmpl/contents.xcworkspacedata b/packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcworkspace.tmpl/contents.xcworkspacedata similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral/Runner.xcworkspace.tmpl/contents.xcworkspacedata rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcworkspace.tmpl/contents.xcworkspacedata diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Config.tmpl/Debug.xcconfig b/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Config.tmpl/Debug.xcconfig similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Config.tmpl/Debug.xcconfig rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Config.tmpl/Debug.xcconfig diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Config.tmpl/Release.xcconfig b/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Config.tmpl/Release.xcconfig similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Config.tmpl/Release.xcconfig rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Config.tmpl/Release.xcconfig diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl b/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Podfile.copy.tmpl diff --git a/packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Runner.tmpl/AppDelegate.m b/packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Runner.tmpl/AppDelegate.m similarity index 100% rename from packages/flutter_tools/templates/application/ios/host_app_ephemeral_cocoapods/Runner.tmpl/AppDelegate.m rename to packages/flutter_tools/templates/module/ios/host_app_ephemeral_cocoapods/Runner.tmpl/AppDelegate.m diff --git a/packages/flutter_tools/templates/application/ios/library/Flutter.tmpl/AppFrameworkInfo.plist b/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/AppFrameworkInfo.plist similarity index 100% rename from packages/flutter_tools/templates/application/ios/library/Flutter.tmpl/AppFrameworkInfo.plist rename to packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/AppFrameworkInfo.plist diff --git a/packages/flutter_tools/templates/application/ios/library/Flutter.tmpl/README.md b/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/README.md similarity index 100% rename from packages/flutter_tools/templates/application/ios/library/Flutter.tmpl/README.md rename to packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/README.md diff --git a/packages/flutter_tools/templates/application/ios/library/Flutter.tmpl/podhelper.rb b/packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/podhelper.rb similarity index 100% rename from packages/flutter_tools/templates/application/ios/library/Flutter.tmpl/podhelper.rb rename to packages/flutter_tools/templates/module/ios/library/Flutter.tmpl/podhelper.rb diff --git a/packages/flutter_tools/test/commands/create_test.dart b/packages/flutter_tools/test/commands/create_test.dart index 912e26516ae..485a3e93efa 100644 --- a/packages/flutter_tools/test/commands/create_test.dart +++ b/packages/flutter_tools/test/commands/create_test.dart @@ -43,46 +43,12 @@ void main() { tryToDelete(tempDir); }); - // Verify that we create a default project ('application') that is + // Verify that we create a default project ('app') that is // well-formed. testUsingContext('can create a default project', () async { - await _createAndAnalyzeProject(projectDir, [], [ - '.android/app/', - '.gitignore', - '.ios/Flutter', - '.metadata', - 'lib/main.dart', - 'pubspec.yaml', - 'README.md', - 'test/widget_test.dart', - ], unexpectedPaths: [ - 'android/', - 'ios/', - ]); - return _runFlutterTest(projectDir); - }, timeout: allowForRemotePubInvocation); - - testUsingContext('can create a default project if empty directory exists', () async { - await projectDir.create(recursive: true); - return _createAndAnalyzeProject(projectDir, [], [ - '.android/app/', - '.gitignore', - '.ios/Flutter', - '.metadata', - 'lib/main.dart', - 'pubspec.yaml', - 'README.md', - 'test/widget_test.dart', - ], unexpectedPaths: [ - 'android/', - 'ios/', - ]); - }, timeout: allowForRemotePubInvocation); - - testUsingContext('creates a legacy app project correctly', () async { await _createAndAnalyzeProject( projectDir, - ['--template=app'], + [], [ 'android/app/src/main/java/com/example/flutterproject/MainActivity.java', 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', @@ -95,22 +61,26 @@ void main() { return _runFlutterTest(projectDir); }, timeout: allowForRemotePubInvocation); - testUsingContext('cannot create a project if non-empty non-project directory exists with .metadata', () async { - await projectDir.absolute.childDirectory('blag').create(recursive: true); - await projectDir.absolute.childFile('.metadata').writeAsString('project_type: blag\n'); - expect(() async => await _createAndAnalyzeProject(projectDir, [], [ - ], unexpectedPaths: [ - 'android/', - 'ios/', - '.android/', - '.ios/', - ]), throwsToolExit(message: 'Sorry, unable to detect the type of project to recreate')); + testUsingContext('can create a default project if empty directory exists', () async { + await projectDir.create(recursive: true); + await _createAndAnalyzeProject( + projectDir, + [], + [ + 'android/app/src/main/java/com/example/flutterproject/MainActivity.java', + 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', + 'flutter_project.iml', + 'ios/Flutter/AppFrameworkInfo.plist', + 'ios/Runner/AppDelegate.m', + 'ios/Runner/GeneratedPluginRegistrant.h', + ], + ); }, timeout: allowForRemotePubInvocation); - testUsingContext('Will create an application project if non-empty non-project directory exists without .metadata', () async { - await projectDir.absolute.childDirectory('blag').create(recursive: true); - await projectDir.absolute.childDirectory('.idea').create(recursive: true); - return _createAndAnalyzeProject(projectDir, [], [ + testUsingContext('creates a module project correctly', () async { + await _createAndAnalyzeProject(projectDir, [ + '--template=module' + ], [ '.android/app/', '.gitignore', '.ios/Flutter', @@ -123,23 +93,51 @@ void main() { 'android/', 'ios/', ]); + return _runFlutterTest(projectDir); }, timeout: allowForRemotePubInvocation); - testUsingContext('detects and recreates an application project correctly', () async { - await projectDir.absolute.childDirectory('lib').create(recursive: true); - await projectDir.absolute.childDirectory('.ios').create(recursive: true); - return _createAndAnalyzeProject(projectDir, [], [ - '.android/app/', - '.gitignore', - '.ios/Flutter', - '.metadata', - 'lib/main.dart', - 'pubspec.yaml', - 'README.md', - 'test/widget_test.dart', + testUsingContext('cannot create a project if non-empty non-project directory exists with .metadata', () async { + await projectDir.absolute.childDirectory('blag').create(recursive: true); + await projectDir.absolute.childFile('.metadata').writeAsString('project_type: blag\n'); + expect( + () async => await _createAndAnalyzeProject(projectDir, [], [], unexpectedPaths: [ + 'android/', + 'ios/', + '.android/', + '.ios/', + ]), + throwsToolExit(message: 'Sorry, unable to detect the type of project to recreate')); + }, timeout: allowForRemotePubInvocation); + + testUsingContext('Will create an app project if non-empty non-project directory exists without .metadata', () async { + await projectDir.absolute.childDirectory('blag').create(recursive: true); + await projectDir.absolute.childDirectory('.idea').create(recursive: true); + await _createAndAnalyzeProject(projectDir, [], [ + 'android/app/src/main/java/com/example/flutterproject/MainActivity.java', + 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', + 'flutter_project.iml', + 'ios/Flutter/AppFrameworkInfo.plist', + 'ios/Runner/AppDelegate.m', + 'ios/Runner/GeneratedPluginRegistrant.h', ], unexpectedPaths: [ - 'android/', - 'ios/', + '.android/', + '.ios/', + ]); + }, timeout: allowForRemotePubInvocation); + + testUsingContext('detects and recreates an app project correctly', () async { + await projectDir.absolute.childDirectory('lib').create(recursive: true); + await projectDir.absolute.childDirectory('ios').create(recursive: true); + await _createAndAnalyzeProject(projectDir, [], [ + 'android/app/src/main/java/com/example/flutterproject/MainActivity.java', + 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', + 'flutter_project.iml', + 'ios/Flutter/AppFrameworkInfo.plist', + 'ios/Runner/AppDelegate.m', + 'ios/Runner/GeneratedPluginRegistrant.h', + ], unexpectedPaths: [ + '.android/', + '.ios/', ]); }, timeout: allowForRemotePubInvocation); @@ -193,41 +191,6 @@ void main() { ); }, timeout: allowForRemotePubInvocation); - testUsingContext('detects and recreates a legacy app project correctly', () async { - await projectDir.absolute.childDirectory('lib').create(recursive: true); - await projectDir.absolute.childDirectory('ios').childDirectory('Flutter').create(recursive: true); - return _createAndAnalyzeProject( - projectDir, - [], - [ - 'android/app/src/main/java/com/example/flutterproject/MainActivity.java', - 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', - 'flutter_project.iml', - 'ios/Flutter/AppFrameworkInfo.plist', - 'ios/Runner/AppDelegate.m', - 'ios/Runner/GeneratedPluginRegistrant.h', - ], - ); - }, timeout: allowForRemotePubInvocation); - - testUsingContext('can create a legacy module project', () async { - return _createAndAnalyzeProject(projectDir, [ - '--template=module', - ], [ - '.android/app/', - '.gitignore', - '.ios/Flutter', - '.metadata', - 'lib/main.dart', - 'pubspec.yaml', - 'README.md', - 'test/widget_test.dart', - ], unexpectedPaths: [ - 'android/', - 'ios/', - ]); - }, timeout: allowForRemotePubInvocation); - testUsingContext('kotlin/swift legacy app project', () async { return _createProject( projectDir, @@ -343,9 +306,9 @@ void main() { ); }, timeout: allowForRemotePubInvocation); - testUsingContext('application project with pub', () async { + testUsingContext('module project with pub', () async { return _createProject(projectDir, [ - '--template=application' + '--template=module' ], [ '.android/build.gradle', '.android/Flutter/build.gradle', @@ -375,7 +338,7 @@ void main() { ]); }, timeout: allowForRemotePubInvocation); - testUsingContext('has correct content and formatting with applicaiton template', () async { + testUsingContext('has correct content and formatting with module template', () async { Cache.flutterRoot = '../..'; when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision); when(mockFlutterVersion.channel).thenReturn(frameworkChannel); @@ -383,7 +346,7 @@ void main() { final CreateCommand command = CreateCommand(); final CommandRunner runner = createTestCommandRunner(command); - await runner.run(['create', '--template=application', '--no-pub', '--org', 'com.foo.bar', projectDir.path]); + await runner.run(['create', '--template=module', '--no-pub', '--org', 'com.foo.bar', projectDir.path]); void expectExists(String relPath) { expect(fs.isFileSync('${projectDir.path}/$relPath'), true); @@ -446,7 +409,7 @@ void main() { FlutterVersion: () => mockFlutterVersion, }, timeout: allowForCreateFlutterProject); - testUsingContext('has correct content and formatting with legacy app template', () async { + testUsingContext('has correct content and formatting with app template', () async { Cache.flutterRoot = '../..'; when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision); when(mockFlutterVersion.channel).thenReturn(frameworkChannel); @@ -526,9 +489,12 @@ void main() { await runner.run(['create', '--no-pub', projectDir.path]); await runner.run(['create', '--no-pub', projectDir.path]); + + final String metadata = fs.file(fs.path.join(projectDir.path, '.metadata')).readAsStringSync(); + expect(metadata, contains('project_type: app\n')); }, timeout: allowForCreateFlutterProject); - testUsingContext('can re-gen default template over existing legacy app project with no metadta and detect the type', () async { + testUsingContext('can re-gen default template over existing app project with no metadta and detect the type', () async { Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); @@ -545,7 +511,7 @@ void main() { expect(metadata, contains('project_type: app\n')); }, timeout: allowForCreateFlutterProject); - testUsingContext('can re-gen default template over existing legacy app project and detect the type', () async { + testUsingContext('can re-gen app template over existing app project and detect the type', () async { Cache.flutterRoot = '../..'; final CreateCommand command = CreateCommand(); @@ -559,6 +525,20 @@ void main() { expect(metadata, contains('project_type: app\n')); }, timeout: allowForCreateFlutterProject); + testUsingContext('can re-gen template over existing module project and detect the type', () async { + Cache.flutterRoot = '../..'; + + final CreateCommand command = CreateCommand(); + final CommandRunner runner = createTestCommandRunner(command); + + await runner.run(['create', '--no-pub', '--template=module', projectDir.path]); + + await runner.run(['create', '--no-pub', projectDir.path]); + + final String metadata = fs.file(fs.path.join(projectDir.path, '.metadata')).readAsStringSync(); + expect(metadata, contains('project_type: module\n')); + }, timeout: allowForCreateFlutterProject); + testUsingContext('can re-gen default template over existing plugin project and detect the type', () async { Cache.flutterRoot = '../..'; @@ -587,10 +567,10 @@ void main() { expect(metadata, contains('project_type: package')); }, timeout: allowForCreateFlutterProject); - testUsingContext('can re-gen application .android/ folder, reusing custom org', () async { + testUsingContext('can re-gen module .android/ folder, reusing custom org', () async { await _createProject( projectDir, - ['--template=application', '--org', 'com.bar.foo'], + ['--template=module', '--org', 'com.bar.foo'], [], ); projectDir.childDirectory('.android').deleteSync(recursive: true); @@ -603,10 +583,10 @@ void main() { ); }, timeout: allowForRemotePubInvocation); - testUsingContext('can re-gen application .ios/ folder, reusing custom org', () async { + testUsingContext('can re-gen module .ios/ folder, reusing custom org', () async { await _createProject( projectDir, - ['--template=application', '--org', 'com.bar.foo'], + ['--template=module', '--org', 'com.bar.foo'], [], ); projectDir.childDirectory('.ios').deleteSync(recursive: true); @@ -618,7 +598,7 @@ void main() { ); }, timeout: allowForRemotePubInvocation); - testUsingContext('can re-gen legacy app android/ folder, reusing custom org', () async { + testUsingContext('can re-gen app android/ folder, reusing custom org', () async { await _createProject( projectDir, ['--no-pub', '--template=app', '--org', 'com.bar.foo'], @@ -637,7 +617,7 @@ void main() { ); }, timeout: allowForCreateFlutterProject); - testUsingContext('can re-gen legacy app ios/ folder, reusing custom org', () async { + testUsingContext('can re-gen app ios/ folder, reusing custom org', () async { await _createProject( projectDir, ['--no-pub', '--template=app', '--org', 'com.bar.foo'], diff --git a/packages/flutter_tools/test/commands/packages_test.dart b/packages/flutter_tools/test/commands/packages_test.dart index c8cad27fe96..051bd390890 100644 --- a/packages/flutter_tools/test/commands/packages_test.dart +++ b/packages/flutter_tools/test/commands/packages_test.dart @@ -45,8 +45,8 @@ void main() { tryToDelete(tempDir); }); - Future createProjectWithPlugin(String plugin) async { - final String projectPath = await createProject(tempDir); + Future createProjectWithPlugin(String plugin, {List arguments}) async { + final String projectPath = await createProject(tempDir, arguments: arguments); final File pubspec = fs.file(fs.path.join(projectPath, 'pubspec.yaml')); String content = await pubspec.readAsString(); content = content.replaceFirst( @@ -114,7 +114,7 @@ void main() { 'android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', ]; - const List applicationPluginRegistrants = [ + const List modulePluginRegistrants = [ '.ios/Flutter/FlutterPluginRegistrant/Classes/GeneratedPluginRegistrant.h', '.ios/Flutter/FlutterPluginRegistrant/Classes/GeneratedPluginRegistrant.m', '.android/Flutter/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java', @@ -125,7 +125,7 @@ void main() { 'ios/Podfile', ]; - const List applicationPluginWitnesses = [ + const List modulePluginWitnesses = [ '.flutter-plugins', '.ios/Podfile', ]; @@ -135,7 +135,7 @@ void main() { 'ios/Flutter/Release.xcconfig': '#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"', }; - const Map applicationPluginContentWitnesses = { + const Map modulePluginContentWitnesses = { '.ios/Config/Debug.xcconfig': '#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"', '.ios/Config/Release.xcconfig': '#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"', }; @@ -147,13 +147,13 @@ void main() { } void expectZeroPluginsInjected(String projectPath) { - for (final String registrant in applicationPluginRegistrants) { + for (final String registrant in modulePluginRegistrants) { expectExists(projectPath, registrant); } for (final String witness in pluginWitnesses) { expectNotExists(projectPath, witness); } - applicationPluginContentWitnesses.forEach((String witness, String content) { + modulePluginContentWitnesses.forEach((String witness, String content) { expectNotContains(projectPath, witness, content); }); } @@ -170,14 +170,14 @@ void main() { }); } - void expectApplicationPluginInjected(String projectPath) { - for (final String registrant in applicationPluginRegistrants) { + void expectModulePluginInjected(String projectPath) { + for (final String registrant in modulePluginRegistrants) { expectExists(projectPath, registrant); } - for (final String witness in applicationPluginWitnesses) { + for (final String witness in modulePluginWitnesses) { expectExists(projectPath, witness); } - applicationPluginContentWitnesses.forEach((String witness, String content) { + modulePluginContentWitnesses.forEach((String witness, String content) { expectContains(projectPath, witness, content); }); } @@ -185,7 +185,7 @@ void main() { void removeGeneratedFiles(String projectPath) { final Iterable allFiles = >[ pubOutput, - applicationPluginRegistrants, + modulePluginRegistrants, pluginWitnesses, ].expand((List list) => list); for (String path in allFiles) { @@ -196,7 +196,8 @@ void main() { } testUsingContext('get fetches packages', () async { - final String projectPath = await createProject(tempDir); + final String projectPath = await createProject(tempDir, + arguments: ['--no-pub', '--template=module']); removeGeneratedFiles(projectPath); await runCommandIn(projectPath, 'get'); @@ -206,7 +207,8 @@ void main() { }, timeout: allowForRemotePubInvocation); testUsingContext('get --offline fetches packages', () async { - final String projectPath = await createProject(tempDir); + final String projectPath = await createProject(tempDir, + arguments: ['--no-pub', '--template=module']); removeGeneratedFiles(projectPath); await runCommandIn(projectPath, 'get', args: ['--offline']); @@ -216,7 +218,8 @@ void main() { }, timeout: allowForCreateFlutterProject); testUsingContext('upgrade fetches packages', () async { - final String projectPath = await createProject(tempDir); + final String projectPath = await createProject(tempDir, + arguments: ['--no-pub', '--template=module']); removeGeneratedFiles(projectPath); await runCommandIn(projectPath, 'upgrade'); @@ -226,13 +229,14 @@ void main() { }, timeout: allowForRemotePubInvocation); testUsingContext('get fetches packages and injects plugin', () async { - final String projectPath = await createProjectWithPlugin('path_provider'); + final String projectPath = await createProjectWithPlugin('path_provider', + arguments: ['--no-pub', '--template=module']); removeGeneratedFiles(projectPath); await runCommandIn(projectPath, 'get'); expectDependenciesResolved(projectPath); - expectApplicationPluginInjected(projectPath); + expectModulePluginInjected(projectPath); }, timeout: allowForRemotePubInvocation); testUsingContext('get fetches packages and injects plugin in plugin project', () async { diff --git a/packages/flutter_tools/test/flutter_manifest_test.dart b/packages/flutter_tools/test/flutter_manifest_test.dart index 287e723ab3a..894a1bcbbc2 100644 --- a/packages/flutter_tools/test/flutter_manifest_test.dart +++ b/packages/flutter_tools/test/flutter_manifest_test.dart @@ -355,20 +355,20 @@ flutter: '''; final FlutterManifest flutterManifest = await FlutterManifest.createFromString(manifest); expect(flutterManifest.isEmpty, false); - expect(flutterManifest.isApplication, false); + expect(flutterManifest.isModule, false); expect(flutterManifest.isPlugin, false); expect(flutterManifest.androidPackage, null); }); - test('allows an application declaration', () async { + test('allows a module declaration', () async { const String manifest = ''' name: test flutter: - application: + module: androidPackage: com.example '''; final FlutterManifest flutterManifest = await FlutterManifest.createFromString(manifest); - expect(flutterManifest.isApplication, true); + expect(flutterManifest.isModule, true); expect(flutterManifest.androidPackage, 'com.example'); }); diff --git a/packages/flutter_tools/test/project_test.dart b/packages/flutter_tools/test/project_test.dart index 80248bada77..0de086fcd4b 100644 --- a/packages/flutter_tools/test/project_test.dart +++ b/packages/flutter_tools/test/project_test.dart @@ -90,20 +90,20 @@ void main() { }); group('editable Android host app', () { - testInMemory('fails on non-application', () async { + testInMemory('fails on non-module', () async { final FlutterProject project = await someProject(); await expectLater( project.android.makeHostAppEditable(), throwsA(isInstanceOf()), ); }); - testInMemory('exits on already editable application', () async { - final FlutterProject project = await anApplicationProject(); + testInMemory('exits on already editable module', () async { + final FlutterProject project = await aModuleProject(); await project.android.makeHostAppEditable(); return expectToolExitLater(project.android.makeHostAppEditable(), contains('already editable')); }); testInMemory('creates android/app folder in place of .android/app', () async { - final FlutterProject project = await anApplicationProject(); + final FlutterProject project = await aModuleProject(); await project.android.makeHostAppEditable(); expectNotExists(project.directory.childDirectory('.android').childDirectory('app')); expect( @@ -118,7 +118,7 @@ void main() { ); }); testInMemory('retains .android/Flutter folder and references it', () async { - final FlutterProject project = await anApplicationProject(); + final FlutterProject project = await aModuleProject(); await project.android.makeHostAppEditable(); expectExists(project.directory.childDirectory('.android').childDirectory('Flutter')); expect( @@ -127,7 +127,7 @@ void main() { ); }); testInMemory('can be redone after deletion', () async { - final FlutterProject project = await anApplicationProject(); + final FlutterProject project = await aModuleProject(); await project.android.makeHostAppEditable(); project.directory.childDirectory('android').deleteSync(recursive: true); await project.android.makeHostAppEditable(); @@ -173,15 +173,15 @@ void main() { await project.ensureReadyForPlatformSpecificTooling(); expectExists(project.android.hostAppGradleRoot.childFile('local.properties')); }); - testInMemory('creates Android library in application', () async { - final FlutterProject project = await anApplicationProject(); + testInMemory('creates Android library in module', () async { + final FlutterProject project = await aModuleProject(); await project.ensureReadyForPlatformSpecificTooling(); expectExists(project.android.hostAppGradleRoot.childFile('settings.gradle')); expectExists(project.android.hostAppGradleRoot.childFile('local.properties')); expectExists(androidPluginRegistrant(project.android.hostAppGradleRoot.childDirectory('Flutter'))); }); - testInMemory('creates iOS pod in application', () async { - final FlutterProject project = await anApplicationProject(); + testInMemory('creates iOS pod in module', () async { + final FlutterProject project = await aModuleProject(); await project.ensureReadyForPlatformSpecificTooling(); final Directory flutter = project.ios.hostAppRoot.childDirectory('Flutter'); expectExists(flutter.childFile('podhelper.rb')); @@ -194,20 +194,20 @@ void main() { }); }); - group('application status', () { - testInMemory('is known for application', () async { - final FlutterProject project = await anApplicationProject(); - expect(project.isApplication, isTrue); - expect(project.android.isApplication, isTrue); - expect(project.ios.isApplication, isTrue); + group('module status', () { + testInMemory('is known for module', () async { + final FlutterProject project = await aModuleProject(); + expect(project.isModule, isTrue); + expect(project.android.isModule, isTrue); + expect(project.ios.isModule, isTrue); expect(project.android.hostAppGradleRoot.basename, '.android'); expect(project.ios.hostAppRoot.basename, '.ios'); }); - testInMemory('is known for non-application', () async { + testInMemory('is known for non-module', () async { final FlutterProject project = await someProject(); - expect(project.isApplication, isFalse); - expect(project.android.isApplication, isFalse); - expect(project.ios.isApplication, isFalse); + expect(project.isModule, isFalse); + expect(project.android.isModule, isFalse); + expect(project.ios.isModule, isFalse); expect(project.android.hostAppGradleRoot.basename, 'android'); expect(project.ios.hostAppRoot.basename, 'ios'); }); @@ -351,13 +351,13 @@ flutter: return FlutterProject.fromDirectory(directory); } -Future anApplicationProject() async { - final Directory directory = fs.directory('application_project'); +Future aModuleProject() async { + final Directory directory = fs.directory('module_project'); directory.childFile('.packages').createSync(recursive: true); directory.childFile('pubspec.yaml').writeAsStringSync(''' -name: my_application +name: my_module flutter: - application: + module: androidPackage: com.example '''); return FlutterProject.fromDirectory(directory);