Mirrativ tech blog

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

Mirrativ のアバター活用事例を紹介します!

こんにちは、バックエンドエンジニアの平松です。今回は Mirrativ でのアバター(エモモ)を活用した機能開発事例を紹介します。 Mirrativ のエモモ Mirrativ にはエモモと呼ばれるUnityで動く独自の3Dアバター機能が存在します。 エモモはユーザが自身の好…

【iOS】ゲームアプリの音声設計とミラティブの配信について

iOS

こんにちは。エンジニアのshogo4405です。ゲーム開発会社様より、iOSで画面収録またはミラティブで配信をすると、SEは鳴るが、BGMが消える場合がある。技術的な仕様について教えてくださいと連絡をいただく場合があります。 本エントリーでは、ミラティブの…

【iOS】Unity Framework とクラッシュ解析の取り組み

こんにちは、Mirrativ iOS エンジニアのちぎらです。クラッシュが発生して、その原因が分からないととてもかなしい気持ちになります。このブログでも以前から触れているように、Mirrativ のクライアントアプリではエモモなどの表示に Unity を使用しています…

Androidアプリをリアーキテクチャした話

Mirrativ Androidエンジニアのmorizoooです。今回はAndroidアプリをFluxにリアーキテクチャした話をします。 背景 Mirrativは2015年春頃に開発が始まり、もうすぐリリースから6周年を迎えようとしています。以前はアーキテクチャについてのルールが決まって…

【Unity】Mirrativのエモモ着せ替えの仕組みを解説する

こんにちは、Unityエンジニアの菅谷です。今回はMirrativのアバター(エモモ)の着せ替えについて解説します。Mirrativはゲーム配信のサービスではありますが、大きな特徴としてエモモがあります。エモモは2018年にリリースされ、ライブ配信のお供としてエモ…

ミラティブ おすすめ配信の仕組みについて解説

こんにちは、エンジニアのタテノです。ミラティブアプリを起動するとおすすめ配信の一覧が表示されます。 今回はこのおすすめ配信の仕組みについて解説しつつ、おすすめ配信の運用・改善を行う上でのポイントなどをまとめてみました。 システム面では機械学…

【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話

こんにちは ハタ です 今回はインフラ/基盤開発で導入している Envoy について紹介したいなと思っています 現在ミラティブでは Go移行 を進めているところで、 既存のWebアプリケーション(Perl で実装されてます)と、新たに Go で実装された Web アプリケー…

ミラティブサーバチームで行っている障害振り返りを紹介します!!

こんにちは、サーバエンジニアの夏(なつ)です。今回はミラティブのサーバチームで行っている障害振り返りを紹介したいと思います。 ミラティブのサーバチームではサービスに障害が発生した場合、その後、担当者を決めて障害の振り返りのたたき台を作成し、…

Mirrativのコラボ通話&配信のクライアント/サーバー間の仕組みを徹底解説

こんにちは。サーバーエンジニアのユンです。 今回Mirrativは「コラボ配信」という機能を開発しました。他の配信者(最大3人)と音声でつながり、視聴者とも同時にコミュニケーションを楽しむことができる機能です。 コラボ配信機能の紹介記事 | Mirrativ公…

【Unity】MirrativのギフトとUnityを活用したリッチな演出の紹介

こんにちは、Unityエンジニアの菅谷です。 今回はMirrativのギフト機能について紹介します。特にMirrativ内のアバター(エモモ)を利用したMirrativ特有のギフトについて解説します。 Mirrativのギフト ギフトは配信を盛り上げるための機能の一つで、視聴者…

【Android】FlipperのCustomPluginを作成してデバッグ効率を改善する

Mirrativ Androidエンジニアのmorizoooです。MirrativではデバッグツールとしてFlipperを使っています。Flipperはモバイルアプリデバッグのためのデスクトップアプリケーションで、アプリ内のデータの整形や可視化を行うことができます。また、Flipperはネッ…

CSS Variablesを使ってWeb LP制作のエンジニア作業時間を0にした話

Web

ミラティブではCSS Variablesを活用することで、イベントの魅力が伝わるWeb LPをエンジニアが作業することなく制作・運用できる体制を構築しています。 本記事ではここまでに至った過程も含めお伝えします!

【iOS】ミラティブにウィジェット機能を実装した際の開発Tips

こんにちは、iOS エンジニアの千吉良です。iOS14 にはウィジェット機能が新しく搭載*1されて、アプリ側で対応をすることで iOS 端末のホーム画面に独自のウィジェットを置けるようになりました。ミラティブでも、たまにはオシャレしたいよねということで昨年…

Goで開発した配信サーバーのメモリ使用量問題に向き合う

こんにちは。ストリーミングチームの松本です。 Mirrativのストリーミングチームは、低遅延配信や、通知ぼかしというような機能を追加するため、配信のorigin serverの前段にtranscoder serverというものを導入してきました。 tech.mirrativ.stream tech.mir…

【インフラ】Mirrativのデータベースを最小限の影響で切り替える運用の紹介

こんにちは、ミラティブのインフラを担当している清水です。 今回はミラティブのデータベースのマスタをどのようにフェイルオーバさせているかノウハウをお伝えしようかと思います。 ミラティブではデータベースにMySQLを利用しており、マスタ・スレーブ構成…

