hacomono TECH BLOG

フィットネスクラブ・スクールなど施設・店舗のための会員管理・予約・決済システム「hacomono」 開発チームの技術ブログ

mablコミュニティを運営している話

こんにちは。hacomonoでQAを担当しているはま(hama / hacomono)です。 私はmablに関するイベント開催等を行うコミュニティ「mablers_JP」を運営しています。今回はそのコミュニティのお話になります。 mablとは まず、mablとはE2Eテストの自動化ツールのこと…

WCAG勉強会に迫る

こんにちは、Engineering Office Teamアシスタントのちいです。 先日、社内でWCAGの勉強会が開かれました。 今回は、WCAGとは何か?から、ガイドライン作成のメリットや先日行われた勉強会の様子についてもお伝えできたらと思います。 結論 WCAGとは、アクセ…

開発チーム社内イベント開催レポート(後編)

hacomonoでEMのよこちゃんです (@jikun) 今回は前回に続き、社内イベント準備〜当日の様子や後日談をお伝えできたらと思います。 目次 イベント開催に向けた準備 イベント当日の様子 午前の部、午後の部の様子 懇親会の様子 参加者の感想 ポジティブな感想 …

hacomono流 Okta活用術

お久しぶりです。1年振りにテックブログを書くことになりました、hacomonoで情シスを務めている遠藤です。 ちょうど1年前に「hacomonoのIT環境がここ半年で180度変わった話」というタイトルでテックブログを書かせて頂きましたが、今回はその続きとなります…

Nuxt3 の useFetch を OpenAPI ベースで型安全にしてみる

どうも、フロントエンドテックリードのみゅーとん(@_mew_ton)です。 TypeScript で型でガチガチに固めるのが好きで、よく業務時間内に型パズルを書いてます。 Nuxt3 の useFetch を OpenAPI ベースで型安全にする仕組みができたので、今回はその共有をします…

不安だらけの育休復帰、0歳児入園と復帰後のリアルな生活

はじめまして。hacomonoでEngineering Office Teamのアシスタントをしているちいです。 育休明けの5月にhacomonoに参画し、北国からフルリモートで働いています。 早速ですが、私には1歳1ヶ月の息子がおり、今年の4月から0歳児入園で保育園に通っています。 …

Vue3 の関数型コンポーネントを理解してみる

どうも。フロントエンドのテックリードをやっています。みゅーとん(@_mew_ton)です。 Vue3 のリファレンスを読んでいたところ、「関数型コンポーネント」なるものが気になったので、軽く触ってみました。 はじめに リファレンス 対象読者 以下の読者を想定し…

ESP32で市場で発生したExceptionを検知して解析する方法

こんにちは。IoT開発チームで組み込みソフトウェアエンジニアをやっているいまみーです。 hacomonoはウェルネス産業向けのVirtical SaaS企業ということもあり、ソフトウェア開発が中心となっている会社ではありますが、 そんな弊社にはIoT開発を行う部門があ…

3ヶ月の育休とブランクを乗り越えた話

こんにちは、hacomono POS開発チームに所属するたけ(竹本)です。 今回、私が育休を取得したのでその経緯や育休〜復帰に至るまでについてお話したいと思います。 ※技術的な話はでてきません 育休を取得した理由 今回の育休は次男が産まれたことがきっかけでし…

3Dプリンターでこそ活きる筐体のスイッチ設計

こんにちは。ハードウエアのメカニカルエンジニアデザイナーをやっている うら(Ura)です。 メインプロダクトがSaaSということもあり、ソフトウエアプロダクト中心の弊社ですが、実はハードウエア領域でも自社プロダクトを開発しており、メーカーという一面…

開発チーム社内イベント開催レポート(前編)

hacomonoでEMのよこちゃんです (@jikun) hacomonoは普段完全フルリモートで、開発チームは特に出社している人がほとんどいません。 オフィスが原宿にあるため、近場の人が気分転換に行ったりする程度です。 そうなると、やはり課題になるのがコミュニケーシ…

Capacitorプラグインで実現する、Nuxt 3のハードウェア連携

はじめに こんにちは、hacomonoでウェブアプリケーションの開発を担当しています、野崎です(社内ではサイモンと呼ばれています)。 少し前に、Nuxt 3とCapacitorで作るiOSアプリの記事をパブリッシュしており、今回はその続きです。Capacitorで構築したiOS…

なるべく楽して JS のライブラリを作ってみる (part2: 実装)

フロントエンドのテックリードをやってます。みゅーとん(@_mew_ton)です。 前回は作りたいライブラリの設計を全部ChatGPT にやってもらいました。 今回は、その実装を楽にすすめていこうと思います。 また、前回と異なり、今回は手動でブログを書いています…

なるべく楽して JS のライブラリを作ってみる (part 1: 設計)

フロントエンドテックリードのみゅーとん(@_mew_ton)です。どうも。 今まで、ライブラリを作りたい要件だけはずっと溜まっていって、どうも時間がなく手がつけられていませんでした。 が、個々最近AIが話題ですね。ChatGPT に文書を書かせたりするのがかなり…

マルチテナントへの道 番外編: ChatGPT-4 を使ってブログを書いてもらった

