カミナシ エンジニアブログ

株式会社カミナシのエンジニアが色々書くブログです

フロントエンド

生成 UIでユーザーに最適化されたデザインを魅せる。そんな未来の先行体験会。

プロローグ 河野「このTODOアプリ便利やなぁ」 河野「でも、なんかシンプルすぎて退屈やねんなぁ。たまにTODO忘れるし...」 河野「もっとド派手なハリウッド映画みたいなデザインで緊迫感だしてくれや!」 アプリ「わかりました。もっと激しくてインパクトの…

ブラウザで“サクサク”AI推論!!― Wasm × C++ による画像処理

こんにちは、Kaminashi StatHackカンパニーの渡邉健です。 初めてエンジニアブログを書いてみます。 以下のリンクに普段の取り組みを書いているので興味があれば見てみてください。 AI というテクノロジーを現場 SaaS でどう実現するか 〜AI チームのアプリ…

頑張りすぎず、PlaywrightのCI実行時間を短縮した話

カミナシのソフトウェアエンジニアisanaです。 カミナシレポートの開発に携わっています。 私たちのチームでは、Webアプリケーションの品質担保のため、Playwrightを用いたブラウザテストを実装し、GitHub Actionsで実行しています。しかし、このCIプロセス…

Immer はどのように実装されているか

はじめに こんにちは。カミナシでソフトウェアエンジニアをしている tokuse(@stomy_13) です。 私が所属するチームが開発している現場帳票システム『カミナシ レポート』では、一部のアプリケーションで状態管理ライブラリの Zustand を使用しています。併せ…

フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query)

カミナシのソフトウェアエンジニア佐藤です。カミナシレポートの開発に携わっています。 フロントエンドのエラーは「画面リロードやブラウザ再起動で復旧できる(かもしれない)」「クラッシュしてもユーザーの端末に閉じる」などの理由から、バックエンドよ…

良いReactを書くことは凡事徹底だと考えている話

カミナシで、Webフロントエンドエンジニアをしている osuzu です。 これまでフロントエンド専門外のエンジニアからReactを学ぶ良い方法やお勧めドキュメントを聞かれる度に、 公式ドキュメント のリンクを貼る日々を過ごしてきましたが、何かすごい上達方法…

Service Worker がページをコントロールし始めるタイミングを skipWaiting と clients.claim から理解する

こんにちは。カミナシでソフトウェアエンジニアをしております佐藤です。 先日、『カミナシ レポート 記録アプリ(Web)』の提供を開始いたしました。 現場帳票システム『カミナシ レポート』、マルチデバイスで記録ができるWeb版をリリース PWA として利用…

理想のフロントエンドテストをたずねて三千里

こんにちは。カミナシにて業務委託としてフロントエンドを担当している田村(@junkboy0315)です。皆さんはフロントエンドのテスト、どのように取り組んでいますか?フロントのテストはなかなか難しいですよね。 バックエンドのテストには、「入力、出力、永続…

フロントエンドの Monorepo をやめてリポジトリ分割したワケ

カミナシでは Monorepo をやめてリポジトリ分割をする意思決定を行いました。今回は Monorepo をやめた背景やどういう風に作業を進めたのかをご紹介します。

一定規模を超えたプロジェクトに Organize imports を一括で適用する

エンジニアリング組織が大きくなるに連れてじわじわと開発生産性を落としていくのは目に見えていたので、そうなる前にカッとなって全ファイルに Prettier と Organize imports を適用することにしました。

Reduxのstateの認知負荷を下げたい話

カミナシのソフトウェアエンジニアの天野です。 カミナシは、現場DXプラットフォーム「カミナシ」の開発をしています。 今日はフロントエンドの小ネタを紹介しようと思います。 よろしくお願いします。 TL;DR 経緯 結論 実際に見てみると TL;DR Reduxで管理…