方言を話すおしゃべり猫型ロボット『ミーア』をリリースしました(こちらをクリック)

Flutter

アプリ(Flutter)

【AppleHealth Kit】連携状態の取得がiOSのプライバシーの観点からややこしすぎた

iOS では、Apple のプライバシーポリシーにより、HealthKit はアプリが読み取りアクセス権を持っているかどうかをアプリ自体に知らせない(外部に開示しない)。ユーザーのプライバシーを保護するための措置だが、開発者はこのメソッドを信頼してユーザーの許可状態を確認することができないという制約がある。
アプリ(Flutter)

【Flutter】flutter_background_serviceパッケージで、アプリからサーバに定期POST実行。

前回までの実装だと、ユーザーが「連携開始する」ボタンを押すたびに、健康データをサーバー側にPOSTリクエスト送る仕様になっているので、Flutterアプリで毎日特定の時間にバックグラウンドで定期的にPOSTリクエストを実行する方法に変更したい。flutter_background_serviceパッケージを利用する。
アプリ(Flutter)

【Flutter】WebViewでモーダル表示してスクロール可能にする方法

アプリ内にユーザーの設定画面があり、その中に、利用規約・プラポリの項目を用意しているので、この項目をタップした時にWebViewで各内容が表示され、閉じることもできるようにする。今回はシンプルな実装で事足りるので、webview_flutterを導入する。
サーバー(Go)

【Flutter × Go × gRPC】OTAアップデート:Firmware更新をgRPCでアプリ通知

AWS s3のfirmwareディレクトリに新しいFirmwareバイナリを開発者がバージョン指定してアップロードする。各ユーザーのFirmwareのバージョンと開発者がアップロードした最新バージョンを比較し、異なる場合にFlutterアプリに「新しいFirmwareをインストール可能です」と通知する。
アプリ(Flutter)

【Flutter】状態管理:StatefulWidget + setStateからproviderへ移行とメリット

Flutterでは、StatefulWidgetを使用して内部状態を持つことができる。また、ProviderやRiverpod、Blocなどのライブラリを使用してアプリケーション全体の状態管理を行う。本記事では、statefulWidget + setStateから、次のステップであるProviderまでをみていく。
アプリ(Flutter)

【Flutter】状態管理:providerからRiverpodへの移行と利点

前回はFlutterの状態管理に関して、statefulWidget + setStateからProviderまでを記載した。今回は、ProviderからRiverpodまでを見ていく。Riverpodの導入によりコンテキスト非依存になり、不変性が強化された。
アプリ(Flutter)

【Flutter】通知メッセージ表示としてOverlayクラスを導入する

overlay_supportという、トーストやアプリ内通知を簡単に作成できるパッケージがあったので、こちらを使用することにする。OverlaySupportEntry.of(context)?.dismiss();は、表示されているオーバーレイウィジェットを削除するメソッド。
アプリ(Flutter)

【ESP32 × Flutter】Wi-Fiスキャン結果をBLEでチャンク分割送信する方法

ESP32とFlutter(flutter_blue_plus)を利用してWi-Fiスキャンの結果をBLEを通じてスマートフォンに分割送信する方法を記載。BLEのNotify機能を使用して、大きなデータを小さなパケットに分け、受信したデータを再構成する。
アプリ(Flutter)

【Flutter】トップ画面に日替わりのGIF画像とテキストを表示する。

Flutterプロジェクトで画像やその他のアセットを使用する際には、それらをpubspec.yamlに記載してFlutterに知らせる必要がある。assets/images配下にGIF画像を配置して、それをpubspec.yamlに記載する。
アプリ(Flutter)

【Flutter × Go】退会処理:Firebase Auth削除時の「requires-recent-login」エラー対処法

Firebase Authを使ったユーザー退会処理時の「requires-recent-login」エラーの対処法について記載。このエラーは、セキュリティ上の理由で、ユーザーが最近ログインしていない場合に発生する。ユーザーを退会させる前に、再認証(reauthentication)させる必要がある。