株式会社スタメン の技術ブログ

【Stripe】サブスクリプションの支払いタイミングが特定日時においてズレる問題について(月末版)

スタメンでエンジニアをしている 田中 です。 今回は決済プラットフォームであるStripeのサブスクリプションを扱う際に遭遇した問題について、発生した事象とその原因、および対策方法についてご紹介します。 なお、本記事ではStripeのサブスクリプションについての詳細は説明いたしません。また、対策方法についてはRubyのコードで記載します。RubyでStripeのサブスク

Microsoft Teams連携機能を実装する

目次 はじめに 「Incoming Webhook」を使用したMicrosoft Teams (以下、Teams) 側の設定 Railsアプリケーションの実装 おわりに はじめに こんにちは、スタメンでエンジニアをしている ワカゾノ です。 TUNAG では、タイムラインへの投稿が作成される際に、Teamsへ同様の内容のメッセージカードが作成、投稿される「Teams連携機能」を実装しています。 Teamsとは Teamsは、Microsoft社が提供

Redux Style Guide に学ぶ

はじめに こんにちは、スタメンでエンジニアをしているミツモトです。 スタメンでは、Web アプリのクライアント側の状態管理に Redux というライブラリを採用しています。 Redux によって API のレスポンスやローカルで扱う値を自由に状態管理できますが、ディレクトリ構成・処理の定義場所など、全体の設計は実装者に委ねられます。 いくつかのプロジェクトで Redux を

rbs_rails & steep で型のある Rails 開発を体験しよう

こんにちは。スタメンの河井です。 RubyKaigi Takeout 2020 が楽しみですね。 Ruby 3.0 から型定義 & 型検査ができるようになると言われていますが、今の段階でもそれに関連した gem は公開されています。 今回は型のある Rails 開発を体験してみようということで、RBS・rbs_rails・Steep の3つの gem を紹介しようと思います。 RBS とは RBS とは、 Ruby プログラムの構造を記述するため

モバイルアプリとデザインガイドライン

はじめに スタメン、プロダクト部で主にモバイルアプリ開発(Android/iOS)を行っている @sokume です。 先月に弊社のブログで プロダクト部の個人モバイルアプリたち という、記事が投稿されましたがお読みいただけましたでしょうか? プロダクト部メンバーが個人で作っているモバイルアプリの一部を取り上げた記事ですが、みなさんの中にも個人でモバイルアプリを作

ConstraintLayout2.0で追加されるFlowを使ってタグを実装する

みなさんこんにちは! スタメン プロダクト部 モバイルアプリチームで iOS と Android の アプリ開発 を行っているカーキです。 先月の29日に ConstraintLayout2.0-rc1 がリリースされましたね! リリースノート には「安定版前の最後のリリース」とあるので、ConstraintLayout2.0安定版のリリースもかなり近いのではないかと思います。楽しみですね! そこで今回のブログではConstraintL

システム思考でアラート運用に関する問題を考える

スタメンの松谷( @uuushiro )です。この記事ではアプリケーションのアラート(エラー通知)運用に関する問題を「システム思考」で構造的に捉え、どのように改善していこうとしているのか、ということを紹介します。「システム思考」についても記事内で簡単に説明を入れています。 システム思考とは? 複数の要素が相互に作用することで、ある機能を構成し、特定の結果

プロダクト部の個人モバイルアプリたち

目次 概要 はじめに 各サービスの紹介 まとめ 概要 こんにちは。スタメンでエンジニアをしている梅村です。今回は、スタメンのプロダクト部のエンジニアが個人開発しているモバイルアプリについての紹介を行っていこうと思います。 はじめに スタメンのプロダクト部のエンジニアは、日々の自己研鑽に励んでいる人が多いです。社外の勉強会に参加している人や勉強

Star Code: プロダクトチームの VISION (目指している姿) と VALUE (価値観や行動指針) を改定しました

こんにちは、スタメン VPoE(開発部門の責任者) の小林です。 2020年7月に、スタメンのプロダクトを作っているプロダクト部の全員で合宿を行い、Star Code の改定を行いました。今回は改定した Star Code とその背景をご紹介したいと思います。 なお、はじめて Star Code を決めた 2019年の合宿の記事 、スタメンのプロダクト部が作っている 『TUNAG』の技術的な解説 と合わせると

Dynamic Reducerの実装方法

はじめまして。株式会社スタメンでフロントエンドエンジニアをしている 永井 です。週5で筋トレをしています。 弊社のプロダクトである TUNAG では、フロントエンドをReact、Redux、TypeScript、サーバーサイドを Ruby on Rails で実装しています。 今回の記事ではReduxのReducerを動的に読み込ませる実装方法について書きたいと思います。 前提として、React、Reduxをある程度理解し

iOSアプリ開発においてSwiftのErrorを巧く活用するには

Error こんにちは。スタメンで iOS アプリを開発している @temoki です。 モバイル アプリ開発 に限らずソフトウェアの実装においては必ずエラーハンドリングが必要になりますよね。 iOS アプリを Swift で開発する場合、回復可能なエラーのハンドリングについては次のように do-catch ステートメント を用いることが基本となっています *1 。 do { // `func functionThatCanCauseError() throw

【Ruby on Rails】Stripeのサブスクリプションで試したことをまとめてみた

スタメンでエンジニアをしている田中です。 今回は決済プラットフォームであるStripeの サブスクリプション について、 Ruby で実際にコードを書きながら調査をしたので、そのまとめを記述していこうと思います。 目次 Stripeの サブスクリプション について 準備 サブスクリプション の生成 テスト用のクレジットカード サブスクリプション の開始時刻の設定 トライアル

Utility Typesで楽に、Type Transformしよう

こんにちは。フロントエンドエンジニアの 渡邉 です。 普段ReactとTypeScriptを書いています。 今回はTypeScriptのUtility Typesについて紹介します。 記事のタイトルが某 大柴さんみたいになっていますが、この記事を読んだ方の力に少しでもなれたら幸いです。 目次 Utility Types よく使うUtility Types その他Utility Types 最後に Utility Types 公式ドキュメント Utility Typesは楽にType Transformす

Amazon Athenaでのパフォーマンスログ分析

Amazon Kinesis Firehose 概要 こんにちは。スタメンで開発者をしている津田です。今回は、 Amazon Athena を利用しアプリケーションのリク エス ト処理時間をセグメント別に計測することで、パフォーマンスの低下を検知しやすくしたことについて紹介します。 動機 Webアプリケーションのパフォーマンスについて、以前は主に、 ロードバランサー の平均処理時間を参照していま

こんな時こそ社内ネットワークを見直そう

こんにちは、モバイルアプリグループでモバイルアプリの開発をしている @sokume です。 実は日々の開発の傍ら、社内の情シス担当として社内のネットワーク環境の検討や改善に取り組んでいます。 今年の4月〜6月までの間、弊社も新型コロナウィルスに関しての緊急事態宣言にあわせて、全社リモートワークを推奨する期間となっていました。 5月末に緊急事態宣言が解