Mirrativ Tech Blog

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

Vaporを活用しMacとiPhone間で双方向通信を行う

iOSチームの福山です。 Mirrativ iOSでは Flipper (Meta社のOSS) を使っていました。しかし Xcode 16.3 から Flipper が動かなくなるという事象が発生し、リポジトリもアーカイブされていることから、Vapor を利用して代替となる機能を作成しようと考えまし…

Swift Macroを事前コンパイルしてビルドを高速化!.xcodeprojとSwift Packageへの導入方法

iOS

iOSチームの福山です。 Mirrativ iOSの開発ではSwift Macroを使ってイニシャライザやXcode Previews用のダミー要素を生成するなど活用しています。 しかし、ビルドが成功するにもかかわらず、Swift Macroが展開するコードを利用する部分でエラーが表示される…

【Swift 6移行】サードパーティのClosureのSendable関連エラーを回避する

iOS開発の福山です。 現在Mirrativ iOSではSwift 6への移行を段階的に行なっています。その中でSwift 6に対応していないサードパーティライブラリに関連する問題にぶつかったため、その回避策を紹介します。 問題 open class Some3rdPartyClass { // サード…

SwiftGenとSwift-DocCを活用してコード上の画像を一瞬でプレビューする方法

こんにちはiOS開発をしている福山です。 この記事では、SwiftGenとSwift-DocCを用いて、xcassetsを開かずにコード内の画像をQuick Help(右パネルまたは⌥オプションキー+クリック)で直接確認する方法を紹介します。 各ツールの簡単な説明 Swift-DocCは、Swi…

iOSの音声読み上げ時のメモリ消費量について

iOS

こんにちはミラティブ2年目突入の福山です。 今回は、ユーザーが追加でインストール可能な拡張版の読み上げ音声がiOS 16で多くのメモリを消費するということがわかったので、ライブ配信用のアプリ拡張内で対策を行いました。 メモリ使用量50MB制限 Mirrativ…

iOS 16のロック画面映え機能を実装したい衝動に駆られた話

iOS

ピクミンのスマホゲームに歩かされ続けている福山です(現在Lv51 - 合計歩数1,415,248) iOS 16で音楽や動画を流しているときにロック画面がいい感じになりましたよね! 正式名称はわかりませんが、ここに表示される画像はアルバムアートやアートワークなどと…

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

iOS

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

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

iOS

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