5月2週

ゴールデンウィークの目標

Flutterでアプリをリリースする

土曜:5h

まずはインプット

  • FlutterはReactに影響を受けて開発された
  • Widget単位でUIを構成していいく
  • Statelessは静的な画面(スプラッシュや規約情報表示など)
  • Statefulは動的な画面
  • 変数の頭に_をつけるとプライベート変数になる
    • android studioのコード整形の設定(cmd + alt + Lがデフォだけど,cmd + Sに変更)
  • qiita.com

  • flutterでは多くはStatefulWidgetStatelessWidgetを継承してクラスを作成する

  • Form
    • Webと同じようにFormを使ってデータの入力をする
    • key: _formKeyはフォーム全体に対する制御を行うモノで、入力チェックに利用する。
    • Keyを使うことで複数のWidgetをコントロールすることができる

flutter 1日目所感

  • 楽しい・・・
  • 感覚的にはreactとJavaが混ざったような感じ
  • 非同期処理ではasync/awaitを使ったりthenを使ったりとjavascript感もあり、やりやすい
  • 最初の方でcloud_firestoreのnot foundが出ていたので以下の通りcleanしてからpods installしたら想定の動作した
flutter clean
cd ios
rm Pods
pod install
cd ..
flutter run

caprese_uiのデプロイどうするか

日曜:5h

  • firestroeから取り出したTimeStamp型をyyyy-MM-ddで表示したいが出来なかった
  • こんな感じでtoDateしてからtoStringしたらいけた。document['returnDate'].toDate().toString().substring(0, 10)

  • jetbrainsのrebaseにてontoってどっちだ。と思った。基本は新しくなっているmaster(develop)ブランチを作業ブランチに取り込むことが目的なので、ontoはmasterで。かつ、作業ブランチでrebaseする。 f:id:yosuke0517:20200503225616j:plain

月曜:5h

  • Global Keyの重複のエラーが出ていたけど、GlobalKeyの生成をトップレベルに揃えたら直った。この辺まだ曖昧。。。
  • 多言語対応
    • パッケージはflutter i18nを使用する
    • パッケージをインストールすると自動でlib,res配下に言語用フォルダが生成される
    • res-value配下にstrings_en.arb等の言語ファイルを作成する(jsonと同じ書き方)
    • 使いたいところでS.of(context).○○で呼び出せる
    • 変数を含む多言語は"welcome_user":"$userさん、ようこそ!"みたいな感じで変数を埋められる
  • アイコン作るやつ
  • pub.dev

androidのビルドエラーがなかなか直らなかったけど、アイコン用のxmlのタイポとfirebaseプラグインを最新にすることで解決した。

- flutterでは画像ファイルや動画などのアセットファイルはpubspec.yamlに定義する必要がある

flutter.dev

とりあえず書籍管理アプリ的なモノのベースは出来た

  • 明日以降、基本文法などを押さえながら機能を増やしていこう

火曜:5h

StatefulWidgetの構成

  • 2つのクラスから成る
    • Widgetクラス:Stateを作成して返す
    • Stateクラス:状態を保持し、Widgetを描画(build)する

      Widgetで必ず行うこと

  • createdStateメソッドを定義してStateを作成し、返す
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

Stateクラスの状態を表すインスタンス変数を変更する時は必ずsetStateメソッドを通して変更する必要がある

  • これをやらずに直接変更してしまうと、状態が変更されたことをflutterが検知できない

  • ・・・インプット情報が多いので以降はQiitaにアウトプットする

作成するアプリの決定

水曜:5h

  • flutterインプットQiita執筆

qiita.com

木曜:11h

金曜:5h

  • caprese_uiにてaxios-mock-adapterを使用しているが、不要なレスポンス(httpレスポンス)が含まれていたので改造した。

週次報告

  • 年間(2019/8~2020/8)目標時間(業務での設計・実装含む):3380h
  • 今週を含む累積時間:2405h
  • 週次目標時間:65h
  • 週次実績時間:41h(ゴールデンウィークだったから少ない・・・
  • 何を得たか:flutter基礎・capreseデプロイ検討・ライブラリの改造
  • 何が必要か:golang基礎・認証の知見・Nuxt・React・テスト手法の取得
  • 来週の目標:新機能追加