Upgrade to Pro — share decks privately, control downloads, hide ads and more …

stand.fmの最近の取り組み: アプリ起動速度の改善/improvement-of-speed-startup-app

stand.fm
October 02, 2021

stand.fmの最近の取り組み: アプリ起動速度の改善/improvement-of-speed-startup-app

stand.fm

October 02, 2021
Tweet

More Decks by stand.fm

Other Decks in Programming

Transcript

  1. アプリ起動速度 • まず大事なのは計測 ◦ いま振り返っても、計測が一番大事 • 計測ツール ◦ Sentry Performance

    Monitoring ◦ Firebase Performance Monitoring • 既に導入されていたSentryで計測を開始
  2. react-native-startup-time • react-native-startup-timeを利用 ◦ https://www.npmjs.com/package/react-native-startup-time ◦ getTimeSinceStartup() • ネイティブモジュールの初期化タイミングからの経過時間を JavaScript側で取得

    ◦ 計測開始のタイムスタンプを作成 ◦ 正確ではないけど、十分と判断 • ストップウォッチで測ったりして、体感とかなり近い結果が出た
  3. 起動速度計測の定義 • 計測開始 ◦ ユーザー:アイコンがタップされた直後 ◦ システム:ネイティブモジュールの初期化タイミング • 計測終了 ◦

    ユーザー:Splashスクリーンから抜けた ◦ システム:Splashスクリーンの終了 (react-native-splash-screen:Splashスクリーンの終了タイミングを調整 )
  4. Hermes • もともとAndroidではHermesに移行していた • React Native v0.64にアップデートしたタイミングでiOSも有効化 ◦ JSの実行までの時間が短縮された!! •

    しかし、Hermesが原因でクラッシュするIssueがあり、いまは一時 的にOFFにしてる ◦ React Native v0.66で改善しそう??
  5. We are hiring! エンジニア積極的に募集中です https://corp.stand.fm/recruit 詳細はこちら • CTO候補 • VPoE候補

    • クライアントエンジニア • バックエンドエンジニア • 機械学習エンジニア • 配信基盤エンジニア • QAエンジニア • エンジニアリングマネージャー • UI/UXデザイナー 積極募集しているプロダクト開発メンバー
  6. 現在抱えている技術課題・今後の技術的チャレンジ 
 ▶アプリ起動速度を高速にしたい 
 
 ▶音声編集機能リッチ化 
  写真アプリがスマホだけでお洒落な加工を可能にしたように、機材や知識がなくてもアプリだけで、
  高クオリティの音声配信をシンプルなUI/UXで実現したい
  (例)

    複数BGM、BGMの fade in&out、ジングル挿入、効果音挿入、音声スニペットのコピペ、など
 
 ▶アプリの複雑化への対応 
  開発者が増え、機能が増えてもメンテナンスしやすい構造にしたい
 
 ▶異常状態を検知できるようにしたい 
  コラボ収録時に片方だけ音が入っていない・音割れしているなど、単純なエラーではない異常状態を検知したい
 
 ▶高クオリティなサービスをユーザーに届けるためのテストの自動化 
  リグレッションテストの自動化、ネットワーク状態・電話の割り込み・ディスク容量など特殊な状態のテスト
 クライアント