株式会社モバイルファクトリー の技術ブログ

Perl で App Store Server Notification V2 の検証をする

こんにちは、エンジニアの id:kaoru-k_0106 です。 駅奪取のサブスク機能である「 駅奪取er定期券 」は、App Storeのサーバ通知の実装の際に App Store Server Notification V2 を用いました。 他の言語での Server Notification V2 の実装例は見つかりますが、Perl のものはありませんでした。 そこで、今回は Perl での検証部分の実装方法について触れようと思います。 App Store Server Notification V2

TypeORMのData Mapperパターンにおけるリレーションの型安全性を担保する

こんにちは!BC チームでエンジニアをしている id:d-kimuson です。 今回は外部リレーションに関して型安全性の乏しい TypeORM の Data Mapper パターンを独自のユーティリティ型を使ってちょっとマシにする方法を紹介します。 前提: TypeORM の外部リレーションについて TypeORM では ManyToMany 等のデコレータを使ってスキーマに Foreign Key を書くことができます。 // 公式ドキュメント

GitHub ActionsのSelf-hosted Runnerで複数設定のRunnerを使う

駅メモ!開発基盤チームの id:xztaityozx です!今回は CI/CD のお話です。 現在、駅メモ!チームでは Jenkins を使った CI/CD が構築されています。今回ここに GitHub Actions を加えることとなりました。チームでは段階的に GitHub Actions に移行していく計画です。 GitHub Actions を採用した理由としては、技術スタックの変化による需要の増加と Jenkins で抱えていた問題を解決するため

Perl5.38の変更点

こんにちは、エンジニアの id:mp0liiu です。 今年も7/2にPerlの最新安定バージョンである5.38がリリースされたので新機能や変更点についてまとめます。 5.38 はかなり変更点が多いですが、ニッチな機能に対する変更も多いので影響の大きそうな箇所だけ知りたい方は最初の方だけ読んで頂くといいと思います。 重要な変更点 class構文の追加 実験的機能としてですが、ついに

NestJS Way より TS Way を意識したバックエンド設計事例と Tips

こんにちは!BC チームでエンジニアをしている id:d-kimuson です。 最近、弊チームで構築した社内向け Web API のバックエンド設計をしたので事例として紹介しようと思います。 フレームワークとして NestJS を採用していますが、NestJS Way よりも TS Way を意識した設計をしており、このエントリの主題でもあるため、TS Backend の設計事例として読んでいただければと思います。

pnpm fetch で Docker キャッシュを活かす

pnpm には Docker でキャッシュを利用しやすくする fetch というコマンドが用意されています この記事では pnpm fetch を使ってキャッシュを利用しやすい Dockerfile を書いていく方法を紹介します Docker のマルチステージビルドとキャッシュ Docker にはマルチステージビルドという機能が存在し、単一の Docker イメージ下で実行するのではなく、ビルドやインストール, 本番実行等に

モバファクテックブログの記事管理を GitHub リポジトリに乗せてアドベントカレンダーを運用してみた

メリークリスマス 🎉 BC チームの id:d-kimuson です。アドベントカレンダーもとうとう最終日となりました! 今年のアドベントカレンダーでは、初日の記事は僕が執筆をしました この記事を書いていて、レビューをお願いしていたら以下のような投稿をもらいました 社内ではドキュメントサービスとして DocBase を使っているので、技術ブログの下書きを DocBase に書いていた

エンジニア以外の職種も勉強会を開こう

🎄モバイルファクトリー Advent Calendar 2022! 毎週土曜日は「良いモノ」を作る技術というテーマで、モバファクの非エンジニアが知見やTipsをお届けします! こんにちは。「駅メモ!」開発チームディレクターの id:Torch4083 です。 この記事では、 エンジニア以外の職種による勉強会を増やすメリット について改めて整理し、実際に開催する際に役立つ事例を添えてお伝え

react-scroll で、 iOS の特定バージョン以降でも正しくアニメーションさせたい

こんにちは、 id:yunagi_n です。 本日の記事は React のお話です。 React で良い感じにスクロールしてくれるライブラリで、有名なものに react-scroll というものがあります。 これは、 JS からライブラリのメソッドを呼び出すことで、もしくは組み込みコンポーネントを使うことで、アニメーションさせながら自動的にその場所に行ってくれて便利なのですが、 iOS Safari でのみ発

駅メモ!の地図をiOS16リリースに伴って負荷軽減した話

はじめに id:wgg00sh です。 この記事では、2022年9月にリリースされた iOSの新バージョン 16.0 に向けて、駅メモ!の地図クライアントで行った対応について紹介します。 駅メモ!の地図について 昨年度のアドベントカレンダー で紹介していますが、駅メモ!のアプリ内地図は mapbox-gl-js を使用しています tech.mobilefactory.jp iOS16で発生していた問題 2022年9月頃、正式にリリース

溜まっていく一方な技術的負債をどうにかしたい話

駅メモ!開発チームエンジニアの id:yokoi0803 です。 駅メモ!チームで運用している「駅メモ! - ステーションメモリーズ!-」は今年で 8 周年を迎えました。 スマートフォン向けゲームとしては長く続くサービスとなりましたが、長期運用に伴ってそのコードベースは大きく、複雑になり、保守性の面での課題が段々と無視できなくなってきています。 しかし課題だと認

2022年のVSCodeのPerl開発環境

こんにちは、エンジニアの id:mp0liiu です。 自分が所属しているチームでは現在もPerl製のプロダクトを運用しており、VSCode で Perl のコードを書いたり触ったりする機会が多いです。 Perl は開発環境が貧弱で他の言語と比べるとあまり開発体験はよくありませんが、それでも少しずつ便利な拡張機能が充実していってるので、この記事では自分が利用している便利な VSCode の

Perlコードの「複雑さ」を計測する

駅メモ!チームでエンジニアをしている id:stakHash です。 弊社の主力プロダクトの 1 つである駅メモ!は、今年で 8 周年を迎えました 🎉 スマートフォンゲームとしては息の長いサービスですが、現在でも日々様々な新機能の開発が進んでいます。 今後も今以上の速度でユーザの皆様に価値提供をしていくためには、分かりやすく変更しやすいコードベースを維持・改善

git submodule update 忘れを防止したい

駅メモ!チームエンジニアの id:yumlonne です。 この記事ではスーパープロジェクト(サブモジュールが登録されている親プロジェクト)側で git checkout や git pull を実行したときに、自動で git submodule update 相当の処理を実行してくれる便利な設定を紹介します。 git submodule については ドキュメント を参照してください。 記事中の各種動作は git version 2.38.1 で確認しています。
Git

エンタメ企業で勤める社員のエンタメの楽しみ方

🎄モバイルファクトリー Advent Calendar 2022!毎週土曜日は「良いモノ」を作る技術というテーマで、モバファクの非エンジニアが知見やTipsをお届けします! こんにちは。モバファクでマネージャーをしている ゆっぴぃ です。 タイトルにもある通り、エンタメ企業の社員である私が、どのようにエンタメを楽しんでいるのかをブログ記事として書いてみました。 これを書