STORES Product Blog
https://product.st.inc/
こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。
フィード

STORES から1名が福岡Rubyist会議05で登壇&スポンサーとして協賛します
STORES Product Blog
こんにちは、技術広報のえんじぇるです。 STORES は、2026年2月28日に福岡で開催される福岡Rubyist会議05にスポンサーとして協賛します! この記事では、当日登壇するメンバーとブースについて紹介します。 登壇者の紹介 STORES からは、公募セッションとスポンサーセッションの2つの枠でメンバーが登壇します! セッション登壇 スピーカー: Shia 時間: 11:10-11:25 タイトル: 型を書かないRuby開発への挑戦 「型を書かなくても十分有用な型情報を得られる」を目標に開発中の LSP「type-guessr」について話します。 完全さを諦めることでいい感じの体験を目指…
11時間前

計82登壇!2025年下半期 STORES エンジニアの登壇まとめ
STORES Product Blog
こんにちは、技術広報のえんじぇるです。 STORES では、登壇塾という登壇支援のワーキンググループがあり、エンジニアのみんなが社外で発信することを奨励しています。 2025年下期は27のカンファレンス・学会・イベントに82登壇しました!複数回登壇しているメンバーもいるのですが、ユニークで49名が登壇しました!各登壇の詳細をご紹介します。 7/8 第11回中部Tableauユーザー会 7/11 SRE NEXT 2025 7/13 CoLab Conf 2025 夏 7/30 技育CAMPアカデミア『Kotlin Multiplatform / Compose Multiplatform を活…
10日前

STORES はRubyKaigi 2026に参加したい学生さんを支援します
STORES Product Blog
こんにちは、技術広報のえんじぇるです。 4月22日(水)〜24日(金)にRubyKaigi 2026が北海道函館市で開催されます。 STORES では、RubyKaigi 2026に参加したい学生さんを支援させていただくことにしました!2025年に引き続き2度目です。 このブログでは、支援の概要と応募方法について案内します。 RubyKaigi とは RubyKaigiは、プログラミング言語 Ruby に関する世界最大級の国際カンファレンスです。Rubyの生みの親であるまつもとゆきひろさんをはじめ、世界中のRuby開発者、Rubyを利用しているエンジニアが集まります。 rubykaigi.or…
1ヶ月前

STORES 予約 i18n 翻訳対応 powered by GitHub Copilot
STORES Product Blog
はじめに こんにちは、 STORES でエンジニアをやっている yuta07 です。 すでに1年のうち12分の1が終わりそうなことに絶望を感じています。 今回は UX 改善の一環として、 STORES 予約で長らく放置してしまっていた i18n 対応の翻訳作業を GitHub Copilot を用いて対応したことについて書いています。 背景 STORES 予約の管理画面では、以前より i18n 対応を進めていました。 日本語以外に英語での利用も可能にはしていましたが、歴史的な経緯もあり、i18n 対応が十分とは言えない状態が続いていました。 *1 その結果、言語設定を外国語に切り替えても、多く…
1ヶ月前

fastlane match リポジトリを開発者証明書ダッシュボードに変える
STORES Product Blog
fastlane match リポジトリを 開発者証明書ダッシュボードに 変える STORES ブランドアプリチームで iOS エンジニアをしている榎本 ( @enomot_ ) です。 以前、「fastlane match の内部実装を活用して複数の iOS 開発者証明書の期限を一括チェックする方法」という記事で、暗号化された証明書ファイルから有効期限を取得する方法を紹介しました。この方法により、fastlane match で管理している証明書の期限をプログラムで確認できるようになりました。 product.st.inc 本記事では、前回紹介した証明書の期限取得の仕組みを発展させ、 fas…
1ヶ月前

