組み込み(C++ / ESP32) 【ESP32】OTAアップデート機能を実装して、遠隔でファームウェア更新する方法 ESP32のWiFiモジュールを搭載した猫型ロボット「ミーア」の開発を進めているが、今回は製品をユーザーに提供後に新機能をリリースした際に、開発者がリモートでファームウェアの更新を行えるようにするために、OTAアップデート機能を導入する。 2024.03.31 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
開発・デザイン 【Dart/TypeScript】共通点と違い。型推論ありの静的型付け・単一継承・抽象クラス・Mixin・非同期 Dart, TypeScriptともに静的型付け言語(コンパイル時に型が決定する)だが、型注釈はオプショナルで強力な型推論が働く。Dartの抽象クラスはサブクラスに具体的な実装を強制する手段を提供し、TypeScriptのinterfaceはクラスに特定の構造を強制する手段を提供する。 2024.04.06 2024.07.01 開発・デザイン
サーバー(Go) 【Flutter × Go × gRPC】OTAアップデート:Firmware更新をgRPCでアプリ通知 AWS s3のfirmwareディレクトリに新しいFirmwareバイナリを開発者がバージョン指定してアップロードする。各ユーザーのFirmwareのバージョンと開発者がアップロードした最新バージョンを比較し、異なる場合にFlutterアプリに「新しいFirmwareをインストール可能です」と通知する。 2024.04.10 2024.07.01 サーバー(Go)組み込み(C++ / ESP32)開発・デザイン
デザイン(Figma) 【デザイン】アイコンガイドラインの作成と統一法:Font Awesome, Material Icons, React Icons クロスプラットフォーム(Web・アプリ)で開発している場合に、歴史的経緯やリソースの優先順位などからアイコンガイドラインが定まっていない場合がある。有名なアイコンフォントとして、Font AwesomeやMaterial Fontsなどが挙げられる。 2024.04.30 2024.07.01 デザイン(Figma)開発・デザイン
アプリ(Flutter) 【Flutter】状態管理:StatefulWidget + setStateからproviderへ移行とメリット Flutterでは、StatefulWidgetを使用して内部状態を持つことができる。また、ProviderやRiverpod、Blocなどのライブラリを使用してアプリケーション全体の状態管理を行う。本記事では、statefulWidget + setStateから、次のステップであるProviderまでをみていく。 2024.04.10 2024.07.01 アプリ(Flutter)開発・デザイン
デザイン(Figma) 【Figma】オートレイアウトで、アイコン非表示の際にズレないようにする方法 Figmaのオートレイアウトは、要素間の距離を自動的に調整し、デザインの一貫性を保ちながら柔軟にレイアウトを管理できる機能。ナビゲーションバーのデザインにおいてアイコンを非表示にするとタイトルが中央からずれる問題とその解決方法について解説。 2024.04.21 2024.07.01 デザイン(Figma)開発・デザイン
デザイン(Figma) 【アプリ】iOSスクリーンショット用のグリッド投稿をFigmaで作成 iPhoneスクリーンショットは、全てのiPhoneのディスプレイサイズで画像を用意する必要はなく、アプリの UI が複数のデバイス サイズとローカリゼーションで同じである場合は、必要な最高解像度のスクリーンショットを提供するだけで良い。 2024.05.13 2024.07.01 デザイン(Figma)開発・デザイン
組み込み(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)開発・デザイン
アプリ(Flutter) 【Flutter】状態管理:providerからRiverpodへの移行と利点 前回はFlutterの状態管理に関して、statefulWidget + setStateからProviderまでを記載した。今回は、ProviderからRiverpodまでを見ていく。Riverpodの導入によりコンテキスト非依存になり、不変性が強化された。 2024.04.11 2024.07.01 アプリ(Flutter)開発・デザイン