kokh log

yumikokhの開発日記

2024-11-01から1ヶ月間の記事一覧

flutter: SimulatorでAppleStore申請用のスクリーンショットを作成する

AppleStoreの申請でスクショを用意するときに最初から知ってけばスムーズだったなということをメモしておきます。 スクショの要件 ストアの申請画面 サイズは、6.9インチか6.5インチのどちらかでアップロードすれば、自動的に片方の大きさ分作成されます。 …

flutter: iOSアプリのアイコン設定

iOSアプリのアイコン作成&指定をしてみたので作成〜適用までの最短ルートをご紹介します。 アイコンを作る iOS18から、アプリアイコンの見た目をライト、ダーク、淡色にカスタマイズできるようになりました。(ライト以外って誰か使ってるんだろうか) その…

flutter: Snackbarを全体管理する

Snackbarを実装したので実装例をご紹介します。 Demo 方針 画面遷移時にSnackbarが急に消えるような体験にしたくなかったため、アプリケーション全体で共通のSnackbarWidgetを表示できるようにします。 また、ViewではなくControllerあるいはViewModel側のエ…

Dart: type narrowingされない?

Dartを書いていて、nullでない場合という条件式内でも、nullableなオブジェクトはnon-null扱いにならず、泣く泣く ! (Non-null assersion operator) を使って凌いでいました。 例えば下記のように、クラスのnullableなメンバー変数にアクセスするとき、 != n…

Dart: DateTimeで日付単位の比較

毎度おなじみのタイムゾーンの罠にハマったので記録しておきます。 今回サーバーから返却される値は下記の二種類ありました。 2024-11-14T00:00:00.000+09:00 のような ISO 8601 形式 2024-11-14 のような日付のみの情報 これをそのまま DateTime.parse で処…

テキスト:emoji:をUnicode絵文字👍に変換する

以前紹介した、外部サービスの投稿をNotion日報へ連携するカスタムAPIの続きです。 kokh.hateblo.jp ZappierでSlackに投稿されたポストをwebhookで受取り、カスタムAPIへのリクエストを通してNotion日報に追加するようにしています。 ここで、webhookで受け…

NotionアプリのOAuth認証

ユーザーにNotionへのアクセスを許可してもらいたいときに利用する、OAuth認証の実装方法です。 全体の流れ ざっくりこのような流れになります。はユーザー操作です。 1. リダイレクト先のページを作成 2のPublic Integrationを作成するときに必要なページを…

flutter: アノテーションを使ったコード生成

RiverpodやFreezedといったpackageには、アノテーションを使ったコード生成オプションが用意されています。 例えば、 @riverpod String example(Ref ref) { return 'foo'; } この @riverpod の部分がアノテーション。 このままだと当然 Ref の定義が見つから…

flutter_secure_storage利用時の注意点

最近flutter入門してアプリを作ってみてます。 ネイティブアプリ開発自体はじめてだし、新しい言語を学ぶのは久しぶりなので新鮮です ストレージの種類 さて、flutterの世界で永続化で使用するローカルストレージはこのような区分けになっているようです。 S…