Commit Graph

133 Commits

Author SHA1 Message Date
xster
cf95cd4394
Add v1 plugin register function into v2 plugin template (#44166) 2019-11-05 20:03:50 -08:00
Emmanuel Garcia
08c645b3b2
Test the Android embedding v2 (#42708)
* Test the Android embedding v2

* Update integration tests

* Split into shards
2019-10-16 21:26:10 -07:00
Emmanuel Garcia
5961bcc505
Generate projects using the new Android embedding (#41666)
* Generate projects using the new Android embedding

* Add comment about usesNewEmbedding:true

* Feedback

* Rework way to detect new embedding in new apps
2019-10-04 06:23:03 -07:00
Jenn Magder
4331c172d7
Set DEFINES_MODULE=YES in plugin templates (#41828) 2019-10-03 18:35:20 -07:00
stuartmorgan
0412977e48
Support create for macOS (app and plugin) (#40851)
Adds macOS support for `flutter create`:
- Currently it is behind a hidden flag.
- Adds a TargetPlatform workaround to lib/main.dart in the standard app template when enabled.
- Supports `app` and `plugin`; `module` support doesn't yet exist for macOS in general.

This will eliminate the need to use FDE's examples as templates on macOS. The templates are based on the current state of FDE's examples, with templating support added (and with adoption of the new application delegate in the app, which hadn't been done yet in FDE, eliminating some boilerplate from the template).

Fixes #30703
2019-09-19 17:06:18 -07:00
Emmanuel Garcia
4d404da6df
Update Kotlin and Gradle version (#40181) 2019-09-13 19:37:07 -07:00
Emmanuel Garcia
2c857b9370
Enable R8 (#40453) 2019-09-13 19:06:40 -07:00
Collin Jackson
a1c185f37a
Fix plugin template app's tests (#39080)
* Fix plugin template

* Add test of plugin template working
2019-08-26 14:57:16 -07:00
walsha2
107f36548a Closes #37593 Add flutter_export_environment.sh to gitignore (#37595) 2019-08-06 13:18:41 -07:00
Emmanuel Garcia
242a4225a1
Flutter build aar (#36732)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-23 09:27:42 -07:00
Emmanuel Garcia
c9b466f9e2
Revert "Add flutter build aar (#35217)" (#36731)
This reverts commit 11460b8378.
2019-07-22 22:07:59 -07:00
Emmanuel Garcia
11460b8378
Add flutter build aar (#35217)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-22 20:46:01 -07:00
Josh Burton
d0e45a2369 Adds support for generating projects that use AndroidX support libraries (#31028) 2019-05-31 18:33:02 -07:00
Kate Lovett
054d9bb2f1
Updating dart.dev related links (#32641)
* Updating dart.dev related links

* Update packages/flutter_tools/lib/src/base/context.dart
2019-05-14 10:35:00 -07:00
Tim Sneath
529189791c
Replace flutter.io with flutter.dev (#30562) 2019-04-05 11:39:30 -07:00
TruongSinh Tran-Nguyen
d15a361244 flutter create --template=plugin now include flutter unit test (#26456) 2019-02-12 10:37:00 -08:00
Jason Simmons
7bfbc28505
Revert "Upgrade the Gradle script to Android plugin version 3.3.0 (#26913)" (#27045)
This reverts commit 30f33d6c7d.
2019-01-24 14:29:08 -08:00
Jason Simmons
30f33d6c7d
Upgrade the Gradle script to Android plugin version 3.3.0 (#26913)
Fixes https://github.com/flutter/flutter/issues/26544
2019-01-24 12:21:11 -08:00
Jason Simmons
cf4c903144
Update compileSdkVersion in the Android app templates to Android P (#26444)
Fixes https://github.com/flutter/flutter/issues/25703
2019-01-14 16:16:12 -08:00
jxltom
843f26207f Do not ignore pubspec.lock in project templates (#24209)
* Remove *.lock from gitignore

* Remove pubspec.lock from gitignore
2019-01-09 10:10:38 -08:00
Devon Carew
322afbb160
rev the min dart sdk dep in the templates to 2.1.0 (#26235) 2019-01-08 16:20:52 -05:00
Tim Sneath
06ec8d3b41
Updating readme templates for newly created projects (#24725)
We hypothesize that many first-time users creating a new project will look at the README.md as a starting point for "what next". As we've updated our documentation particularly for new users, having better links to our codelabs and cookbooks will help them be productive.
2018-11-28 15:56:58 -08:00
stevemessick
ff25edd3ad
Update idea template files (#24311)
* Update IntelliJ project template files

* Add ignored file

* Fix test

* Restore comma
2018-11-14 13:45:07 -08:00
Dan Field
9d53d7f848
Update pubspec template docs for module/plugin (#24081)
* Document module pubspec

* update doc on plugin template

* clarify language
2018-11-07 17:20:18 -08:00
Stanislav Baranov
323d1574c6
newly created apps / plugins should use latest gradle dependencies (#22790) (#23314) 2018-10-19 19:07:06 -07:00
Yegor
82d6589590
Revert "newly created apps / plugins should use latest gradle dependencies (#22790)" (#23263)
This reverts commit 751c083f7d.

Our buildbots need to be upgraded to a newer version of the Android SDK.
2018-10-18 14:17:47 -07:00
Sebastian Roth
751c083f7d newly created apps / plugins should use latest gradle dependencies (#22790) 2018-10-18 12:56:18 -07:00
Greg Spencer
9f23866a0a
Rename module --> application in flutter create command. (#22565)
This renames the "module" template to the "application" template, and makes "application" the default. The existing "app" template is now deprecated.

flutter create also now recognizes the type of project in an existing directory, and is able to recreate it without having the template type explicitly specified (although you can still do that). It does this now by first looking in the .metadata file for the new project_type field, and if it doesn't find that, then it looks at the directory structure. Also, the .metadata file is now overwritten even on an existing directory so that 1) the project_type can be added to legacy projects, and 2) the version of Flutter that updated the project last is updated.

I also cleaned up a bunch of things in create_test.dart, added many more tests, and added an example test to the test/ directory in the generated output of the application template.

Fixes #22530
Fixes #22344
2018-10-04 13:03:20 -07:00
Ian Hickson
6d134e0c86
Animation API improvements (#21540) 2018-09-23 00:43:05 -07:00
Martin Kustermann
9299c02cf7 Reland "Roll engine to version e3687f70c7ece72000b32ee1b3c02755ba5361ac (#20427)" (#20633)
* Reland "Roll engine to version b148e628ec86b3a9a0382e0bcfae73f0390a8232 (#20427)"

This is a re-land with downgraded `package:flutter_gallery_assets`
version.

* Downgrade package:flutter_gallery_assets to 0.1.4

* Change engine.version to 81baff97c29bb08cbf8453a3f9042c5813f84ad3 (which contains an additional fix)

* Change engine.version to e3687f70c7ece72000b32ee1b3c02755ba5361ac (since mac tarballs are corrupted on earlier commit)
2018-08-15 15:35:12 -07:00
Martin Kustermann
515909ecb6
Revert "Roll engine to version b148e628ec86b3a9a0382e0bcfae73f0390a8232 (#20427)" (#20631)
Reason for revert: The package:flutter_gallery_assets has removed some images which are required for the examples/flutter_gallery, so the gallery build is failing (only discovered after landing, since gallery doesn't seem to get built during github PR presubmit checks)
2018-08-15 16:25:51 +02:00
Martin Kustermann
c7c493ea5d
Roll engine to version b148e628ec86b3a9a0382e0bcfae73f0390a8232 (#20427)
This CL

  * rolls `engine.version` to flutter/engine@b148e628 (which includes dart sdk 2.1.0-dev)
  * rolls `goldens.version` to flutter/goldens@6c45fafdf (which includes updates due to skia changes in engine)
  * changes `platform.dill` to `platform_strong.dill` in various places due to flutter/engine@a84b210b
  * adds explicit `environment: sdk: ">=2.0.0-dev.68 < 3.0.0"` constraints to `pubspec.yaml` and `pubspec.yaml.tmpl` files (since pub defaults to `<2.0.0` if omitted) 
  * upgrades to newer versions of various 3rd party packages (to ensure transitive dependencies have `<3.0.0` sdk constraint)
2018-08-15 15:22:05 +02:00
Michael Thomsen
87351bd958
Fix outdated link for how to edit plugin code (#18069)
* Fix readme link to plugin edit instructions

* Fix flutter tools link
2018-06-13 13:40:55 -07:00
Mikkel Nygaard Ravn
8c39c35eb0
Upgradle Gradle dependencies to match Android Studio 3.1.2 (#18080) 2018-06-01 09:57:40 +02:00
Mikkel Nygaard Ravn
87a6e2b497
Revert "Update Gradle dependencies (#18071)" (#18074)
This reverts commit 59bb2dba73.
2018-05-31 19:25:40 +02:00
Mikkel Nygaard Ravn
59bb2dba73
Update Gradle dependencies (#18071) 2018-05-31 17:16:47 +02:00
Mikkel Nygaard Ravn
d21b2799a0
Revert "Update Gradle dependencies to match Android Studio 3.1.2 (#17974)" (#17979)
This reverts commit 0f557e720e.
2018-05-28 21:18:13 +02:00
Mikkel Nygaard Ravn
0f557e720e
Update Gradle dependencies to match Android Studio 3.1.2 (#17974) 2018-05-28 21:08:50 +02:00
Mikkel Nygaard Ravn
bb88766448
Revert "Update Gradle dependencies to match Android Studio 3.1.2 (#17942)" (#17966)
This reverts commit dac1baf4fa.
2018-05-28 15:10:37 +02:00
Mikkel Nygaard Ravn
dac1baf4fa
Update Gradle dependencies to match Android Studio 3.1.2 (#17942) 2018-05-28 14:35:32 +02:00
Sarah Zakarias
ca300100b8
Update plugin template to comply with new type and style rules (#17840) 2018-05-24 08:49:17 +02:00
Victor Choueiri
da4e06bbca Update template .gitignore rules (#15382)
* Update template .gitignore rules

* Remove old packages rule

* Remove IDE folders from gitignore templates

* Prefer ios.tmpl/.gitignore
2018-04-09 15:02:24 -07:00
Devon Carew
aa55f50ddb
update intellij metadata in template files (#16211) 2018-04-04 09:36:34 -07:00
Vyacheslav Egorov
71b2cfb2a0
Turn Dart 2 mode by default. (#15565) 2018-03-16 20:29:38 +01:00
Chris Bracken
ae6ac2ca74
Add .dart_tool to gitignore (#14932)
Dart is migrating to .dart_tool/ as the location for cached artifacts
and other temporary files generated by tooling in the SDK. As part of
this, pub will be migrating from .pub to .dart_tool/pub.

In future, this path will also be used for other tooling, such as package:build.
2018-02-27 15:29:31 -08:00
Devon Carew
761cb82c6d
update the IntelliJ metadata templates (#14867)
* update the IntelliJ metedata templates

* fix test expectation
2018-02-26 07:38:22 -08:00
Danny Tuppeny
f914e701c5
Update some http links to https (#14762)
These URLs all automatically redirect HTTP to HTTPS so makes sense to point users at the secure versions.
2018-02-19 21:12:17 +00:00
Mikkel Nygaard Ravn
0a96f96c4f
Update and simplify Android templates (#13970) 2018-01-08 15:01:43 +01:00
Mikkel Nygaard Ravn
36bcdc4c7e
Fix Android templates (#13681) 2017-12-20 10:50:40 +01:00
Mikkel Nygaard Ravn
e5aac6928b
Support Android Gradle plugin v3.0.1 (#13492) 2017-12-13 12:16:22 +01:00
Phil Quitslund
acbc16afd4
Swift templates tweaks. (#13291)
Dropped optional semicolons.
2017-12-01 10:54:56 -08:00
Devon Carew
a554401e79 update the flutter create template files (#12641) 2017-10-19 19:38:39 -07:00
stevemessick
2b78675bd8 Update IDEA project files (#12391)
* Generate Android framework config

* Fix templates

* Moar templates fixing

* Minor tweaking
2017-10-05 12:56:49 -07:00
Sarah Zakarias
82ec7a2af5 update pubspec.yaml.tmpl of package and plugin (#12238) 2017-09-25 13:09:28 +02:00
Devon Carew
f0bf7b5c8c add intellij metadata for the plugin and packages templates (#11852) 2017-08-30 15:37:35 -07:00
Jakob Andersen
5d0d6126a1 Add --template=<type> option to create command. (#11105)
Allows the user to specify the kind of project to create. The default is 'app'. Other choices are 'plugin' (the old '--plugin' behavior), and 'package'.

A Flutter 'package' is a Dart package that depends on Flutter, but does not contain native code.

Fixes #10377.
2017-08-23 13:29:31 +02:00
Phil Quitslund
d264f39f95 Update project templates to use WEB_MODULEs. (#11587) 2017-08-10 16:54:44 -07:00
Mikkel Nygaard Ravn
abe1e2520b Make plugins add their repos to projects in the consuming app (#11447) 2017-07-31 14:51:09 +02:00
Mikkel Nygaard Ravn
1731a16d81 Make consistent use of gradle wrapper (#10993) 2017-06-29 09:48:01 +02:00
Mikkel Nygaard Ravn
c5999c74c0 Add gradle wrapper to project template (#10928) 2017-06-26 12:47:43 +02:00
Michael Goderbauer
2f979914e4 Update templates to include google's maven repository (#10842)
Going forward, Android support libraries are published on maven (instead of bundling them with the SDK). Many plugins depend on these. To avoid requiring plugin users to add the maven repository to their app this change adds the repository to the template for `flutter create`.

This also bumps the support-annotations dependency to 25.4.0 (which also requires the new maven repository).
2017-06-20 12:43:23 -07:00
Michael Thomsen
739b379eca Give changelog proper extension (#10577) 2017-06-08 09:54:38 +02:00
Todd Volkert
e9c7f604e9 Make generated Java folder names match package names. (#10537) 2017-06-07 13:16:16 -07:00
Michael Thomsen
3e645ee2db Add changelog and required fields to template (#10548) 2017-06-07 15:54:29 +02:00
Michael Thomsen
0f277fcc8a Idea enable the plugin template (#10429) 2017-06-06 17:19:27 +02:00
Mikkel Nygaard Ravn
251d83a4b5 Add org option to flutter create (#10290) 2017-05-24 16:19:16 +02:00
Mikkel Nygaard Ravn
6762e86953 Change template indentation to 2 spaces (#10289) 2017-05-24 12:37:23 +02:00
Mikkel Nygaard Ravn
10f6483003 Add Swift and Kotlin templates (#10259) 2017-05-24 08:22:50 +02:00
Sarah Zakarias
c67b46e328 Update plugin README with link to plugin guide (#10137) 2017-05-17 23:06:40 +02:00
Michael Thomsen
5cec108023 Roll android build tools to 25.0.3 (#9922)
* Roll android build tools to 25.0.3

* Roll android build tools to 25.0.3 in templates
2017-05-09 18:58:46 +02:00
Mikkel Nygaard Ravn
c1feee93d3 iOS plugin registry (#9818) 2017-05-09 12:00:07 +02:00
Mikkel Nygaard Ravn
24a3e58cd0 Android plugin registry (#9715) 2017-05-09 11:43:19 +02:00
Michael Thomsen
a625d3e140 Revert "Upgrade to most recent android build tools version (#9878)" (#9888)
This reverts commit 5ed2984e75.
2017-05-08 20:33:12 +02:00
Michael Thomsen
5ed2984e75 Upgrade to most recent android build tools version (#9878) 2017-05-08 20:12:32 +02:00
Mikkel Nygaard Ravn
79afc77594 Plugin template uses new channel name (#9453) 2017-04-18 22:54:01 +02:00
Michael Thomsen
8bf97cc42a Add iOS deployment target to podspec template (#9281) 2017-04-18 15:48:31 +02:00
Mikkel Nygaard Ravn
945cfc3ee2 Make naming consistent across channel APIs (#9270) 2017-04-18 15:23:15 +02:00
Jakob Andersen
7ffa82aaf0 Inject plugin registration. (#9216)
Added a PluginRegistry to the new project template. The registry files will be automatically updated at build time to register the native plugins.

Fixes #7814.
2017-04-10 15:44:19 +02:00
Collin Jackson
244a7a02b5 rename initWithFlutterView to initWithController (#9208) 2017-04-05 08:21:36 -07:00
Jakob Andersen
5541d71b11 Android: Set evaluationDependsOn for plugin subprojects. (#9179)
Gradle projects are evaluated in lexicographical order, and the plugin
projects are at the same level as the :app project, so if a plugin has
a name that comes before 'app' (like, for example, any name that starts
with a capital letter), the plugin project will be evaluated before
:app.

Since :app applies the Flutter Gradle plugin, which tries to
modify the dependencies of the plugin projects, we have a problem if the
plugin projects have already been evaluated. Adding
evaluationDependsOn(':app') to the plugin projects fixes this.

Updated example projects to the latest (plugin-enabled) Gradle build
files.

Also removed two unused imports in `pluginClass.java.tmpl`.
2017-04-04 13:03:06 +02:00
Collin Jackson
9095d76299 remove support library dependency in plugin template (#9126) 2017-04-03 05:17:24 -07:00
Jakob Andersen
104e7ba576 Update plugin template to new channel API. (#9105) 2017-03-30 21:25:31 +02:00
Jakob Andersen
f34f8a3197 Add template for plugin projects. (#9076)
Plugin projects are created by running `flutter create --plugin <name>`.

An example app is also created in the plugin project, using the normal 'create' template, which has been modified to allow for conditional plugin code.

Modified the android package name to match package naming conventions (all lower-case, and must match the directory name).
2017-03-30 12:39:21 +02:00