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

Flutter

開発・デザイン

【Flutter×FCM】Push通知を実装:テスト送信まで(iOS/Android)

Firebase Cloud Messaging(FCM)を用いたプッシュ通知のプロセスは、下記3ステップで構成される。サーバーからのメッセージ送信→FCMによる配信処理→アプリによる受信と表示。iOSの場合は、APNs認証キー(p8ファイル)が必要。
アプリ(Flutter)

【WordPress × FCM】Webサイトに掲載する新着お知らせを、アプリに送信する方法

WordPressで作成しているミーアのHPのお知らせカテゴリに、お知らせを掲載して、新規にお知らせが追加されたら、アプリにプッシュ通知するとともに、そのプッシュ通知をクリックしたらお知らせ一覧の画面に遷移するようにしたい。つまり、お知らせに関しては、HPに掲載で一元管理としたい。
アプリ(Flutter)

【ESP32】Deep SleepモードとTimer Wake Up機能の実装

はじめに 方言を話すおしゃべり猫型ロボット『ミーア』を開発中。 ベータ版をリリースした後、実際に使っていただいた複数のユーザから 「ミーアの目のディスプレイを自動でオフにする機能が欲しい」 との要望が来たので、今回は本機能の実装を記載。 詳...
アプリ(Flutter)

【Android】Flutterにおけるbuild.gradleの役割と設定方法

Flutterでは、Dartで記述されたコードがネイティブアプリケーションにコンパイルされる際、Android部分のビルド管理にGradleが使用される。Gradle Wrapperを使用することで、Gradleのインストールなしにプロジェクトのビルドが可能になる。
アプリ(Flutter)

【Flutter × Riverpod】外部サイト遷移処理中のローディング状態処理とボタン非活性化

Flutterアプリから外部サイトへ遷移させたい場合で、遷移まで時間がかかる(APIリクエストしてresponseの情報を元に遷移するなど)際の処理として、ローディングアイコンを表示して、遷移まではボタンを非活性化、 遷移までの間にユーザーが画面を移動しないようにするなどの制御ニーズが発生する。
アプリ(Flutter)

【Go × Echo】バックエンドで天気予報情報を取得し、Flutterアプリに表示する

今までは、アプリ側のみでOpenWeatherMapのAPIを使用して、指定された緯度と経度を使用して天気情報を取得しアプリ画面に表示していたが、今回はGo言語のEchoフレームワークによるバックエンド経由に変更する。
アプリ(Flutter)

【Flutter:hooks_riverpod × Freezed】APIからのJSONレスポンスをもとにユーザー情報表示

hooks_riverpodとFreezedを使用して、APIからのJSONレスポンスをもとにFlutterアプリでユーザー情報を表示する一連の流れをまとめる。api_client.dart でAPIエンドポイント(api_path.dartで定義)からデータを取得し、そのJSONオブジェクトを UserResponse クラスを使用してDartオブジェクトに変換する。この変換は user_repository.dart で行われる。そして、変換されたユーザーデータをRiverpodプロバイダーを通じてUI層(user_view.dart)で表示する。
アプリ(Flutter)

【flutter × gRPC】音声ファイルダウンロード中の文言をランダムに表示する

ユーザーへの待ち時間を対策したいと思い、そういえば、Nintendo Switchでゼルダの伝説をプレイしていた時に、ローディング中に、技や小ネタ集をランダムテキスト表示していて飽きさせない工夫をしていたなと思い、それを踏襲することにした。
アプリ(Flutter)

【Xcode】CococaPods・Podコマンド・ビルドエラー対応

iPhoneアプリを開発していると、必ず一度は遭遇するXcodeのビルドエラー。ビルドエラー対応についてまとめておく。pod installはPodfile.lockを更新せず、pod updateはPodfile.lockファイルを更新する。
アプリ(Flutter)

【Flutter × Go】眠りモードに至るまでの時間をアプリで設定して、サーバーに反映させる。

以前、ESP32のlight sleep mode機能を使って、ミーアをおやすみモードに移行する部分のコードを作成した。この時は、PlatformIOに直接スリープモードへの移行時間を設定していたが、ユーザーのアプリで移行時間を設定できるように変更する。