SlideShare a Scribd company logo
1 of 19
スマートフォンのブラウザで視聴中のWebページ・
動画の視聴位置を保存・復旧するしおりアプリ
TERM最終発表
Arch B3 masatora
1
背景
● スマートフォンでネットサーフィンをしているとき、読んでいる途
中のページや動画をブックマークしたいというニーズがある
● そうしたニーズに対応するブックマークアプリはすでに存在する
● しかし、既存のブックマークアプリには問題がある
2
既存のブックマークアプリの問題
1. 保存したWebページのスクロール位置がわからなくなる
2. 保存した動画の再生位置(何分何秒まで見ていた・何分何秒が面白か
った)がわからなくなる
3
目的
既存のブックマークアプリの問題を解決するため、スマートフォンで見
ているWebページや動画を
- どこまで読んでいたか
- どこまで見ていたか
という情報とともに保存し、復旧できるようにすることを目指す。
4
目標
Webページおよび動画の
- スクロール位置や
- 再生位置
を保存・復旧することのできるiOSアプリケーションを開発する
5
先行研究
safariのリーディング
リスト
pocket instapaper
Webページをブックマー
クする機能 可 可 可
動画をブックマークする
機能 可 可 可
ブックマークしたWebペ
ージのスクロール位置を
復旧する機能
不可 不可 不可
ブックマークした動画の
再生位置を復旧する機能 不可 不可 不可
6
アプローチ
ブックマークしたWebページのスクロール位置を復旧する機能
1. ユーザーがWebページを保存するタイミングでJavascriptを実行し、Webページのスクロール位置(縦・横)を取得す
る。
2. そのWebページのURLとともに取得したスクロール位置をiOSの機能を用いてアプリ内に保存する。
3. ブックマークしたWebページをアプリ内のブラウザで開くタイミングで、SwiftのAPIをコールして取得した位置に
スクロールする。
ブックマークした動画の再生位置を復旧する機能
1. ユーザーが動画を保存するタイミングでJavascriptを実行し、動画の再生位置(秒単位)を取得する。
2. ユーザーが動画をブックマークしたとき、その動画のURLとともに取得した再生位置をアプリ内に保存する。
3. アプリ内でブックマークした動画を開いたタイミングで、取得したURLから動画サイトの種類を判別する。
4. 動画を開く際に、その動画サイトのWebAPIを、クエリパラメータとして動画再生位置を指定して呼び出す。
7
環境
● swift5
● Xcode12
● ECMAScript 2015
8
実装(プログラム間でのデータフロー)
①Share Extensionを実行
②↑のタイミングでJSファイ
ルを実行
③以下のデータをSfariから
取得してShare Extensionに
わたす
1. webページ・動画の
URL
2. スクロール位置
3. 動画の再生時間
④取得し
たデータを
アプリに保
存
画像: https://medium.com/@shiba1014/ios-app-extension%E9%96%8B%E7%99%BA%E3%81%AE%E5%89%8D%E6%8F%90%E7%9F%A5%E8%AD%98-90608b0ec79d
9
評価方法
評価項目
評価のために、開発したアプリケーションが以下の2つの機能を実現できていることを確認する。
1. 保存したWebページのスクロール位置が復旧できること
2. 保存した動画の再生位置が復旧できること
評価の方法
- 実際に任意のWebページ・動画を途中までスクロール・再生した上でアプリケーションに保存する。
- 保存されたWebページ・動画をアプリケーション内で開き、保存したときのスクロール位置・再生
位置が復旧するかどうか検証する。
10
評価結果
Shiori web safariのリーディ
ングリスト
pocket instapaper
ブックマークしたWeb
ページのスクロール位
置を復旧する機能
(縦方向のスクロール)
可 不可 不可 不可
ブックマークしたWeb
ページのスクロール位
置を復旧する機能
(横方向のスクロール)
可 不可 不可 不可
ブックマークした
動画の再生位置を
復旧する機能
可※ 不可 不可 不可
11
UI
12
デモ(1)
13
デモ(2)
14
評価結果(実現できていないこと)
1. 一部の動画サイトにしか対応できていない
→ 再生位置を指定して途中から動画を再生する、という機能を提供していない動画サイトがあるため
1. 埋め込み動画に対応できていない
→URLから動画サイトを判定し、各動画サイトがそれぞれ公開しているAPIのクエリパラメータの形式に合わせ
てリクエストを送ることで再生位置を復旧する機能を実現している。そのため、URLから動画の元サイトを判定
できない埋め込み動画では、再生位置を復旧する機能が動作しない。
1. 動画再生位置は秒単位にしか対応していない
→再生位置を秒単位で取得しているため、それより細かい単位での動画再生位置復旧はできない
15
考察
- Webページのスクロール位置を保存・復旧する機能を開発できた
- 一方動画の再生位置を保存・復旧する機能は一部できていない
- 原因として、WebAPIのクエリパラメータを利用して動画の再生位置を
復旧しているため、そのような機能に対応していない動画サイトで利用
できない、という点がある
- その解決策として、以下を検討中
- アプリ内のブラウザでHTML5のAPIを利用して動画の再生位置を復旧す
るように変更する
16
まとめ
Webページおよび動画の
- スクロール位置
- 再生位置
を保存・復旧することのできるiOSアプリケーションを開発した
その結果、以下の問題を解決することができた
- 保存したWebページのスクロール位置がわからなくなる
- 保存した動画の再生位置(何分何秒まで見ていた・何分何秒が面白かった)がわからな
くなる
結果的に多くの人に使ってもらえる物を作れたのでよかった 17
その他
- 日本AppStore 1位(ニュースカテゴリ有料アプリ部門)(に3回なった)
- 通算約13200ダウンロード(2021年1月10日現在)
- 平均評価4.3(すべてのAppStore.日本AppStoreでは4.1)
18
参考文献
[1] Pocket. pocket/id309601447. https://apps.apple.com/jp/app/
[2] instapaper. https://www.instapaper.com/.
[3] Shiori web for safari. https://apps.apple.com/jp/app/shiori-web-for-safari/ id1480539987.
[4] App extension. https://developer.apple. com/jp/app-extensions/.
[5] App extension programming guide/share. https://developer.apple.com/library/
archive/documentation/General/ Conceptual/ExtensibilityPG/Share.html.
[6] 村井純. ネットの父・村井純が見る未来# 01 /理想だけを追えばいい時代が来る, January
2019. https://business.nikkei.com/atcl/ seminar/19/00010/011100002/.
[7] Keio Research InstituteSFC / 慶應義塾大学 SFC 研究所.「インターネット文明」村井純,
Octo- ber 2019. https://www.youtube.com/watch? v=lnlhB7VF_3M.
19

More Related Content

Recently uploaded

Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (8)

Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Ter mv2

Editor's Notes

  1. 上記の機能を実現するため、Appleが提供するApp Extensionの一種であるShare Extensionという機能を利用する。 Share Extensionとは、iPhoneで開いているWebページや動画を任意のアプリケーションに保存できる機能である。 Share Extensionを利用してアプリにWebページや動画を保存するタイミングでJavascriptコードを実行し、以下の二つのデータを取得する。 スクロール位置 動画の再生時間 そして、取得したデータをWebページや動画のメタデータとして保存する。 ユーザーが保存したWebページや動画をクリックすると、アプリケーション内部でブラウザを開き、スクロール位置や再生位置を復旧させた状態でWebページや動画を開く。