はじめに hacomono VP of Platform Engineering のやじ(@srv)です。 前回、「マルチテナントへの道 Provisioning 編」と題して、マルチテナント化のプロビジョニングに関するお話をさせていただきました。その際、ChatGPT-4を全面的に用いてブログを作成しま…

Storybook の interaction test で動作する jest にカスタムマッチャーを追加する

こんにちは。フロントエンドのテックリードのみゅーとんです。 Storybook の公式で紹介されていますが (リンク)、Storybook の play 関数を使用して、 コンポーネントのテストを視覚的に行うことができます。 テストコードは基本的にフロントエンドのテスト…

eslint, prettier の設定を複数のリポジトリで共通化してみた

hacomono フロントエンド テックリードのみゅーとん(@_mew_ton)です。 開発メンバーが増え、プロジェクトがどんどん増えてきました。 そろそろ eslint, prettier をそれぞれのプロジェクトでバラバラに管理するのに疲弊してきたので、 ここで一気に設定を揃…

マルチテナントへの道 Provisioning編

はじめに hacomono VP of Platform Engineering のやじ(@srv)です。気がつくと家に車が3台ありました。 今回は「マルチテナントへの道 Provisioning 偏」と題しまして、マルチテナント化のプロビジョニングに関するお話をさせていただこうと思います。 TL;D…

開発チームの成長を促進するため、Dev Team Criteriaを作成してみた

hacomono CTO のまこ (@macococo) です。 今回は Engineering Office チームで推進している Dev Team Criteria という取り組みについてご紹介したいと思います。 Engineering Office チームについては以前に以下の記事でご紹介させていただきました。 techbl…

npm dependencies が大量になるのをなんとかしてみる

hacomono フロントエンド テックリードのみゅーとん(@_mew_ton)です npm を使うプロジェクトを立ち上げる際、フレームワークやら、テストやらをどんどん導入していくと、一つの package.json に大量の依存パッケージが書き込まれて、管理が煩雑になるケース…

Unixのシグナルとは?

開発チームのたなしゅん(@_tanashun)と申します。 Unixのシグナルについてよくわかっていない部分があったので、よく目にするシグナルをピックアップして学習しました。今回はそこで得た知見をブログに残したいと思います。 そもそもシグナルとは? Wikipedi…

自動コードフォーマットに pre-commit を導入したら開発が快適になった話

フロントエンドの基盤開発をしている、みゅーとんです。 弊社のプロジェクトでは、実装開始初期から、コードフォーマットするルールがありませんでした。 コードフォーマットを全体に強制させる方法として、最も手間最小で時間がかからない方法を模索し、 こ…

ハードウェアと連携するiOSアプリをNuxt 3とCapacitorで作る

はじめに テックブログ初投稿となります、野崎です(社内ではサイモンと呼ばれています)。 ウェブアプリケーションの開発を担当しております。 hacomonoではフィットネスクラブやジムの店舗管理システムと連動して使えるPOSレジを開発、提供しています。 こ…

Nuxt.jsのSSRについて改めて学んでみた

プロダクト開発チームのまっつんです。 今期から機能開発のチームではなくパフォーマンス改善の部隊にジョインすることになりました。 初手のタスクはフロント側の改善タスクでした。フロント側は今までなんとなくで開発しちゃってたところがあったので、こ…

C拡張でRuby実装を置き換える

はじめに おはこんばんちは。 hacomono 開発部の iwazer です。 最近は Cyberpunk 2077 を再開して、やってなかったサブクエストやNCPDミッションを延々と潰している毎日です。そろそろやることもなくなってきたので早く最終 DLC 来てくれないかな。 あと St…

Vue コンポーネントを動的に外部から読み込む

Vue コンポーネントを動的に外部から読み込む方法。WebpackにてUMDライブラリとしてビルドし、グローバル変数windowに格納できる。

マルチテナントへの道 Gateway編

はじめに hacomono VP of Platform Engineering のやじ(@srv)です。 年末年始は SteamDeck 届いたので、PS Vita での発売以来ずっとやりたいと思っていたAKIBA’S TRIP 2で時間を溶かしました。 前回は「マルチテナントへの道 序章」と題して hacomono のアプ…

開発チームで星取表を作ってみた

こんにちは、hacomonoの機能開発チームのたつです。 hacomonoでは機能開発チームのマネージメントや開発全体のこぼれ球を拾ったり、開発者体験を向上していくために施策を実施したり、プロダクト開発をしていたりといろいろしています。 今回は弊社CTOのまこ…

QAチーム立ち上げ期〜振り返りと今

hacomonoで開発チームに所属しております、塩濱です。(社内では、はまちゃんと呼ばれております。@hcmn_hama) 最近はQAエンジニアとしてQAチームの全体管理〜自動化までをメインに動いています。 (絶賛一緒に自動化に取り組んでいただける方を募集中です…

Nuxt3 モックサーバモードで Playwright を使った Visual Regression Test

どうも、フロントエンドの開発基盤を担当している、みゅーとん(@_mew_ton)です 前回 (Nuxt3 でモックサーバ作ってみる) では Nuxt3 でモックサーバモードの実装について紹介しました。 今回は、これを使って E2E テストを実装する体制を整えたので、紹介しま…