Mirrativ Tech Blog

株式会社ミラティブの開発者(バックエンド,iOS,Android,Unity,機械学習,インフラ, etc.)によるブログです

Cloud Buildによる内部向けGoバイナリのリリース自動化

インフラ・ストリーミングチームの近藤 (id:udzura) です。 ミラティブのインフラ運用では、監視・自動化などさまざまなツールにGo言語を利用しています。ツールはコマンドラインツールとして提供して、バージョンごとにリリースを作成して各環境にデプロイ…

Apple のサンプルプロジェクトから Swift Concurrency 移行のエッセンスを学ぶ

iOS

こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。Apple が Swift Concurrency への移行をサポートするためのサンプルプロジェクト Updating an App to Use Swift Concurrency を公開しているのをご存知でしょうか。 このプロジェクトには、D…

SwiftGenが生成する1万行越えSwiftファイルでXcodeがフリーズするのを防ぐ

iOS

4月にミラティブに入社したiOS開発者の福山 (@fokotate)です。ミラティブにはゲーム好きな人が多いためか、積みゲー消化が急速に進んでいます。 今回は珍しいケースかと思いますが、他社のiOSプロジェクトでも起こりえる問題に対処することができたので共有…

アプリ開発を支える10個のDangerレシピ

こんにちわ。shogo4405です。普段は、ミラティブで開発しながら、余暇にOSSのHaishinKit*1をつくっています。本エントリーは普段UI開発を行なっているクライアントエンジニア向けに、ミラティブで導入しているDangerの実践レシピを公開いたします。 *1:https…

【Android】Jetpack Composeの活用法について

Mirrativ Androidエンジニアのmorizoooです。 MirrativのAndroidアプリでは、Jetpack Composeの1.0がリリースされた2021年7月から導入をはじめています。 今回の記事では、導入に至った経緯と、ミラティブで採用しているFluxアーキテクチャの中でJetpack Com…

Mirrativでのビジュアルスクリプティング(Bolt)活用事例とテクニック

こんにちは、ミラティブUnityエンジニアの菅谷です。 ミラティブでは先日Mirrativアプリ内で遊べるライブゲーム「エモモランあーるぴーじー」をリリースしました。 運営配信に遊びにきてくださってありがとうございました✨あのゲームに、新たなシリーズが──⁉…

Unityの描画パイプラインをURPに移行しました

こんにちは、ミラティブUnityエンジニアの牧野です。 ミラティブアプリの3Dアバター(エモモ)の描画にはUnityを利用しており、その描画パイプラインをURPに移行した内容を紹介していきます。 はじめに URP (Universal Render Pipeline) とは以下のような特…

ミラティブのUnityエンジニアになったら学べること

みなさんこんにちは。ミラティブUnityエンジニアの菅谷です。 私がミラティブに来てからちょうど2年が経ちました。 以前はソーシャルゲームの会社でゲームの運営や新規開発を行っていました。リードエンジニアとして広くコミットすることで、特にクライアン…

Android12でのピクチャー イン ピクチャーの改善をR&Dしました

こんにちは。エンジニアのshogo4405です。普段はAndroidの開発を行いながらときどきiOSの開発を行なっています。本稿では、Android12で改善したピクチャー イン ピクチャーをMirrativに導入できないか調査した内容を紹介していきます。

社内勉強会「Swiftの並行処理についてのセッションを見る会」を開催しました

iOS

こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。Swift 5.5 で async/await が導入されて久しいですが、皆さま導入はされているでしょうか。プロダクトに導入して活用できればいいですが、すぐには導入できないプロダクトも多くあると思います…

ミラティブのUnityアセット運用とそれを支えるCI/CD

こんにちは、ミラティブUnityエンジニアの菅谷です。 ミラティブでは週に一回以上のペースでエモモのイベントを行っており、1つのイベントごとに約40個の衣装やエモモアイテムを追加しています。 エモモアイテムの多くはUnityを活用して作られており、アセッ…

Mirrativ Engineers & Values

はじめに 「ミラティブのエンジニアってどんなことが求められるんですか?」 本ドキュメントは、多くの方に聞かれるこの問いに答えるものになります。 Software Engineer MirrativにはiOSアプリからライブ配信基盤まで広い技術領域が存在しますが、ミラティ…

ミラティブの開発チーム編成をアプデしたよ Feb 2022

みなさま、おはようございます。よこて @n0mimono です。令和になってなんと4年目に入りました。 今回はミラティブのプロダクト開発チームを更新したよ、という話をします。ついでに周辺の取り組みも紹介してみます。 前回記事はこちら tech.mirrativ.stream…

接続が途切れないストリーミングサーバの無停止アップデートを実装してみました

こんにちは ハタです。 最近 SO_REUSEADDR / SO_REUSEPORT を使ったストリーミング配信サーバの無停止アップデート(Hot Deploy)を実装してみたので紹介したいなと思います ことの経緯 HTTPサーバによる Hot Deploy の仕組み ストリーミング配信サーバへの応…

【北の国から】休学を決めてからミラティブで1年間インターンするまでを振り返る