【Go】profefeでContinuous Profilingをやっていく話

こんにちは、サーバーエンジニアの牧野です。 今回はGoで開発しているアプリケーションでContinuous Profilingを実践するために導入した profefe を紹介したいと思います。 Continuous Profilingとは Continuous Profilingとは、ざっくり言うと本番環境で継…

Mirrativ の Android アプリで使っているライブラリを紹介する!

こんにちは、Androidエンジニアのもりぞーです。今回は Mirrativ の Android アプリで使っているライブラリをご紹介します。 こちらの記事のAndroid版になります! tech.mirrativ.stream

ミラティブのサーバサイドをGo + Clean Architectureに再設計した話

こんにちは、テックリードの夏です。 今年4月にCTOからテックリードに肩書が変わり、ガリガリコードを書くようになりました。 背景については、こちらをご覧ください。 www.wantedly.com 普段はプロダクト側の機能開発と、サーバ側の基盤開発を半々ぐらいの…

Mirrativ の iOS アプリで使っているライブラリを紹介する!

こんにちは、iOSエンジニアのちぎらです。今回は Mirrativ の iOS アプリで使っているライブラリをご紹介します。 Mirrativ ではどんなライブラリを使用していますか?と質問されることが時々あります。設定画面のライセンス情報に一覧で表示はされているも…

【Unity】MirrativのEmbedding Unityを更新した話: 実践 Unity as a Library

こんにちは皆様いかがお過ごしでしょうか、10ヶ月ぶりくらいのポストになります、よこてです。今日は「Mirrativ の Unity は進化してるんだぞ」という記事を書いていきます。 tech.mirrativ.stream Mirrativ は Swift/Kotlin によるネイティブアプリですが、…

MirrativのiOSアプリリリースを支える自動化技術

こん○○は。エンジニアのshogo4405です。普段は、ミラティブで開発しながら、余暇にOSSのHaishinKit*1をつくっています。 はじめに MirrativのiOSアプリは、git-flow で開発を行なっています。git-flow や日々の開発を運用する中で、次のような考慮すべきタイ…

【iOS】ReactorKitの導入とアプリのFlux化

こんにちは。 iOS エンジニアの千吉良(ちぎら)です。 今回は iOS アプリの設計をサポートするフレームワークとして ReactorKit を導入した話をします。 動機 Mirrativ の iOS アプリは元々「1ViewControllerあたり1Storyboard」という構成で作られていまし…

ミラティブ エンジニアチーム四季報(創刊号)

こんにちは Mirrativ CTOの夏です。 現在、ミラティブでは事業部単位でチームや目標を管理しており、エンジニアが所属するチームとして以下の6つがあります。今回はこのうち、エンジニアチームについて、2019年度に行ってきた取り組みの振り返りをしたいと思…

Androidアプリの技術的負債を返済する

Mirrativ Androidエンジニアのmorizoooです。 Mirrativのエンジニアは週4日をプロダクト開発に、週1日を開発体験の向上に時間を割いおり、CTOによる旗振りのもと、エンジニア主導で技術的負債の返済に取り組んでます。 今回は、Androidチームで取り組んだ技…

ミラティブにてクラロワAPIを利用したイベントをやってみた

こんにちわ。たてのです。最近ミラティブでクラッシュ・ロワイヤル(以降クラロワ)と連携したイベントを実施しました。このイベントをどのように実現したのかについてレポートします。 クラロワはAPIを公開しており、開発者サイトに登録すれば、ユーザ情報や…

【Unity】Mirrativのアバターがなんで動いているのか誰にもわからないので説明する

こんにちは、よこてです。Mirrativ のアバターは Unity で動いているという話をします。Mirrativ は iOS/Android の ライブ配信アプリですが、機能の一つとしてエモモ(アバター)があります。 これは Unity で動いているのですが Mirrativ そのものはネイテ…

【MPTCP】ライブ配信の通信安定化に向けて MultiPath TCP を試験導入している話

こんにちは ハタ です。 今回は Mirrativ の本番サーバの一部に試験導入している MultiPath TCP (MPTCP) について紹介させていただきたいなと思います。 MultiPath TCP といえば、iOSの Siri で利用していることなどで一時有名になりました 今回紹介するMPTC…

【保存版】スタートアップがユーザビリティテストを3日ですべて終わらす方法

こんにちは、分析チームの坂本です。 テックブログ3回めの登場です。 ミラティブの分析チームは、もちろんBigQueryや機械学習を用いた定量的なデータ分析も行いますが、ユーザーを理解するための定性分析も行う「分析チーム」であることを掲げています。 ※最…

reviewdog x perlcritic x Jenkins で最高の GitHub レビューライフ

reviewdog を GitHub の自動レビュー手法として、Danger と比較した上で選んだ理由と、Jenkins での reviewdog の使用にあたって役立つ Tips を紹介

日本最大級のプロダクトマネージャーコミュニティのオフ会#16 に潜入レポ

はじめまして。 ミラティブの坂本としふみです。 先日、日本最大級のプロダクトマネージャーコミュニティである pmjp のオフ会に行ってきました。 今回のブログではそのレポをお送りします。 pmjpとは いきなり 公式サイト からの引用なのですが、pmjpとは下…