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
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
800
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
800
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
670
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
sbt 2.0: takeoff
eed3si9n
0
160
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.9k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.5k
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
320
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
510
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
We Have a Design System, Now What?
morganepeng
55
8.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
760
Six Lessons from altMBA
skipperchong
29
4.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Writing Fast Ruby
sferik
630
63k
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