アプリ(Flutter) 【flutter_sound × Go】音声ファイルをAPI経由でAWS S3にアップロード 今回は、アプリでflutter_soundパッケージで録音した音声ファイルをAPI通信でアプリからサーバー(AWS S3)にアップロードする部分を実装したいと思う。アップロードされた音声ファイルのS3パスをデータベース内のフレーズに関連付け、voice_pathフィールドを更新する。 2024.08.04 アプリ(Flutter)サーバー(Go)開発・デザイン
サーバー(Go) 【Go言語】におけるテスト駆動開発の実践:マイグレーションファイル作成からSQLインジェクション対策まで Go言語のテスト駆動開発をマイグレーションファイル作成、SQLインジェクション対策、dockertestを使った実際のテスト方法を含めて記載。testutils.RunMySQLContainer 関数を呼び出して、MySQLコンテナを起動し、データベースに接続する。 2024.07.14 サーバー(Go)開発・デザイン
サーバー(Go) 【Go】タスクキューとクーロンを使った並列処理の実装 今回は、本日の天気情報を音声でお知らせするという機能に関して、ユーザーがアプリで設定した天気お知らせ時刻の1時間前に、該当の天気情報の音声ファイルを生成してAWS S3に保存するという機能を作成。go言語でタスクキューを使った並列処理で実装を進める。 2024.01.18 2024.07.01 サーバー(Go)開発・デザイン
AI 【Gemini Pro API】ChatGPTより80倍安い!? ・Go言語での実装方法 計算間違っているのでは?と疑ってしまったのだが、Gemini Pro APIの方がGPT3.5-turboと比較して80倍近く安い!OpenAIが課金単位としている「トークン」では割高になりがちな日本語では、「文字」でカウントしてくれるGeminiは割りが良い 2024.01.11 2024.07.01 AIサーバー(Go)開発・デザイン
アプリ(Flutter) 【Flutter × Go】眠りモードに至るまでの時間をアプリで設定して、サーバーに反映させる。 以前、ESP32のlight sleep mode機能を使って、ミーアをおやすみモードに移行する部分のコードを作成した。この時は、PlatformIOに直接スリープモードへの移行時間を設定していたが、ユーザーのアプリで移行時間を設定できるように変更する。 2024.01.26 2024.07.01 アプリ(Flutter)サーバー(Go)開発・デザイン
アプリ(Flutter) 【Flutter】Apple HealthKit API から行動ログを取得し、Gemini APIを元にアドバイス文を生成:実装編 今回は、Flutterアプリからサーバーにヘルスデータを送信し、Gemini APIを通じてアドバイスのテキスト(例:昨日はよく眠れたみたいですね。この調子!)を生成する部分を実装したい。1日の総歩数と総運動時間を出力するように計算ロジックを追加。 2024.02.23 2024.07.01 アプリ(Flutter)開発・デザイン
サーバー(Go) 【gRPC】.protoファイルを作成し、コンパイルしてGo言語で使用するまで Protocol Buffers(protobuf)は、gRPCで使用されるインターフェース定義言語(IDL)。JSONやXMLなどの伝統的なフォーマットに比べて、より小さいサイズで、より速い速度でデータを伝送できる。.protoファイルを作成し、メッセージとgRPCメソッドを定義する 2024.04.06 2024.07.01 サーバー(Go)開発・デザイン
サーバー(Go) 【Flutter × Go × gRPC】OTAアップデート:Firmware更新をgRPCでアプリ通知 AWS s3のfirmwareディレクトリに新しいFirmwareバイナリを開発者がバージョン指定してアップロードする。各ユーザーのFirmwareのバージョンと開発者がアップロードした最新バージョンを比較し、異なる場合にFlutterアプリに「新しいFirmwareをインストール可能です」と通知する。 2024.04.10 2024.07.01 サーバー(Go)組み込み(C++ / ESP32)開発・デザイン
組み込み(C++ / ESP32) 【ESP32】OTAアップデート:MQTTとAWS IoTデバイスシャドウを利用したファームウェア更新 ユーザーがアップデートを受け入れると、アプリがサーバーにAPIリクエストを送信し、サーバーがAWS IoTのデバイスシャドウに変更を反映させる。デバイスはMQTTを通じてこの変更を検知し、ファームウェアのダウンロードとアップグレードを実行する。 2024.04.17 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
サーバー(Go) 【Go】静的型付け・型推論・関数・構造体・レシーバ・Go Modules・Packages・Imports Go言語では、関数はfuncキーワードで始まり、引数と戻り値の型が必要(静的型付け)。変数名の「後ろ」に型名を書く。Go の構造体はクラスと異なり、メソッドは構造体の定義の外部で定義され、構造体とメソッドは「レシーバ」を介して関連付けられる。 2024.04.17 2024.07.01 サーバー(Go)開発・デザイン