{"id":2492,"date":"2024-11-19T18:36:59","date_gmt":"2024-11-19T09:36:59","guid":{"rendered":"https:\/\/y42u.net\/tec001\/?p=2492"},"modified":"2024-11-19T19:13:53","modified_gmt":"2024-11-19T10:13:53","slug":"flutter-runlogger","status":"publish","type":"post","link":"https:\/\/y42u.net\/tec001\/2024\/11\/19\/flutter-runlogger\/","title":{"rendered":"Flutter\u3067Runlogger(\u98a8\uff09\u3092\u4f5c\u3063\u3066\u307f\u305f"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u4ee5\u524dObjective-C\u3067\u4f5c\u6210\u3057\u3066\u3044\u305fRunLogger\u3092Flutter\u306e\u8abf\u67fb\u30fb\u52c9\u5f37\u306e\u70ba\u306b\u30c6\u30b9\u30c8\u7684\u306b\u57fa\u672c\u90e8\u5206\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"802\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-12.38.43.jpg?resize=1024%2C802&#038;ssl=1\" alt=\"\" class=\"wp-image-2493\" style=\"width:486px;height:auto\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-12.38.43.jpg?resize=1024%2C802&amp;ssl=1 1024w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-12.38.43.jpg?resize=300%2C235&amp;ssl=1 300w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-12.38.43.jpg?resize=40%2C31&amp;ssl=1 40w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-12.38.43.jpg?resize=768%2C602&amp;ssl=1 768w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-12.38.43.jpg?w=1514&amp;ssl=1 1514w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">\u5730\u56f3\u3068Run\u753b\u9762<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\uff11\uff09\u72b6\u6cc1\u3068Flutter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u30e2\u30d0\u30a4\u30eb\u958b\u767a\u74b0\u5883\u3068\u3057\u3066\u73fe\u5728\u306fXamarin\/NetMAUI\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304c\u3001\u4e16\u306e\u4e2d\u3092\u898b\u308b\u3068Flutter\u304c\u512a\u52e2\u306e\u69d8\u306a\u306e\u3067Flutter\u3092\u8abf\u67fb\u30fb\u52c9\u5f37\u3057\u3066\u3044\u305f\u304c\u3001\u5b9f\u969b\u306b\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u3066\u307f\u306a\u3044\u3068\u826f\u304f\u306f\u5206\u304b\u3089\u306a\u3044\u306e\u3067\u3001\u5b9f\u969b\u306b\u30a2\u30d7\u30ea\u3092\u4f5c\u308b\u4e8b\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u524dObjective-C\u3067\u4f5c\u6210\u3057\u3066\u3044\u305fRunlogger\u3092\u984c\u6750\u3068\u3057\u3001\u5730\u56f3\u30fbRun(\u8ddd\u96e2\u30fb\u30b9\u30d4\u30fc\u30c9\u30fb\u6a19\u9ad8\uff09\u3068csv\u4fdd\u5b58\u6a5f\u80fd\u306e\u307f\u4f5c\u6210\u3059\u308b\u4e8b\u3068\u3057\u307e\u3059\uff08\uff1dRunlogger\u6a5f\u80fd\u306e1\/5\u7a0b\u5ea6\uff09\u3002<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"640\" height=\"960\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_2784.jpg?resize=640%2C960&#038;ssl=1\" alt=\"\" class=\"wp-image-2494 size-full\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_2784.jpg?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_2784.jpg?resize=200%2C300&amp;ssl=1 200w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_2784.jpg?resize=27%2C40&amp;ssl=1 27w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">Objective-C\u3067\u4f5c\u6210\u3057\u3066\u3044\u305fRunlogger\u753b\u9762\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u753b\u9762\u306f\u300cRun\/\u5730\u56f3\/\u30ab\u30e1\u30e9\/\u30ed\u30b0\/\u8a2d\u5b9a\u300d\u304c\u3042\u308a\u3001\u5ea7\u6a19\u7cfb\u3082Wgs84\u4ee5\u5916\u306bTokyo\u308419\u5ea7\u6a19\u7cfb\u3082\u9078\u3079\u308b\u69d8\u306b\u3057\u3066\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305f\u30ed\u30b0\u306b\u306f\u30ab\u30ed\u30ea\u30fc\u30b0\u30e9\u30d5\u8868\u793a\u3082\u3067\u304d\u308b\u69d8\u306b\u3057\u3066\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"640\" height=\"960\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_0054.png?resize=640%2C960&#038;ssl=1\" alt=\"\" class=\"wp-image-2495\" style=\"width:291px;height:auto\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_0054.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_0054.png?resize=200%2C300&amp;ssl=1 200w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/IMG_0054.png?resize=27%2C40&amp;ssl=1 27w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\uff12\uff09\u4f5c\u6210\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u30fb\u30d5\u30a9\u30eb\u30c0\u30fc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9f\u969b\u306b\u4fee\u6b63\u30fb\u4f5c\u6210\u3057\u305f\u306e\u306f\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3068\u30d5\u30a9\u30eb\u30c0\u30fc\u3067\u3057\u305f\u3002<br>\u5b9f\u969b\u306e<a href=\"https:\/\/github.com\/amru195704\/runlogger\">\u30bd\u30fc\u30b9\u306a\u3069\u306fGitHub\u306b\u30a2\u30c3\u30d7\u3057\u3066\u3042\u308a\u307e\u3059<\/a>\u306e\u3067\u3001\u305d\u3061\u3089\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2502  README.md\n\u2502  pubspec.yaml\n\u251c\u2500lib\n\u2502  \u2502  run.dart\n\u2502  \u2502  map.dart\n\u2502  \u2502  main.dart\n\u2502  \u2502  \n\u2502  \u2514\u2500model\n\u2502          gps.dart\n\u2502          debugData.dart\n\u2502          gpsLogData.dart\n\u2502          \n\u2514\u2500assets\n    \u2514\u2500images\n        \u2502  map-01.png\n        \u2502  run-01.png\n        \u2502  set-00.png\n        \u2502  \n        \u2514\u2500launcher\n                icon_ios.png<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d5\u30a1\u30a4\u30eb\u540d<\/th><th>\u5185\u5bb9\u306a\u3069<\/th><\/tr><\/thead><tbody><tr><td>README.md<\/td><td>Git\u306b\u914d\u7f6e\u3059\u308b\u6982\u8981\u8aac\u660e\u66f8<\/td><\/tr><tr><td>pubspec.yaml<\/td><td>\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u8a2d\u5b9a\u3084\u3001sdk\u6307\u5b9a\u3092\u884c\u3046\u3002<br>\uff1c\u73fe\u5728\u306e\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\uff1e<br>fl_chart: ^0.69.0<br>platform_maps_flutter: ^1.0.2<br>cupertino_icons: ^1.0.8<br>geolocator: ^13.0.1<br>latlong2: ^0.9.1<br>flutter_launcher_icons: ^0.14.1<br>intl: ^0.19.0<br>path_provider: ^2.1.5<\/td><\/tr><tr><td>main.dart<\/td><td>Runlogger\u30e1\u30a4\u30f3\u30d7\u30ed\u30b0\u30e9\u30e0\u30bd\u30fc\u30b9<br>\u3053\u3053\u3067Tab\u8a2d\u5b9a\u3092\u884c\u3063\u3066\u3044\u308b\u3002TAB\u5207\u308a\u66ff\u3048\u3066\u3001map\/run\u753b\u9762\u3092\u8868\u793a\u3059\u308b\u3002set\u753b\u9762\u306f\u672a\u5b9f\u88c5\u3067\u3059\u3002<\/td><\/tr><tr><td>map.dart<\/td><td>map(\u5730\u56f3)\u753b\u9762\u30d7\u30ed\u30b0\u30e9\u30e0\u30bd\u30fc\u30b9<br>\u5730\u56f3\u8868\u793a\u3068\u73fe\u5728\u4f4d\u7f6e\u306b\u30d4\u30f3\u3092\u7acb\u3066\u308b\u3002<\/td><\/tr><tr><td>run.dart<\/td><td>run(\u5730\u56f3)\u753b\u9762\u30d7\u30ed\u30b0\u30e9\u30e0\u30bd\u30fc\u30b9<br>\u8d70\u884c\u901f\u5ea6\u30fb\u8ddd\u96e2\u30fb\u6a19\u9ad8\u3092\u8868\u793a\u3059\u308b<\/td><\/tr><tr><td>model\/gps.dart<\/td><td>GPS\u306e\u95a2\u9023\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u30af\u30e9\u30b9.<br>\u5225\u3005\u306a\u95a2\u6570\u3084\u5024\u3092\u307e\u3068\u3081\u308b\u305f\u3081\u306e\u30af\u30e9\u30b9\u3067\u3001static\u3067\u5168\u3066\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u69d8\u306b\u3057\u305f\u7269\u3067\u3059\uff08\u3042\u308b\u610f\u5473\u3067\u306f\u30b7\u30f3\u30b0\u30eb\u30c8\u30fc\u30f3\u30d1\u30bf\u30fc\u30f3\u3067\u3059\u306d\uff09\u3002<\/td><\/tr><tr><td>model\/gpsLogData.dart<\/td><td>runlogger\u306e\u300clogger\u300d\u90e8\u5206\u306e\u30c7\u30fc\u30bf\u3092\u7ba1\u7406\u3059\u308b\u30af\u30e9\u30b9\u3067\u3059\u3002\u300cStart\u300d\u300cStop\u300d\u9593\u306e\u4f4d\u7f6e\u3084\u9ad8\u3055\u3001\u30b9\u30d4\u30fc\u30c9\u3001\u8ddd\u96e2\u306a\u3069\u3092\u4fdd\u5b58\u3057\u3066\u304a\u308a\u300cStop\u300d\u6642\u306bcsv\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/td><\/tr><tr><td>model\/gpsLogData.dart<\/td><td>\u52d5\u4f5c\u691c\u8a3c\u7528\u306e\u5ea7\u6a19\u5024\u30ea\u30b9\u30c8\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002Debug\u30e2\u30fc\u30c9\u306e\u6642\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/td><\/tr><tr><td>assets\/images\/map-01.png<\/td><td>map\u30bf\u30d6\u7528icon\u753b\u50cf<\/td><\/tr><tr><td>assets\/images\/run-01.png<\/td><td>run\u30bf\u30d6\u7528icon\u753b\u50cf<\/td><\/tr><tr><td>assets\/images\/set-00.png<\/td><td>set\u30bf\u30d6\u7528icon\u753b\u50cf<\/td><\/tr><tr><td>assets\/images\/launcher\/icon_ios.png<\/td><td>\u8d77\u52d5icon\u753b\u50cf<br>flutter_launcher_icons\u3092\u4f7f\u7528\u3057\u3066iOS\u7528\u306e\u753b\u50cf\u306b\u5909\u63db\u3055\u308c\u308b\u3002<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\uff13\uff09Map(\u5730\u56f3)\u753b\u9762<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Runlogger\u3092\u8d77\u52d5\u3059\u308b\u3068\u5730\u56f3\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u30ed\u30b0\u304c\u958b\u59cb\u3055\u308c\u3066\u5c45\u307e\u305b\u3093\u306e\u3067\u3001\u8d70\u884c\u6642\u9593\u30fb\u8d70\u884c\u8ddd\u96e2\u30fb\u300cstop\u30dc\u30bf\u30f3\u300d\u306a\u3069\u306f\u7070\u8272\u8868\u793a\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" height=\"1024\" width=\"576\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.16.15-576x1024.png?resize=576%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-2497 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">\u300cStart\u30dc\u30bf\u30f3\u300d\u3067\u30ed\u30b0\u3092\u958b\u59cb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300cStop\u30dc\u30bf\u30f3\u300d\u3067\u30ed\u30b0\u3092\u7d42\u4e86\u3057\u307e\u3059\u3002\u7d42\u4e86\u6642\u306bcsv\u30d5\u30a1\u30a4\u30eb\u306b\u30ed\u30b0\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300cRunType\u30dc\u30bf\u30f3\u300d\u306f\u672a\u5b9f\u88c5\u3067\u3059\u3002\u6b69\u304d\u30fb\u8d70\u308a\u30fb\u81ea\u8ee2\u8eca\u306a\u3069\u3067\u30ab\u30ed\u30ea\u30fc\u8a08\u7b97\u30d1\u30e9\u30e1\u30fc\u30bf\u306a\u3069\u3092\u5207\u308a\u66ff\u3048\u308b\u70ba\u306b\u4f7f\u7528\u4e88\u5b9a\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\uff0b\u300d\u5730\u56f3\u3092\u62e1\u5927\u3057\u307e\u3059<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u30fc\u300d\u5730\u56f3\u3092\u7e2e\u5c0f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\u968e\u5c64\u30dc\u30bf\u30f3\u300d\u5730\u56f3\u30fb\u885b\u751f\u753b\u50cf\u3092\u5207\u308a\u66ff\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u73fe\u5728\u4f4d\u7f6e\u306b\u8d64\u3044\u30d4\u30f3\u3092\u914d\u7f6e\u3057\u307e\u3059\u3002\u4ee5\u524d\u306e\u4f4d\u7f6e\u304c\u308f\u304b\u308b\u69d8\u306b20\u500b\u306e\u30d4\u30f3\u3092\u5de1\u56de\u914d\u7f6e\u3057\u307e\u3059\u3002<\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" height=\"1024\" width=\"576\" decoding=\"async\" data-id=\"2498\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.16.36-576x1024.png?resize=576%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-2498\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"2500\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.02.jpg?resize=576%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-2500\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.02.jpg?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.02.jpg?resize=169%2C300&amp;ssl=1 169w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.02.jpg?resize=22%2C40&amp;ssl=1 22w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.02.jpg?w=750&amp;ssl=1 750w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\uff14\uff09Run(\u8d70\u884c)\u753b\u9762<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5730\u56f3\u753b\u9762\u3067\u300cRun\u300d\u30bf\u30d6\u3092\u62bc\u3059\u3068Run\u753b\u9762\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"576\" height=\"1024\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.16.png?resize=576%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-2502 size-full\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.16.png?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.16.png?resize=169%2C300&amp;ssl=1 169w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.16.png?resize=22%2C40&amp;ssl=1 22w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.16.png?w=750&amp;ssl=1 750w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">\u300cStart\u30dc\u30bf\u30f3\u300d\u3067\u30ed\u30b0\u3092\u958b\u59cb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300cStop\u30dc\u30bf\u30f3\u300d\u3067\u30ed\u30b0\u3092\u7d42\u4e86\u3057\u307e\u3059\u3002\u7d42\u4e86\u6642\u306bcsv\u30d5\u30a1\u30a4\u30eb\u306b\u30ed\u30b0\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300cRunType\u30dc\u30bf\u30f3\u300d\u306f\u672a\u5b9f\u88c5\u3067\u3059\u3002\u6b69\u304d\u30fb\u8d70\u308a\u30fb\u81ea\u8ee2\u8eca\u306a\u3069\u3067\u30ab\u30ed\u30ea\u30fc\u8a08\u7b97\u30d1\u30e9\u30e1\u30fc\u30bf\u306a\u3069\u3092\u5207\u308a\u66ff\u3048\u308b\u70ba\u306b\u4f7f\u7528\u4e88\u5b9a\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u901f\u5ea6\u30fb\u6a19\u9ad8\u3092\u30b0\u30e9\u30d5\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\uff1c\uff1c\u30dc\u30bf\u30f3\u300d\u306f\u30ed\u30b0\u958b\u59cb\u304b\u308920\u500b\u306e\u30b0\u30e9\u30d5\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300c\uff1e\uff1e\u30dc\u30bf\u30f3\u300d\u306f\u30ed\u30b0\u6700\u5f8c\u304b\u308920\u500b\u306e\u30b0\u30e9\u30d5\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u300call\u30dc\u30bf\u30f3\u300d\u306f\u30ed\u30b0\u5168\u4f53\u30b0\u30e9\u30d5\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"2503\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.30.png?resize=576%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-2503\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.30.png?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.30.png?resize=169%2C300&amp;ssl=1 169w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.30.png?resize=22%2C40&amp;ssl=1 22w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.30.png?w=750&amp;ssl=1 750w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"2504\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.53.png?resize=576%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-2504\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.53.png?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.53.png?resize=169%2C300&amp;ssl=1 169w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.53.png?resize=22%2C40&amp;ssl=1 22w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-iPhone-SE-2nd-generation-2024-11-19-at-14.17.53.png?w=750&amp;ssl=1 750w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\uff15\uff09\u958b\u767a\u30e1\u30e2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3044\u304f\u3064\u304bFlutter\u3067\u958b\u767a\u3059\u308b\u4e0a\u3067\u56f0\u3063\u305f\u4e8b\u304c\u6709\u308a\u307e\u3059\u306e\u3067\u30e1\u30e2\u3068\u3057\u3066\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<br>\u304a\u305d\u3089\u304f\u3001Flutter\u3084Dart\u306e\u521d\u5fc3\u8005\u306a\u3089\u3070\u540c\u3058\u69d8\u306b\u306f\u307e\u308a\u3001\u611f\u3058\u308b\u4e8b\u3067\u306f\u7121\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uff11\u3002#ifdef \u306a\u3069\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u30b9\u30a4\u30c3\u30c1\u304c\u7121\u3044\uff1f<br>\u3000Debug\u30e2\u30fc\u30c9\u3068Release\u30e2\u30fc\u30c9\u306e\u30bd\u30fc\u30b9\u5207\u308a\u66ff\u3048\u3068\u3057\u3066#ifdef\u306a\u3069\u3092\u4f7f\u7528\u3057\u3066\u5c45\u307e\u3057\u305f\u304c\u3001Dart\u8a00\u8a9e\u306b\u306f\u306a\u3055\u305d\u3046\u3067\u3059\u3002<br>\u3000\u4ee3\u308f\u308a\u306b\u300c\u3000if (kDebugMode) \u3000\u300d\u3092\u4f7f\u7528\u3059\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uff12\u3002VScode\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u305f\u5834\u5408\u306b\u3001iOS\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u8a2d\u5b9a\u304c\u554f\u984c\u3068\u306a\u3063\u305f\u3002<br>\u3000\u3000\u6700\u5c0fOS\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u300cios\/Runner\/info.plist\u300d\u306b\u6b21\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3066\u6700\u5c0fOS\u30d0\u30fc\u30b8\u30e7\u30f3\u309214.5\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!-- info.plist \u306biOS\u6700\u5c0f\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8a2d\u5b9a\u3059\u308b\u4f8b --&gt;\n\u3000\u3000&lt;key&gt;MinimumOSVersion&lt;\/key&gt;\n\u3000\u3000&lt;string&gt;14.5&lt;\/string&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uff13\u3002\u901a\u5e38\u306eiOS\u30a2\u30d7\u30ea\u3068\u540c\u3058\u69d8\u306b\u3001GPS\u3084\u30d5\u30a1\u30a4\u30eb\u5171\u6709\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u300cios\/Runner\/info.plist\u300d\u306b\u6b21\u306e\u884c\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!-- info.plist \u306bGPS\u4f7f\u7528\u8a31\u53ef\u3092\u8a2d\u5b9a\u3059\u308b\u4f8b --&gt; \n  \u3000&lt;key&gt;NSLocationWhenInUseUsageDescription&lt;\/key&gt;\n    &lt;string&gt;GPS\u5ea7\u6a19\u3092\u30ed\u30b0\u306e\u70ba\u306b\u4f7f\u7528\u3057\u307e\u3059&lt;\/string&gt;\n    &lt;key&gt;NSLocationAlwaysUsageDescription&lt;\/key&gt;\n    &lt;string&gt;GPS\u5ea7\u6a19\u3092\u30ed\u30b0\u306e\u70ba\u306b\u4f7f\u7528\u3057\u307e\u3059.&lt;\/string&gt;\n&lt;!-- info.plist \u306b\u30d5\u30a1\u30a4\u30eb\u5171\u6709\u4f7f\u7528\u8a31\u53ef\u3092\u8a2d\u5b9a\u3059\u308b\u4f8b --&gt; \n\u3000\u3000 &lt;key&gt;LSSupportsOpeningDocumentsInPlace&lt;\/key&gt;\n    &lt;true\/&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uff14\u3002TAB\u306e\u30a2\u30a4\u30b3\u30f3\u753b\u50cf\u306f\u300cassets\/images\/\u300d\u306b\u914d\u7f6e\u3057\u3066\u3001ImageIcon\u3067\u8a2d\u5b9a\u3057\u307e\u3059<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u753b\u50cf\u304b\u3089icon\u3092\u4f5c\u6210\u3059\u308b\u4f8b\u3000\nImageIcon(AssetImage('assets\/images\/map-01.png'))\nImageIcon(AssetImage('assets\/images\/run-01.png'))\nmageIcon(AssetImage('assets\/images\/set-00.png'))<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uff15\u3002\u753b\u9762\u306e\u518d\u63cf\u753b\u30bf\u30a4\u30df\u30f3\u30b0<br>\u3000\u753b\u9762\u5168\u4f53\u306f\u300cWidget build(BuildContext context)\u300d\u95a2\u6570\u5185\u306b\u8a18\u8ff0\u3057\u307e\u3059\u304c\u3001\u753b\u9762\u306e\u66f4\u65b0\u306f\u300csetState\u300d\u95a2\u6570\u3092\u547c\u3076\u4e8b\u3067\u5b9f\u884c\u3059\u308b\uff08\uff1d\u306e\u304c\u3001\u6700\u521d\u306f\u308f\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\uff09\u3002\u306a\u306e\u3067\u3001\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u305f\u308a\u3001\uff11\u79d2\u30bf\u30a4\u30de\u30fc\u3067\uff11\u79d2\u6bce\u306b\u73fe\u5728\u5ea7\u6a19\u3092\u53d6\u5f97\u3057\u3066\u3001\u5730\u56f3\u306e\u30d4\u30f3\u3092\u79fb\u52d5\u3059\u308b\u3002\u3002\u306a\u3069\u306e\u51e6\u7406\u304c\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ &#91;\u62e1\u5927\u30dc\u30bf\u30f3]\u62e1\u5927\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u305f\u5834\u5408\u306e\u5b9f\u884c\u95a2\u6570\u4f8b: setState\u95a2\u6570\u3092\u547c\u3076\u6642\u306b\u3001Camera\u306ezoom\u3092\n\/\/ \uff0b\uff11\u3057\u3066\u3044\u308b\u3002\u3053\u306e\u5f8cBuild\u95a2\u6570\u304c\u5b9f\u884c\u3055\u308c\u3001\u62e1\u5927\u5730\u56f3\u304c\u8868\u304c\u3055\u308c\u308b\u3002\n  void zoomIn() {\n    setState(() {\n      _zoom += 1.0;\n      _controller.animateCamera(\n        CameraUpdate.newCameraPosition(\n          CameraPosition(\n            target: LatLng(_lat, _lon),\n            zoom: _zoom,\n          ),\n        ),\n      );\n    });\n  }<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ &#91;\u30bf\u30a4\u30de\u30fc\u51e6\u7406]\uff11\u79d2\u6bce\u306b\u5ea7\u6a19\u3092\u53d6\u5f97\u3057\u3066\u3001\u30de\u30fc\u30ab\u30c6\u30fc\u30d6\u30eb\u306b\u30d4\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u3002\n\/\/ \u3053\u306e\u5f8cBuild\u95a2\u6570\u304c\u5b9f\u884c\u3055\u308c\u3001\u5730\u56f3\u304c\u79fb\u52d5\u3057\u3066\u30de\u30fc\u30ab\u304c\u8868\u793a\u3055\u308c\u308b\u3002\n    \/\/ 1. Timer.periodic : \u65b0\u3057\u3044\u7e70\u308a\u8fd4\u3057\u30bf\u30a4\u30de\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\n    \/\/ 1\u79d2\u3054\u3068\u306b _counter\u30921\u305a\u3064\u8db3\u3057\u3066\u3044\u304f\n    Timer.periodic(\n      \/\/ \u7b2c\u4e00\u5f15\u6570\uff1a\u7e70\u308a\u8fd4\u3059\u9593\u9694\u306e\u6642\u9593\u3092\u8a2d\u5b9a\n      const Duration(seconds: 1),\n      \/\/ \u7b2c\u4e8c\u5f15\u6570\uff1a\u305d\u306e\u9593\u9694\u3054\u3068\u306b\u52d5\u4f5c\u3055\u305b\u305f\u3044\u51e6\u7406\u3092\u66f8\u304f\n      (Timer timer) async {\n        \/\/ \u4f4d\u7f6e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\n        final pos = Gps.currentPos;\n        _lat = pos.latitude;\n        _lon = pos.longitude;\n        \/\/ \u30de\u30fc\u30ab\u30fc\u3092\u8ffd\u52a0\u3059\u308b\n        Marker mak = Marker(\n          markerId: MarkerId('$_markerNo'),\n          position: LatLng(_lat, _lon), \/\/\n          infoWindow: InfoWindow(title: '$_markerNo'),\n          icon: BitmapDescriptor.defaultMarker,\n        );\n        \/\/ \u30de\u30fc\u30ab\u30fc\u3092\u63cf\u753b\u30c7\u30fc\u30bf\u30c6\u30fc\u30d6\u30eb\u306b\u8ffd\u52a0\u3059\u308b\u3002\u6700\u592720\u500b\u307e\u3067\u3067\u3001\u5de1\u56de\u3059\u308b\n        _markTerable&#91;_markerNo] = mak;\n        _markerNo++;\n        if (_markerNo &gt;= 20) {\n          _markerNo = 0;\n        }\n\n        \/\/\u5b9f\u614b\u304c\u3042\u308b\u5834\u5408\u306e\u307f\u3001\u753b\u9762\u3092\u66f4\u65b0\u3059\u308b\n        if (mounted == true) {\n          \/\/ \u8868\u793a\u6587\u5b57\u306e\u66f4\u65b0\n          _timeStr = Gps.getGpsLogTime();\n          _distanceStr = Gps.getGpsLogDistance();\n          \/\/ \u753b\u9762\u3092\u66f4\u65b0\u3059\u308b\n          setState(() {\n            _controller.animateCamera(\n              CameraUpdate.newCameraPosition(\n                CameraPosition(\n                  target: LatLng(_lat, _lon),\n                  zoom: _zoom,\n                ),\n              ),\n            );\n          });\n        }\n      },\n    );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uff16\u3002\u5730\u56f3\u4e0a\u306e\u30dc\u30bf\u30f3\u914d\u7f6e\u3068\u30b5\u30a4\u30ba<br>\u3000platform_maps_flutter\u3067\u5730\u56f3\u3092\u8868\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u305d\u306e\u4e0a\u306b\u30dc\u30bf\u30f3\u3084\u30c6\u30ad\u30b9\u30c8\u3092\u914d\u7f6e\u3059\u308b\u65b9\u6cd5\u3068\u3057\u3066\u300cPositioned\u300d\u3092\u4f7f\u7528\u3057\u3066\u5c45\u307e\u3059\u3002\u6614\u306fGUI\u90e8\u54c1\u3092\u5ea7\u6a19\u6307\u5b9a\u3067\u914d\u7f6e\u3059\u308b\u3088\u3046\u306aGUI\u30d3\u30eb\u30c0\u30fc\u304c\u591a\u304f\u6709\u308a\u307e\u3057\u305f\u304c\u3001\u8fd1\u5e74\u306f\u30b3\u30fc\u30c9\u3067\u8a18\u8ff0\u3059\u308b\u69d8\u306a\u5f62\u5f0f\u306b\u306a\u308a\u3064\u3064\u3042\u308b\u3068\u601d\u308f\u308c\u307e\u3059\u306e\u3067\u3001\u300cPositioned\u300d\u3067\u5ea7\u6a19\u6307\u5b9a\u3059\u308b\u65b9\u6cd5\u304c\u826f\u3044\u306e\u304b\u82e5\u5e72\u6c17\u306b\u306a\u308b\u70b9\u3067\u306f\u6709\u308a\u307e\u3059(=\u304c\u3001\u307e\u3060\u307e\u3060\u521d\u5fc3\u8005\u306a\u306e\u3067\u4ed6\u306e\u65b9\u6cd5\u304c\u601d\u3044\u3064\u304b\u306a\u304b\u3063\u305f\u3002\u826f\u3044\u65b9\u6cd5\u304c\u3042\u3063\u305f\u3089\u6559\u3048\u3066\u304f\u3060\u3055\u3044\uff09\u3002<br>\u3000\u307e\u305f\u3001\u914d\u7f6e\u30dc\u30bf\u30f3\u306e\u30b5\u30a4\u30ba\u6307\u5b9a\u304c\u3067\u304d\u306a\u304b\u3063\u305f\u306e\u3067\u300cSizeBox\u300d\u3082\u4f7f\u7528\u3057\u3066\u5c45\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000\u4eca\u307e\u3067\u8272\u3005\u306aGUI\u90e8\u54c1\u3092\u4f7f\u7528\u3057\u3066\u5c45\u307e\u3057\u305f\u304c\u3001width\/height\u306f\u3069\u306e\u90e8\u54c1\u3082\u6301\u3063\u3066\u5c45\u305f\u3068\u601d\u3044\u307e\u3059\u304c\u3001SizeBox\u3067\u6307\u5b9a\u3059\u308b\u306e\u306fFlutter\u304c\u521d\u3081\u3066\u306e\u7d4c\u9a13\u3067\u3059\u3002\u5f53\u7136\u3042\u308b\u7269\u3068\u3057\u3066width\/height\u3092\u63a2\u3057\u307e\u304f\u308a\u307e\u3057\u305f\u3002\u5e38\u8b58\u304b\u3089\u7591\u3046\u5fc5\u8981\u304c\u3042\u3063\u305f\u306e\u304c\u9a5a\u304d\u3067\u3057\u305f(\u9a5a\u304d\uff11)\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ &#91;\u30dc\u30bf\u30f3\u914d\u7f6e]\u3000\u5730\u56f3\u753b\u9762\u4e0a\u306b\u30dc\u30bf\u30f3\u3092\u914d\u7f6e\u3059\u308b\u70ba\u306b\u3001Positioned\u3067\u4f4d\u7f6e\u6307\u5b9a\u3057\u3066\u3044\u308b\n      Positioned(\n        top: 10, \/\/ \u4e0a\u304b\u308910\u30d4\u30af\u30bb\u30eb\u306e\u4f4d\u7f6e\n        left: 10, \/\/ \u80a5\u5927\u304b\u308920\u30d4\u30af\u30bb\u30eb\u306e\u4f4d\u7f6e\n        child: Column(children: &#91;\n          SizedBox(\n            width: btnSize, \/\/ \u5e0c\u671b\u306e\u5e45\n            height: btnHight1,\n            child: FloatingActionButton(\n              onPressed: Gps.logSartFlg\n                  ? null\n                  : () =&gt; {\n                        Gps.gpsLogStart(),\n                      },\n              backgroundColor: \n                 Gps.logSartFlg ? Colors.cyan : Colors.grey,\n              child: Text(\"\u8d70\u884c\u6642\u9593: $_timeStr\"),\n            ),\n          ),\n          const SizedBox(height: 10), \/\/ 10\u30d4\u30af\u30bb\u30eb\u306e\u30b9\u30da\u30fc\u30b9\n          SizedBox(\n            width: btnSize, \/\/ \u5e0c\u671b\u306e\u5e45\n            height: btnHight1,\n            child: FloatingActionButton(\n              onPressed: Gps.logSartFlg\n                  ? null\n                  : () =&gt; {\n                        Gps.gpsLogStart(),\n                      },\n              backgroundColor: \n                 Gps.logSartFlg ? Colors.cyan : Colors.grey,\n              child: Text(\"\u8d70\u884c\u8ddd\u96e2: $_distanceStr\"),\n            ),\n          ),\n          const SizedBox(height: 10), \/\/ 10\u30d4\u30af\u30bb\u30eb\u306e\u30b9\u30da\u30fc\u30b9\n          Row(\n            mainAxisAlignment: MainAxisAlignment.end,\n            children: &lt;Widget&gt;&#91;\n              SizedBox(\n                width: btnWidth1, \/\/ \u5e0c\u671b\u306e\u5e45\n                height: btnHight1,\n                child: FloatingActionButton(\n                  onPressed: Gps.logSartFlg\n                      ? null\n                      : () =&gt; {\n                            Gps.gpsLogStart(),\n                          },\n                  backgroundColor: \n                     Gps.logSartFlg ? Colors.grey : Colors.blue,\n                  child: const Text(\"Start\"),\n                ),\n              ),\n              SizedBox(\n                width: btnWidth1, \/\/ \u5e0c\u671b\u306e\u5e45\n                height: btnHight1,\n                child: FloatingActionButton(\n                  onPressed: Gps.logSartFlg\n                      ? () =&gt; {\n                            Gps.gpsLogStop(),\n                          }\n                      : null,\n                  backgroundColor: \n                     Gps.logSartFlg ? Colors.blue : Colors.grey,\n                  child: const Text(\"Stop\"),\n                ),\n              ),\n              SizedBox(\n                width: btnWidth1, \/\/ \u5e0c\u671b\u306e\u5e45\n                height: btnHight1,\n                child: FloatingActionButton(\n                  onPressed: () =&gt; {},\n                  child: const Text(\"RunType\"),\n                ),\n              ),\n            ],\n          ),\n        ]),\n      ),\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uff17\u3002Dart\u8a00\u8a9e\u306b\u306f\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u5909\u6570\u306f\u7121\u3044\uff1f<br>\u3000\u30af\u30e9\u30b9\u5185\u90e8\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u5909\u6570\u3092\u6307\u5b9a\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u300c\u7121\u3044\u300d\u69d8\u3067\u3059\u3002\u6163\u7fd2\u7684\u306b\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2(_)\u3092\u3064\u3051\u305f\u5909\u6570\u3092\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u3068\u898b\u306a\u3059\u69d8\u3067\u9a5a\u304d\u3067\u3057\u305f(\u9a5a\u304d\uff12)\uff08\uff1d\u3053\u306e\u4ed5\u69d8\u3067\u826f\u3044\u306e\u304b\u306a\uff1f\uff09\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ &#91;\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u5909\u6570\u4f8b]\n\/\/ Run\u753b\u9762\u3067\u4f7f\u7528\u3057\u3066\u3044\u308b\u3001\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u5909\u6570\u4f8b\uff08\u4e00\u90e8\uff09\n\/\/ _timeStr\u3084_distanceStr\u306a\u3069\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2(_)\u3092\u4ed8\u3051\u305f\u5909\u6570\u304c\n\/\/ \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u5909\u6570\u3067\u3059\u3002\n\/\/\u3000\nclass _MyRunPageState extends State&lt;MyRunPage&gt; {\n  \/\/ \u8868\u793a\u69d8\u5909\u6570\u30c7\u30fc\u30bf\n  String _timeStr = \"00:00:00\";\n  String _distanceStr = \"0.0km\";\n  String _speedStr = \"0.0m\/s\";\n  String _altStr = \"0.0m\";\n  \/\/\u3000\u30b0\u30e9\u30d5\u30c7\u30fc\u30bf\n  List&lt;FlSpot&gt; _altGraphList = &#91;];\n  List&lt;FlSpot&gt; _spdGraphList = &#91;];\n  GraphType _graphType = GraphType.all;\n\n  \/\/\u3000\u30b0\u30e9\u30d5\u6700\u5927\u6700\u5c0f\u5024\u7bc4\u56f2\u5909\u6570\n  double _minAlt = 0, _maxAlt = 0;\n  double _minSpd = 0, _maxSpd = 0;\n  double _minGraphX = 0;\n  final double _xMaxDefault = 20;\n  double _maxGraphX = 20;\n  int _intervalVal = 5;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6)\u96d1\u611f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000Runlogger\u306e\u4e3b\u8981\u6a5f\u80fd\u3092\u4f5c\u6210\u3057\u3066\u307f\u3066Flutter\/Dart\u306e\u4f7f\u3044\u65b9\u304c\u5c11\u3057\u7406\u89e3\u3067\u304d\u307e\u3057\u305f\u3002<br>\u4f55\u3082\u77e5\u3089\u306a\u3044\u72b6\u614b\u304b\u3089\u4e00\u5fdc\u306f\u52d5\u304f\u30a2\u30d7\u30ea\u307e\u3067\u4f5c\u6210\u3059\u308b\u306e\u306b\u6570\u9031\u9593\u3067\u3057\u305f\u304c\u3001\u521d\u3081\u3066Objective-C\u3067\u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u305f\u6642\u3088\u308a\u3082\u7c21\u5358\u306b\u611f\u3058\u307e\u3057\u305f\u3002iOS\u306e\u77e5\u8b58\u304c\u3042\u308b\u306e\u3067\u5f53\u305f\u308a\u524d\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u3001\u65b0\u3057\u3044\u74b0\u5883=Flutter\/Dart\u306b\u6163\u308c\u308b\u306e\u306bGitHub Copilot\u3084Gemini\u306a\u3069\u306e\u624b\u52a9\u3051\u304c\u975e\u5e38\u306b\u5927\u304d\u304b\u3063\u305f\u3068\u601d\u3044\u307e\u3059\u3002\u3053\u306e\u69d8\u306a\u74b0\u5883\u304c\u7c21\u5358\u306b\u4f7f\u3048\u308b\u73fe\u4ee3\u306a\u3089\uff11\u9031\u9593\u3082\u6709\u308c\u3070\uff08\u304b\u3064\u82e5\u3051\u308c\u3070\uff09\u305d\u308c\u306a\u308a\u306e\u30a2\u30d7\u30ea\u304c\u4f5c\u308c\u305d\u3046\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000\u307e\u305f\u4eca\u56de\u306e\u30a2\u30d7\u30ea\u3067\u306fiOS\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u306e\u307f\u3067\u52d5\u4f5c\u30c6\u30b9\u30c8\u3057\u3066\u3044\u307e\u3059\u304c\u3001iOS\u56fa\u6709\u306e\u90e8\u5206\u306finfo.plist\u3092\u5f04\u3063\u305f\u3050\u3089\u3044\u306a\u306e\u3067\u3001android\u3078\u306e\u79fb\u690d\u3082\u7c21\u5358\u3068\u601d\u308f\u308c\u307e\u3059\u3002\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30db\u30fc\u30e0\u3068\u3057\u3066iOS\u3078\u306e\u4f9d\u5b58\u304c\u307b\u3068\u3093\u3069\u7121\u3044\u306e\u306fFlutter\u306e\u5927\u304d\u306a\u30a2\u30c9\u30d0\u30f3\u30c6\u30fc\u30b8\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uff17\uff09\u4eca\u5f8c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000Flutter\u3068\u540c\u69d8\u306bSwift\u3067\u3082Runlogger(\u98a8\uff09\u3092\u4f5c\u3063\u3066\u307f\u3088\u3046\u304b\u306a\u3068\u601d\u3044\u307e\u3059\u3002Swift\u3082SwiftUI\u3067Flutter\u540c\u69d8\u306b\u30b3\u30fc\u30c9\u3067GUI\u3092\u8a18\u8ff0\u3059\u308b\u65b9\u6cd5\u306a\u306e\u3067\u9762\u767d\u3044\u6bd4\u8f03\u304c\u3067\u304d\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3000\u4ee5\u524d\u300cRunloggerPro\u300d\u3068\u3057\u3066\u30b5\u30fc\u30ad\u30c3\u30c8\u8d70\u884c\u306e\u52a0\u901f\u5ea6\u3082\u30ed\u30b0\u4fdd\u5b58\u3059\u308b\u30a2\u30d7\u30ea\u304c\u9014\u4e2d\u3067\u6b62\u307e\u3063\u305f\u307e\u307e\u3067\u3059\u3002\u3053\u306eRunlogger(\u98a8\uff09\u30a2\u30d7\u30ea\u3092\u30d9\u30fc\u30b9\u306bRTK-GPS\u30fb\uff19\u8ef8\u30bb\u30f3\u30b5\u30fc\u3068\u9023\u643a\u3057\u3066\u300cRunloggerPro\u300d\u3092\u5fa9\u6d3b\u3055\u305b\u3088\u3046\u304b\u306a\u3002\u3002\u3068\u3082\u601d\u3063\u3066\u5c45\u307e\u3059\u304c\u3001\u3069\u3046\u306a\u308b\u3053\u3068\u3084\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uff18\uff09GUI\u4f5c\u6210\u65b9\u6cd5\u306b\u3064\u3044\u3066<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3044\u3064\u3082\u306e\u69d8\u306bGemini\u3055\u3093\u306b\u805e\u3044\u3066\u307f\u307e\u3057\u305f\u3002<br>Flutter\u306e\u69d8\u306b\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u5834\u5408\u3001\u753b\u9762\u304c\u305d\u308c\u305e\u308c\u7570\u306a\u308a\u307e\u3059\u304b\u3089\u30b3\u30fc\u30c9\u3067\u8a18\u8ff0\u3059\u308b\u65b9\u6cd5\u304c\u4f55\u304b\u3068\u90fd\u5408\u304c\u826f\u3044\u306e\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uff1c\u8cea\u554f\uff1e\n\u300c\u8fd1\u9803\u306eGUI\u4f5c\u6210\u306f\u4ee5\u524d\u306e\u69d8\u306aGUI\u30a8\u30c7\u30a3\u30fc\u30bf\u304b\u3089\u30b3\u30fc\u30c9\u3067\u8a18\u8ff0\u3059\u308b\u65b9\u5f0f\u306b\u79fb\u884c\u3057\u3066\u3044\u308b\u3088\u3046\u306b\u601d\u308f\u308c\u307e\u3059\u304c\u3001\u5b9f\u969b\u306f\u3069\u3046\u3067\u3057\u3087\u3046\u304b\u300d\n\n\uff1cGemini\u56de\u7b54\uff1e\n\u8fd1\u5e74\u3001GUI\u4f5c\u6210\u306e\u4e3b\u6d41\u304cGUI\u30a8\u30c7\u30a3\u30bf\u304b\u3089\u30b3\u30fc\u30c9\u8a18\u8ff0\u3078\u3068\u5927\u304d\u304f\u30b7\u30d5\u30c8\u3057\u305f\u3088\u3046\u306b\u611f\u3058\u308b\u3068\u3044\u3046\u3054\u8a8d\u8b58\u3001\u5927\u5909\u8208\u5473\u6df1\u3044\u3067\u3059\u3002\u78ba\u304b\u306b\u3001\u591a\u304f\u306e\u958b\u767a\u73fe\u5834\u3067\u30b3\u30fc\u30c9\u306b\u3088\u308bGUI\u69cb\u7bc9\u304c\u63a1\u7528\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u305d\u306e\u80cc\u666f\u306b\u306f\u3044\u304f\u3064\u304b\u306e\u8981\u56e0\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002\n\n\uff11\u3002\u30b3\u30fc\u30c9\u306b\u3088\u308bGUI\u69cb\u7bc9\u304c\u4e3b\u6d41\u306b\u306a\u308a\u3064\u3064\u3042\u308b\u7406\u7531\n\uff11\uff09\u67d4\u8edf\u6027\u3068\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u6027:\n\u30b3\u30fc\u30c9\u3067\u306f\u3001GUI\u30a8\u30c7\u30a3\u30bf\u3067\u306f\u5b9f\u73fe\u3057\u306b\u304f\u3044\u8907\u96d1\u306a\u30ec\u30a4\u30a2\u30a6\u30c8\u3084\u30a4\u30f3\u30bf\u30e9\u30af\u30b7\u30e7\u30f3\u3092\u81ea\u7531\u306b\u8a2d\u8a08\u3067\u304d\u307e\u3059\u3002\n\u518d\u5229\u7528\u53ef\u80fd\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u3001\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3092\u52b9\u7387\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\uff12\uff09\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406:\n\u30b3\u30fc\u30c9\u306f\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3067\u7ba1\u7406\u3067\u304d\u308b\u305f\u3081\u3001\u958b\u767a\u5c65\u6b74\u3092\u8fbf\u308a\u3001\u5909\u66f4\u70b9\u3092\u8ffd\u8de1\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\n\u30c1\u30fc\u30e0\u958b\u767a\u306b\u304a\u3044\u3066\u3001\u885d\u7a81\u3084\u30d0\u30b0\u3092\u6e1b\u3089\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\uff13\uff09\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0:\n\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u8c4a\u5bcc\u306b\u5b58\u5728\u3057\u3001\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u306b\u3088\u308b\u30b5\u30dd\u30fc\u30c8\u3082\u5145\u5b9f\u3057\u3066\u3044\u307e\u3059\u3002\n\u65b0\u3057\u3044\u6280\u8853\u3084\u30c8\u30ec\u30f3\u30c9\u306b\u7d20\u65e9\u304f\u5bfe\u5fdc\u3067\u304d\u307e\u3059\u3002\n\uff14\uff09\u8907\u96d1\u5316\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3:\n\u30e2\u30d0\u30a4\u30eb\u30a2\u30d7\u30ea\u3084Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u6a5f\u80fd\u304c\u8907\u96d1\u5316\u3059\u308b\u306b\u3064\u308c\u3066\u3001\u3088\u308a\u67d4\u8edf\u306a\u958b\u767a\u624b\u6cd5\u304c\u6c42\u3081\u3089\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\n\n\uff12\u3002GUI\u30a8\u30c7\u30a3\u30bf\u304c\u5b8c\u5168\u306b\u6d88\u6ec5\u3057\u305f\u308f\u3051\u3067\u306f\u306a\u3044\n\u4e00\u65b9\u3067\u3001GUI\u30a8\u30c7\u30a3\u30bf\u3082\u4f9d\u7136\u3068\u3057\u3066\u5229\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n\uff11\uff09\u30d7\u30ed\u30c8\u30bf\u30a4\u30d4\u30f3\u30b0:\nGUI\u30a8\u30c7\u30a3\u30bf\u306f\u3001\u521d\u671f\u6bb5\u968e\u306eUI\u30c7\u30b6\u30a4\u30f3\u3084\u30d7\u30ed\u30c8\u30bf\u30a4\u30d4\u30f3\u30b0\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002\n\u77ed\u6642\u9593\u3067\u8996\u899a\u7684\u306a\u8868\u73fe\u3092\u4f5c\u6210\u3057\u3001\u30a2\u30a4\u30c7\u30a2\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\uff12\uff09\u7279\u5b9a\u306e\u7528\u9014:\n\u7279\u5b9a\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3084\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u304c\u5bb9\u6613\u306aGUI\u30a8\u30c7\u30a3\u30bf\u3082\u3042\u308a\u307e\u3059\u3002\n\u7279\u5316\u3057\u305f\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308bGUI\u30a8\u30c7\u30a3\u30bf\u306f\u3001\u7279\u5b9a\u306e\u958b\u767a\u30b7\u30fc\u30f3\u3067\u6d3b\u8e8d\u3057\u307e\u3059\u3002\n\n\uff13\u3002\u307e\u3068\u3081\nGUI\u4f5c\u6210\u306e\u65b9\u6cd5\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u898f\u6a21\u3001\u958b\u767a\u30c1\u30fc\u30e0\u306e\u30b9\u30ad\u30eb\u3001\u8981\u4ef6\u306b\u3088\u3063\u3066\u6700\u9069\u306a\u3082\u306e\u304c\u7570\u306a\u308a\u307e\u3059\u3002\n\uff11\uff09\u5927\u898f\u6a21\u3067\u8907\u96d1\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3: \u30b3\u30fc\u30c9\u306b\u3088\u308b\u69cb\u7bc9\u304c\u4e00\u822c\u7684\u3002\n\uff12\uff09\u8fc5\u901f\u306a\u30d7\u30ed\u30c8\u30bf\u30a4\u30d4\u30f3\u30b0: GUI\u30a8\u30c7\u30a3\u30bf\u304c\u6709\u52b9\u3002\n\uff13\uff09\u7279\u5b9a\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3084\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a: GUI\u30a8\u30c7\u30a3\u30bf\u304c\u9069\u3057\u3066\u3044\u308b\u5834\u5408\u3082\u3002\n\n\u3069\u3061\u3089\u304c\u512a\u308c\u3066\u3044\u308b\u304b\u3067\u306f\u306a\u304f\u3001\u305d\u308c\u305e\u308c\u306e\u30c4\u30fc\u30eb\u3084\u624b\u6cd5\u306e\u7279\u6027\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\n\n\uff14\u3002\u4eca\u5f8c\u306e\u5c55\u671b\n\uff11\uff09\u30ed\u30fc\u30b3\u30fc\u30c9\/\u30ce\u30fc\u30b3\u30fc\u30c9\u958b\u767a: GUI\u30a8\u30c7\u30a3\u30bf\u306e\u767a\u5c55\u306b\u3088\u308a\u3001\u30b3\u30fc\u30c9\u3092\u66f8\u304b\u305a\u306b\u30a2\u30d7\u30ea\u958b\u767a\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\n\uff12\uff09AI\u306b\u3088\u308bUI\u30c7\u30b6\u30a4\u30f3\u652f\u63f4: AI\u304cUI\u30c7\u30b6\u30a4\u30f3\u3092\u81ea\u52d5\u751f\u6210\u3057\u305f\u308a\u3001\u6700\u9069\u306aUI\u3092\u63d0\u6848\u3057\u305f\u308a\u3059\u308b\u6280\u8853\u3082\u767a\u5c55\u3057\u3066\u3044\u307e\u3059\u3002\n\u30b3\u30fc\u30c9\u3068GUI\u30a8\u30c7\u30a3\u30bf\u306e\u878d\u5408: \u30b3\u30fc\u30c9\u3068GUI\u30a8\u30c7\u30a3\u30bf\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u306a\u958b\u767a\u74b0\u5883\u3082\u767b\u5834\u3057\u3066\u3044\u307e\u3059\u3002\n\nGUI\u4f5c\u6210\u306e\u65b9\u6cd5\u306f\u3001\u4eca\u5f8c\u3082\u9032\u5316\u3092\u7d9a\u3051\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u5275\u9020\u7684\u306a\u958b\u767a\u3092\u53ef\u80fd\u306b\u3057\u3066\u3044\u304f\u3067\u3057\u3087\u3046\u3002<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\uff19\uff09GitHub\u306b\u516c\u958b\u3057\u307e\u3059<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u4f5c\u6210\u3057\u305f\u300cRunlogger Flutter Test\u300d\u74b0\u5883\u3092GitHub\u306b\u516c\u958b\u3057\u307e\u3057\u305f\u3002<br>\u5730\u56f3\u3092\u8868\u793a\u3059\u308b\u30a2\u30d7\u30ea\u306e\u30b5\u30f3\u30d7\u30eb\u3092\u63a2\u3059\u3068\u300cFlutter\u3067GoogleMap\u3002\u3002\u3002\u300d\u307f\u305f\u3044\u306a\u306e\u304c\u591a\u6570\u3067iOS\u306eMap\u3092\u4f7f\u7528\u3059\u308b\u4f8b\u306f\u4f59\u308a\u6709\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u307e\u305f\u30b5\u30f3\u30d7\u30eb\u306e\u5730\u56f3\u30a2\u30d7\u30ea\u306f\u753b\u9762\uff11\u3064\u3067\u3001PIN\u914d\u7f6e\u3084\u30eb\u30fc\u30c8\u691c\u7d22\u3059\u308b\u3050\u3089\u3044\u3067\u300c\u30a2\u30d7\u30ea\u300d\u306b\u5fc5\u8981\u306a\u8907\u6570\u753b\u9762\u306e\u30b5\u30f3\u30d7\u30eb\u306a\u3069\u306f\u6709\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u306e\u3067\u3001\u53c2\u8003\u306b\u306a\u308b\u3068\u601d\u3044GitHub\u306b\u516c\u958b\u3057\u307e\u3057\u305f\u3002<br>\u3000\u3000\u3000GitHub\u306eURL:<a href=\"https:\/\/github.com\/amru195704\/runlogger\">https:\/\/github.com\/amru195704\/runlogger<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/github.com\/amru195704\/runlogger\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"998\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?resize=1024%2C998&#038;ssl=1\" alt=\"\" class=\"wp-image-2508\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?resize=1024%2C998&amp;ssl=1 1024w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?resize=300%2C292&amp;ssl=1 300w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?resize=40%2C40&amp;ssl=1 40w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?resize=768%2C749&amp;ssl=1 768w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?resize=1536%2C1497&amp;ssl=1 1536w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-19.02.39.jpg?w=1592&amp;ssl=1 1592w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u524dObjective-C\u3067\u4f5c\u6210\u3057\u3066\u3044\u305fRunLogger\u3092Flutter\u306e\u8abf\u67fb\u30fb\u52c9\u5f37\u306e\u70ba\u306b\u30c6\u30b9\u30c8\u7684\u306b\u57fa\u672c\u90e8\u5206\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002 \uff11\uff09\u72b6\u6cc1\u3068Flutter \u30e2\u30d0\u30a4\u30eb\u958b\u767a\u74b0\u5883\u3068\u3057\u3066\u73fe\u5728\u306fXamarin\/NetMAUI\u3092\u4f7f\u7528 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2505,"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":"common","vkexunit_cta_each_option":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,55],"tags":[162,41],"class_list":["post-2492","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","category-period","tag-flutter","tag-runlogger"],"veu_head_title_object":{"title":"","add_site_title":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2024\/11\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-11-19-18.35.54.png?fit=640%2C532&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts\/2492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/comments?post=2492"}],"version-history":[{"count":6,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts\/2492\/revisions"}],"predecessor-version":[{"id":2512,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts\/2492\/revisions\/2512"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/media\/2505"}],"wp:attachment":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/media?parent=2492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/categories?post=2492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/tags?post=2492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}