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
Keishin Yokomaku
May 15, 2014
Programming
6
2.9k
ノハナのアプリを爆速で動くようにした話
Keishin Yokomaku
May 15, 2014
Tweet
Share
More Decks by Keishin Yokomaku
See All by Keishin Yokomaku
Base64 in Android
keithyokoma
0
21
One screen, many BottomSheets
keithyokoma
0
390
LazyColumnのitemがViewPortの中で占める領域の割合を知りたい
keithyokoma
0
660
Build apps for Cars
keithyokoma
0
530
Save the state
keithyokoma
0
570
Either in Kotlin
keithyokoma
0
590
持続的なアプリ開発のためのDXを支える技術
keithyokoma
2
5.2k
Make the objects serializable with kotlinx.serialization
keithyokoma
0
5.1k
Kotlin で書く Gradle Custom Tasks
keithyokoma
0
550
Other Decks in Programming
See All in Programming
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
440
概念モデル→論理モデルで気をつけていること
sunnyone
1
110
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
220
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
590
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
300
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
300
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.2k
Kiroで始めるAI-DLC
kaonash
2
590
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
Navigating Dependency Injection with Metro
zacsweers
3
260
アセットのコンパイルについて
ojun9
0
120
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
230
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Writing Fast Ruby
sferik
628
62k
Designing for Performance
lara
610
69k
Code Review Best Practice
trishagee
70
19k
The Cult of Friendly URLs
andyhume
79
6.6k
Scaling GitHub
holman
463
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Transcript
ϊϋφͷΞϓϦΛരͰ ಈ͘Α͏ʹͨ͠ @KeithYokoma
ࣗݾհ @KeithYokoma(ԣນ ܓਅ) 2011 גࣜձࣾϛΫγΟೖࣾ ϊϋφͷதͷਓ Android ΞϓϦͷਓ
Available on Kindle Store http://amzn.to/1mZNydv
ࠓͷ͓ Parse ͱ্खʹ͖ͭ͋͏ ઃܭΛ͍͍ײ͡ʹ͢Δ
ϊϋφͷόοΫΤϯυ Parse.com ParseSDK
ParseSDK ҎԼͷ͜ͱΛͯ͘͠ΕΔ ɾόοΫΤϯυͷϦΫΤετ ɾऔಘͨ͠σʔλͷཧ ɾϢʔβΞΧϯτͷηογϣϯཧ ɾetc…
ParseSDK ͷಛ 1. ඇಉظॲཧ͕؆୯ʹѻ͑Δ
ParseSDK Ͱඇಉظॲཧ ParseQuery<ParseObject> query = ParseQuery.getQuery(“SomeData”); query.findInBackground(new FindCallback<ParseObject>() { public
void done(List<ParseObject> result, ParseException e) { if (e == null) { // Normal } else { // Error } } });
ParseSDK ͷಛ 2. ৼΔ͍Λ֦ுͰ͖Δ
ParseSDK ͰৼΔ͍Λ֦ு public class SomeData extends ParseObject { @Override public
void saveInBackground(SaveCallback callback) { if (!isValidName()) { callback.done(new ParseException()); } super.saveInBackground(callback); } }
ParseSDK ͷಛ 3. ΩϟογϡجຊͷϩδοΫӅṭ͞ΕΔ SDK ͕Α͠ͳʹ໘Λݟͯ͘ΕΔ
؆୯ʂ
1BSTF0CKFDU 1IPUP#PPL 1IPUP 1BHF ʜ
ڞ௨ͷॲཧ͋ΔΑͶʂ
1BSTF0CKFDU 1IPUP#PPL 1IPUP 1BHF ʜ *NBHF.PEFM .PEFM /FXT ʜ
–ϨϏϡʔ “ڧ੍ऴྃ͢Δ”
–ϨϏϡʔ “͑ͳ͍ɻ ͙͢ڧ੍ऴྃʹͳͬͯຊʹ͑ͳ͍”
–Crashlytics “New Fatal Issue Discovered in ϊϋφ”
ParseSDK ͷ᠘ 1. ඇಉظॲཧ͕φΠʔϒ ɾϝΠϯεϨουͰ wait ͢Δॴ͕͋Δ ɾContext ͷੜࢮʹؔΘΒͣίʔϧόοΫΛ ݺͿ
ParseSDK ͷ᠘ 2. ϦΫΤετͷϦτϥΠ͕Լख >> java.lang.IllegalStateException: Manager is shut down.
<<
ParseSDK ͷ᠘ 3. ΦϑϥΠϯͷରԠ͕ࡶ ɾίωΫγϣϯ͕ແ͍ͱΑ͘མͪΔ
ParseSDK ͷ᠘ 4. υΩϡϝϯτʹͳ͍Τϥʔ͕ฦͬͯ͘Δ ɾෛՙ্͕͕ΔͱΑ͘ى͜Δ
ParseSDK ͷ᠘ 5. औ͖ͬͯͨσʔλΛऔΓग़͢ͷ࣌ؒ৯͏ ɾParseObject#get**(String) ɾreturn ʹࢸΔ·ͰͷνΣοΫ͕ωοΫ ɾParseObjectͷίϨΫγϣϯ͓͠Լ͍͞
ϊϋφͰ ParseSDK ParseObject ͷ֦ுΫϥε܈ ɾϞσϧͷࣄશ෦ͦͷதʹ ɾڊେϞσϧʹ ɾςετͳ͍ ɾϝϞϦϦʔΫͷڪාʹک͑Δຖ
–ඵ5Ϋϥογϡ “ͨͪͷલʹ ະͩڊେ͗͢ΔϞσϧ͕ ᣔയͱͨ͠ΫϥογϡϨϙʔτ͕ Ͳ͏͠Α͏ͳ͘ɺԣͨΘ͍ͬͯͨ”
Ver2.0.0 શମΛϦϑΝΫλϦϯά
ParseSDK ͱ্खʹ͖߹͏ ɾͱΓ͋͑ͣ SDK ͷඇಉظॲཧΊΔ ɾͱΓ͋͑ͣ ParseObject ͷ֦ுΛΊΔ ɾͪΌΜͱϨΠϠΛ͚ͯཧ͢Δ
Parse.com Client Converter Loader Model Request Response ParseObject Entity Model
Worker Thread Main Thread
ParseSDK ͱ্खʹ͖߹͏ UIεϨουͷੈքʹParseObjectΛೖΕͳ͍ ɾLoader ͰੈքΛ̎ͭʹஅ ɾόοΫΤϯυͱͷΛClientʹڽू ɾσʔλߏͱParseObjectΛ
݁Ռ ɾڊେϞσϧډͳ͘ͳͬͨ ɾStop the world ͠ͳ͘ͳͬͨ ɾSDK ͷ᠘ʹΑΔΫϥογϡ͕ݮͬͨ ɾςετ͕ॻ͖͘͢ͳͬͨ
ͳΜͱ͔͍ͨ͜͠ͱ ɾParseObject ͔ΒσʔλΛऔΓग़͢ͷॏ͍ ɾREST API ͋ΔͷͰͦΕΛ͍͍ͨ ɾόοΫΤϯυͷΓସ͑Λָʹ͍ͨ͠
݁ ɾBaaS ָ͍͢͝ ɾόοΫΤϯυͷΠϯλϑΣʔεͪΌΜ ͱ࡞Βͳ͍ͱ͋ͱͰٽ͘