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

YAPC::Japan::Online 2022にイベントTシャツスポンサーとして協賛します

こんにちは。エンジニアの id:kfly8 です。Japan Perl Associationの理事として、YAPCの運営もしているのですが、今回はモバイルファクトリーからのお知らせです。 モバイルファクトリーは、2022年3月4日(金), 3月5日(土)に開催されるYAPC::Japan::Online 2022にイベントTシャツスポンサーとして協賛いたします。イベントの詳細は公式サイトをご覧ください。 yapcjapan.org 今回、このTシャツ

肩の力を抜いて技術アドベントカレンダーを運用する

こんにちは。エンジニアの id:kfly8 です。 少し祝うには遅いですが、 技術アドベントカレンダー2021 無事完走しました🎉 ありがたいことに、ホットエントリーした記事もあり、編集担当としてはホッとしています(ホットエントリーだけに) tech.mobilefactory.jp tech.mobilefactory.jp tech.mobilefactory.jp tech.mobilefactory.jp 技術アドベントカレンダーの運用で感じた問題 6年ほど技術ア

NFTが再販売された際のクリエイターへの還元機能についての紹介

こんにちは、ブロックチェーンチームのエンジニア id:charines です。 この記事ではNFTにおける「ロイヤルティ」と呼ばれる機能について紹介します。 ロイヤルティとは? クリエイターがアート作品などをNFT化して販売された後、そのNFTが購入者によってマーケットプレイスに再度出品されることがあります。 しかし従来は再販売でいくら高値がついてもクリエイターが新

「メリハリのある TypeScript」で運用しながら型安全性を高めやすい TypeScript リプレースを行う

こんにちは、21 卒エンジニアの id:d-kimuson です。 モバイルファクトリーでは、最近のプロダクトではフロントエンドに TypeScript を採用していますが、僕がアサインされているプロダクトは歴史が長く JavaScript で書かれていて、今回 TypeScript へのリプレースを行いました。 既存プロダクトの TS リプレースではしっかり型付けすることは難しいので、型チェックオプションを

技術ブログが書ける開発をする

この記事は モバイルファクトリー Advent Calendar 2021 の25日目の記事です。 メリークリスマス🎉 エンジニアの id:kfly8 です。 技術ブログの「ネタがない」といったコメントや「この記事の課題がよくわからない」といった記事レビューをすることがあります。技術アドベントカレンダーの時期は、短期間に記事が集中するので、特に困らせているように感じます。 普段から

Jetpack ComposeでModifierの関数はどうして使えたり使えなかったりするのか

皆さん Jetpack Compose は触っていますか? Jetpack Compose といえば Modifier ですが、Modifier の関数は場所によって使えたり使えなかったりする場合があると思います。 どうなっているのでしょうか? 例えばこの画像のようなものを実装したいとします。 実装したいコンポーザブルの画像 方法はいくつかあると思いますが、今回は Modifier.align(Alignment.Center) を使いたいと思います

gitを少し快適に扱うためのワンライナー3選

こんにちは、20卒エンジニアのthe96です。 弊社では、リモート下においても勉強会が日頃から開催されています。 以前、 勉強会で同期のワンライナーのプロからawkを授けられ て以来、ワンライナーで業務を少し改善することの楽しさに目覚めました。 この記事では、そうして生まれた、 gitを使った開発が少し快適になるかもしれないワンライナー を3つ紹介します。 注

eval "$(hoge init)"するツールをたくさん入れてるシェルの起動速度をちょっと良くする

皆さんのシェルの起動速度はどうですか?シェル起動時に eval "$(hoge init)" を実行するようなツールをたくさん入れていると徐々に遅くなってきてつらいですよね そこで以下のように hoge init の出力をファイルに書き出しておいて、起動時にはそれを source する戦略をとると少しだけシェルの起動を高速化できて少しだけ嬉しいです。 # zshでの例 HOGE_RC_FILE=/path/to/hoge-rc.zsh [[ !

ワインの資格取るために進捗管理やら何やらをした話

はじめに 今年の夏に在宅環境(筋肉)の整備に成功した うっひょい です. tech.mobilefactory.jp 今年,ワインエキスパートの資格を取得しました. 勉強のために様々なツールを使って進捗管理したことについて書きます. なぜ受験したのか いろいろ理由はあります. お酒が好きでその中でワインが一番好きだから 美味しいワインを選べるようになりたいから 勉強というのを

1周回ってのポモドーロテクニック

ポモドーロテクニックを改めて実践したら結構良い感じだったので知見を共有します。 作業に集中できない、効率よく作業したい、そんな人におすすめです。 そもそもポモドーロテクニックとは 時間管理術の1つ。 集中の時間と短い休憩を繰り返して作業を効率よく進める目的で使われます。 達成しようとするタスクを選ぶ キッチンタイマーで25分を設定する タイマ

MySQLでデータベース内のGenerated Columnをリストアップする

MySQL 5.7.6 以降では Generated Column が使えます。 テーブル定義に計算式を記述すると計算結果をカラムとして扱えるようになる機能です。 駅メモ!でも最近利用しているGenerated Columnですが、データベース内で増えたGenerated Columnをリストアップしたくなったので方法を調べました。 GENERATION_EXPRESSION に値があるカラムリストを得る MySQL 5.7のリファレンス から例を流用します CR

アプリに地図を埋め込むのは簡単!

駅奪取エンジニアの id:dorapon2000 です。駅奪取では11月にゲーム内の地図のリプレースを行いました。地図そのもののスタイルも変わりましたが、地図の表示に使うライブラリも変更しています。今回は、アプリに地図を埋め込むだけであれば、ほんの少しのコードだけで実現できるということを紹介したいと思います。 記事の前半で地図表示の仕組みを簡単に説明して、

NestJS 製のプロジェクトのテストを@swc/jest で高速化する

NestJS は Node.js 向けのウェブフレームワークです。その特徴として Decorator を用いてクラスやメソッドにアノテーションをする仕組みを提供しています。 例えば API のエンドポイントを定義する場合は次のようなコードを実装します。 import { Controller , Get } from '@nestjs/common' ; @Controller ( 'cats' ) export class CatsController { @Get () findAll () : string { return 'This action returns all cats' ; } } 高速

CloudFront + API Gatewayの構成でCloudFront-Is-Mobile-Viewerなどのヘッダーを参照する時の注意点

はじめに CloudFrontからオリジンへのリクエスト時に特定のHTTPヘッダーを含めるには、オリジンリクエストポリシーの設定が必要です。 docs.aws.amazon.com CloudFrontを使用すると一部HTTPヘッダーが書き換えられ、特に User-Agentヘッダー は Amazon CloudFront になってしまい、オリジンサーバーでUser-Agentを利用してデバイスの判定ができなくなります。 ただし、オリジンリクエストポリ

Mapbox GL JS で大量のデータを可視化する

はじめに 駅メモ!チームでエンジニアをしている id:wgg00sh です. 駅メモ!では2021年11月に「未取得の駅を地図で確認できる機能」をリリースしました. 今回はこの機能を実現するにあたって発生した問題の一例と,その問題をどのように解決したかについて,使用した地図ライブラリである Mapbox GL JS の使い方と合わせて紹介していきます 地図上に全ての駅を表示する