431 Commits

Author SHA1 Message Date
Jakob Andersen
b61e169011 Automatically wire dependencies for native plugins (#8891)
Go through all packages brought in by pub, and write the name and path of every one that is a flutter plugin into .flutter-plugins.

In android/settings.gradle and ios/Podfile, read in .flutter-plugins, if that file exists. The Android / iOS code from the plugins is automatically added as dependencies of the native code of the app.
2017-03-23 14:59:12 +01:00
Chris Bracken
0ee3f57a10 Build Flutter app as a framework on iOS (#8971)
**THIS IS A BREAKING CHANGE.** See below for migration steps for
existing projects.

Previously, Flutter app code was built as a raw dylib on iOS.  Dynamic
libraries outside of a framework bundle are not supported on iOS, except
for the system Swift libraries provided by Xcode.

See:
https://developer.apple.com/library/content/technotes/tn2435/_index.html#//apple_ref/doc/uid/DTS40017543-CH1-TROUBLESHOOTING_BUNDLE_ERRORS-EMBEDDED__DYLIB_FILES

* Migrates Xcode build from app.dylib to App.framework
* Migrates flutter create template
* Migrates example projects

Migration steps for existing projects
=====================================

The following steps should be taken from the root of your Flutter
project:

1. Edit `ios/.gitignore`: add `/Flutter/App.framework` on a new line.
2. In the Xcode project navigator, remove `app.dylib` from the Flutter
   folder. Delete this file from the `ios/Flutter` directory in your project.
3. Run a build to generate `ios/Flutter/App.framework`. From the command
   line, run `flutter build ios`. If you have not configured app signing
   in Xcode, an alternative method is to open the simulator, then run
   `flutter run -d iP`.
4. In the Xcode project navigator, select the `Runner` project. In the
   project settings that are displayed in the main view, ensure that the
   `Runner` target is selected. You can verify this by exposing the
   sidebar using the [| ] icon in the upper-left corner of the main
   view.
5. Select the *General* tab in the project settings. Under the
   *Embedded Binaries* section, click '+' to add `App.framework`. In the
   sheet that drops down, click the *Add Other...* button. Navigate to
   the `ios/Flutter` directory and select `App.framework`. Click *Open*.
   In the sheet that drops down, select *Create folder references*, then
   click *Finish*.
6. In the project settings, verify that `App.framework` has been added to the
   *Embedded Binaries* and *Linked Frameworks and Libraries* lists.
7. In the Xcode project navigator, drag `App.framework` under the
   Flutter folder.
8. In the Xcode project navigator, select `Flutter` then from the
   *File* menu, select *Add Files to "Runner"...*. Navigate to the
   `ios/Flutter` directory, select `AppFrameworkInfo.plist` and click
   the *Add* button.
9. From the command line, in your project directory, run
   `flutter build clean`, then `flutter run`.

At this point your project should be fully migrated.
2017-03-22 17:41:49 -07:00
Michael Thomsen
15e51a9e3e Revert "Update gradle wrapper and build-tools version for flutter create." (#8940)
* Revert "use color.shadeXxx instead of color[Xxx] (#8932)"

This reverts commit 578ca0a295c83d5be00de28f4ab62968a762df71.

* Revert "add missing const keyword (#8931)"

This reverts commit fac2fac1d67708da14364dc90f40e06130da9d21.

* Revert "Make min/max fling velocity and min fling distance ScrollPhysics properties (#8928)"

This reverts commit dac80aac89959a57194d96ffe06211b3faffc907.

* Revert "Defer to operating system for whichAll (#8921)"

This reverts commit 14933de986b1264015ea69442603520cff969650.

* Revert "Update gradle wrapper and build-tools version for flutter create. (#8914)"

This reverts commit deb71cc6dcf45297ab4fb6e6ccf3d14fb05be9ab.
2017-03-21 17:42:40 -07:00
asaarnak
deb71cc6dc Update gradle wrapper and build-tools version for flutter create. (#8914)
* Update gradle wrapper and build-tools version.

Tested manually by "flutter create" with Idea "flutter run" and from android studio "run" android app.

* Update com.android.tools.build to 2.3.0
2017-03-21 16:47:32 +01:00
Jakob Andersen
1457f3dbb0 Put Gradle output in build/ (#8759)
Changed the default build output directory in the new project template
to build/, instead of android/build/ and android/app/build/.

Updated tools to ask the Gradle scripts what the build directory is,
since this is configurable in the build scripts, and we need to know
where the build output actually is.

Silenced output from 'flutter build aot' when invoked from Gradle, since
the output was confusing in this case.

Fixes #8723
Fixes #8656
Fixes #8138
2017-03-15 10:53:22 +01:00
Chris Bracken
a4125f3b0e Declare Xcode 8.3.x compatibility in project files (#8622)
Update templates and example Xcode project files to indicate they've
been tested for Xcode 8.3 compatibility.
2017-03-07 13:11:41 -08:00
Chris Bracken
bd3aac7043 Use default iOS SDK for CocoaPods project (#8603)
This matches the default for Runner.xcodeproj and fixes a linker warning
when the two projects use different values.
2017-03-06 17:31:51 -08:00
Chris Bracken
752ca59dff Update iOS template icon assets (#8601)
Add 20x20 notification icons.
Remove unused 76x76 (3x scale) icon.
Fixes warnings for missing/unused icon assets in Xcode 8.2.x
2017-03-06 17:05:27 -08:00
Chris Bracken
d32dc9254b Update Xcode projects to 8.2.x (#8596)
This prevents project re-validation on initial Xcode launch.
2017-03-06 14:50:41 -08:00
Michael Thomsen
3cf1ea6dc5 Small update to instructional comments in app template (#8468)
* Small update to instructional comments in app template

* Update Flutter Driver comment

Good suggestion to add the link, Seth! I also updated the working to match what that page uses.
2017-03-06 12:36:45 -08:00
Michael Thomsen
0533ffc020 Upgrade build tools to latest Android Studio default (#8461) 2017-02-28 18:25:28 +01:00
Michael Thomsen
8857fa080e Revert back IntelliJ .iml file to project root (#8139)
* Move .iml file back to project root directory

* Update .iml location in all examples
2017-02-14 18:15:26 +01:00
Jakob Andersen
b246c5e7e9 Make new project template gradle-based for Android. (#7902)
* Make new project template gradle-based for Android.

With this change, the 'new project' template uses the same gradle-based build for Android as the hello_services example. This has some implications on build performance, since we're now building a complete Android app instead of just combining a pre-compiled .dex with the Flutter assets.

The very first build is a little over 2x slower, since it needs to download gradle and build the build scripts before getting to the actual code. Subsequent builds with changes to the code are comparable to the old builds. Null builds are faster. Enabling the gradle daemon speeds up subsequent builds by around 5s.

* Move Flutter Gradle plugin to Flutter root.
2017-02-10 09:37:38 +01:00
Chris Bracken
5e672cbe64 Update Xcode project templates to handle paths with spaces (#8034) 2017-02-09 13:25:29 -08:00
Chris Bracken
1926d11188 Thin iOS app frameworks to the target architecture (#7913)
* Support thinning iOS frameworks to supported architectures

When building against frameworks that are distributed as
multi-architecture fat binaries, we want to strip the frameworks we
distribute down to only the architectures specified in $ARCHS.

This patch adds:
* The ability to specify commands to xcode_backend.sh (if none is
  specified, run BuildApp for backward compatibility).
* A 'thin' command that invokes lipo to thin down the distributed as
  described above.

* Add framework thinning step to iOS build

Invokes xcode_backend.sh thin on the build application.

* Limit architectures to arm64 in Xcode template

Flutter does not yet support armv7 iOS devices. Limit the $ARCHS build
variable to arm64 until then.
2017-02-07 12:04:36 -08:00
Chris Bracken
aaff608d05 Use FlutterAppDelegate in iOS create template (#7845)
On iOS, generate a FlutterAppDelegate subclass for the application
delegate. This avoids touchesBegan:withEvent boilerplate to handle
status bar taps.
2017-02-02 18:03:56 -08:00
Chris Bracken
2bbc028313 Add touchesBegan handler to iOS AppDelegate template (#7822)
By default, pass status bar taps to the root view controller in
generated Flutter apps. Developers should customise as necesary if they
later create one or more alternate FlutterViewControllers that they'd
like to forward these to.
2017-02-02 12:50:01 -08:00
Chris Bracken
d01c55d289 Eliminate calls to deprecated FlutterInit() (#7770) 2017-01-31 17:39:29 -08:00
Ian Hickson
1bdf351818 Merge pubspec.yaml and flutter.yaml. (#7605) 2017-01-24 11:19:31 -08:00
Michael Thomsen
24f1b2ee09 Update IntelliJ template for new projects and existing samples (#7501)
* Disable 'Show Excluded' by default

* Move .iml file inside .idea dir

* Remove pub and build excludions as they are automatically set by the Dart plugin

* Exclude .idea folder (new users will edit it through the IJ UI, not the file)

* Move .iml files into .idea dir to be consistent with template changes

* Add workspace.xml from new template to existing samples

* Update current examples to match template changes for excluding folders

* Add missing flutter.yaml to make sure there are no analysis errors

* Add back .pub and build excludeFolder tags per https://github.com/flutter/flutter-intellij/issues/630#issuecomment-272887230

* Remove workspace.xml from example per review feedback
2017-01-23 16:33:18 +01:00
Michael Thomsen
b71f89a194 Add a workspace file to the template to trigger main.dart to open in the code editor (#7464) 2017-01-12 22:50:17 +01:00
Devon Carew
3759332890 update create template intellij metadata (#7255) 2016-12-14 03:42:55 -08:00
Collin Jackson
211fefc217 rename Sky to Flutter and add clarifying comment to template (#7165)
* s/sky/flutter/ in Android templates

* update engine.version with a compatible engine version

* replace more SkyActivity references with FlutterActivity
2016-12-06 16:03:32 -08:00
Collin Jackson
9f3c3fd2dc Fix #7029 nested .gitignore breaks ios projects (#7045) 2016-11-28 10:02:00 -08:00
Joel Trottier-Hebert
6d8141b242 Added comment for INTERNET permission in Android manifest (#6835)
* Added comment for INTERNET permission in Android manifest

* Added more details to the permission comment.
2016-11-17 15:04:57 -08:00
Ian Hickson
fa2caa737b Tweaks to the template for P4. (#6635) 2016-11-02 11:28:49 -07:00
Devon Carew
b9e7ee88d8 Remove atom check (#6605)
* remove the validator check for atom

* remove the atom launch config

* review comments
2016-11-01 11:46:30 -07:00
Ian Hickson
5ded244d55 flutter create template: build comment (#6611) 2016-10-31 21:59:20 -07:00
Ian Hickson
5032019f39 Include widget configuration in the template (#6476)
This should help new users figure out how to set up their constructors
and use config data from the build method of a State.
2016-10-24 11:26:30 -07:00
Ian Hickson
fad62d4164 Update the flutter create template. (#6443)
This tries to capture some of the experience of usability study
participant P1.
2016-10-20 20:44:14 -04:00
Devon Carew
f1d70fcdd3 create intellij metadata from flutter create (#6429) 2016-10-20 12:03:38 -07:00
Dan Rubel
cd65b7902c switch to package:mustache (#6273) 2016-10-11 17:44:12 -04:00
Chris Bracken
c2386fb725 Update iOS template to Xcode 8 recommended settings 2016-09-26 15:04:07 -07:00
Adam Barth
c1a2967430 Use SDK sources to refer to our own packages (#6001)
Switch our pubspec.yamls to using SDK sources so that we can have consistent
source types when we depend on these packages from external packages using SDK
sources.
2016-09-22 20:39:35 -07:00
Dan Rubel
f6c53d58cd Test create proj content (#5546)
* test flutter create project dart file is properly formatted

* restore driver-test

* cleanup lint warnings

* address comment
2016-08-24 14:47:29 -04:00
Dan Rubel
e1d9468dca update template so that it formats correctly (#5493) 2016-08-18 17:30:24 -07:00
Seth Ladd
f28cf64127 ios launcher icons with more padding, optimized (#5470) 2016-08-18 10:16:10 -07:00
Seth Ladd
2326f55281 use transparent android launcher icons (#5442)
* use transparent android launcher icons

* revert stocks icons
2016-08-17 09:05:01 -07:00
Collin Jackson
5f67aeb05c Fix #5398 flutter run hangs on project made with flutter create (#5432) 2016-08-16 14:00:00 -07:00
Collin Jackson
facd3e238f Fix #5384 by checking in iOS pod manifest (#5388) 2016-08-15 09:35:38 -07:00
Devon Carew
e3f6d1539c update the icons for the create template (#5286) 2016-08-08 11:14:40 -07:00
Chinmay Garde
21ee4b92f1 Specify the IPHONEOS_DEPLOYMENT_TARGET to 8.0. (#5268)
* Update examples to lower the deployment target on iOS.
2016-08-05 14:56:07 -07:00
Eric Seidel
5a0589c781 Remove stray PRODUCT_BUNDLE_IDENTIFIER (#5242)
* Remove stray PRODUCT_BUNDLE_IDENTIFIER

This was erroneously added and overrides
the bundle for the gallery causing signing
to fail in my setup.

@chinmaygarde

* Remove PRODUCT_BUNDLE_IDENTIFIER from all Runner pbxproj's
2016-08-05 10:00:50 -07:00
Collin Jackson
d2b3976110 Alter iOS template project to be CocoaPods enabled (#4893) 2016-08-05 09:17:13 -07:00
Adam Barth
46ccd879c2 Actually build the AppDelegate (#4925)
Previously it wasn't included in the Runner target.
2016-07-14 17:37:57 -07:00
Collin Jackson
f82b62096d Simplify iOS template project 2016-07-12 18:34:01 -07:00
Collin Jackson
0d1752241f Remove dependency on FlutterAppDelegate so devs can more easily add SDKs. 2016-07-12 13:56:07 -07:00
Adam Barth
a33fc49659 Remove dangling reference to ViewController (#4841)
We want to use the FlutterViewController in this new project template.

Fixes #4840
2016-07-07 10:45:58 -07:00
Adam Barth
151750baa8 Update the ios projects for examples to HelloServices model (#4822)
We now use a different approach for ios projects where the developer controls
the Xcode project file. This patch removes the old ".generated" approach in
favor of the new approach.
2016-07-06 14:13:21 -07:00
Adam Barth
8d56fae557 Finish integrating HelloServices model on iOS (#4820)
This patch changes the default `flutter create` command to generate a
HelloServices-style app on iOS. As a consequence, the Atom integration now
fully works with HelloServices.
2016-07-06 13:13:28 -07:00