全29件 (29件中 1-29件目)
1
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…router.dart のimport 文のフォルダを変更router.dart:OKになりました…main.dart:5個NG import 文:2個 options: DefaultFirebaseOptions.currentPlatform, const app = MyApp();import 文のフォルダを変更main.dart:2個NG import 'firebase_options.dart'; options: DefaultFirebaseOptions.currentPlatform,ターミナルで firebase --version firebase login firebase projects:listflutter pub add firebase_coredart pub global activate flutterfire_cliflutterfire configure --project=fir-overview-231203を実行して、firebase_options.dart ファイルが作成されました…main.dart:OKになりました…ターミナルで実行:flutter run -d chrom --web-port 5000サインインできませんでした [firebase_auth/unknown] An unknown error occurred: FirebaseError: Firebase: Invalid Idp Response: access_token audience is not for this project (auth/invalid-credential).難しいです… VSCode に「問題」は無くてもだめですね…
2024.02.29
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…コードを順番にコピペします…・service.dart:OK・state.dart:5個NG import 'package:riverpod_annotation/riverpod_annotation.dart'; @riverpod:4個・state.g.dart:4個NG @ProviderFor(userChanges) @ProviderFor(user) @ProviderFor(signedIn) @ProviderFor(userId)pubspec.yaml に追加 dependencies: riverpod_annotation:dev_dependencies: riverpod_generator:・state.dart:OKになりました…・state.g.dart:OKになりました…pages.dart:5個NG import 文:2個 final service = AuthService();:2個 final userId = ref.watch(userIdProvider);import 文のフォルダを変更pages.dart:OKになりました…router.dart:9個NG import 文:2個 part 'router.g.dart'; GoRouter router(RouterRef ref) { builder: (_, __) => const SignInPage(), builder: (_, __, child) => UserIdScope(child: child), builder: (_, __) => const HomePage(), final signedIn = ref.read(signedInProvider); ref.listen<Object?>(signedInProvider, (_, newState) {router.g.dart:OKコピペして、修正するのも良く分からないので大変です…
2024.02.28
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…ルーター:router.dartGoRouter のコードを書く GoRouter のパッケージを追加する ページごとのパスを決める signIn = '/sign-in';home = '/home';GoRouter 自体もriverpod と連携させた方が使いやすいので「@riverpod」と書いて「GoRouter router(RouterRef ref) { }」にして{ }の中にパスと画面Widgetの組み合わせを書く path: PagePath.signIn,builder: (_, __) => const SignInPage(),次にGoRouterではなくてShellRoute というものを使うことでいくつかの画面を一つのスコープの中に詰め込むことが出来るMyAppのウィジェットを作って、アプリを完成させるメイン関数の中にもFirebase の準備コードを書いておくルーターも難しいです… 出来るかな…ターミナルで実行:flutter run -d chrom --web-port 5000・redirect:無理やり別の画面に向かわせる・RefreshListenable:ホーム画面からサインイン画面に移動(1人が複数台使用の場合)コードを書いた順番service.dart → state.dart → pages.dart → router.dartFirebase > Auth クレデンシャル ・Authorization:Auth Z(認可・承認)変更してあげる、許可する アクセストークンが作られる ・Authentication:Auth N(認証)確認する IDトークンが作られる ・認証情報「どの」データに「誰が」発行したトークンなのかを理解するOAuth 2.0 にAuth Nに関する手順書を追加して「open ID Connect」という共通ルールが作られた難しい… コードのコピペで動作することが出来るのかな…
2024.02.27
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…状態管理:state.dartStream型で難しいのでriverpodにお願いする…AsyncValueのプロバイダーが完成するAsyncValueはそのまま使うのが大変なので、ユーザーを管理する専用のプロバイダーを置いて、さらにそれをウォッチしてサインイン中かどうかを判定してくれるプロバイダーを置くユーザーの情報を知りたいときはユーザープロバイダーの方をウォッチしたり、サインインしているかどうかだけ知りたいときはsindinプロバイダーの方をウォッチすればいい仕組みになりました…ユーザーIDのプロバイダーも作る このプロバイダーの中身は今はあえて空っぽのままにすておきますスローでスコープ内の画面でしか使えませんとエラーが起こるようにしておきましょうその下にクラスユーザーIDスコープでユーザーIDを使えるスコープウィジェットというものを作って置きますウィジェットの中でレフウォッチでサインインしているユーザーを見つけて、もしユーザーが見つからなかったらぐるぐるを表示して置きます ユーザーが見つかったらプロバイダースコープを使ってoverridewithを使ってユーザーIDを上書きしておきますユーザーIDスコープ ユーザーIDサインドイン → ユーザー → ユーザー変化状態管理は、難しくて分からないですね… 使えるようになれるかな…画面:pages.dartサインイン画面とホーム画面を作るサインイン画面は、サインインボタンの画面ホーム画面は、ユーザーIDを表示してその下にサインアウトボタンを置いておく画面は、分かりますね…なかなか進みませんね…
2024.02.26
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…やっとFlutterに入りますね…ボタンを真ん中に置く(Googleが決めたブランドルールがある)ボタンでサービス関数を呼び出すボタンを押した時にサービスを呼び出して、サインインの関数を実行Flutterから、クライアントIDとスコープを送るpubspec.yaml > dependencies に「google_sign_in;」を追加するservice.dart にクライアントIDとscope(欲しい情報)を追加するGoogleにrequest で送るGoogleからresponse にデータが返ってくるGoogleがユーザーにscope(欲しい情報)を教えていいか確認アプリからサインイン画面が開くFlutterアプリでアクセストークンを受け取るnull の場合は中止にする(ユーザーが画面を閉じたりした場合)Flutterアプリは、アクセストークンをFirebaseに送るFirebase の画面設定 Googleサインインを有効にするpubspec.yaml > dependencies に「firebase_auth;」を追加するservice.dart に「Firebase にアクセストークンを送る」を追加するFirebase がアクセストークンをGoogleに送って情報を受け取ってサインインの処理をしてサインインを完了するまで自動で処理をするservice.dart にサインアウトのコードを付け足すコピペで作業してますが内容が難しくて… サーバーがからむと分かりませんね…
2024.02.25
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…作業に入ります…サービスを作る:service.dart 認証プロバイダー:Google バックエンド:Firebase クライアントアプリ:Flutter ユーザー:自分Google アカウントの作成 アプリ名、開発者のメールをGoogleに登録しておく クライアントIDを受け取る Google Cloudの画面を開いて、Google Cloud用のプロジェクトを登録しておく APIとサービスを選択 + ENABLE APIS AND SERVICES(APIとサービスの有効化)を押す 「Google People API」を有効にする 「Oauth 同意画面」を開く アプリの情報を入力 スコープ:アプリが知りたい情報を選ぶ 「スコープの追加または削除」を選択 openid:Google で公開されているお客様の個人情報とお客様を関連付ける email:Google アカウントのメインのメールアドレスの参照 profile:ユーザーの個人情報の表示(ユーザーが一般公開しているすべての個人情報を含む) 「+ ADD USERS」を押す メールアドレスを追加 「認証情報」をクリック 「認証情報を作成」をクリック 「OAuth クライアントID」を選択 アプリケーションの種類:ウェブアプリケーション 認証済みのJavaScript 生成元 「http://localhost」 「http://localhost:5000」 クライアントIDを覚えておくクライアントIDはもらえましたが作業事態があっているのかな… 意味が分からないですね…難しい…
2024.02.24
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…サインインの流れ登場人物:認証プロバイダー、バックエンド、ユーザー、クライアントアプリユーザー ⇒ 認証プロバイダー(個人情報を伝える)クライアントアプリ ⇒ 認証プロバイダー(アプリ名やアイコンや開発者のメールなど情報を伝える)認証プロバイダー ⇒ クライアントアプリ(クライアントIDが渡される)ユーザーがサインインのボタンを押すクライアントアプリはクライアントIDとスコープ(欲しい情報)を認証プロバイダーに送る認証プロバイダーは、ユーザーに確認ユーザーが「いいですよ」と返事を出すときにパスワードや2段階認証などで本人が許可したことを伝える認証プロバイダーは、クライアントアプリに「OK」を伝える(認可コードが届くので、認可コードを制限時間以内にアクセストークンに交換してもらう)クライアントアプリは、アクセストークンをバックエンドに送るバックエンドは、アクセストークンを認証プロバイダーに送る認証プロバイダーはアクセストークンと交換で欲しい情報をバックエンドに送るバックエンドは、この情報でサインインの処理をしてサインインがうまくできたらIDトークンをクライアントアプリに送る大事な処理やデータはバックエンドを中心にして動かすのがオススメサインインだけでも、複雑で難しいですね… 少しは理解ができました…本日もアプリは何もしてません…
2024.02.23
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#24 Flutter入門講座 Firebase Auth編」長い動画ですね… 「難しいです」と書かれています…Firebase Auth:サインインを作るときに便利なサービス登録:Sign Up著名:Sign In、Sign On、Log in、Log On(Signed In、Signed In = true)退出:Sign Out、Log Out(Signed Out、Signed In = false)退会:Delete Account、Quit通常 アプリ側、サーバー側今回 ユーザー、クライアントアプリ、バックエンド基本の仕組みユーザーがアプリを使いたいアプリが「あなたは誰ですか」メールとパスワードを入力する画面ユーザーがメールとパスワードを入力してサインアップ2回目からはサインインSigned In ⇒ Signed Out問題点メール(ID)とパスワードを入力してアプリに入る方法をBasic認証Basic認証:徐々に廃止(メールは隠さないのでパスワードだけなので簡単にばれる) アプリが直接パスワードを扱うのがこわいポイント アカウントを無限に作れる(同一人物が他のアカウントを持っている) ユーザーの情報が分からない(メールアドレスが本人のものか)悪いアプリ(個人情報いただき!)ユーザーの方が「アプリにお前こそ誰だ」お互いに信頼できない解決策ソーシャルサインイン認証プロバイダー(信頼できる第三者に仲介してもらう)Google、Facebook、Play Games、Game Center、Apple、GitHub、Microsoft、X(Twitter)、Yahoo!Basic認証で大丈夫なケースメールアドレスが本人のものか確認して使う業務用アプリ(仕事専用のアプリ)通常の「Flutter入門講座」この位かな… 難しそうですね…
2024.02.22
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…サーバーが絡むと難しくてなかなかうまくいきませんね…「」Could not find an option named "project".Run 'flutter -h' (or 'flutter <command> -h') for available flutter commands and options.まだうまくいきません…「flutter configure --project=XXXX」と打ち込んでいました…「flutterfire」ですね…やっと「firebase_options.dart 」が作成されました…firebase > プロジェクト名 > 分析 > Realtime Analytics をクリックイベント数を確認出来たのかな… 難しいです… タイプミスだけどなかなか気が付けませんでした…
2024.02.21
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#23 Flutter入門講座 Firebase Analytics編」3大クラウド・Azure(Microsoft)・AWS(amazon)・GoogleCloud(Google)CDN、CE、GKE、Firebase、Run、SQL:GoogleCloudのサービスFirebase:スマホアプリを作っている人のためのサービスHosting、Distro、Analytics、Firestore、Auth、Func:FirebaseのサービスAnalytics編ターミナルで「firebase --version 」「firebase login」「firebase projects:list」ここまでは、順調です…flutter pub add firebase_coredart pub global activate flutterfire_cliflutterfire configure --project=XXXX(Project ID)「」Could not find an option with short name "-p".Run 'flutter -h' (or 'flutter <command> -h') for available flutter commands and options. 考えます…「flutter configure -project=XXXX」と打ち込んでいました…
2024.02.20
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#22 Flutter入門講座 アコーディオン編」・ハンバーガー・ミートボール・引き出し・メリーゴーランド✓accordion:大きくなったり小さく折りたたまれる・ExpansionTile Collapsed(コラップスト):閉じている時 Expanded(イクスパンデド):開いている時 他の設定 initiallyExpanded、backgroundColor、collapsedBackgroundColorDart の引数の話xxxxx(引数, 引数, 引数) class Xxxxx { Xxxxx( 3, 4, 5, );} class Xxxxx { Xxxxx({ a: 3, b: 4, c: 5, });} class Xxxxx { Xxxxx({ required this.name, required this.age, });string name;int age;}{} を付けない引数は自動的に全部required になります何か難しいですね…コピペなので、一応動作してますが… 難しいですね…
2024.02.19
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#21 Flutter入門講座 flavor編」まず、Flutterの掃除ですね…① flutter upgrade --forceflutter upgrade では出来ませんでした…この作業で「Upgrading Flutter to 3.16.9 from 3.16.2」にバージョンアップされました…② flutter clean③ flutter pub getバージョンアップされてゴミが無くなったのかな…flavor(フレーバー)development(開発版)Staging(試験版)Production(製品版)dev(デヴ)stg(ステージング)prd(プロダクション)ターミナルで「flutter run -d chrome --dart-define-from-file=scripts/flavors/dev.json」実行して、Ctrl + C:アプリを止める動作はしていますが、やり方があっているのかな…自分にはまだ内容が難しいですね…
2024.02.18
コメント(0)
こんばんは! 「Flutterフラッター入門講座」昨日の続きです…ライセンスの画面に、 Unable to load assets:"google_font/OFL.txt".The asset does not exist or has empty data.の表示が出ます… フォルダ名がgoogle_font になっていました… なかなか気が付けませんでした…google_font → google_fonts に変更して…ミスに気が付けたので良かったです… 勉強になりました…
2024.02.17
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#20 Flutter入門講座 font編」Fontを変える方法・https://fonts.google.com/ から探すセリフ:文字の曲がり角などの飾り付けサンセリフ(セリフ無し)monospace(モノスペース):文字の横幅が同じmonoじゃない(プロポーショナル)手書き風(handwriting)・並び変えボタンでMost popular にする・Language をJapanese にする・文字を選んでDownload family を押す・Download したファイルを開いたらAssets > google_fonts フォルダを作成してxxx.ttf ファイルなどすべてを入れるpubspec.yaml に dependencies: google_fonts: flutter: assets: - assets/images/ - assets/google_font/ font を使う時はライセンスを確認OFL, GPL, BSD(OFL [商用利用:OK]を使ってコードを書き足す) LicenseRegistry.addLicense(() async* { final license = await rootBundle.loadString( 'google_fonts/OFL.txt', ); yield LicenseEntryWithLineBreaks( ['google_fonts'], license, ); }); 動作が… ミスは分かっているのですが、場所が分かりません…
2024.02.16
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#19 Flutter入門講座 JSON編」JSONの歴史Dart言語で作ったデータをそのまま送っても他の言語は理解できないので共通のデータフォーマット作って送り合えるようにした工夫アプリで作成 ⇒ CSV ⇒ 相手(Python, C#, Java 等) class Fish { 名前 大きさ 値段}CSV:名前, 大きさ, 値段CSVは難しいデータはNGXMLが発明される:, (カンマ)ではなく<> </> (タグ)を使うJSON { "グループ": [ "りんご", "バナナ" ], }, { "グループ": [ "ぶどう", "レモン" ], } JSON で相手に送り、JSON で受け取るJSON を分かりやすくしたYAMLYAML グループ1: - りんご - バナナグループ2: - ぶどう - レモン JSON Dart jsonDecodefromJson ⇒Json Map⇒ jsonEncodetoJson ⇐ ⇐ JSON が少し分かったかな…お勉強ですね…
2024.02.15
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#18 Flutter入門講座 Carousel(PageView)編」カルーセル:横方向のスクロール(ページが詰まっている)✓viewportFraction(ビューポートフラクション)viewportFraction = 1.0:ページの幅と枠の幅が同じviewportFraction = 0.5:ページの幅が縮む✓横方向のマージンは小さめに・PageView:枠の部分・Container:カード達やページ達を囲んでいるものはコンテナで作成carousel_slider:カルーセル用のパッケージ横スクロールしませんでした… 見た目だからいいのかな先に進みます…
2024.02.14
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#17 Flutter入門講座 freezed編」freezed:パッケージを使用する良いコードを書くためのお助けロボット✓immutable(イミュータブル):入れ物ごと作り直してね✓sealed class(シールド クラス)✓sealed class(シールド クラス)pubspec.yaml に追加 dependencies: freezed_annotation: dev_dependencies: freezed: build_runner:まとめたいファイル、リストのファイルを作成する(fish.dart abc_list.dart)ターミナルで下記を実行「flutter pub run build_runner build --delete-conflicting-outputs」(fish.freezed.dart abc_list.freezed.dart)ファイルが作成される難しいですね…中身を変更したら入れ物も変更することは忘れてしまいますね…コピペなので動作はしていますが、分からないですね…
2024.02.13
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#16 Flutter入門講座 ProgressIndicator編」進捗の状況を教えてくれるプログレスインジケーターpercent_indicator:パッケージを使用する・CircularProgressIndicator(サーキュラープログレスインジケーター) percent: percent,backgroundColor: Colors.yellow,progressColor: Colors.green,radius: 60.0,lineWidth: 20.0,・LinearProgressIndicator(リニアプログレスインジケーター) percent: percent,backgroundColor: Colors.yellow,progressColor: Colors.green,alignment: MainAxisAlignment.center,lineHeight: 20,width: 300,親切な機能ですが、自分には必要ないのかな…
2024.02.12
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#15 Flutter入門講座 Radio/Checkbox編」・RadioListTile groupValue onChanged value title・CheckboxListTile onChanged value title・Radio・Checkbox使いどころが思い浮かびません… 動作はしているので進みます…
2024.02.11
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#14 Flutter入門講座 Switch/Slider編」・Switch・Slider value:バリュー thumb:サム track:トラック・RangeSlider:範囲を決める状態管理を使う… これがいまいち…動作はしていますが、使いどころの考えが浮かびませんね…
2024.02.10
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…予備知識(ターミナルで実行)flutter upgrade:flutter を最新版に新しくするflutter clean:余計なものを削除する「#13 Flutter入門講座 BottomNavigationBar編」ボトムナビゲーションバー:Scaffold の機能index の番号が0からふられる・BottomNavigationBarItem BottomNavigationBarItem( icon: アイコン, label: '文字', ),使用する時まで頭に残っていられるかな…他の部分と混ぜ合わせる事が出来るかな… 先に進んでみます…
2024.02.09
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#12 Flutter入門講座 Drawer編」です…ボタンのデザイン・ハンバーガーメニュー・ケバブメニュー・ドネルメニュー・ミートボールメニュー・ベントーメニュードロワーメニューの作り方ボタンを押したときに横から出てくる引き出しがドロワー引き出しに入っているのがサイドメニュー・DrawerHeader・ListTile 縦に並べるときは、Column, ListView どちらかを使用するScaffold の仕組み・appBar・drawer・endDrawer・body・FAB(floating Action Button):画面の右下コードをコピペして出来ました… go_routerと組み合わせてみたいですね…自分で出来るのかな…動画の説明は分かりやすいのです… 作業していれば応用して使えるようになるのかな…
2024.02.08
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#11 Flutter入門講座 go_router編」です…画面の進む、戻る方法go_router パッケージを使うnavigater(時代に合わなくなった) → navigater2.0(難しいくて複雑なので使いにくい)go_router はnavigater2.0を使いやすくするためのパッケージgo_router 便利な機能 パスと画面の組み合わせを決める・パスA - 画面A:/A - PageA・パスB - 画面B:/B - PageB・パスC - 画面C:/C - PageCpubspec.yaml に追加 dependencies: go_router: flutter_riverpod: flutter: sdk: fluttermain.dart にimport 文を書くinitialLocation: '/a',:アプリが起動したときのパスcontext.push():'次の画面へ進むcontext.pop():前の画面 へ戻るcontext.go():画面を飛び越えて行くことができるこのパッケージは自分のアプリでも使うような気がします画面Cは、前に作った画面をコピペしました…動作はしました… 今回の動画も分かりやすいですね…
2024.02.07
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#10 Flutter入門講座 ListView編」です…無限スクロールの作り方・ListViewモデルを用意する → 順番に画面に描画(見えてない部分まで描画)ListViewを使用すると見えてない部分まで描画はしない仮想スクロール:見えているところだけ処理無限スクロール:次のモデルを用意しておくColumn:決められたスペースに子供たちをバランスよく並べるListView:沢山あるモデルの中から決められた範囲の中に表示できる分だけ描画コードを確認してRunしました… 動作はしましたが内容が良く分かってないです…アイコンはLedの画像に変更しました…動作しているので、分かっていませんが次に進みます…
2024.02.06
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#9 Flutter入門講座 riverpod(状態管理)編」です…riverpod:変化するデータを簡単に画面に表示することができるriverpod 使うことによってデータのずれを無くすことができるriverpod を使う為に必要なパッケージpubspec.yaml に追加 dependencies: flutter_riverpod: flutter: sdk: flutterVSCode を使用していれば保存するとパッケージをダウンロードしておいてくれるmain.dart にimport 文を書くState:変化させたいデータの本体Stateデータを Provider の壁で囲む画面をConsumerWidget で作成する ref (Provider の壁に入るための鍵)が手に入るNotifier :画面からref の鍵を預かってProvider の壁の中に入ってデータを変更する見張っていた画面に変更したデータが反映されるriverpod 他の便利な機能・autoDispose・family・FutureProvider…内容は分かったのかな… 何となく出来ました…動画の説明は分かりやすくてアプリは出来ましたが、作成時に自分が使うのには難しいですね…
2024.02.05
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#8 Flutter入門講座 TextField編」です…文字を入力するためのWidget・TextField:「final textField = TextField();」で画面に横線が出来て文字入力ができる()の中に「decoration: InputDecoration(),」で設定を書く設定border: OutlineInputBorder(),:テキストフィールドが線で囲まれるlabelText: 'あなたの名前',:テキストフィールドにラベルが表示されるhintText: 'カタカナで入力してください',:注意が表示されるerrorText: '名前が長すぎます',:下にエラーの文字が出る入力した文字をコントローラーに送る「TextEditingController」コントローラーがいらなくなったらコントローラーのデータを捨てる「controller.dispose()」出来ましたが、応用して使うにはまだ知識が足りませんね…今回も分かりやすい動画でした…
2024.02.04
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#7 Flutter入門講座 Button編」です…これでさわって動かせるようになりますね…ボタンの仕組みは、ボタンを押したらそれにつながっている関数が動き出すFlutter は見た目で関数は「Dart」1.普通の関数:xxxx() {中身}2.無名関数:() {中身}3.アロー関数:() => 無名関数の1つで1行だけで処理が終わる短い関数ボタン・ElevatedButton・TextButton・OutlinedButton・IconButton・FlotingActionButton・DropdownButton・PopupMenuButtononPressed: null, で押せないボタンが作れる出来ましたが、「The 'child' argument should be last in widget constructor invocations.Try moving the argument to the end of the argument list.」が出ていたので「child: const Text('押してみて'),」を「style: …」の下に移動しました…出来ています… 今回の動画も分かりやすかったですね…
2024.02.03
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…ちなみに、#32までありますがたどり着く事が出来るのかな…「#6 Flutter入門講座 StatelessWidget編」です…・StatelessWidget・StatefulWidget:最近は使われなくなってきたStatelessWidget①新しいファイルを作る②「import 'package:flutter/material.dart';」を書く③何もない所に「stless」を書いて「Flutter Stateless Widget 」を選択自動的にコードを準備してくれる…凄いですね…④「MyWidget」の名前を変更(大文字から始まる英単語)準備は終了で、Widget Build(bBuildContext context) {ここにコードを書いていく}Widget を作成したらmain.dart に「import」を書く出来ました…仕組みが少しずつ分かってきたかな…
2024.02.02
コメント(0)
こんばんは! 「Flutterフラッター入門講座」の続きです…「#5 Flutter入門講座 Container編」です…Container ができること・color:色を決める・width & height:横幅 & 縦幅・child:コンテナの子供・alignment:子供の位置(Top, Bottom, Left, Right, Center)・padding & margin:内側の余白 & 外側の余白 padding: EdgeInset.all(20):全部の方向から20の幅でパディング padding: EdgeInset.formLTRB(10, 20, 30, 40):Left 10、 Top 20、Right 30, Bottom 40 のパディングが入るコードを参考にして、#4のImageを組み合わせて作ってみました…動画が分かりやすいので、出来ました…自分の出来る事でやりたい事を考えるのが大変ですね…
2024.02.01
コメント(0)
全29件 (29件中 1-29件目)
1