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
通信環境が不安定でも心地よい体験を
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
Oxlintはいいぞ(続)
yug1224
1
500
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
280
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
130
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
480
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
590
「人を評価する AI」の設計と実装
ryoyanara
0
270
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
590
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
170
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
250
My Marp Sample
sinoue0108
0
130
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
550
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
130
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Side Projects
sachag
455
43k
Accessibility Awareness
sabderemane
1
190
Producing Creativity
orderedlist
PRO
348
41k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
560
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Done Done
chrislema
186
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
220
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