MBP(はてな)

MacBook Pro,iPhone Xs,React

flutter_my_app2

開発環境構築
Flutter入門 - MBP(はてな)

”Framework not found Pods_Runner”と出た場合の解決方法
【Flutter】Xcodeでビルド中に”Framework not found Pods_Runner”と出た場合の解決方法 | Programmable

"Command PhaseScriptExecution failed with a nonzero exit code"の解決方法
qiita.com



M1 MacBook Airでは、以下を実行すると、flutter runでpod installエラーが出なくなった。
flutter_my_app2で$ flutter runして、実機で実行dできた。
$ sudo arch -x86_64 gem install cocoapods
$ sudo arch -x86_64 gem install ffi
$ arch -x86_64 pod install


Constantsを追加
static - What's the best practice to keep all the constants in Flutter? - Stack Overflow



Flutterでホットリロード - MBP(はてな)


flutter_my_appをベースに、最新のFlutter 2.10.0 で動くようにした。
Flutter 2.10.1 ( $ flutter --version)
$ flutter run
シミュレータで表示して、rでホットリロードもできた。
iPhone Xsを接続して、 実機で表示して、rでホットリロードもできた。
Flutter WebをローカルのWebサーバで表示して、rでホットリスタートして、Safariでページを更新すると表示を更新できた。

flutter_my_app2
GitHub - hiroyuki12/flutter_my_app2

flutter_my_app (ベース)
GitHub - hiroyuki12/flutter_my_app

flutter_my_app (ベース)のコミットログの一番古いページ
Commits · hiroyuki12/flutter_my_app · GitHub

2022/2/16時点のflutter_my_app2の$ flutter runでSimulatorに表示されるまでの時間 1回目28秒、2回目17秒
firebaseは除いた状態
~/github/flutter_my_app2 $ flutter run (2回目)
Launching lib/main.dart on iPhone 13 in debug mode...
Running Xcode build...
└─Compiling, linking and signing... 2,096ms
Xcode build done. 6.6s
Syncing files to device iPhone 13... 120ms

$ flutter build iOS して
$ flutter install -d 0 して実機にアイコンが表示されるまでの時間 1分17秒
Running pod install... 997ms
Running Xcode build...
└─Compiling, linking and signing... 4.4s
Xcode build done. 36.1s
Built /Users//github/flutter_my_app2/build/ios/iphoneos/Runner.app.
Installing flutterMyApp2 to ...
Uninstalling old version...


$ flutter createして、$ flutter runでSimulatorに表示されるまでの時間 
1回目28秒、2回目16秒、3回目15秒
~/github/flutter_my_app $ flutter run (3回目)
Launching lib/main.dart on iPhone 13 in debug mode...
Running Xcode build...
└─Compiling, linking and signing... 1,582ms
Xcode build done. 5.6s
Syncing files to device iPhone 13... 91ms

変更点
http.getがエラーのため変更
add http.get · hiroyuki12/flutter_my_app@3e1c1e0 · GitHub
変更前
 final res = await http.get('https://api.github.com/repositories/31792824/issues');
変更後
 final res = await http.get(Uri.parse('https://api.github.com/repositories/31792824/issues'));
flutter - The argument type 'String' can't be assigned to the parameter type 'Uri' - Stack Overflow

flutter run したTerminalでrすると、ホットリロードできた
_loadはホットリロードされないので、control + cして、flutter run

ListView なぜか0件になりエラー
ホットリロードされないので、control + cして、flutter run
add json parse · hiroyuki12/flutter_my_app@6f25b78 · GitHub

ListViewで表示できた show avatar image
ホットリロードされないので、control + cして、flutter run
add show avatar image · hiroyuki12/flutter_my_app@7c87f12 · GitHub

変更点 null safety
android studio - Error: (The argument type 'String?' can't be assigned to the parameter type 'String' because 'String?' is nullable and 'String' isn't.) in Flutter - Stack Overflow
final String? title;
final String? avatarUrl;

title: Text(issue.title!),

Qiitaのタイトルを表示できた
show qiita item title · hiroyuki12/flutter_my_app@15b9245 · GitHub

プロフィールイメージを表示できた。Flutter Webではプロフィールイメージが表示されないところもある。
show Qiita ProfileImage · hiroyuki12/flutter_my_app@50c0f15 · GitHub
Fetch data from the internet | Flutter
flutter 開発を進めていく際に参考にした記事+メモ


ダークテーマにできた
add ThemeData.dark() · hiroyuki12/flutter_my_app@cd7fd63 · GitHub

add Qiita できた
add Qiita · hiroyuki12/flutter_my_app@2d51334 · GitHub

add CupertinoButton できた、CupertinoPageScaffold、navigationBar
flutter_my_app/lib/pages/Cupertino/CupertinoButton.dart at master · hiroyuki12/flutter_my_app · GitHub

Qiitaの画面を追加して、main画面でCupertinoボタンを押して、Qiitaの画面に遷移できた



Flutter Web
$ flutter run -d web-server
safarihttp://localhost:50713を開くと画面が表示された
Qiitaでアバター画像が表示されない時に、プロフィール画像の位置にエラーメッセージが表示されるので変更
Flutter入門 QiitaのAPIを叩いて記事一覧を表示してみる #iOS - Qiita

           return ListTile(
-            leading: ClipOval(
-              child: Image.network(issue.profileImageUrl!),
+            //leading: ClipOval(
+            //  child: Image.network(issue.profileImageUrl!),
+            //),
+            leading: CircleAvatar(
+              backgroundImage: NetworkImage(issue.profileImageUrl!),
             ),
             title: Text(issue.title!),
           );

Flutter documentation | Flutter


Apple Silicone (M1)だと、WebViewを追加して、flutter runした時に、pod installエラー
webview_flutter | Flutter Package
url_launcherも同様
url_launcher | Flutter Package
以下を実行すると、flutter runでpod installエラーが出なくなった。
$ sudo arch -x86_64 gem install cocoapods
$ sudo arch -x86_64 gem install ffi
$ arch -x86_64 pod install
Apple Silicon (M1) の pod install エラーの直し方 #iOS - Qiita


WebView_flutterでページを表示できるようにできた。
Qiitaのページでタイトルをクリックして、リンク先を表示できるようになった。
Flutter公式のwebview_flutterでWebViewを表示する | ZUMA Lab


無限スクロールできた。
Add Infinite Scroll. · hiroyuki12/flutter_my_app2@cafd3d3 · GitHub
Flutterでスクロールを検知し、ある位置までスクロールしたらWidgetを表示するには | Androg
_scrollController.position.maxScrollExtentが無限になるので、1ページのオフセットを877.0にした。

_itemsがnullの時は、Loading...を表示できた。
Flutter ListView.builderを使ってサーバーから取得したデータをリストで表示する | ふらっと考える

flutter_shareで共有メニュを表示できた
対象のプロジェクトのフォルダ内で
$ flutter pub add flutter_share
$ flutter pub get
flutter_share | Flutter Package
対象のソースに追加
import 'package:flutter_share/flutter_share.dart';
onTap: () => FlutterShare.share(
title: 'title', text: widget.title, linkUrl: widget.url),
Add flutter_share. · hiroyuki12/flutter_my_app2@025ed28 · GitHub
control + cして、$ flutter runが必要(rのホットリロード や Rのホットリスタート だけだと動作時にエラー)
【Flutter】テキストのシェア機能を実装する

https://flutternyumon.com/configuring-firebase-for-ios-app/