Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
通信環境が不安定でも心地よい体験を
Search
haptaro
March 05, 2019
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
通信環境が不安定でも心地よい体験を
haptaro
March 05, 2019
More Decks by haptaro
See All by haptaro
アニメーション実践入門
kotaro
3
640
iOSアプリ開発にもDIツールを!
kotaro
5
1.4k
はじめてのRxSwift体験記
kotaro
3
660
Swiftで気持ち良く開発したアプリを気持ち良くSubmitする
kotaro
0
7.3k
Other Decks in Programming
See All in Programming
スマート反転とウェブアクセシビリティ
camiha
0
210
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
640
Verilogで学ぶCPU自作入門.pdf
uyuki234
1
430
Webの地図
yosuke_furukawa
PRO
6
4.7k
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
setup-vp GitLab対応の裏側
naokihaba
0
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
560
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
10
7.6k
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
530
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
190
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
Un-Boring Meetings
codingconduct
0
420
From π to Pie charts
rasagy
1
380
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
260
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Transcript
௨৴ڥ͕ෆ҆ఆͰ৺Α͍ମݧΛ! 2019/03/05 Mobile Engineer Meetup @Sansan #33tech
ඌ ଠ - Sansanגࣜձࣾ - Eightࣄۀ෦ - iOSΞϓϦΤϯδχΞ 2 @haptaro
ΞδΣϯμ - Πϯυͷ௨৴ڥ - ௨৴ମݧΛྑ͘͢Δ3ͭͷํ๏ - ௨৴ͷσόοάํ๏ - ·ͱΊ 3
None
Πϯυʹߦ͖ͬͯ·ͨ͠!
None
None
None
None
None
None
ߤత - ௨৴पΓͷ՝ͷચ͍ग़͠ͱͦͷղܾࡦͷఏҊ - ݱiOSΞϓϦΤϯδχΞͷ࠾༻ - ݱͷڠྗձࣾ͞ΜͱͷກΠϯυͷจԽΛΔ͜ͱ 12
ߤత - ௨৴पΓͷ՝ͷચ͍ग़͠ͱͦͷղܾࡦͷఏҊ - ݱiOSΞϓϦΤϯδχΞͷ࠾༻ - ݱͷڠྗձࣾ͞ΜͱͷກΠϯυͷจԽΛΔ͜ͱ 13
Πϯυͷ௨৴ڥ - ճઢ ेkbps ʙ Mbps (ݱSIM Jio) - ճઢ͕ྑ͍ͱ͜ΖͰɺຊͱ΄΅ಉ͘͡͠ϫϯςϯϙ͍͔ͳ
͙Β͍ - ͨͩٸʹ͘ͳͬͨΓɺશ͘ి͕ೖΒͳ͘ͳͬͨΓ͢Δεϙοτ͕͋Δ 14 ※͋͘·ͰMumbaiʙPuneपลɻSIMʹΑͬͯࠩ͋Γɻ
௨৴ڥ͕ѱ͍߹ͷ͜ͱ ͪΌΜͱߟ͑ΒΕ͍ͯ·͔͢ʁ
ׂͱ௨৴ڥ͕ྑ͍ࠃͰɺ ҠಈதɺϏϧͷԼɺΤϨϕʔλͷதɺԼమͳͲ ௨৴͕ෆ҆ఆʹͳΔγνϡΤʔγϣϯଘࡏ͢Δ
None
௨৴ͷνϡʔχϯάํ๏ 18 αʔόͷϨεϙϯεߴԽɺ௨৴ͷฒྻԽɺը૾ϑΥʔϚοτͷมߋɺ௨৴ ϑΥʔϚοτͷมߋɺAPIΛୟ͘ॴΛม͑Δetc
௨৴ͷνϡʔχϯάํ๏ 19 αʔόͷϨεϙϯεߴԽɺ௨৴ͷฒྻԽɺը૾ϑΥʔϚοτͷมߋɺ௨৴ ϑΥʔϚοτͷมߋɺAPIΛୟ͘ॴΛม͑Δetc ͪΖΜ௨৴ࣗମͷνϡʔχϯάେʂ
ͦΕΑΓ·ͣجຊతͳ͜ͱΛஸೡʹΔ ඞཁ͕͋Δ͜ͱʹؾ͕͍ͭͨ
ࠓճ௨৴ڥ͕ෆ҆ఆͰ Ϣʔβ͕৺Α͑͘ΔΑ͏ʹ͢ΔͨΊͷ جຊͷ͓Λ͠·͢
࣮ࡍʹEightʹ͋ͬͨ - ௨৴த௨৴ʹࣦഊͯ͠͠·͏ͱਅͬനʹ͍ۙ൵͍͠ը໘͕ͱ͜ΖͲ͜Ζ ʹ͋ͬͨ - ௨৴தʹϩʔσΟϯάදݱ͕ͳ͍͜ͱͰɺࠓΞϓϦ͕ԿΛ͍ͯ͠Δͷ͔Θ͔ Βͳ͍ɻ௨৴Ͱ͖͍ͯͳ͍ͷ͔ɺࣦഊ͍ͯ͠Δͷ͔ɺͨͩಡΈࠐΈ͕͍ ͚ͩͳͷ͔ - ը໘Λ෴͏Α͏ͳϩʔσΟϯάʹΑΓɺ௨৴தϢʔβ͕શ͘ૢ࡞Ͱ͖ͳ͍
22
࣮ࡍʹEightʹ͋ͬͨ - ௨৴த௨৴ʹࣦഊͯ͠͠·͏ͱਅͬനʹ͍ۙ൵͍͠ը໘͕ͱ͜ΖͲ͜Ζ ʹ͋ͬͨ - ௨৴தʹϩʔσΟϯάදݱ͕ͳ͍͜ͱͰɺࠓΞϓϦ͕ԿΛ͍ͯ͠Δͷ͔Θ͔ Βͳ͍ɻ௨৴Ͱ͖͍ͯͳ͍ͷ͔ɺࣦഊ͍ͯ͠Δͷ͔ɺͨͩಡΈࠐΈ͕͍ ͚ͩͳͷ͔ - ը໘Λ෴͏Α͏ͳϩʔσΟϯάʹΑΓɺ௨৴தϢʔβ͕શ͘ૢ࡞Ͱ͖ͳ͍
23 Ωϟογϡ
࣮ࡍʹEightʹ͋ͬͨ - ௨৴த௨৴ʹࣦഊͯ͠͠·͏ͱਅͬനʹ͍ۙ൵͍͠ը໘͕ͱ͜ΖͲ͜Ζ ʹ͋ͬͨ - ௨৴தʹϩʔσΟϯάදݱ͕ͳ͍͜ͱͰɺࠓΞϓϦ͕ԿΛ͍ͯ͠Δͷ͔Θ͔ Βͳ͍ɻ௨৴Ͱ͖͍ͯͳ͍ͷ͔ɺࣦഊ͍ͯ͠Δͷ͔ɺͨͩಡΈࠐΈ͕͍ ͚ͩͳͷ͔ - ը໘Λ෴͏Α͏ͳϩʔσΟϯάʹΑΓɺ௨৴தϢʔβ͕શ͘ૢ࡞Ͱ͖ͳ͍
24 Ωϟογϡ ϢʔβͷదͳϑΟʔυόοΫ
࣮ࡍʹEightʹ͋ͬͨ - ௨৴த௨৴ʹࣦഊͯ͠͠·͏ͱਅͬനʹ͍ۙ൵͍͠ը໘͕ͱ͜ΖͲ͜Ζ ʹ͋ͬͨ - ௨৴தʹϩʔσΟϯάදݱ͕ͳ͍͜ͱͰɺࠓΞϓϦ͕ԿΛ͍ͯ͠Δͷ͔Θ͔ Βͳ͍ɻ௨৴Ͱ͖͍ͯͳ͍ͷ͔ɺࣦഊ͍ͯ͠Δͷ͔ɺͨͩಡΈࠐΈ͕͍ ͚ͩͳͷ͔ - ը໘Λ෴͏Α͏ͳϩʔσΟϯάʹΑΓɺ௨৴தϢʔβ͕શ͘ૢ࡞Ͱ͖ͳ͍
25 Ωϟογϡ ϢʔβͷదͳϑΟʔυόοΫ όοΫάϥϯυ௨৴
Ωϟογϡ
ΩϟογϡͷϝϦοτ - ௨৴ͤͣͱσʔλʹΞΫηεͰ͖Δ - ॏ͍σʔλ1ճऔಘ͢Ε͑Δ - ϩʔΧϧʹσʔλ͕͋ΔͷͰߴͰΞΫηεͰ͖Δ 27
ΩϟογϡͷσϝϦοτ - ࠷ॳͷ1ճ௨৴͠ͳ͍ͱ͍͚ͳ͍ - ࠷৽ͷσʔλͰͳ͍Մೳੑ͕͋Δ - ͷ༰ྔ͕૿͑Δ - ҙਤ͠ͳ͍σʔλ͕ݟ͑ͯ͠·͏Մೳੑ͕͋Δ (ΞΧϯτͷΓସ͕͑͋ΔαʔϏε߹)
28
ൺֱ (Eightͷϝοηʔδৄࡉը໘) 29
࠷৽Ͱͳ͙ͯ͘͢ʹσʔλ͕ ݟΕΔ΄͏͕ମݧͱͯ͠ྑ͍ɻ ※ͪΖΜαʔϏεಛੑʹΑΓ·͢
ϢʔβͷదͳϑΟʔυόοΫ
“Feedback helps people know what an app is doing, discover
what they can do next, and understand the results of actions.” Human Interface Guidelines
௨৴ͷϑΟʔυόοΫ - ϩʔσΟϯά - Τϥʔ 33
ϩʔσΟϯά - ௨৴ڥ͕ѱ͍ͱ͜ΖͰɺίϯςϯπ͕ॠ࣌ʹදࣔ͞ΕͣɺϩʔσΟϯά දݱ͕ͳ͍ͱਅͬന͍ը໘·ͨίϯςϯπ͕ଘࡏ͠ͳ͍ۭനදݱʹͳͬ ͯ͠·͏ - Instagram, Facebook, Twitter, AppleͳͲͷΞϓϦΛݟΔͱϩʔσΟϯάදݱ
Activity IndicatorΛग़͍ͯ͠Δ - ը૾ͷϩʔσΟϯάʹؔͯ͠Progressive JPEGͷΑ͏ͳදݱͦͷը૾ ͷதͰҰ൪ଟ͘ΘΕ͍ͯΔ৭ͷը૾ΛҰ୴ද͓ࣔͯ͘͠ͷྑͦ͞͏ 34
Instagram Facebook Twitter Apple
Τϥʔ - ى͖͍ͯΔ͜ͱΛਖ਼֬ʹ͑ɺ࣍ʹͲ͏͢Εྑ͍͔͑Δ - APIͷϨεϙϯεͰΤϥʔͷछผ͝ͱʹఆٛ͠HTTPεςʔλείʔυͰద ʹϋϯυϦϯάͯ͠Ϣʔβʹ͑Δ - APIΛୟ͘લʹ௨৴͕Ͱ͖ͳ͍ঢ়گʹ͋ΔͳΒͦͷ͜ͱΛϢʔβʹ͑Δ - ʮΤϥʔʯɺʮ௨৴Τϥʔʯɺʮ௨৴ࣦഊʯΈ͍ͨͳͷ͚ͩઈର
36
37 ReachabilityͰ௨৴ڥ͕ͳ͚ΕguardͰૣظExit https://github.com/tonymillion/Reachability HTTPϨεϙϯεͷεςʔλείʔυΛݟͯదʹϋϯυϦϯά
None
Կ͕ى͖͍ͯͯɺ࣍ԿΛ͢ΕΑ͍͔Θ͔Δ
దͳϑΟʔυόοΫ͕ Ϣʔβମݧͷ্ʹͭͳ͕Δɻ ※1ͭલͷΞϥʔτ Ͱ͕͢ɻ
όοΫάϥϯυ௨৴
None
όοΫάϥϯυ௨৴ͷϝϦοτ - ෳຕͷը૾ϑΝΠϧಈըϑΝΠϧͳͲͷ௨৴ʹ͕͔͔࣌ؒΔͷͰཪ ଆͰ௨৴͢Δ͜ͱͰϢʔβͷૢ࡞ΛϒϩοΫ͠ͳ͍ - લͬͯཪଆͰ௨৴ͯ͠σʔλΛऔಘ͓ͯ͘͜͠ͱ(ϓϦϑΣον)Ͱɺ͍ ͍ͨͱ͖ʹ͙͢͏͜ͱ͕Ͱ͖Δ 43
όοΫάϥϯυ௨৴ͷσϝϦοτ - ௨৴தͷঢ়ଶɺޭ / ࣦഊΛૢ࡞தͷϢʔβʹ͑ͳ͚Ε͍͚ͳ͍ - ॲཧͷ҆શ໘ͷ߹ɺ௨৴͕ऴΘΒͳ͍ͱ࣍ͷը໘ਐΊͳ͍Α͏ͳը ໘Ͱ͑ͳ͍ - ෳͷ௨৴(ྻɺฒྻ)ɺ༏ઌॱҐɺґଘؔɺϦτϥΠػೳ(खಈɺࣗಈ)
Λߟ͑࢝ΊΔͱॲཧ͕ෳࡶʹͳͬͯ͠·͏ 44
InstagramɺSlackɺFacebookɺApple͋ͨΓͲ͜ όοΫάϥϯυͰ௨৴͠ɺϢʔβͷૢ࡞ΛϒϩοΫ͍ͯ͠ͳ͍
iCloud(Apple) Slack
Instagram Facebook
όοΫάϥϯυ௨৴ QueueͷΑ͏ͳΈ͕͋Ε࣮ݱͰ͖ͦ͏
Operation / OperationQueue - FoundationϑϨʔϜϫʔΫʹؚ·ΕΔ - Operation: ॲཧͷ͔ͨ·Γ - OperationQueue:
OperationΦϒδΣΫτͷΩϡʔɻฒྻॲཧɺඇฒྻॲཧ Λఏڙ͢Δ - OperationOperation Queueʹ༏ઌґଘؔΛ͚ͭΔ͜ͱՄೳ 49
- Operation / OperationQueueΛͬͯಠࣗͰ࣮ - Operation / OperationQueueͷWrapperϥΠϒϥϦΛ͏ 50
- SwiftQueue https://github.com/lucas34/SwiftQueue - ProducerKit https://github.com/ProcedureKit/ProcedureKit - Queuer https://github.com/FabrizioBrancati/Queuer -
PSOperations https://github.com/pluralsight/PSOperations 51 WrapperϥΠϒϥϦ
ཪଆͰ௨৴͢Δ͜ͱͰϢʔβͷૢ࡞Λ͛ͳ͍ɻ
௨৴ͷσόοάํ๏
Network Link ConditionerͰϥϑʹ࣮ػσόοά 54
CharlesͰৄࡉ·Ͱσόοά - ௨৴ͷϦΫΤετϨεϙϯεΛݟ͍ͨ - ಛఆͷ௨ͷΈΛࣦഊ͍ͤͨ͞ 55 Charles: https://www.charlesproxy.com/
·ͱΊ - ΩϟογϡΛੵۃతʹදࣔ - దͳදݱͰϢʔβʹϑΟʔυόοΫ - ॏ͍ॲཧόοΫάϥϯυͰ௨৴͢Δ 56
௨৴ڥ͕ෆ҆ఆͰࡉ෦·ͰؾΛͬͯ ৺Α͍ମݧΛಧ͚Α͏ʂ
Your business network
ࢀߟࢿྉ - ΠϯυͷΠϯλʔωοτڥͱͷઓ͍ํ https://www.slideshare.net/kenichitatsuhama/ss-112660510 - ΠϯυͷͳωοτϫʔΫڥͷ߈ུ๏ https://www.slideshare.net/kenichitatsuhama/ss-103588833 - Sansan Builders
Box (ฐࣾϒϩά) https://buildersbox.corp-sansan.com/entry/2019/02/27/165648 - Πϯλʔωοτճઢͷςετ Fast.com https://fast.com/ja/ - Feedback - User Interaction - iOS Human Interface Guidelines https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/feedback/ 59