STORES Product Blog

https://product.st.inc/

こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。

フィード

記事のアイキャッチ画像
App Links / Universal LinksにWeb対応してモバイル端末でネイティブアプリを開く
STORES Product Blog
こんにちは。STORES でWebエンジニアをしていますosdです。 今回はHTTP URLを介してユーザーにネイティブアプリを起動させる仕組みについて実装をしたので、仕様を交えつつWebサーバーとして配布する項目を中心に解説します。 App Links / Universal Links とは WebのURL エンドポイントを用いてシームレスにネイティブアプリを起動する仕組みです。 従来のディープリンクと呼ばれる技術は存在しましたが、以下の点で App Links / Universal Linksに優位性があります。 シームレスなアプリ起動が可能。(起動確認ダイアログなどのユーザーアクショ…
12日前
記事のアイキャッチ画像
外部連携をイミュータブルに設計する:状態を持たず、事実を残す
STORES Product Blog
はじめに こんにちは。STORES でエンジニアをしているmochizukiです。 Webアプリケーションの開発では、外部システムと連携した機能を実装することがあると思います。 例えばAPIで外部システムのリソースを取得したり、Webhookで通知を受け取ったりして、業務ロジックに組み込むようなケースです。 このような開発を行う上で、「取得した情報をどう扱うか」は重要な論点の一つです。 少し分解すると、「取得した情報をこちらのシステムでも保持するのか」「保持するならどのような形で持つのか」といったことを考える必要があります。 私は今回、外部リソースの"状態"を「上書きして持つ」のではなく、受け…
13日前
記事のアイキャッチ画像
プロと読み解く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…
13日前
記事のアイキャッチ画像
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…
13日前
記事のアイキャッチ画像
Ruby on Rails と Spring に実務で携わっての開発体験の比較
STORES Product Blog
Ruby on Rails と Spring に実務で携わっての開発体験の比較 RailsエンジニアとしてWebアプリケーション開発を続けてきた自分が、 はじめて本格的に Springのプロダクトに参加しました。 この記事では Rails, Spring のフレームワークの解説はせず、 Rails と Springをどちらも実務で使ったうえで、「結果的にコードを書くうえでどんな快適さを感じたか?」を比較します。 言語やフレームワークの思想批評ではなく、開発体験の個人的な実感として読んで頂けますとありがたいです。 Rails の開発体験 1. rails console による動かしながら理解で…
14日前
記事のアイキャッチ画像
DroidKaigi 2025に登壇しました!振り返り!!
STORES Product Blog
こんにちは、STORES 決済のAndroidアプリを開発しているchukaです。 12月ももう残りわずかですね…! 今回は、今年あった個人的最大の出来事、DroidKaigi 2025登壇について振り返っていきたいと思います! はじめに 私はDroidKaigi 2025で「はじめてのMaterial3 Expressive」というセッションで登壇させていただきました。 本記事では、CfSを考える上で大変だったこと、資料を作る上で大変だったことについて述べます。 DroidKaigi 2025までのタイムライン CfS募集〜DroidKaigi 2025当日までのタイムラインは以下のようにな…
14日前
記事のアイキャッチ画像
複数端末間でのリアルタイム・ステータス同期の機能開発
STORES Product Blog
メリークリスマス!Android エンジニアの naberyo(@error96num)です。 この記事は STORES Advent Calendar 2025 の 24 日目の記事です。 私が現在開発に携わっている STORES モバイルオーダー では、この1年間で多くの機能をリリースしてきました。イートイン対応をはじめとした大規模な機能拡張により、さまざまな飲食店でご利用いただけるサービスになっています。 このアップデートについては次の記事で触れられています。 product.st.inc 機能アップデートの過程で、私たちは技術的課題を一つ一つ解決してきました。今回の記事では、その中の一…
14日前
記事のアイキャッチ画像
育休中の過ごし方と、育休前後の働き方の変化について
STORES Product Blog
はじめに こんにちは。STORES でBPRアーキテクチャグループでエンジニアをしているみなみ(nannany)です。 2025年4月に第一子が産まれました。そのため、今年4月から育児休暇を取得し、2025年10月に復帰しました。つまり、育休を6ヶ月いただきました。 育休、育休後の働き方について、エンジニア職をしている方にとって気になることはなんでしょうか? 育休中に技術をキャッチアップする時間は取れるのか? 復帰後の働き方はどうなるのか? などがあると思います。その心配に対して、答えを出すことはできませんが、N=1の体験談を記せたらと思い記事を執筆しています。 エクスキューズとして、私自身ま…
14日前
記事のアイキャッチ画像
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…
14日前
記事のアイキャッチ画像
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…
14日前
記事のアイキャッチ画像
STORESにおけるTROCCOの導入と活用事例
STORES Product Blog
こんにちは、データ本部のssxotaです。STORES でデータエンジニアをやっています。 STORES のデータ基盤では、2025年7月からデータ転送ツールである TROCCO を導入しました。 今回のブログでは、TROCCO導入の背景、ツール選定の理由、活用事例について紹介します。 なぜTROCCOを導入したのか? SaaS間のデータ連携におけるデータエンジニアの工数削減 これまでは、各SaaS間のデータ連携について、SaaS側で提供されているAPIに対してPythonやRubyでスクリプトを実装し、ワークフローエンジンとして採用しているArgo Workflows上にポーティングして実行…
15日前
記事のアイキャッチ画像
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…
15日前
記事のアイキャッチ画像
モバイルアプリのリリースから振り返る 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…
16日前
記事のアイキャッチ画像
STORES におけるセキュリティエンジニアの仕事 - 検討、推進および執行
STORES Product Blog
STORESのセキュリティ本部が担う業務範囲と、脆弱性診断の内製化・修正PR提出などの取り組みを紹介。あわせて、セキュリティベンダーから事業会社へ転職した際のギャップをまとめます。
18日前
記事のアイキャッチ画像
ビルドプロセスを見直して 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…
19日前
記事のアイキャッチ画像
決済端末の開発を支えるディストリビューションツールを作った
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アプリとしてこのデバイスの上で走らせてい…
19日前
記事のアイキャッチ画像
「ひとつのSTORES」を目指す「Webエンジニア」としての働き方
STORES Product Blog
STORES でWebエンジニアをしている kitapashi です。 この記事は STORES Advent Calendar 2025 の 18 日目の記事です。 STORES のプロダクト開発にとって、2025年は非常にドラスティックな変化を伴う1年だったと思います。この変化の中心にあったのは、下の記事にもある「ひとつの STORES」というキーワードでした。変化の詳細は以下の記事に詳しいのでここでは割愛します。 product.st.inc また、この変化を起こすに先立って、社内のメンバーも「Webエンジニア」となり、多くのメンバーが特定の技術領域/プロダクトには紐づかない形で開発業務…
20日前
記事のアイキャッチ画像
社内イベントを撮影する技術
STORES Product Blog
みなさんこんにちは。モバイル開発本部シニアマネージャーの @huin です。今日はモバイルと全く関係ない話です。 突然ですが私はカメラが趣味でして、真冬の北海道に流氷を撮りに行ったり、梅雨の男鹿半島に紫陽花を撮りに行ったりしています。また、長年スタッフをやっている iOSDC Japan でも仕事の合間に写真を撮っています。 というのもあってSTORES でもイベントで撮影係することが多く、今年は4月と11月の社内イベント VERSION (※) と、11月26日に行われた自社カンファレンス STORES TechConf 2025 の計3回で撮影係をしていました。 イベントで撮影係をやりたい…
20日前
記事のアイキャッチ画像
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基盤に移行する…
21日前
記事のアイキャッチ画像
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が自動作成されるようになった…
22日前
記事のアイキャッチ画像
現在のページ状態を保持したまま別ウィンドウで決済を行う
STORES Product Blog
こんにちは。STORES で Webエンジニアをしております、takeuchiです。 Webアプリケーションで決済を提供する場合、ユーザーはアプリから決済代行業者 (PSP) が用意した決済画面へ遷移します。 この決済画面でユーザーが支払い情報を入力し、クレジットカード会社や銀行などの実際の決済サービスと通信して処理が行われます。支払い処理が完了すると、決済代行業者はその結果を保持し、ユーザーを再びアプリ側の指定された画面(例:完了画面や結果通知画面)へ自動的に戻します。 ただ今回実装していたページではブラウザのページ遷移を伴う決済フローを組み込むにあたって、次のような課題がありました。 決済…
1ヶ月前
記事のアイキャッチ画像
脆弱性診断の取り組み
STORES Product Blog
こんにちは。セキュリティ本部の yokoyama です。 セキュリティ本部では、「STORES プラットフォームに内在するセキュリティリスクを適切にコントロールする」をミッションに、日々さまざまな活動に取り組んでいます。 その活動の一環として、全サービスを対象に脆弱性診断を内製で実施しています(一部は外部ベンダーの支援を受けています)。 今回は、私たちが実施している脆弱性診断の取り組みについて、その一部をご紹介します。 診断種類 診断の流れ 診断計画の策定 診断対象の精査 診断対象の精査例 Web アプリケーション診断の実施 診断の実施例 診断結果の取りまとめ 脆弱性の対応 おわりに 診断種類…
1ヶ月前
記事のアイキャッチ画像
モバイルオーダーのエンジニアがお店にディープダイブするまで
STORES Product Blog
この記事は STORES Advent Calendar 2025 の 11 日目の記事です。 STORESでWebアプリケーションエンジニアやってる染谷(somezi)です。現在はモバイルオーダーを開発しています。 STORES モバイルオーダーでは2025年4月時点で下記の課題を抱えていました。 店舗スタッフさんが注文を見て商品を提供するためのキッチンディスプレイに機能が足りておらずキッチンの課題を解決できてない テイクアウト注文のみ対応していたので、飲食店の中でも狭い市場の中での課題解決に留まっている ところで皆さん2025 秋アップデート見ましたか??上述の課題を解決し、モバイルオーダ…
1ヶ月前
記事のアイキャッチ画像
DMARC の取り組み
STORES Product Blog
こんにちは。セキュリティ本部の yokoyama です。 セキュリティ本部では、「STORES プラットフォームに内在するセキュリティリスクを適切にコントロールする」をミッションに、日々さまざまな活動に取り組んでいます。 少し時間が経ってしまいましたが、2025年6月に全サービスドメインの DMARC ポリシーを quarantine に移行しました。 今回は、DMARC の取り組みについてご紹介します。 DMARC について STORES での DMARC の取り組みについて 目標設定 取り組み概要 DMARC ポリシー none の設定と現状把握 SPF と DKIM の整備 none か…
1ヶ月前
記事のアイキャッチ画像
アプリの行動ログを活用して静かな不具合を検知する
STORES Product Blog
この記事は STORES Advent Calendar 2025 の 8 日目の記事です。 こんにちは、 STORES でレジアプリのモバイルオーダー周りの開発をしている yu です。 レジアプリでは、 Firebase Analytics を用いて以下のような粒度で行動ログを取得しています。 画面Aを開いた トグルをOFFにした ボタンBをタップした 画面Cが開いた しかし、アプリの行動ログはそのままだと「点」の集まりにしか見えません。様々な事業者さまの、様々な端末の行動ログが、テーブルの行としてバラバラに並んでいるだけです。 これは例えば、家族全員分の1週間分のレシートを机にバラまいてい…
1ヶ月前
記事のアイキャッチ画像
データ基盤のメタデータ拡充をDevinに任せる
STORES Product Blog
はじめに この記事は STORES Advent Calendar 2025 の10日目の記事です。 こんにちは、STORES でデータアナリストをしているyougaiです。 STORES ではデータの民主化を進めており、誰でも BigQuery や Metabase などのBIツールを触ることができます。また、最近では社内向けにデータ分析AIエージェントツールを提供しており、人・AIどちらにとっても、テーブル・カラムがなにを意味するのかを表すメタデータ(今回は主に BigQuery のdescription/カラム説明)の重要性が上がっています。 STORES にはデータエンジニアも在籍して…
1ヶ月前
記事のアイキャッチ画像
Gitの代わりにJujutsuを使い始めて1ヶ月
STORES Product Blog
この記事はSTORES Advent Calendar 2025の9日目の記事です。 こんにちは。Webエンジニアをしているotariidaeです。呪術廻戦は未履修です。 個人的にgitコマンドの代わりにJujutsu(jjコマンド)を使い始めてから1ヶ月ほどが経ちました。 この記事では実際に業務で毎日使ってみてどうだったかをふりかえってみようと思います。 Jujutsuとは Jujutsuは比較的新しいバージョン管理システムです。Gitをバックエンドとして利用できるため、既存のGitリポジトリで自分だけしれっと使い始められます。 # 既存リポジトリで使い始めるにはこのコマンド打つだけ jj …
1ヶ月前
記事のアイキャッチ画像
モノレポに `git subtree` で別リポジトリを統合・運用する
STORES Product Blog
はじめに この記事は STORES Advent Calendar 2025 の 8 日目の記事です。 こんにちは。ima1zumiです。私は以前 bongo というモノレポに、別途開発されていた cdp-dashboard というフロントエンドのリポジトリを統合しました。 リポジトリを統合する手段はいくつかありますが、今回は git subtree を採用しました。なぜ subtree だったのか、実際にどう運用したのかを紹介します。 背景 これまで別々のリポジトリとして管理されていた bongo(Rails / React Router)と cdp-dashboard(Nuxt)ですが、開…
1ヶ月前
記事のアイキャッチ画像
Fused Library は救いとなるか?
STORES Product Blog
はじめに こんにちは。 STORES 決済 の Android アプリ/SDK の開発をしている n-seki です。 もう年の瀬ですね!今回の記事ではFused Library プラグインを取り上げようと思います。 STORES 決済 の SDK Fused Library プラグインの詳細に入る前に STORES 決済 の話をさせてください。弊社ではアプリのみならずSDK(ライブラリ)も公開しています。 stores.fun このSDKを活用することでクレジットカード決済などのキャッシュレス決済の機能をかんたんにアプリに組み込むことができます。 技術的には、このライブラリは Maven R…
1ヶ月前
記事のアイキャッチ画像
Liquid Glass 対応が決済アプリへ与える影響について
STORES Product Blog
はじめに この記事は STORES Advent Calendar 2025 の 4 日目の記事です。 STORES 決済の iOS アプリ開発を担当している栗山(@kotetu)です。 今回の記事は、決済アプリチームで現在進行中の Liquid Glass 対応 がテーマです。 本記事では、Liquid Glass 対応の概要についてご紹介した上で、決済アプリチームで事前調査を行なった内容や、調査を進める中で見つかった不具合や現時点で判明している修正方法についてご紹介します。 Liquid Glass 対応とは? まずはじめに、Liquid Glass 対応の概要についてご紹介します。 iO…
1ヶ月前