初めまして!クライアントエンジニアのいっちーです。 今年の4月からインターンとして入社し、iOSチームの一員としてMirrativの開発業務を行ってきました。 普通に学生エンジニアをしていた自分にとって、ミラティブでの開発は新鮮なことばかりでした。 本記…

Docker + Mac どうする問題

Mirrativバックエンドのエンジニア @stakme です! みなさんMacでDockerしてますか?今回は私から、Mac+Docker開発についての文章をお届けします。Docker Desktop for Macの有料化など、最近話題の多いところですよね。 ただし法的問題を含みますので、記事…

ミラティブでの配信画質改善の取り組み

ミラティブの配信の画質を向上させるために行った対応の概要をご紹介します。

Unityチームで出社してわかりあい会をしたお話

こんにちは、ミラティブUnityエンジニアの菅谷です。 先日、ミラティブには新たなUnityエンジニアが加わったためUnityチームでオフィスに集まり、わかりあい会をしてみました。 ミラティブはリモートで業務を行っており、来年もリモート体制を続けることを宣…

イヤホン配信を支える音のプログラミング入門

こんにちわ。shogo4405です。本エントリーは普段UI開発を行なっているクライアントエンジニア向けに、Mirrativのイヤホン配信を支えている音のプログラムの基礎を紹介していきたいといます。 音のプログラミングの概要を掴んでもらい、より詳しい部分につい…

配信コメントバー 〜 PiP 描画パフォーマンスとの向き合い方

iOS

こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。先日 配信コメントバー 〜 iOS15 で実現する新しい PiP 体験 という記事を公開しました。ミラティブアプリ上では Unity を利用して 3D のアバターであるエモモを描画しており、配信コメントバ…

配信コメントバー 〜 iOS15 で実現する新しい PiP 体験

iOS

こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。先日ミラティブの iOS アプリバージョン 9.38.0 にて「配信コメントバー」機能をリリースしました。この機能は iOS15 から利用可能になった PiP に関する技術を活用したもので、ミラティブ以外…

ミラティブの社内勉強会の紹介!!

こんにちはLivePlatformチーム所属の_mkazutakaです。 ミラティブでは、週1回木曜日にエンジニア向けの社内勉強会を開催しています。社内勉強会にはバックエンドエンジニアのみならず、iOSエンジニア、ビジネスサイドからの参加があります。 今年の8月でサー…

Redash SaaSサービスから自前ホストへの移行した話

概要 ミラティブではデータ分析用ツールとしてRedashのSaaS(redash.io)を使用している。(Lookerと併用) 2021年11月末で redash.io のサービスが終了する。そのため、自前のGCP環境にRedashを移行した。 Redash謹製の移行ツールが提供されているが、いくつか…

ゲームエンジニアから見たミラティブ

はじめに こんにちは、Unityエンジニアのおはぎ @ohayo_ohayo_ です。 前職ではスマホゲームの開発をしており、今年の5月にジョインして約半年が経ちました。 現在はMirrativ内でエモモというアバター部分の開発をしています。 スマホゲーム開発とは結構違う…

【iOS】SwiftLint のバグに遭遇したのでコントリビュートしてみたら学びを得た

iOS

こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。 ミラティブの iOS アプリでは SwiftLint を活用して開発を行なっています。先日アプリの開発中に、SwiftLint 0.44.0 で、あるルールについての autocorrect の結果が想定外のものになりアプリ…

ISUCON11本選のしくじりを振り返っていく

こんにちは、バックエンドエンジニアのmakinoです。ISUCON11本選から1ヶ月半が経過し、2年連続失格の傷が癒えてきたので振り返りブログを書いていこうと思います。 ISUCON11本選について 本選の題材は大学の履修登録サイトでした。 すでに作問陣による本選問…

AndroidチームのIDE警告ゼロへの取り組み

こんにちは。エンジニアのshogo4405です。普段は、ミラティブで開発しながら、余暇にOSSのHaishinKit*1*2をつくっています。本稿では、Androidチームで取り組んだAndroid Studioから出てくる警告対応ゼロの仕組み化について紹介します。 *1:https://github.c…

ミラティブのプロダクト開発体制と組織を解説する: The Mirrativ Model, Autumn 2021

はじめに みなさまお久しぶりです、前回記事を書いたのが1年前というよこて @n0mimono です。今回はミラティブのプロダクト開発の体制的な話を書いてみようと思います。 ミラティブではMirrativというサービスを作り、運営していますがこれをどういう体制で…

iOSDC Japan 2021 にエンジニア2名が登壇します!!

こんにちは、クライアントエンジニアの竹澤(@to4iki)です。 先日のApple Eventを見てポートがUSB Type-Cとなった新しい iPad mini が欲しくなりました。 さて、今年も毎年恒例のiOSDC Japanの開催時期となりましたね! 昨年と同様にオンラインで開催され、事…

Mirrativのバックエンド開発におけるMySQLとの向き合い方

こんにちは、バックエンドエンジニアのmakinoです。先日、LINE LIVEさんとの共催イベントにて「Mirrativを支えるバックエンド開発 ~MySQLとの向き合い方~」というテーマでLTをしました。 connpass.com speakerdeck.com 今回はLTの内容から一部抜粋して、Mirr…