morizo999のブックマーク (119)

  • iOS16.1 以上でピクチャ・イン・ピクチャが CPU を異常に消費する問題の応急処置 - Mirrativ Tech Blog

    こんにちは、エンジニアのちぎら @_naru_jpn です。ミラティブの iOS アプリでは 配信コメントバー 機能の実現のためにピクチャ・イン・ピクチャを活用しています。ピクチャ・イン・ピクチャは iOS16.1 以上の端末において、特定のシチュエーション *1 で異常に CPU リソースを消費することが知られています。コードの調整によってこの現象が抑制できることが分かり、ミラティブの iOS アプリではバージョン 10.0.1 で応急処置を行ったのですが、今回はその詳細とトレードオフについて解説します。 加えて、この問題は既に Apple へバグレポートとして報告済みですが、Apple への事象の説明のために問題を簡単に再現できるプロジェクトを作成したので、そちらも併せてご紹介しています。 ピクチャ・イン・ピクチャが CPU を異常に消費する問題 iOS 16.1 以上の端末でピクチャ

    iOS16.1 以上でピクチャ・イン・ピクチャが CPU を異常に消費する問題の応急処置 - Mirrativ Tech Blog
    morizo999
    morizo999 2023/02/14
  • 【Android】Jetpack ComposeでCanvasを使って凝ったUIを表現しよう - Mirrativ Tech Blog

    こんにちは Androidエンジニアのなかむらです。 ミラティブでリリースされた視聴ミッションの実装に関してお話ししていこうと思います。 視聴ミッションは視聴開始直後からメーターが進み始めるという機能です。 このメーターをかっこよく表現したいよねということでデザイナーやPMと悩んだ末に生まれたUIがコチラ めちゃめちゃかっこいい。 でもこのUI組むの結構大変そうだなー。。。 どうやって組もうかなぁ。。。 色々と悩みました。 きっと自分以外にもそんな悩みを抱えている方が他にもいるはず(多分)ということで記事では、そんな悩めるAndroidエンジニアに向けて実装方法を解説していきたいと思います。 このメーター部分のUIについて解説します ちなみに、最初に言っておくと実装自体はとてもシンプルです。 何も難しいことはありません。 では何に苦戦したのか。 それはこのUIの作り方をどう調べたらいいの

    【Android】Jetpack ComposeでCanvasを使って凝ったUIを表現しよう - Mirrativ Tech Blog
    morizo999
    morizo999 2023/02/14
  • 開発組織にはじめてのスクラムを導入する - Mirrativ Tech Blog

    こんにちは、エンジニアのちぎら @_naru_jpn です。ミラティブでは開発プロセス改善の一環として、スクラムフレームワークを試験的にひとつの開発チームに導入し、開発を行っています。該当する開発チームでは1週間のタイムボックスでスプリントをきり、導入開始から12スプリント(3ヶ月弱)をこなしてきました。チームのスクラム開発にも慣れが見えはじめ、当初想定していた開発プロセスの改善も実感が湧くようになってきました。今回は、スクラム導入の背景や内容、今後の展望などをご紹介します。 スクラム導入前の開発体制とモチベーション スクラム導入前の開発イメージ スクラム導入前の開発の流れは上図のようです。仕様書と工数の概算をもとにしてガントチャートにスケジュールがひかれ、フェーズごとに開発を進めていきます。もちろんすべて天下り式に開発を進めている訳ではなく、デザインがある程度できた時点でエンジニアも含め

    開発組織にはじめてのスクラムを導入する - Mirrativ Tech Blog
    morizo999
    morizo999 2022/12/23
  • チーム開発だからできるビギナー向け最強学習術 - Mirrativ Tech Blog

    ミラティブでAndroidエンジニアのインターンをしています 中脇です。 個人開発でiOSを1年間した後、インターンでAndroidを1年半やっています。そこでチーム開発だからこそできる最速学習術があると思い、ブログを書いてみることにしました。 もったいぶらずに書くと、毎週金曜日に「コード共有会」というものを開き、新しく書いたコードを共有したり、お互いのコードを指摘したり、先輩エンジニアに指摘されたところを共有しあっています。 毎週コード共有会で集まり議論しています そもそもこのコード共有会はAndroid歴1,2年目の私たちビギナーが自発的にやりたいと言って生まれたもの。ビギナーが中心となって共有会を進めているからこそ、インプットからアウトプットまですることができ、しっかりとした理解に持っていくことができていると思います。 ビギナーは知らないことだらけ 1人で開発をしていた時、何もかも自

    チーム開発だからできるビギナー向け最強学習術 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/12/09
  • Androidエンジニアとしてmikanに入社し、あっという間に2年が過ぎちゃいました。 - mikan Developers' Blog

    はじめに こちらはmikanのアドベントカレンダー 4日目の記事になります! 1つ前の3日目の記事は@zukkeyのGASとHARMOSとSlackではじめる勤怠Botでした!エンジニア問わず誰にでも自動化の一歩を踏み出させてくれる、頑張ってやってみようかな…!!と思わせてくれるそんな記事となっております! こんにちは!mikanでAndroidエンジニアをしている、gumiojiです! twitter.com 今年も残すこと1ヶ月を切ってしまいました….!! 約2年ほど前に僕はmikanに転職してきました。今となってはすごく懐かしいですね。 当時の気持ちを綴った入社エントリーがあるので、そもそもなんで~を知りたい方はこちらへ note.com この記事では、入社してもう2年も経ったのか…と思ったので、大まかに自身の振り返りをしながら、mikan Androidの変化というところを紹介して

    Androidエンジニアとしてmikanに入社し、あっという間に2年が過ぎちゃいました。 - mikan Developers' Blog
    morizo999
    morizo999 2022/12/05
  • マルチモジュールでのリソース整理 - Mirrativ Tech Blog

    みなさん、こんにちは!2022年8月よりAndroidエンジニアとしてインターン中の kitakkun です。 現在MirrativのAndroidチームでは、アプリケーションの品質向上を目指してマルチモジュールの導入を進めています。 Mirrativでは、元々あったmirrorman(当時の開発コードネーム)という巨大なモノリスのモジュールから、新規開発部分をfeatureモジュールに切り出して開発をしています。 モノリスモジュールからfeatureモジュールを分離 元々モノリス部分だったmirrormanが巨大で、mirrormanにあるクラスをfeatureモジュールで使いたいケースがあり、未だmirrormanへの参照が残っている状態です。 なるべくmirrormanへの参照をなくすために、特定のfeatureモジュールでしか使われていないファイルをmirrormanから移動してい

    マルチモジュールでのリソース整理 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/11/02
  • Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog

    こんにちは ハタ です。 Mirrativのインフラ内で実際に開発・運用している内製のRedisサーバについてお話したいなと思っています。 前回の記事 は、今回紹介する内製Redisサーバで起きたメモリリーク対策に関するお話しとなっておりますので、もし未読であればあわせて読んでいただければと思います。 今回はなぜ Redis サーバを内製することにしたのかの経緯や実装についての簡単な紹介が出来たらなと思っています Redis 導入の経緯 課題感: 揮発しないでほしい 課題感: 生存時間が短いデータを保持したい 課題感: 日次データをなんとかしたい 候補 Redis Cluster のヨシアシ: slot 管理 Dynomite のヨシアシ: sharding/replication radisha = Raft + Redis + HA Raft クラスタ コマンドとデータストア レプリケ

    Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/11/01
  • DroidKaigi2022に若手3人が参加してきました - Mirrativ Tech Blog

    左から久賀、北川、中脇 こんにちは。Androidエンジニアの久賀と、インターン生の北川、中脇です。 2022年10月5日(水)〜7日(金)に開催された「DroidKaigi 2022」にミラティブのスポンサー枠で行ってきました。 2020年は中止、2021年はオンライン開催なので、2年ぶりの対面での開催となりました。僕ら3人はこのようなイベントに出席することが初めてなので、ワクワクしながら参加しました。 早めに東京ドームシティ会場に着いたのですが、既にたくさんの人がいて交流していたり、ブースの人と話し合っていたりしました。これが国内最大規模のAndroidイベントなのかと、今まで見たことのない景色だったのでびっくりしました。 DroidKaigiで色々な方と話し、たくさん学んできました。ではどう感じたかを書いていこうと思います。 公式アプリのコントリビュート まず、DroidKaigiの

    DroidKaigi2022に若手3人が参加してきました - Mirrativ Tech Blog
    morizo999
    morizo999 2022/10/27
  • ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog

    みなさまこんにちは。@n0mimonoとshirakawaです。今日はミラティブの中で行われている社内勉強について紹介させていただきます。社外に公開しながら社内にも宣伝をする一石二鳥の作戦です。 ミラティブではエンジニアが自身やメンバーのために勉強会や交流会を開くことを奨励しています。 tech.mirrativ.stream その一つとして、毎週木曜日に行われている勉強会を紹介します。 勉強会 以下、社内文書からの転載になります。 なぜやるのか 新しい知識の獲得・技術レベルの向上のため ディスカッションを通してチームビルディング やらないこと 事前資料準備等: 参加者に負担がかかるため どうやるのか を決めます 参加者で読みたかった・読んでみたかったを出す 投票によって選ぶ 週一回、45分集まる曜日・時間(カレンダーは1時間抑える)を決めます 集まった人でを順番に音読していきます

    ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/10/17
  • 【変化・成長・課題】1年間のミラティブのインターンを振り返る - Mirrativ Tech Blog

    こんにちは。気づいたらミラティブに入って1年が経ってました。早いものですね。ブログを書いてて気づいたんですが、1年前の自分と大きく変わっていたことを再認識しました。プログラミング能力といった技術的なことから、仕事・仲間に対する意識といった内面的なことまで、たくさん変化がありました。そんなことをつらつら書いていきます。 目次 目次 自己紹介 ミラティブでの活動内容・働き方 生まれて初めて見たでっかいコード 毎週の勉強会 場所に囚われない働き方ができる 開発エピソード 1年前の自分と比較して We are hiring! 自己紹介 「お前誰やねん」と思われないように少し自己紹介。アプリ開発を始めたのは大学2年生の時。1年間くらい個人でスマホアプリを作ってました。どんなアプリかというと、同じ大学の友達同士で話し合えるTwitterのようなアプリです。オンライン授業で友達が作りづらい状況にあるため

    【変化・成長・課題】1年間のミラティブのインターンを振り返る - Mirrativ Tech Blog
    morizo999
    morizo999 2022/10/13
  • 大規模なAndroidアプリにおけるマルチモジュールの導入事例 - Mirrativ Tech Blog

    ミラティブのAndroidエンジニアの chocomelon です。 MirrativのAndroidアプリでは、Androidアプリケーションの内部品質向上のために開発で以下を取り入れています。 データフローの単方向化(Flux導入) Viewからのロジック切り離し(Flux、Jetpack Compose導入など) 責務分割、依存方向の強制(Flux、マルチモジュール導入など) 今回の記事では特にマルチモジュールについてお話します。 MirrativのAndroidアプリは、配信/視聴機能、アバター機能、リッチなアニメーションなど複雑な要素を一つの画面で表現することが多々あります。 これらを考えなしに実装すると、可読性の悪化を招いたり、不具合が発生しやすく調査しづらいコードにしてしまいがちです。 複雑なアニメーションやアバター機能などを持つ配信画面 ミラティブでは多くのメンバーがネイテ

    大規模なAndroidアプリにおけるマルチモジュールの導入事例 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/10/04
  • Mirrativ Tech Community & Activity Policy - Mirrativ Tech Blog

    はじめに 「ミラティブのエンジニアの発信の文化やポリシーってどうなってるんですか?」 ドキュメントは、多くの方に聞かれるこの問いに答えるものになります。 好きでつながり、自分の物語(ナラティブ)が生まれる居場所 ミラティブはエンジニア技術に対する強い思いによって成り立つチームです。ミラティブのエンジニアのミッションは、ミラティブというチーム・プロダクト・技術に貢献することであります。 一方、私達はナラティブが生まれるコミュニティの会社であり、わかりあおうとし続けるために、エンジニアチームのビジョンとして、ミラティブをテックな組織としてブランディングすることを掲げます。 すなわち、ミラティブのエンジニアは社外に対して積極的に発信し、イベントに参加し、OSSコミュニティに強く貢献するものであります。当然、社内においてもエンジニア同士が積極的に交流し、勉強会を開催し、互いの健やかな成長を促す

    Mirrativ Tech Community & Activity Policy - Mirrativ Tech Blog
    morizo999
    morizo999 2022/09/26
  • 2022年のライブゲームはWebGL@Unityで動いているよ - Mirrativ Tech Blog

    みなさまこんにちは、よこて @n0mimonoです。段々とすごしやすい気温になってきましたがいかがお過ごしでしょうか。今日の話は ミラティブとライブゲーム ライブゲームUnityを利用したWebGLベースで動いているよ バックエンドアーキテクチャの紹介 行ってみます! ミラティブ × ライブゲーム ミラティブは、スマホで簡単にゲーム配信ができるサービス『Mirrativ』を展開していますが、今年(2022年)からゲームとライブ配信を融合させた『ライブゲーミング』に特に注力してます(次は4月次点のプレスリリース)。 prtimes.jp 「ライブゲーミング」とは、配信中のゲームに視聴者が介入できる、ゲームとライブ配信が融合した次世代のゲーム体験となります。 視聴者は従来のライブ配信のようにコメントやギフトアイテムを贈るだけでなく、実際に配信者といっしょにゲームをプレイする「参加型ライブゲー

    2022年のライブゲームはWebGL@Unityで動いているよ - Mirrativ Tech Blog
    morizo999
    morizo999 2022/09/08
  • Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog

    インフラ・ストリーミングチームの id:udzura (@udzura)です。今回は、Goミドルウェアのメモリリークを見つけて解決する際に、どのようなプロセスを踏んでいったかを解説します。 Go製のミドルウェアの概要 ミラティブでは、Webアプリケーションのみならず、ミドルウェアに相当する部分についても必要なものは内製しています。その中の一つに、社内で「Radisha」と呼んでいる各種集計とキャッシュなどを行うためのミドルウェアがあります。Radishaは以下のような特徴を備えています。 GET、SET、SETEXなど基的なRedis互換のコマンドを実装している。そのため、既存のRedisクライアントライブラリから操作が可能である。 ランキング集計、一定時間内のアクセス集計などが行えるよう、Redis にない独自のコマンドを実装している。 高い可用性を志向しており、オンメモリのデータは

    Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/08/03
  • ミラティブの開発組織をアプデしたよ Summer 2022 - Mirrativ Tech Blog

    みなさま、今年も夏(summer)がやってきました。よこて @n0mimono です。今回はミラティブのプロダクト開発組織を更新したよという話をします。ついでにこれまでの歴史と今後の展望も紹介します。 前回記事はこちら tech.mirrativ.stream プロダクト開発と体制 組織 まず基情報から、ミラティブの展開するサービスは『Mirrativ』です。メンバーは何らかの形でこのサービスに関わります。前回記事時点で80人と書きましたが、今確認したら100くらいのメンバーがいます。エンジニアが所属する技術部を数えたら40人くらいいます。 前回記事の時点では、単一の技術部の下にグループをぶら下げる構成にしていました。 技術部 アプリ バックエンド インフラ・ストリーミング 人数も増えてきたため、7月から 技術部を2つに分けました 。だいたいこんな感じ。 プロダクト開発 Unity アプ

    ミラティブの開発組織をアプデしたよ Summer 2022 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/08/01
  • Jetpack Composeを使った複雑なアニメーション事例 - Mirrativ Tech Blog

    ミラティブのAndroidエンジニアのmorizoooです。 MirrativのAndroidアプリでは、新規で作る画面には積極的にJetpack Composeを活用しています。 tech.mirrativ.stream Mirrativは、多くのユーザーがゲームや雑談などの配信をしており、配信を盛り上げるための演出として通常のアニメーションに加えてLottieも織り交ぜ、リッチなアニメーションを実装しています。 Jetpack Compose導入以前は、AnimationListenerのCallbackを入れ子にする形で複雑なアニメーションを実現していたのですが、いざJetpack Composeで実装しようとなるとどう実装するのが良いのか苦心しました。 今回の記事では、実際にアプリで使っているアニメーションを例に、Jetpack Composeで作ったアニメーションを紹介します。

    Jetpack Composeを使った複雑なアニメーション事例 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/07/29
  • テスト工程の可視化や自動化に向けた取り組みのご紹介 - Mirrativ Tech Blog

    こんにちは、エンジニアの千吉良(ちぎら)@_naru_jpn です。ここ最近 QA に関して考える機会があり、Systematic Software Testing というを読んでいたところ、色々と刺激を受けるところがありました。計画書の作成やリスク管理などテストの実施以外の領域についても多く書かれていましたが、まずはミラティブの現状に基づいた改善を行うべきだろうと考えました。今回は特にメトリクスの取得などに関して、GAS(Google Apps Script)を活用してミラティブの業務に応用してみたことについてまとめてみました。 以下では細かいことにも触れているので、3行まとめをおいておきます。 手動テストの進捗を見えるようにしたよ GAS(Google Apps Script)で実装したよ ついでに関連業務を自動化したよ ミラティブにおける QA と解決できそうと感じた課題 ミラティ

    テスト工程の可視化や自動化に向けた取り組みのご紹介 - Mirrativ Tech Blog
    morizo999
    morizo999 2022/07/28
  • GitHub Actionsのセルフホストランナーを使ってJenkinsをサクッと叩けるようにする - Mirrativ Tech Blog

    7月からミラティブにUnityエンジニアとして入社した森田です。 弊社ではUnityのCIとしてJenkinsを利用していますが、GitHub Actionsのセルフホストランナーと連携させることで、JenkinsはそのままでGitHubのWeb画面からジョブを実行できるようにしてみたので、書いておきます。 課題 実装 GitHub Actionsのセルフホストランナーの設定 JenkinsのAPIトークンを発行する workflowファイルの作成 結果 残った課題 We are hiring! 課題 弊社ではアプリのUnity部分とアセットバンドルのビルドにJenkinsを利用しています。 tech.mirrativ.stream JenkinsはUnityエンジニアに貸与されているMac miniにそれぞれにインストールして運用をしていたため、CIビルドするためにはその都度Mac mi

    GitHub Actionsのセルフホストランナーを使ってJenkinsをサクッと叩けるようにする - Mirrativ Tech Blog
    morizo999
    morizo999 2022/07/27
  • Apple のサンプルプロジェクトから Swift Concurrency 移行のエッセンスを学ぶ - Mirrativ Tech Blog

    こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。AppleSwift Concurrency への移行をサポートするためのサンプルプロジェクト Updating an App to Use Swift Concurrency を公開しているのをご存知でしょうか。 このプロジェクトには、DispatchQueue を用いて記述されたアプリのコードと、それを Actor などの Swift Concurrency を使用したコードに書き換えたアプリのコードの 2 つが同梱されています。運用しているプロダクトのコードを書き換えるのは規模も大きく大変ですが、小さいプロジェクトから書き換えの課題感を掴んだり、ウォーミングアップとして Apple のサンプルプロジェクトから学べることがあるだろうという事から、このプロジェクトを題材にして社内勉強会を開催しました。 勉強会の

    Apple のサンプルプロジェクトから Swift Concurrency 移行のエッセンスを学ぶ - Mirrativ Tech Blog
    morizo999
    morizo999 2022/05/18
  • SwiftGenが生成する1万行越えSwiftファイルでXcodeがフリーズするのを防ぐ - Mirrativ Tech Blog

    4月にミラティブに入社したiOS開発者の福山 (@fokotate)です。ミラティブにはゲーム好きな人が多いためか、積みゲー消化が急速に進んでいます。 今回は珍しいケースかと思いますが、他社のiOSプロジェクトでも起こりえる問題に対処することができたので共有させてください。 2022/06/09 ✍️追記: Xcode 14 beta 1で確認したところ、以下の問題はほぼ解決しているようでした。AppleにFeedbackを送ったところ同様の報告が複数あり、対応していただけたようです。 Mirrativ iOS開発の問題点 Mirrativ iOS開発ではSwiftGenを使い、多言語対応ファイルLocalizable.stringsをswiftファイルに変換しています。これによって文言をコードに挿入するときに、Xcodeのコード入力の自動補完が使えるようになりタイピングミスがなくなり、コ

    SwiftGenが生成する1万行越えSwiftファイルでXcodeがフリーズするのを防ぐ - Mirrativ Tech Blog
    morizo999
    morizo999 2022/05/17