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

サーバー(Go)

スポンサーリンク
サーバー(Go)

【gRPC】.protoファイルを作成し、コンパイルしてGo言語で使用するまで

Protocol Buffers(protobuf)は、gRPCで使用されるインターフェース定義言語(IDL)。JSONやXMLなどの伝統的なフォーマットに比べて、より小さいサイズで、より速い速度でデータを伝送できる。.protoファイルを作成し、メッセージとgRPCメソッドを定義する
サーバー(Go)

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

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

【Go】静的型付け・型推論・関数・構造体・レシーバ・Go Modules・Packages・Imports

Go言語では、関数はfuncキーワードで始まり、引数と戻り値の型が必要(静的型付け)。変数名の「後ろ」に型名を書く。Go の構造体はクラスと異なり、メソッドは構造体の定義の外部で定義され、構造体とメソッドは「レシーバ」を介して関連付けられる。
アプリ(Flutter)

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

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

【Go】nullを許容するDBカラムに対するdate型の値の扱い

nullを許容するDBカラムに対するdate型の値を、golangで処理する場合の方法を3つ紹介。ポインタでnullを許可する。sql.NullTimeを使う場合は、nullを判定するために、Validフィールドを介して条件分岐が必要。[]uint8 を使う場合は、バイトスライス→文字列→time.Timeオブジェクトと変換する
サーバー(Go)

【Go×FCM】定期的にFCMへPush通知を送信する機能を実装:サーバー編

Go言語でサーバーから定期時刻にFCMにPush通知を送信する機能を実装する。FCMにPush通知を実装するのに必要な引数は下記4つ:OAuth 2.0 トークン(HTTPリクエストヘッダーのAuthorization)・デバイスのFCMトークン・タイトル・本文
アプリ(Flutter)

【Flutter × Go × gRPC】アプリ強制アップデート機能の実装(画面ロック)

「Flutter Firebase アプリアップデート」で検索すると、RemoteConfigを使った方法と、FirebaseDetabaseを使った方法の大きく2種類がヒットした。ただし、今回は、Flutter×Go×gRPCを使って自前で強制アップデート機能を実装する。
サーバー(Go)

【Protobuf】Varintエンコーディングの仕組みとフィールド番号の重要性

プロトコルバッファ(Protocol Buffers、protobuf)は、構造化データのシリアライズ形式で、Googleによって開発された。protobufは、XMLやJSONよりも効率的にデータをシリアライズし、小さいメッセージサイズと高速なパーシングを実現する。
アプリ(Flutter)

【Firebase】メールアドレス変更時にemailVerifiedがfalseにならない問題の解決策

一度Firebaseでユーザー認証を済ませた後にメールアドレスをユーザーが変更したい場合に、メール認証をしなくてもユーザーがメールアドレスを変更できてしまうエラーの解決を試みる。ちなみにuser.emailVerifiedはメールアドレス変更時には役に立たない
アプリ(Flutter)

【Flutter × Go × ESP32】ミーアにミュート機能を追加する方法

ミーアのβ版をリリースした後、実際に使っていただいた複数のユーザから「話す頻度に「喋らないモード」が欲しい」との要望が来たので、今回は本機能の実装を記載。参考にアレクサを見てみたところ、確かにホーム画面にミュート(この場合はおやすみモード)がアイコンのトグルで表示されていた。
スポンサーリンク