App Links / Universal LinksにWeb対応してモバイル端末でネイティブアプリを開く
STORES Product Blog
こんにちは。STORES でWebエンジニアをしていますosdです。 今回はHTTP URLを介してユーザーにネイティブアプリを起動させる仕組みについて実装をしたので、仕様を交えつつWebサーバーとして配布する項目を中心に解説します。 App Links / Universal Links とは WebのURL エンドポイントを用いてシームレスにネイティブアプリを起動する仕組みです。 従来のディープリンクと呼ばれる技術は存在しましたが、以下の点で App Links / Universal Linksに優位性があります。 シームレスなアプリ起動が可能。(起動確認ダイアログなどのユーザーアクショ…
2ヶ月前

外部連携をイミュータブルに設計する:状態を持たず、事実を残す
STORES Product Blog
はじめに こんにちは。STORES でエンジニアをしているmochizukiです。 Webアプリケーションの開発では、外部システムと連携した機能を実装することがあると思います。 例えばAPIで外部システムのリソースを取得したり、Webhookで通知を受け取ったりして、業務ロジックに組み込むようなケースです。 このような開発を行う上で、「取得した情報をどう扱うか」は重要な論点の一つです。 少し分解すると、「取得した情報をこちらのシステムでも保持するのか」「保持するならどのような形で持つのか」といったことを考える必要があります。 私は今回、外部リソースの"状態"を「上書きして持つ」のではなく、受け…
2ヶ月前

プロと読み解くRuby 4.0 NEWS
STORES Product Blog
プロと読み解くRuby 4.0 NEWS テクノロジー部門技術推進グループの笹田(ko1)と遠藤(mame)です。Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 4.0.0 がリリースされました(Ruby 4.0.0 リリース | Ruby)。今年も STORES Product Blog にて Ruby 4.0 の NEWS.md ファイルの解説をします(ちなみに、STORES…
2ヶ月前

Ruby::Box ダイジェスト紹介(Ruby 4.0.0 新機能)
STORES Product Blog
こんにちは、遠藤(@mametter)です。 Ruby 4.0.0 では Ruby::Box が導入されました([Feature #21311])。 Ruby::Box は導入提案時には Namespace と呼ばれていたもので、Matz が「Namespace か ZJIT が入れば次のリリースを Ruby 4.0.0 とする」と RubyKaigi などで宣言していたくらい、肝いりの機能です。 ということで「なにやらすごい機能」という雰囲気だけは知っている人もいるかもしれませんが、実際のところ何ができるか、現状はどうか、は知らない人がほとんどだと思います。 そこで、遠藤が Ruby::Bo…
2ヶ月前

Ruby on Rails と Spring に実務で携わっての開発体験の比較
STORES Product Blog
Ruby on Rails と Spring に実務で携わっての開発体験の比較 RailsエンジニアとしてWebアプリケーション開発を続けてきた自分が、 はじめて本格的に Springのプロダクトに参加しました。 この記事では Rails, Spring のフレームワークの解説はせず、 Rails と Springをどちらも実務で使ったうえで、「結果的にコードを書くうえでどんな快適さを感じたか?」を比較します。 言語やフレームワークの思想批評ではなく、開発体験の個人的な実感として読んで頂けますとありがたいです。 Rails の開発体験 1. rails console による動かしながら理解で…
2ヶ月前

DroidKaigi 2025に登壇しました!振り返り!!
STORES Product Blog
こんにちは、STORES 決済のAndroidアプリを開発しているchukaです。 12月ももう残りわずかですね…! 今回は、今年あった個人的最大の出来事、DroidKaigi 2025登壇について振り返っていきたいと思います! はじめに 私はDroidKaigi 2025で「はじめてのMaterial3 Expressive」というセッションで登壇させていただきました。 本記事では、CfSを考える上で大変だったこと、資料を作る上で大変だったことについて述べます。 DroidKaigi 2025までのタイムライン CfS募集〜DroidKaigi 2025当日までのタイムラインは以下のようにな…
2ヶ月前

複数端末間でのリアルタイム・ステータス同期の機能開発
STORES Product Blog
メリークリスマス!Android エンジニアの naberyo(@error96num)です。 この記事は STORES Advent Calendar 2025 の 24 日目の記事です。 私が現在開発に携わっている STORES モバイルオーダー では、この1年間で多くの機能をリリースしてきました。イートイン対応をはじめとした大規模な機能拡張により、さまざまな飲食店でご利用いただけるサービスになっています。 このアップデートについては次の記事で触れられています。 product.st.inc 機能アップデートの過程で、私たちは技術的課題を一つ一つ解決してきました。今回の記事では、その中の一…
2ヶ月前

育休中の過ごし方と、育休前後の働き方の変化について
STORES Product Blog
はじめに こんにちは。STORES でBPRアーキテクチャグループでエンジニアをしているみなみ(nannany)です。 2025年4月に第一子が産まれました。そのため、今年4月から育児休暇を取得し、2025年10月に復帰しました。つまり、育休を6ヶ月いただきました。 育休、育休後の働き方について、エンジニア職をしている方にとって気になることはなんでしょうか? 育休中に技術をキャッチアップする時間は取れるのか? 復帰後の働き方はどうなるのか? などがあると思います。その心配に対して、答えを出すことはできませんが、N=1の体験談を記せたらと思い記事を執筆しています。 エクスキューズとして、私自身ま…
2ヶ月前

STORES Tech Conf 2025 参加レポートまとめ
STORES Product Blog
こんにちは、技術広報のえんじぇるです。 2025年11月26日にSTORES Tech Conf 2025 “What Would You Do?” を開催しました! STORES Tech Conf 2025 “What Would You Do?” 開催レポート - STORES Product Blog 今回のSTORES Tech Confでは、学生のみなさんが参加しやすいように学生向け参加支援を実施しました。 STORES Tech Conf 2025 “What Would You Do?” を2025年11月26日(水)に開催&学生向け参加支援をします - STORES Prod…
2ヶ月前

SFA環境を1つのSalesforceに統合する際のデータ移行時に考慮したこと
STORES Product Blog
はじめに こんにちは、データ本部でデータエンジニアをやっている@takaHALです。 STORES では2025年8月、これまで2つ存在していたSalesforce組織と7個のkintoneアプリを、1つのSalesforce組織に統合しました。 今回は、この組織統合プロジェクトにおいて発生した データ移行 に関する技術的な考慮事項やハマりポイントを紹介します。 移行方法について 今回の移行対象となるオブジェクトは以下の通りです。 Account Campaign CampaignMember Case Contact EmailMessage Event Lead Opportunity O…
2ヶ月前

STORESにおけるTROCCOの導入と活用事例
STORES Product Blog
こんにちは、データ本部のssxotaです。STORES でデータエンジニアをやっています。 STORES のデータ基盤では、2025年7月からデータ転送ツールである TROCCO を導入しました。 今回のブログでは、TROCCO導入の背景、ツール選定の理由、活用事例について紹介します。 なぜTROCCOを導入したのか? SaaS間のデータ連携におけるデータエンジニアの工数削減 これまでは、各SaaS間のデータ連携について、SaaS側で提供されているAPIに対してPythonやRubyでスクリプトを実装し、ワークフローエンジンとして採用しているArgo Workflows上にポーティングして実行…
2ヶ月前

iOS 26 で SwiftUI の ナビゲーションが壊れた - 非推奨 API が抱えていたリスク -
STORES Product Blog
はじめに こんにちは、@marcy731 です。 STORES レジ のモバイルチームのマネージャー兼iOSエンジニアをしています。 この記事は STORES Advent Calendar 2025 の 19 日目の記事です。 stores.fun STORES レジ は、2019/9/11 にファーストコミットされ、 2021/06/15 に正式リリースされた iPad 向け POS レジアプリです。 www.st.inc 実装初期から フル SwiftUI で開発されており、当時としてはかなり挑戦的な技術選択でした。 2019 年当時の SwiftUI は、まだ登場したばかりで、 API…
2ヶ月前

モバイルアプリのリリースから振り返る STORES 決済 の 2025年
STORES Product Blog
今年も気づけば師走っ!! こちらは STORES Advent Calendar 2025 の記事です。(何日目の記事なのかな?) product.st.inc 毎年恒例です 毎年師走に STORES 決済 のモバイルアプリのリリースを振り返っています。 product.st.inc product.st.inc product.st.inc なので師走になったからには、今年も元気に振り返りますよ!! ということで、おはようございます! STORES 決済 モバイルチームの Engineering Manager、 iOS アプリ・SDKの開発を担当しております。いわいです。 ※昨年同様 ST…
2ヶ月前

STORES におけるセキュリティエンジニアの仕事 - 検討、推進および執行
STORES Product Blog
STORESのセキュリティ本部が担う業務範囲と、脆弱性診断の内製化・修正PR提出などの取り組みを紹介。あわせて、セキュリティベンダーから事業会社へ転職した際のギャップをまとめます。
2ヶ月前

ビルドプロセスを見直して Next.js 製アプリケーションのビルド時間を 10 分短縮
STORES Product Blog
この記事は STORES Advent Calendar 2025 の 19 日目の記事です。 はじめに こんにちは、 id:sushichan044 です。 この記事では、直近で取り組んだ Next.js 製アプリケーションのビルドの高速化を振り返ります。 対象となったのは STORES 予約を利用する事業者向けのアプリケーションで、2021 年 2 月から開発されています。 stores.fun $ git log --all --reverse commit <Hidden> Author: <Hidden> Date: Thu Feb 25 16:37:51 2021 +0900 In…
2ヶ月前

決済端末の開発を支えるディストリビューションツールを作った
STORES Product Blog
こんにちは、@tomorrowkeyです。 STORESでは先日STORES 決済端末2をリリースしました。 www.st.inc 私もこのプロジェクトに関わっており、そのなかでSTORES App Distributionというツールを作った話を紹介します。 そもそもSTORES 決済端末2はどういう端末なのか このSTORES 決済端末2は Miura Systems が開発しているFlexという端末です。 miurapay.com プロダクトサイトを見ると分かりますが、この端末はAndroid OSです。 私たちは決済のソフトウェアをAndroidアプリとしてこのデバイスの上で走らせてい…
2ヶ月前

「ひとつのSTORES」を目指す「Webエンジニア」としての働き方
STORES Product Blog
STORES でWebエンジニアをしている kitapashi です。 この記事は STORES Advent Calendar 2025 の 18 日目の記事です。 STORES のプロダクト開発にとって、2025年は非常にドラスティックな変化を伴う1年だったと思います。この変化の中心にあったのは、下の記事にもある「ひとつの STORES」というキーワードでした。変化の詳細は以下の記事に詳しいのでここでは割愛します。 product.st.inc また、この変化を起こすに先立って、社内のメンバーも「Webエンジニア」となり、多くのメンバーが特定の技術領域/プロダクトには紐づかない形で開発業務…
2ヶ月前

社内イベントを撮影する技術
STORES Product Blog
みなさんこんにちは。モバイル開発本部シニアマネージャーの @huin です。今日はモバイルと全く関係ない話です。 突然ですが私はカメラが趣味でして、真冬の北海道に流氷を撮りに行ったり、梅雨の男鹿半島に紫陽花を撮りに行ったりしています。また、長年スタッフをやっている iOSDC Japan でも仕事の合間に写真を撮っています。 というのもあってSTORES でもイベントで撮影係することが多く、今年は4月と11月の社内イベント VERSION (※) と、11月26日に行われた自社カンファレンス STORES TechConf 2025 の計3回で撮影係をしていました。 イベントで撮影係をやりたい…
2ヶ月前

Cloud Runのメモリが3日で枯渇!犯人は10万のGoroutineとgRPCクライアントだった話
STORES Product Blog
はじめに この記事はSTORES Advent Calendar 2025の17日目の記事です。 顧客向けIdPを開発している佐野です。 本記事では、Cloud Run上で動作するGoサーバーで発生したメモリリークの問題と、その解決までの道のりを紹介します。 ある日、デプロイ後わずか3日でメモリ使用率が95%を超えるという深刻なアラートが鳴り響きました。 「GoはGCがあるからメモリ管理は楽なはずでは?」——そんな甘い考えを打ち砕く、10万のGoroutineと隠れたgRPCクライアントとの戦いの記録です。 起きていた問題 今年の5月中旬頃、ネットショップの全会員を顧客向けIdP基盤に移行する…
2ヶ月前

DependabotのPRをAIにマージさせよう
STORES Product Blog
この記事はSTORES Advent Calendar 2025の16日目の記事です。 こんにちは。Webエンジニアをしているotariidaeです。今月は調子に乗って3つも記事を書いています。 この記事では、先日開催されたSTORES Tech Conf 2025 “What Would You Do?”でのポスター発表「LGTM, Dependabot! 見てないけど」の内容をより具体例で解説していきます。 ポスターの内容のおさらい ポスターの内容は下記で公開しています。 www.docswell.com 要約:Dependabotなどで依存ライブラリ更新のPRが自動作成されるようになった…
2ヶ月前

現在のページ状態を保持したまま別ウィンドウで決済を行う
STORES Product Blog
こんにちは。STORES で Webエンジニアをしております、takeuchiです。 Webアプリケーションで決済を提供する場合、ユーザーはアプリから決済代行業者 (PSP) が用意した決済画面へ遷移します。 この決済画面でユーザーが支払い情報を入力し、クレジットカード会社や銀行などの実際の決済サービスと通信して処理が行われます。支払い処理が完了すると、決済代行業者はその結果を保持し、ユーザーを再びアプリ側の指定された画面(例:完了画面や結果通知画面)へ自動的に戻します。 ただ今回実装していたページではブラウザのページ遷移を伴う決済フローを組み込むにあたって、次のような課題がありました。 決済…
2ヶ月前

脆弱性診断の取り組み
STORES Product Blog
こんにちは。セキュリティ本部の yokoyama です。 セキュリティ本部では、「STORES プラットフォームに内在するセキュリティリスクを適切にコントロールする」をミッションに、日々さまざまな活動に取り組んでいます。 その活動の一環として、全サービスを対象に脆弱性診断を内製で実施しています(一部は外部ベンダーの支援を受けています)。 今回は、私たちが実施している脆弱性診断の取り組みについて、その一部をご紹介します。 診断種類 診断の流れ 診断計画の策定 診断対象の精査 診断対象の精査例 Web アプリケーション診断の実施 診断の実施例 診断結果の取りまとめ 脆弱性の対応 おわりに 診断種類…
2ヶ月前

モバイルオーダーのエンジニアがお店にディープダイブするまで
STORES Product Blog
この記事は STORES Advent Calendar 2025 の 11 日目の記事です。 STORESでWebアプリケーションエンジニアやってる染谷(somezi)です。現在はモバイルオーダーを開発しています。 STORES モバイルオーダーでは2025年4月時点で下記の課題を抱えていました。 店舗スタッフさんが注文を見て商品を提供するためのキッチンディスプレイに機能が足りておらずキッチンの課題を解決できてない テイクアウト注文のみ対応していたので、飲食店の中でも狭い市場の中での課題解決に留まっている ところで皆さん2025 秋アップデート見ましたか??上述の課題を解決し、モバイルオーダ…
3ヶ月前

DMARC の取り組み
STORES Product Blog
こんにちは。セキュリティ本部の yokoyama です。 セキュリティ本部では、「STORES プラットフォームに内在するセキュリティリスクを適切にコントロールする」をミッションに、日々さまざまな活動に取り組んでいます。 少し時間が経ってしまいましたが、2025年6月に全サービスドメインの DMARC ポリシーを quarantine に移行しました。 今回は、DMARC の取り組みについてご紹介します。 DMARC について STORES での DMARC の取り組みについて 目標設定 取り組み概要 DMARC ポリシー none の設定と現状把握 SPF と DKIM の整備 none か…
3ヶ月前

アプリの行動ログを活用して静かな不具合を検知する
STORES Product Blog
この記事は STORES Advent Calendar 2025 の 8 日目の記事です。 こんにちは、 STORES でレジアプリのモバイルオーダー周りの開発をしている yu です。 レジアプリでは、 Firebase Analytics を用いて以下のような粒度で行動ログを取得しています。 画面Aを開いた トグルをOFFにした ボタンBをタップした 画面Cが開いた しかし、アプリの行動ログはそのままだと「点」の集まりにしか見えません。様々な事業者さまの、様々な端末の行動ログが、テーブルの行としてバラバラに並んでいるだけです。 これは例えば、家族全員分の1週間分のレシートを机にバラまいてい…
3ヶ月前