Submit Search
Upload
Animated APIを使ってスクロールで隠れる“あのバー”を作る
•
0 likes
•
38 views
S
ssusercb6609
Follow
ReactNative Animation
Read less
Read more
Mobile
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 20
Download now
Download to read offline
Recommended
ソニックムーブ島根勉強会 βでの発表資料です
マルチデバイスに対応するためのAuto layout
マルチデバイスに対応するためのAuto layout
asakahara
iOSでSDKやライブラリを開発して提供する際の手順が思ったほど整理されていないこともあり、注意点などをまとめて発表した際の資料です。
iOSでライブラリを提供する際に気をつけたいこと
iOSでライブラリを提供する際に気をつけたいこと
asakahara
2016/06/24 JAWS-UG名古屋 第12回 登壇資料
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
Toshiaki Aoike
Fashion Tech meetup #1 発表資料 iQONがどのようにして大量の商品データをECサイトからクローリングしているのかを説明
iQONを支えるクローラーの裏側
iQONを支えるクローラーの裏側
Takehiro Shiozaki
iQON エンジニアセミナー by VASILYでの資料 @kyuns
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
2017/11/16開催 BMXUG つきじ 勉強会 #2 講演資料
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Yasuyuki Ogawa
下記の18/07/10 に開催したAliEatersの発表資料です https://alibabacloud.connpass.com/event/91582/ 「Alibaba Cloudって、大丈夫?」に対する自分なりの整理です、答えではありません。 これからも正解を追い続けます。
ちょっとしたAlibaba Cloudのセキュリティ関連のお話
ちょっとしたAlibaba Cloudのセキュリティ関連のお話
Qiu Binbin
http://connpass.com/event/28231/
React way at_eight
React way at_eight
Hideharu Okuma
Recommended
ソニックムーブ島根勉強会 βでの発表資料です
マルチデバイスに対応するためのAuto layout
マルチデバイスに対応するためのAuto layout
asakahara
iOSでSDKやライブラリを開発して提供する際の手順が思ったほど整理されていないこともあり、注意点などをまとめて発表した際の資料です。
iOSでライブラリを提供する際に気をつけたいこと
iOSでライブラリを提供する際に気をつけたいこと
asakahara
2016/06/24 JAWS-UG名古屋 第12回 登壇資料
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
20160624 JAWS-UG名古屋 第12回 API Gateway 事始め
Toshiaki Aoike
Fashion Tech meetup #1 発表資料 iQONがどのようにして大量の商品データをECサイトからクローリングしているのかを説明
iQONを支えるクローラーの裏側
iQONを支えるクローラーの裏側
Takehiro Shiozaki
iQON エンジニアセミナー by VASILYでの資料 @kyuns
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
2017/11/16開催 BMXUG つきじ 勉強会 #2 講演資料
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Yasuyuki Ogawa
下記の18/07/10 に開催したAliEatersの発表資料です https://alibabacloud.connpass.com/event/91582/ 「Alibaba Cloudって、大丈夫?」に対する自分なりの整理です、答えではありません。 これからも正解を追い続けます。
ちょっとしたAlibaba Cloudのセキュリティ関連のお話
ちょっとしたAlibaba Cloudのセキュリティ関連のお話
Qiu Binbin
http://connpass.com/event/28231/
React way at_eight
React way at_eight
Hideharu Okuma
Realm meetup #3で話したスライドです
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
今城 善矩
大なごやJS vol.6 Titanium Mobile と Alloy の解説をするよ!
大なごやJS vol.6 Titanium Mobile と Alloy の解説をするよ!
Mori Shingo
2015/07/11 に開催された Microsoft Azureで描く未来 !CLR/H &Windows女子部(http://kokucheese.com/event/index/308411/) で行った LT のスライド
Lt 20150711
Lt 20150711
Tomoyuki Obi
ヤマムギvol.1のオープニングあいさつ
ヤマムギVol.1 Opening
ヤマムギVol.1 Opening
Mitsuhiro Yamashita
AWAのRealmを使ったアプリケーション設計のお話
AWA with Realm
AWA with Realm
Yuji Hato
2016年7月20日(水曜日)に中央電力さんで開催されたヤマムギ kintone入門ハンズオン vol.1のハンズオン資料です
ヤマムギ vol.1 kintone 入門ハンズオン
ヤマムギ vol.1 kintone 入門ハンズオン
R3 institute
iOSDC 2017 Reject Conference days2での登壇資料になります。 https://iosdc-reject-conference.connpass.com/event/64236/ 平素はSwiftでiOSアプリの開発をしています。今年からReactNativeも多少嗜むようになり、その中で得た知見や実装の際で予め気をつけて置くと良いかと思うことや、UI構築の中での違いなどをざっくりとまとめたものになります。
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Fumiya Sakai
Webサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hack
Yusuke Yamamoto
西日暮里rb ゴールデンLT
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
Springのポイントを押さえて開発を面白くしましょう。
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
DevLove 関西の リモートワーク、複業時代の「自分戦略」 で発表した資料です。 パスタはスライドの他にもたくさん作ってます https://www.instagram.com/martini3oz/ 御覧ください(そこじゃない
アラカンエンジニアがたどり着いた生き方
アラカンエンジニアがたどり着いた生き方
久司 中村
第6回Swift勉強会の発表資料です。 https://atnd.org/events/61498
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
おっさんES6/ES2015,React.jsを学ぶ 2016JavaScript入門 2016/11/21 @BizReach D3イベント登壇資料 最近のJavaScript動向 ・試験に出るJavaScript21年の歴史 ES6/ES2015を学ぶ ・ES6/ES2015概要 ・ES5を振り返る ・altjsの意義 Reactを学ぶ ・DOCを読む ・Tutorialをやる まとめ ・今回の学習を通じて感じたこと
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
2015.2.14 iOS オールスターズ勉強会
WatchKitを実際にさわってみてわかったこと
WatchKitを実際にさわってみてわかったこと
Shuichi Tsutsumi
Swiftビギナーズ勉強会で発表したスライドです。 初めてアプリを作ってみて、不思議なことがたくさんあったので、調べて共有しました。 ・Interface Builderで作るオブジェクト ・新規作成時に生成されるオブジェクト ・Optional value(オプショナル値) ・override(オーバーライド)
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
Swift勉強会 Vol.4の資料 - PDFから資料内リンクに飛べます Original: hayate1996.github.io/swift-animation-presentation http://swiftstarter.connpass.com/event/15102/
Swift Study Vol.4
Swift Study Vol.4
Nagamine Hiromasa
Apiドキュメントの話 in SphinxCon JP 2015
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
マネーフォワードにてデザイナーさん向けのAndroidアプリ開発の勉強会を実施しました。 主にanimationに関する講義と課題を実施してもらいました。
第二回Android training4desinger 2
第二回Android training4desinger 2
Kengo Suzuki
Ansible Meetup in Tokyo 2014.09でのLT用資料です
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
Hideki Saito
2015.07.29 iOSすいすいもくもく会@Livesense #6 https://github.com/naoyashiga/TwitterProfileHeaderAnimation
Twitter Profile Header Animation by using Swift
Twitter Profile Header Animation by using Swift
Naoya Shiga
オライリーのWebAPIを参考にAPIの設計に関するスライドを作りました。
Api設計
Api設計
Yuto Suzuki
More Related Content
What's hot
Realm meetup #3で話したスライドです
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
今城 善矩
大なごやJS vol.6 Titanium Mobile と Alloy の解説をするよ!
大なごやJS vol.6 Titanium Mobile と Alloy の解説をするよ!
Mori Shingo
2015/07/11 に開催された Microsoft Azureで描く未来 !CLR/H &Windows女子部(http://kokucheese.com/event/index/308411/) で行った LT のスライド
Lt 20150711
Lt 20150711
Tomoyuki Obi
ヤマムギvol.1のオープニングあいさつ
ヤマムギVol.1 Opening
ヤマムギVol.1 Opening
Mitsuhiro Yamashita
AWAのRealmを使ったアプリケーション設計のお話
AWA with Realm
AWA with Realm
Yuji Hato
2016年7月20日(水曜日)に中央電力さんで開催されたヤマムギ kintone入門ハンズオン vol.1のハンズオン資料です
ヤマムギ vol.1 kintone 入門ハンズオン
ヤマムギ vol.1 kintone 入門ハンズオン
R3 institute
iOSDC 2017 Reject Conference days2での登壇資料になります。 https://iosdc-reject-conference.connpass.com/event/64236/ 平素はSwiftでiOSアプリの開発をしています。今年からReactNativeも多少嗜むようになり、その中で得た知見や実装の際で予め気をつけて置くと良いかと思うことや、UI構築の中での違いなどをざっくりとまとめたものになります。
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Fumiya Sakai
Webサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hack
Yusuke Yamamoto
西日暮里rb ゴールデンLT
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
Springのポイントを押さえて開発を面白くしましょう。
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
DevLove 関西の リモートワーク、複業時代の「自分戦略」 で発表した資料です。 パスタはスライドの他にもたくさん作ってます https://www.instagram.com/martini3oz/ 御覧ください(そこじゃない
アラカンエンジニアがたどり着いた生き方
アラカンエンジニアがたどり着いた生き方
久司 中村
第6回Swift勉強会の発表資料です。 https://atnd.org/events/61498
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
おっさんES6/ES2015,React.jsを学ぶ 2016JavaScript入門 2016/11/21 @BizReach D3イベント登壇資料 最近のJavaScript動向 ・試験に出るJavaScript21年の歴史 ES6/ES2015を学ぶ ・ES6/ES2015概要 ・ES5を振り返る ・altjsの意義 Reactを学ぶ ・DOCを読む ・Tutorialをやる まとめ ・今回の学習を通じて感じたこと
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
What's hot
(13)
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
大なごやJS vol.6 Titanium Mobile と Alloy の解説をするよ!
大なごやJS vol.6 Titanium Mobile と Alloy の解説をするよ!
Lt 20150711
Lt 20150711
ヤマムギVol.1 Opening
ヤマムギVol.1 Opening
AWA with Realm
AWA with Realm
ヤマムギ vol.1 kintone 入門ハンズオン
ヤマムギ vol.1 kintone 入門ハンズオン
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Webサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hack
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
アラカンエンジニアがたどり着いた生き方
アラカンエンジニアがたどり着いた生き方
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
Similar to Animated APIを使ってスクロールで隠れる“あのバー”を作る
2015.2.14 iOS オールスターズ勉強会
WatchKitを実際にさわってみてわかったこと
WatchKitを実際にさわってみてわかったこと
Shuichi Tsutsumi
Swiftビギナーズ勉強会で発表したスライドです。 初めてアプリを作ってみて、不思議なことがたくさんあったので、調べて共有しました。 ・Interface Builderで作るオブジェクト ・新規作成時に生成されるオブジェクト ・Optional value(オプショナル値) ・override(オーバーライド)
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
Swift勉強会 Vol.4の資料 - PDFから資料内リンクに飛べます Original: hayate1996.github.io/swift-animation-presentation http://swiftstarter.connpass.com/event/15102/
Swift Study Vol.4
Swift Study Vol.4
Nagamine Hiromasa
Apiドキュメントの話 in SphinxCon JP 2015
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
マネーフォワードにてデザイナーさん向けのAndroidアプリ開発の勉強会を実施しました。 主にanimationに関する講義と課題を実施してもらいました。
第二回Android training4desinger 2
第二回Android training4desinger 2
Kengo Suzuki
Ansible Meetup in Tokyo 2014.09でのLT用資料です
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
Hideki Saito
2015.07.29 iOSすいすいもくもく会@Livesense #6 https://github.com/naoyashiga/TwitterProfileHeaderAnimation
Twitter Profile Header Animation by using Swift
Twitter Profile Header Animation by using Swift
Naoya Shiga
オライリーのWebAPIを参考にAPIの設計に関するスライドを作りました。
Api設計
Api設計
Yuto Suzuki
第6回Swift勉強会の発表資料です。 https://atnd.org/events/61498 以前の発表資料の改訂版です。
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
de:code18 セッション資料
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
(c)Infocom
Swift for pose-estimation
Swift for pose-estimation
mana o2
第39回 HTML5とか勉強会+日本Androidの会 2013年5月定例会 にて発表した資料。 http://kokucheese.com/event/index/90708/
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場
Shota Suzuki
takusuta tech conf #1 で使用したスライドです。 Riot.jsを使ったweb開発に触れています。
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
テックインサイトさんのiPhoneアプリ https://itunes.apple.com/jp/app/id1057977123 を作成した際に用意したAPIサーバのレスポンスに手を入れた際の内容を表参道.rb #8で発表しました。 http://omotesandorb.connpass.com/event/26096/
iPhoneアプリ用のAPI サーバを少し早くした話
iPhoneアプリ用のAPI サーバを少し早くした話
Tsuyoshi Yonemoto
Similar to Animated APIを使ってスクロールで隠れる“あのバー”を作る
(16)
WatchKitを実際にさわってみてわかったこと
WatchKitを実際にさわってみてわかったこと
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Swift Study Vol.4
Swift Study Vol.4
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
第二回Android training4desinger 2
第二回Android training4desinger 2
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!
Twitter Profile Header Animation by using Swift
Twitter Profile Header Animation by using Swift
Api設計
Api設計
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
Swift for pose-estimation
Swift for pose-estimation
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
iPhoneアプリ用のAPI サーバを少し早くした話
iPhoneアプリ用のAPI サーバを少し早くした話
Animated APIを使ってスクロールで隠れる“あのバー”を作る
1.
Animated APIを使って スクロールで隠れる あのバー を作る
2.
自己紹介 • misoton -
海老原 圭吾 • Fringe81 フロントエンドエンジニア • Scala・Elm・TypeScript • UniposというプロダクトでReactNativeを使っています。
3.
Animated API アニメーションを扱うためのReactNative標準のAPI Animated API Animated.Value ビュー 操作
参照 「10sで0から100に増加しなさい」 10sで0の位置から100の位置に移動
4.
リストのスクロールと連動して上下に移動する 十分下にスクロールした後でも出現する Twitter, Facebook, LINEでも採用されているUI あのバー
とは Twitter画面のGIF
5.
• ネイティブコードをできるだけ書かない。ネイティブのAPI を自分で叩かないという開発方針。 • ネイティブコードが増えるとReactNativeのメリットが 薄くなる。 •
単純なものなら自分で書いて管理する方が安全。 • 外部ライブラリはいつメンテされなくなるかわからない。 • 明確なメリットがある場合は別。 ネイティブのAPIに用意されてないの? ライブラリは使わないの?
6.
あのバー を実現するために 1. リストのスクロールとバーの動きを連動させる。 →
スクロールイベントをAnimated.Valueにマップする。 2. スクロール位置に関係なく出現できる。 → Animated.Valueを加工する。
7.
リストのスクロールとバーの動きを連動させる。 スクロール位置に関係なく出現できる。
8.
nativeEvent.contentOffset.y を animatedValue
にマップ 現在のスクロール位置 イベントをAnimated.Valueにマッピングする関数 Animated.event(mapping, option)
9.
現在のスクロール位置分だけ View(あのバー)のY座標を移動させる transform: [{translateY: hoge}]
… hogeだけY座標を移動させる
10.
✅ リストのスクロールとバーの動きを連動させる。
11.
✅ リストのスクロールとバーの動きを連動させる。 スクロール位置に関係なく出現できる。
12.
スクロール位置 バーのY座標 バーのY座標 = スクロール位置 スクロールすればするほどバーは下にさがっていってしまう。
13.
バーのY座標 = スクロール位置
-1 スクロール位置 バーのY座標 スクロールすればするほどバーは上にあがっていく。
14.
指定した関係に従ってAnimated.Valueを別の値に変換する関数 animatedValue.interpolate(config) inputRange = X座標 outputRange
= Y座標 これでリストとバーが同じ方向にスクロールされるように
15.
Toolbar どのスクロール位置でも出現できるように ここまでの処理では、バーはスクロールすれば するほど上に上がっていく。 1000スクロールすると1000上にあがる。 これをバーが丁度隠れる位置で止めたい。 0 -バーの高さ
16.
Animated.Valueの値を指定範囲内での変化に制限する関数 Animated.diffClamp(animatedValue, min, max) min(-バーの高さ)からmax(0)までの変化に制限 ↓ これでバーが画面のすぐ上で停止するように
17.
✅ スクロール位置に関係なく出現できる。
18.
✅ リストのスクロールとバーの動きを連動させる。 ✅ スクロール位置に関係なく出現できる。 あのバー
完成!
19.
完成だが… • スクロールイベントの取得され方がiOS,Androidで微妙に 異なる。 • スクロール位置に従ってリスト自体をアニメーション させる、など •
上記を回避しようとするとプルダウン更新時のビューが見 えなくなってしまう。 • 一方が立つともう一方が立たず。妥協するか方法を捻出 するしかない。
20.
まとめ • AnimatedAPIには便利な関数が準備されており、単純な アニメーションであればこれで簡単に対応できる。 • ただし、一歩踏み込んだ処理をする時にはiOS,Androidの 差異やReactNativeのクセを意識せざるを得ない状況が やはりあるのでご注意。 •
あのバー の正式名称を知っている方は教えてください…
Download now