diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 56fe341..151364a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,7 +4,17 @@
-
+
+<<<<<<< HEAD
+
+
+
+
+=======
+
+
+>>>>>>> 64ed8860a0ab56b1d5d8e56ee7b65bc34e52a48f
+
@@ -21,6 +31,7 @@
+
@@ -35,9 +46,17 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/section_3/1_simple_app/1-2_pubspec.yaml b/section_3/1_simple_app/1-2_pubspec.yaml
index 7acfe5f..d96af8b 100644
--- a/section_3/1_simple_app/1-2_pubspec.yaml
+++ b/section_3/1_simple_app/1-2_pubspec.yaml
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
- sdk: ">=2.7.0 <3.0.0"
+ sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
@@ -29,7 +29,7 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.3
- english_words: ^3.1.5 # 追記
+ english_words: ^4.0.0 # 追記
dev_dependencies:
flutter_test:
diff --git a/section_3/1_simple_app/exercise1.dart b/section_3/1_simple_app/exercise1.dart
index 359ca02..01001be 100644
--- a/section_3/1_simple_app/exercise1.dart
+++ b/section_3/1_simple_app/exercise1.dart
@@ -5,9 +5,9 @@ import 'package:flutter/material.dart';
void main() => runApp(MyApp()); // 引数のWidgetが画面いっぱいに表示される
-List generateHello({int start, int n}){
+List generateHello({int? start, int? n}){
var _hs = [];
- for (int i=start; i runApp(MyApp()); // 引数のWidgetが画面いっぱいに表示される
-List generateHello({int start, int n}){
+List generateHello({int? start, int? n}){
var _hs = [];
- for (int i=start; i {
fontSize: 30.0,
),
),
- FlatButton( // 一番シンプルなボタン
+ ElevatedButton( // 一番シンプルなボタン
onPressed: _handlePressed,
- color: Colors.blue,
+ style: ElevatedButton.styleFrom(
+ primary: Colors.blue,
+ ),
child: Text(
"いいね!",
style: TextStyle(
diff --git a/section_3/4_transition/4-2_main.dart b/section_3/4_transition/4-2_main.dart
index 98b1391..6be4971 100644
--- a/section_3/4_transition/4-2_main.dart
+++ b/section_3/4_transition/4-2_main.dart
@@ -50,20 +50,20 @@ class _MainPageState extends State {
class TabPage extends StatelessWidget {
- final IconData icon;
- final String title;
+ final IconData? icon;
+ final String? title;
- const TabPage({Key key, this.icon, this.title}) : super(key: key);
+ const TabPage({Key? key, this.icon, this.title}) : super(key: key);
@override
Widget build(BuildContext context) {
- final TextStyle textStyle = Theme.of(context).textTheme.headline4; // 文字のスタイル
+ final TextStyle? textStyle = Theme.of(context).textTheme.headline4; // 文字のスタイル
return Center(
child:Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
- Icon(icon, size: 72.0, color: textStyle.color),
- Text(title, style: textStyle),
+ Icon(icon, size: 72.0, color: textStyle!.color),
+ Text(title!, style: textStyle),
],
),
);
diff --git a/section_4/main_fb.dart b/section_4/main_fb.dart
index 4cbbb4c..0f58b30 100644
--- a/section_4/main_fb.dart
+++ b/section_4/main_fb.dart
@@ -39,7 +39,7 @@ class _MyHomePageState extends State {
stream: FirebaseFirestore.instance.collection("dogs").snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
- return _buildList(snapshot.data.docs);
+ return _buildList(snapshot.data!.docs);
},
);
}
@@ -55,7 +55,7 @@ class _MyHomePageState extends State {
}
Widget _buildListItem(DocumentSnapshot snap) {
- Map data = snap.data();
+ final Map data = snap.data() as Map;
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 18.0, vertical:9.0),
diff --git a/section_4/pubspec.yaml b/section_4/pubspec.yaml
index 1a0500c..5656b87 100644
--- a/section_4/pubspec.yaml
+++ b/section_4/pubspec.yaml
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
- sdk: ">=2.7.0 <3.0.0"
+ sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
@@ -28,9 +28,9 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.3
+ cloud_firestore: ^2.2.2 #追記
+ firebase_core: ^1.3.0 #追記
- firebase_core : ^0.5.0 # 追記
- cloud_firestore: ^0.14.0+1 # 追記
dev_dependencies:
flutter_test:
diff --git a/section_5/ios/Podfile b/section_5/ios/Podfile
index 7b23028..f972513 100644
--- a/section_5/ios/Podfile
+++ b/section_5/ios/Podfile
@@ -1,6 +1,9 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
+# Override Firebase SDK Version
+$FirebaseSDKVersion = '7.11.0'
+
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -77,7 +80,7 @@ target 'Runner' do
pod name, :path => File.join(symlink, 'ios')
end
- pod 'Firebase/MLVisionFaceModel' # 追記
+ pod 'GoogleMLKit/FaceDetection' # 追記
end
post_install do |installer|
diff --git a/section_5/main_mlkit.dart b/section_5/main_mlkit.dart
index ff10eae..bcd0281 100644
--- a/section_5/main_mlkit.dart
+++ b/section_5/main_mlkit.dart
@@ -1,8 +1,7 @@
import 'dart:io';
-
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
-import 'package:firebase_ml_vision/firebase_ml_vision.dart';
+import 'package:google_ml_kit/google_ml_kit.dart';
void main() {
runApp(MyApp());
@@ -29,10 +28,10 @@ class FaceFinder extends StatefulWidget {
}
class _FaceFinderState extends State {
- File _imageFile;
- Size _imageSize;
- List _faceResults;
- final FaceDetector _faceDetector = FirebaseVision.instance.faceDetector();
+ File? _imageFile;
+ Size? _imageSize;
+ List? _faceResults;
+ final FaceDetector _faceDetector = GoogleMlKit.vision.faceDetector();
final ImagePicker _picker = ImagePicker();
void _getImageAndFindFace(ImageSource imageSource) async {
@@ -41,8 +40,8 @@ class _FaceFinderState extends State {
_imageSize = null;
});
- final PickedFile pickedImage = await _picker.getImage(source: imageSource);
- final File imageFile = File(pickedImage.path);
+ final PickedFile? pickedImage = await _picker.getImage(source: imageSource);
+ final File? imageFile = File(pickedImage!.path);
if (imageFile != null) {
_getImageSize(imageFile);
@@ -73,7 +72,7 @@ class _FaceFinderState extends State {
_faceResults = null;
});
- final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(imageFile);
+ final InputImage visionImage = InputImage.fromFile(imageFile);
List results = await _faceDetector.processImage(visionImage);
setState(() {
@@ -86,7 +85,7 @@ class _FaceFinderState extends State {
constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
image: DecorationImage(
- image: Image.file(_imageFile).image,
+ image: Image.file(_imageFile!).image,
fit: BoxFit.contain,
),
),
@@ -100,7 +99,7 @@ class _FaceFinderState extends State {
),
),
)
- : CustomPaint(painter: FaceBorderDrawer(_imageSize, _faceResults))
+ : CustomPaint(painter: FaceBorderDrawer(_imageSize!, _faceResults!))
);
}
diff --git a/section_5/pubspec.yaml b/section_5/pubspec.yaml
index e61f636..0def609 100644
--- a/section_5/pubspec.yaml
+++ b/section_5/pubspec.yaml
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
- sdk: ">=2.7.0 <3.0.0"
+ sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
@@ -28,11 +28,11 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.3
+ firebase_core: ^1.3.0 #追記
+ google_ml_kit: ^0.6.0 #追記
+ image_picker: ^0.8.0+3 # 追記
+ camera: ^0.8.1+3 #追記
- firebase_core: ^0.5.0 # 追記
- firebase_ml_vision: ^0.9.6+2 # 追記
- image_picker: ^0.6.0 # 追記
- camera: ^0.5.6+1 # 追記
dev_dependencies:
flutter_test:
diff --git a/section_6/main.dart b/section_6/main.dart
index a9ed27e..cea0d73 100644
--- a/section_6/main.dart
+++ b/section_6/main.dart
@@ -1,5 +1,6 @@
import 'dart:io';
-
+//google_ml_kitのをimport
+import 'package:google_ml_kit/google_ml_kit.dart';
import 'package:intl/intl.dart';
import 'package:uuid/uuid.dart';
import 'package:path/path.dart';
@@ -7,7 +8,6 @@ import 'package:image_picker/image_picker.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
-import 'package:firebase_ml_vision/firebase_ml_vision.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_storage/firebase_storage.dart';
@@ -38,7 +38,7 @@ class MainForm extends StatefulWidget {
class _MainFormState extends State {
String _name ="";
String _processingMessage = "";
- final FaceDetector _faceDetector = FirebaseVision.instance.faceDetector(
+ final FaceDetector _faceDetector = GoogleMlKit.vision.faceDetector(
FaceDetectorOptions(
mode: FaceDetectorMode.accurate,
enableLandmarks: true,
@@ -52,17 +52,16 @@ class _MainFormState extends State {
_processingMessage = "Processing...";
});
- final PickedFile pickedImage = await _picker.getImage(source: imageSource);
- final File imageFile = File(pickedImage.path);
+ final PickedFile? pickedImage = await _picker.getImage(source: imageSource);
+ final File imageFile = File(pickedImage!.path);
- if (imageFile != null) {
- final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(imageFile);
+ final InputImage visionImage = InputImage.fromFile(imageFile);
List faces = await _faceDetector.processImage(visionImage);
if(faces.length > 0){
String imagePath = "/images/" + Uuid().v1() + basename(pickedImage.path);
- StorageReference ref = FirebaseStorage.instance.ref().child(imagePath);
- final StorageTaskSnapshot storedImage = await ref.putFile(imageFile).onComplete;
- if(storedImage.error == null){
+ Reference ref = FirebaseStorage.instance.ref().child(imagePath);
+ final TaskSnapshot storedImage = await ref.putFile(imageFile);
+
final String downloadUrl = await storedImage.ref.getDownloadURL();
Face largestFace = findLargestFace(faces);
@@ -76,9 +75,9 @@ class _MainFormState extends State {
context,
MaterialPageRoute(builder: (context) => TimelinePage(),)
);
- }
+
}
- }
+
setState(() {
_processingMessage = "";
@@ -165,7 +164,7 @@ class TimelinePage extends StatelessWidget {
stream: FirebaseFirestore.instance.collection("smiles").orderBy("date", descending: true).limit(10).snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
- return _buildList(context, snapshot.data.docs);
+ return _buildList(context, snapshot.data!.docs);
},
);
}
@@ -181,7 +180,7 @@ class TimelinePage extends StatelessWidget {
}
Widget _buildListItem(BuildContext context, DocumentSnapshot snap) {
- Map _data = snap.data();
+ final Map _data =snap.data()! as Map;
DateTime _datetime = _data["date"].toDate();
var _formatter = DateFormat("MM/dd HH:mm");
String postDate = _formatter.format(_datetime);
diff --git a/section_6/pubspec.yaml b/section_6/pubspec.yaml
index 1f03455..1526771 100644
--- a/section_6/pubspec.yaml
+++ b/section_6/pubspec.yaml
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
- sdk: ">=2.7.0 <3.0.0"
+ sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
@@ -27,16 +27,15 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
- cupertino_icons: ^0.1.3
-
- firebase_core: ^0.5.0 # 追記
- firebase_ml_vision: ^0.9.6+2 # 追記
- firebase_storage: ^4.0.0 # 追記
- cloud_firestore: ^0.14.0+1 # 追記
- image_picker: ^0.6.0 # 追記
- camera: ^0.5.6+1 # 追記
- uuid: ^2.2.2 # 追記
- intl: ^0.16.1 # 追記
+ cupertino_icons: ^1.0.2
+ firebase_core: ^1.3.0 # 追記
+ google_ml_kit: ^0.6.0 # 追記
+ firebase_storage: ^8.1.3 # 追記
+ cloud_firestore: ^2.2.2 # 追記
+ image_picker: ^0.8.0+3 # 追記
+ camera: ^0.8.1+3 # 追記
+ uuid: ^3.0.4 # 追記
+ intl: ^0.17.0 # 追記
dev_dependencies:
flutter_test: