{"id":566,"date":"2019-10-21T19:22:29","date_gmt":"2019-10-21T10:22:29","guid":{"rendered":"http:\/\/www.typea.info\/blog\/index.php\/2019\/10\/21\/flutter_1\/"},"modified":"2020-04-27T23:03:36","modified_gmt":"2020-04-27T14:03:36","slug":"flutter_1","status":"publish","type":"post","link":"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/21\/flutter_1\/","title":{"rendered":"Flutter : \u753b\u50cf\u306e\u9078\u629e"},"content":{"rendered":"<p>Flutter + Firebase \u3067\u30a2\u30d7\u30ea\u4f5c\u6210\u306e\u305f\u3081\u306e\u30d1\u30fc\u30c4\u3042\u3064\u3081\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/03\/xamarin_flutter\">Flutter+Firebase\u74b0\u5883\u8a2d\u5b9a<\/a><\/li>\n<li><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/03\/flutter\">\u753b\u9762\u9077\u79fb<\/a><\/li>\n<li><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/03\/flutter_dialog\">Dialog<\/a><\/li>\n<li><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/03\/flutter_httpclient\">Http\u30af\u30e9\u30a4\u30a2\u30f3\u30c8<\/a><\/li>\n<\/ul>\n<p>\u753b\u50cf\u9078\u629e\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3001image_picker \u3092\u8a66\u3059\u3002<\/p>\n<p><a href=\"https:\/\/pub.dev\/packages\/image_picker\">https:\/\/pub.dev\/packages\/image_picker<\/a><\/p>\n<p>\u306e\u3060\u304c\u3001<a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/21\/flutter_androidx\">AndroidX\u4e92\u63db\u6027\u554f\u984c\u306b\u906d\u9047\u3057\u96e3\u5100\u3057\u305f\u304c\u3001\u4f55\u3068\u304b\u89e3\u6c7a<\/a>\u3002<\/p>\n<h2>1.Flutter<\/h2>\n<h3>1.1 pubspec.yaml (\/) \u306bimage_picker\u3092\u8ffd\u8a18<\/h3>\n<pre class=\"prettyprint linenums\">dependencies:\n    :\n  image_picker: ^0.6.1+8<\/pre>\n<h3>1.2 second.dart<\/h3>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/03\/flutter\">\u753b\u9762\u9077\u79fb\u3067\u8d77\u52d5\u3057\u305f\u753b\u9762\u306b\u3001\u753b\u50cf\u9078\u629e\u3057\u3001\u753b\u50cf\u8868\u793a\u3059\u308b\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u3092\u8ffd\u52a0\u3059\u308b<\/a> (\u95a2\u4fc2\u306a\u3044\u30b3\u30fc\u30c9\u306f\u9664\u5916)<\/p>\n<p>\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306e\u30eb\u30fc\u30c8\u306bScaffold\u3092\u4f7f\u7528\u3057\u305f\u307e\u307e\u3060\u3068\u3001\u5199\u771f\u3092\u9078\u629e\u3057\u305f\u3068\u304d\u306b\u30b5\u30a4\u30ba\u304c\u306f\u307f\u51fa\u308b\u3068\u3001\u4e0b\u56f3\u306e\u3088\u3046\u306b\u3001\u306f\u307f\u3067\u591a\u5206\u306b\u9ed2\u3068\u9ec4\u8272\u306e\u8eca\u7dda\u304c\u306f\u3044\u3063\u3066\u8868\u793a\u3055\u308c\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u30ed\u30b0\u304c\u5410\u304b\u308c\u308b\u3002<\/p>\n<pre class=\"prettyprint linenums\">\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Exception caught by rendering library \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nThe following assertion was thrown during layout:\nA RenderFlex overflowed by 236 pixels on the bottom.\n<\/pre>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_err.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"145\" height=\"306\" title=\"flutter_pick_image_err\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image_err\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_err_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>\u30b9\u30af\u30ed\u30fc\u30eb\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3088\u3046\u306a\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u30b5\u30f3\u30d7\u30eb\u30bd\u30fc\u30b9\u306b\u5408\u308f\u305b\u3066\u3001\u30b9\u30af\u30ed\u30fc\u30eb\u30d3\u30e5\u30fc\u306e\u4e2d\u306b\u5165\u308c\u308b\u3002<\/p>\n<p><a href=\"https:\/\/api.flutter.dev\/flutter\/widgets\/SingleChildScrollView-class.html\">https:\/\/api.flutter.dev\/flutter\/widgets\/SingleChildScrollView-class.html<\/a><\/p>\n<pre class=\"prettyprint linenums\">import 'dart:convert';\nimport 'dart:io';\n\nimport 'package:flutter\/material.dart';\nimport 'package:image_picker\/image_picker.dart';\n\n\nclass SecondRoute extends StatefulWidget {\n  @override\n  State&lt;StatefulWidget&gt; createState() {\n    return _SecondRoute();\n  }\n}\nclass _SecondRoute extends State&lt;SecondRoute&gt;{\n  Image _image = Image.network('https:\/\/flutter.github.io\/assets-for-api-docs\/assets\/widgets\/owl-2.jpg');\n\n  Future _handleImagePick(BuildContext context) async {\n    var imageFile = await ImagePicker.pickImage(source: ImageSource.gallery);\n    var image = Image.file(imageFile);\n    setState(() {\n      _image = image;\n    });\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return LayoutBuilder(\n      builder: (BuildContext context, BoxConstraints viewportConstraints) {\n        return SingleChildScrollView(\n          child: ConstrainedBox(\n            constraints: BoxConstraints(\n              minHeight: viewportConstraints.maxHeight,\n            ),\n            child: IntrinsicHeight(\n              child: Column(\n                children: &lt;Widget&gt;[\n                  Container(\n                    \/\/ A fixed-height child.\n                    color: const Color.fromARGB(255, 255, 255, 255),\n                    height: 120.0,\n                  ),\n                  Expanded(\n                    \/\/ A flexible child that will grow to fit the viewport but\n                    \/\/ still be at least as big as necessary to fit its contents.\n                    child: Container(\n                      color: const Color(0xffffffff),\n                      height: 240.0,\n                      constraints: BoxConstraints(\n                        minWidth: viewportConstraints.maxWidth,\n                        minHeight: double.infinity\n                      ),\n                      child: Column(\n                        children: &lt;Widget&gt;[\n                          RaisedButton(\n                            onPressed: () {\n                              _handleImagePick(context);\n                            },\n                            child: Text('Image Pick'),\n                          ),\n                          _image,\n                        ],\n                      ),\n                    ),\n                  ),\n                ],\n              ),\n            ),\n          ),\n        );\n      },\n    );\n  }\n\n}<\/pre>\n<h2>2.Android<\/h2>\n<p>\u753b\u50cf\u306e\u521d\u671f\u8868\u793a\u306b\u306f\u3001<a href=\"https:\/\/api.flutter.dev\/flutter\/widgets\/Image-class.html\">Flutter Image\u30af\u30e9\u30b9\u306e\u30b5\u30f3\u30d7\u30eb\u753b\u50cf<\/a>\u3092\u8868\u793a\u3002<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"172\" height=\"365\" title=\"flutter_pick_image01\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image01\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image01_thumb.png\" border=\"0\"><\/a><\/p>\n<p>\u300cImage Pick\u300d\u30dc\u30bf\u30f3\u62bc\u4e0b\u3067\u30ae\u30e3\u30e9\u30ea\u30fc\u304b\u3089\u753b\u50cf\u3092\u9078\u629e\u3067\u304d\u308b\u3002<\/p>\n<p>var imageFile = await ImagePicker.pickImage(source: ImageSource.gallery);<\/p>\n<p>\u306eImageSource \u3092\u3001ImageSource.camera \u306b\u5909\u66f4\u3059\u308b\u3053\u3068\u3067\u3001\u30ab\u30e1\u30e9\u304c\u8d77\u52d5\u3059\u308b\uff01<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image02.png\"><img loading=\"lazy\" decoding=\"async\" width=\"172\" height=\"364\" title=\"flutter_pick_image02\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image02\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image02_thumb.png\" border=\"0\"><\/a><\/p>\n<p>\u9078\u629e\u3059\u308b\u3068\u3001Image \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306b\u9078\u629e\u3055\u308c\u305f\u753b\u50cf\u304c\u30ed\u30fc\u30c9\u3055\u308c\u308b\uff01<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image03.png\"><img loading=\"lazy\" decoding=\"async\" width=\"165\" height=\"349\" title=\"flutter_pick_image03\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image03\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image03_thumb.png\" border=\"0\"><\/a><\/p>\n<h2>3.iOS<\/h2>\n<p>Android\u306b\u5bfe\u5fdc\u3057\u3066\u3001\u5c11\u3057\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>info.plist(\/ios\/Runner) \u306b\u4ee5\u4e0b\u3092\u8ffd\u8a18\u3002\u305d\u308c\u305e\u308c\u306e\u6a5f\u80fd(key)\u3092\u5229\u7528\u3059\u308b\u3068\u304d\u306b\u3001\u76ee\u7684(string)\u3092\u8868\u793a\u3057\u30e6\u30fc\u30b6\u30fc\u306b\u8a31\u53ef\u3092\u6c42\u3081\u308b\u3002<\/p>\n<pre class=\"prettyprint linenums\">&lt;dict&gt;\n    &lt;key&gt;NSPhotoLibraryUsageDescription&lt;\/key&gt;\n    &lt;string&gt;What purpose to use&lt;\/string&gt;\n    &lt;key&gt;NSCameraUsageDescription&lt;\/key&gt;\n    &lt;string&gt;What purpose to use&lt;\/string&gt;\n    &lt;key&gt;NSMicrophoneUsageDescription&lt;\/key&gt;\n    &lt;string&gt;What purpose to use&lt;\/string&gt;\n    &lt;key&gt;CFBundleDevelopmentRegion&lt;\/key&gt;\n    :\n&lt;\/dict&gt;<\/pre>\n<p>\u30a8\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u3067\u5b9f\u884c\u3002Android\u3068\u540c\u69d8\u306b\u8868\u793a\u3055\u308c\u305f\u3002<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"169\" height=\"325\" title=\"flutter_pick_image_ios01\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image_ios01\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios01_thumb.png\" border=\"0\"><\/a><\/p>\n<p>\u300cImage Pick\u300d\u30dc\u30bf\u30f3\u3067\u3001\u30e6\u30fc\u30b6\u30fc\u306b\u78ba\u8a8d\u3002OK\u62bc\u4e0b\u3002<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios02.png\"><img loading=\"lazy\" decoding=\"async\" width=\"166\" height=\"323\" title=\"flutter_pick_image_ios02\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image_ios02\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios02_thumb.png\" border=\"0\"><\/a><\/p>\n<p>\u30ae\u30e3\u30e9\u30ea\u30fc\uff1f\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u3001\u753b\u50cf\u3092\u9078\u629e\u3002<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios03.png\"><img loading=\"lazy\" decoding=\"async\" width=\"165\" height=\"328\" title=\"flutter_pick_image_ios03\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image_ios03\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios03_thumb.png\" border=\"0\"><\/a><\/p>\n<p>\u9078\u629e\u3057\u305f\u753b\u50cf\u304c\u3001\u8868\u793a\u3055\u308c\u305f\uff01<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios04.png\"><img loading=\"lazy\" decoding=\"async\" width=\"170\" height=\"344\" title=\"flutter_pick_image_ios04\" style=\"display: inline; background-image: none;\" alt=\"flutter_pick_image_ios04\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Flutter--_132D7\/flutter_pick_image_ios04_thumb.png\" border=\"0\"><\/a><\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/10\/21\/flutter_androidx\">AndroidX\u5bfe\u5fdc\u3067\u3001\u7d50\u69cb\u306f\u307e\u3063\u305f<\/a>\u304c\u3001\u884c\u3051\u305d\u3046\u304b\uff01\uff1f<\/p>\n<p>iOS\u306b\u3064\u3044\u3066\u3082\u52c9\u5f37\u3059\u308b\u5fc5\u8981\u3042\u308b\u306a\u3002<\/p>\n<p><a href=\"https:\/\/www.amazon.co.jp\/%E6%9C%AC%E6%B0%97%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8BiPhone%E3%82%A2%E3%83%97%E3%83%AA%E4%BD%9C%E3%82%8A-Xcode-10-x%E5%AF%BE%E5%BF%9C-Informatics-IDEA\/dp\/4815600031\/ref=as_li_ss_il?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;keywords=iOS%E9%96%8B%E7%99%BA&amp;qid=1571653204&amp;sr=8-2&amp;linkCode=li2&amp;tag=typea09-22&amp;linkId=d05bfb193cb7e64b3bfca4b49410e7ae&amp;language=ja_JP\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"\/\/ws-fe.amazon-adsystem.com\/widgets\/q?_encoding=UTF8&amp;ASIN=4815600031&amp;Format=_SL160_&amp;ID=AsinImage&amp;MarketPlace=JP&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=typea09-22&amp;language=ja_JP\" border=\"0\"><\/a><img loading=\"lazy\" decoding=\"async\" width=\"1\" height=\"1\" style=\"margin: 0px !important; border: currentcolor !important; border-image: none !important;\" alt=\"\" src=\"https:\/\/ir-jp.amazon-adsystem.com\/e\/ir?t=typea09-22&amp;language=ja_JP&amp;l=li2&amp;o=9&amp;a=4815600031\" border=\"0\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flutter + Firebase \u3067\u30a2\u30d7\u30ea\u4f5c\u6210\u306e\u305f\u3081\u306e\u30d1\u30fc\u30c4\u3042\u3064\u3081\u3002 Flutter+Firebase\u74b0\u5883\u8a2d\u5b9a \u753b\u9762\u9077\u79fb Dialog Http\u30af\u30e9\u30a4\u30a2\u30f3\u30c8 \u753b\u50cf\u9078\u629e\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3001image_picker \u3092\u8a66\u3059\u3002  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"","vkexunit_cta_each_option":"","footnotes":""},"categories":[111],"tags":[],"class_list":["post-566","post","type-post","status-publish","format-standard","hentry","category-flutter"],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=566"}],"version-history":[{"count":1,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/566\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/566\/revisions\/741"}],"wp:attachment":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}