Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOSの動画アプリを作る上で押さえておきたい設計
Search
h.crane
October 25, 2019
Technology
3
780
iOSの動画アプリを作る上で押さえておきたい設計
イベント「Tech Book Conference for iOS」で登壇した内容
https://techbookconference.connpass.com/event/148487/
h.crane
October 25, 2019
Tweet
Share
More Decks by h.crane
See All by h.crane
Getting started with controlling LEGO using Swift
hcrane
1
1.2k
Swift 5.9 と C++ の互換性
hcrane
1
820
Live on iOSDC2023
hcrane
4
1.3k
自販機で1000円を使い切りたいんじゃ!
hcrane
0
160
Vision.framework - 商品画像からのテキスト検出と並列化実装への試み
hcrane
1
810
DevRel/Japan 2023 - 1つの事業部だけで行う DevRel とは
hcrane
0
1k
R2-D2をiOSで動かす
hcrane
2
3.8k
iOSDC2022 - SwiftUI in UIKit で開発する世界
hcrane
6
7.3k
iOSDC2022 - iPadOSDC Japan 2022
hcrane
2
4.3k
Other Decks in Technology
See All in Technology
ゼロからはじめる採用広報
yutadayo
4
1k
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
280
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
290
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
6
4.1k
Enhancing SaaS Product Reliability and Release Velocity through Optimized Testing Approach
ropqa
1
250
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
3
980
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
360
OpenTelemetryセマンティック規約の恩恵とMackerel APMにおける活用例 / SRE NEXT 2025
mackerelio
3
1.6k
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
180
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
990
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
350
AWS CDK 開発を成功に導くトラブルシューティングガイド
wandora58
3
170
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Scaling GitHub
holman
460
140k
How STYLIGHT went responsive
nonsquared
100
5.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Balancing Empowerment & Direction
lara
1
440
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Designing Experiences People Love
moore
142
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
It's Worth the Effort
3n
185
28k
Transcript
iOSの動画アプリを作る上で 押さえておきたい設計 Hiromu Tsuruta
About me 〈Company〉 - every, inc. / DELISH KITCHEN 〈Role〉
- iOS Developer 〈Account〉 - Twitter: @hcrane14 - Qiita: H_Crane
動画のお話の前に、、、 AVFoundationの制約があるって知ってました?
AVFoundationが許可できる 動画の同時接続数(再生数)に上限が! → その数は16接続まで → iOS13から32接続まで増えた! (UIKitに限る、、?)
Demo TableViewで動画を保持したセルを表示させたテスト ここだけ 動画が出ていない! つまり32個までしか 接続できないことが わかった! セルを33個生成し動画を同時再生させた時 9/15なので Xcode
beta版 セルを17個生成し動画を同時再生させた時 ここだけ 動画が動いていない! つまり16個までしか 接続できない、、 はずだった笑
「え?32個も同時に接続することなどなくない?」 → 気づいていないだけで勝手に接続されてっぞ!
① 画面遷移で奥深く進む場合はスタックされる 参考 https://www.google.com/url?sa=i&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwi7x4GC8rPlAhULx4sBHcBAAzUQjhx6BAgBEAI&url=http%3A%2F%2Fharuna0503.xsrv.jp%2F2019%2F07 %2F04%2Fios-%25E7%2594%25BB%25E9%259D%25A2%25E9%2581%25B7%25E7%25A7%25BB%25E3%2581%25AE%25E7%25A8%25AE%25E9%25A1%259E%2F&psig=AOvVaw2OXL EayApH9Ad0tPInLYVy&ust=1571971474667862 画面遷移例
② 動画の広告は勝手にスタックされる 参考 https://www.google.com/url?sa=i&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwjYkqbwoLLlAhXZc94KHZcYCL QQjhx6BAgBEAI&url=https%3A%2F%2Fwww.exchangewire.jp%2F2015%2F01%2F28%2Fnews-video-mobile%2F&psi g=AOvVaw0z9I5CcmN9FIFF3hFo1DrJ&ust=1571915808807843 参考 https://www.google.com/url?sa=i&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwjWt8iYorLlAhWswosBHYXVDpgQjhx6BA gBEAI&url=https%3A%2F%2Fgmotech.jp%2Fnews_release%2F%3Fp%3D5121&psig=AOvVaw2RfpR8QLMvZox85TI8ikgm&ust =1571916082239556
動画リワード広告 複数の動画広告
どうやって動画の最適化すんの?
YoutubeのiOSアプリから動画最適化例を見る
動画の流れを分けてみてみると、、 検索 1回目 検索 2回目 検索 検索 動画 動画 閉じる
閉じる 動画のプレイヤーを 1つ保持 動画のプレイヤーを 使い回す
検索 検索 検索 検索 ・・・ 仕組みはシンプル 動画プレイヤー
動画のプレイヤーを管理して 制限しているだけ!
シングルトンで動画のプレイヤーを管理
RxSwift / Combine などを使用すると
https://booth.pm/ja/items/1567921 続きは 本で!
SwiftUIで動画を複数表示させた時 100個を同時に再生させても問題なかった! おまけ
謎は深まるばかり、、、 fin