!!!Flutter [Dart] {{amazon B07LBPRHQD}} *https://flutter.dev/ !SDK *https://api.flutter.dev/index.html !Widget *https://flutter.dev/docs/development/ui/widgets !拡張パッケージ *https://pub.dev/flutter/packages !Flutter Studio *https://flutterstudio.app/ !!!Install !!Mac *https://flutter.dev/docs/get-started/install/macos !インストール +sdkダウンロード +unzipで解凍 +.bash_profile にPATH登録 +flutter doctor コマンドで必要な作業のチェックとヘルプ !実行 +xcodeのダウンロード +command line tools の有効化 ++sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ +cocoapods のインストール ++sudo gem install cocoapods ++pod setup +シミュレーターの起動 ++open - a Simulator +プロジェクトの作成 ++flutter create my_app +プロジェクトディレクトリで、 ++flutter run !Firebase +プロジェクトフォルダで以下を実行しXcodeで ++open ios/Runner.xcworkspace {{ref_image ios_bundle_id.png}} ++Firebase にバンドルIDを登録 ++cd ios ++pod setup +https://developers.google.com/identity/sign-in/ios/start-integrating !!!環境構築 *http://typea.info/blg/glob/2019/10/xamarin-flutter.html !!!Firebase ::Flutterfire *https://github.com/FirebaseExtended/flutterfire !!Firebase Auth *https://pub.dev/packages/firebase_auth ::example *https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_auth/example !!Google Sign in *https://pub.dev/packages/google_sign_in ::example *https://github.com/flutter/plugins/blob/master/packages/google_sign_in/example/lib/main.dart !!!Tips !!AndroidX対応 *[AndriodX対応|http://typea.info/blg/glob/2019/10/flutter-androidx.html] !!メニュー !ドロワーメニュー *https://flutter.dev/docs/cookbook/design/drawer return Scaffold( appBar: AppBar(), drawer: Drawer(), body: Center(), ); !!画面遷移 *[画面遷移|http://typea.info/blg/glob/2019/10/flutter.html] !呼び出し元 RaisedButton( onPressed: (){ Navigator.push( context, MaterialPageRoute(builder: (context) => SecondRoute()), ); }, child: const Text('Open Second Screen'), !呼び出し先 import 'package:flutter/material.dart'; class SecondRoute extends StatefulWidget { @override State createState() { return _SecondRouted(); } } class _SecondRouted extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Center(), ); } } !!Dialog *[Dialog|http://typea.info/blg/glob/2019/10/flutter-dialog.html] !!画像選択 *[画像選択|http://typea.info/blg/glob/2019/10/flutter-1.html] !!画像切り抜き *[画像切り抜き|http://typea.info/blg/glob/2019/10/flutter-2.html] !!DB !Sqlite *https://flutter.ctrnost.com/logic/sqlite/ *[sqfliteパッケージの利用|http://typea.info/blg/glob/2019/12/flutter-sqlite.html]