Mirrativ Tech Blog

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

ミラティブの開発組織をアプデしたよ Summer 2022

みなさま、今年も夏(summer)がやってきました。よこて @n0mimono です。今回はミラティブのプロダクト開発組織を更新したよという話をします。ついでにこれまでの歴史と今後の展望も紹介します。 前回記事はこちら tech.mirrativ.stream プロダクト開発と…

Jetpack Composeを使った複雑なアニメーション事例

ミラティブのAndroidエンジニアのmorizoooです。 MirrativのAndroidアプリでは、新規で作る画面には積極的にJetpack Composeを活用しています。 tech.mirrativ.stream Mirrativは、多くのユーザーがゲームや雑談などの配信をしており、配信を盛り上げるため…

テスト工程の可視化や自動化に向けた取り組みのご紹介

QA

こんにちは、エンジニアの千吉良(ちぎら)@_naru_jpn です。ここ最近 QA に関して考える機会があり、Systematic Software Testing という本を読んでいたところ、色々と刺激を受けるところがありました。計画書の作成やリスク管理などテストの実施以外の領域…

GitHub Actionsのセルフホストランナーを使ってJenkinsをサクッと叩けるようにする

7月からミラティブにUnityエンジニアとして入社した森田です。 弊社ではUnityのCIとしてJenkinsを利用していますが、GitHub Actionsのセルフホストランナーと連携させることで、JenkinsはそのままでGitHubのWeb画面からジョブを実行できるようにしてみたので…

SwiftFormatを導入してコード記法を統一化

iOS

ミラティブでiOS開発をしている福山(@fokotate)です。 今回はSwiftFormatをMirrativのiOSプロジェクト(約1500のSwiftファイル)へ導入したときのことを話します。 導入にあたって 私は当初、SwiftFormatについてよく知らなかったため導入にはあまり乗り気では…

イヤホン配信を支える音のプログラミング〜Accelerate編〜

iOS

こんにちは。shogo4405です。本エントリーは、iOSエンジニア向けにイヤホン配信を支える音のプログラミング入門 - Mirrativ Tech BlogのiOS実装を紹介したいとおもいます。 本稿では、音声信号処理の実装手法としてAppleが提供するAccelerateフレームワーク…

ミラティブを退職します!

今日が最終出社、明日から有休消化期間だー!!!!うおおおおおおおおおおおお!!!!! 2019年の春から3年間、ライブ配信サービス「Mirrativ」のバックエンドを書いてきた stakme です。この夏で卒業です!お疲れさま〜!!!!! 頑張った、やりきった、…

Swift Concurrencyを利用した表示再開するUIViewControllerの実装

iOS

こんにちは、クライアントエンジニアの竹澤(@to4iki)です。 iOSチームでは下記記事にある通り、チーム内でSwift Concurrencyに関してキャッチアップと知見の共有会を行っています。 本ブログでは、勉強会を通し既存実装をSwift Concurrencyを利用することで…

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月でサー…