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
ピクシブのAndroidアプリ事情
Search
Keisuke SASAKI
September 10, 2014
Technology
1
4.4k
ピクシブのAndroidアプリ事情
2014/09/09 インターン向け発表資料
そもそもAndroidって何よ?から、社内での開発フローなどなど
Keisuke SASAKI
September 10, 2014
Tweet
Share
More Decks by Keisuke SASAKI
See All by Keisuke SASAKI
pixiv SUMMER BOOT CAMP 2015 講義資料
rooandqoo
0
3.4k
Rails寺子屋 x kosenconf 告知
rooandqoo
0
68
高専カンファレンス in 釧路 発表資料
rooandqoo
2
810
Other Decks in Technology
See All in Technology
実装で解き明かす並行処理の歴史
zozotech
PRO
1
320
Optuna DashboardにおけるPLaMo2連携機能の紹介 / PFN LLM セミナー
pfn
PRO
1
880
生成AIを活用したZennの取り組み事例
ryosukeigarashi
0
200
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
23
17k
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
490
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
140
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
730
Azure SynapseからAzure Databricksへ 移行してわかった新時代のコスト問題!?
databricksjapan
0
140
PLaMo2シリーズのvLLM実装 / PFN LLM セミナー
pfn
PRO
2
970
BtoBプロダクト開発の深層
16bitidol
0
270
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
200
Pure Goで体験するWasmの未来
askua
1
180
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing for Performance
lara
610
69k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
For a Future-Friendly Web
brad_frost
180
9.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
The Cost Of JavaScript in 2023
addyosmani
53
9k
What's in a price? How to price your products and services
michaelherold
246
12k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
850
Transcript
pixivͷAndroidΞϓϦࣄ ։ൃ෦ ϞόΠϧνʔϜ ࠤʑ Ղ༞ @RooandQoo
ࠤʑՂ༞@RooandQoo AndroidΤϯδχΞ ࠓͷ৽ଔ(ࣾྺ3) About me
What is Android
What is Android ɾGoogle ͷϞόΠϧ͚OS ɾΦʔϓϯιʔε ɾੈքతγΣΞߴ͍ ɾຊͩͱ…
What is Android όʔδϣϯίʔυͷ໊લ͕͓՛ࢠ
What is Android 1.5 : Cupcake 1.6 : Donut 2.0
: Eclair 2.2 : Frozen Yogurt 3.0 : Gingerbread 4.0 : Ice Cream Sandwich 4.1 : Jelly Bean 4.4 : KitKat 5.0? : L…?
What is Android ͔Θ͍͍
What is Android ɾ͍ͭ͜ʹਖ਼໊ࣜশͳ͍Β͍͠
What is Android ࠷ۙͷ Google ੜ׆ͱ AndroidΛ ີணͤ͞Α͏ͱ͍ͯ͠Δ
Android Wear
Android Auto
Android TV
What is Android ͦͷ͏ͪྫྷଂݿͱ͔ʹ৯͍ࠐΜͰ͖ͦ͏
What is Android ͷճΓͷͷΛ hack Ͱ͖Δͱ͍ͬͨҙຯͰ ͓͍ͬͯͯଛͳ͍͔ʁ
How to Dev
How to Dev Apps ɾJava(ͬΆ͍ݴޠ) + xml ɾAndroid Studio(IDE) ωΠςΟϒͳΞϓϦ
How to Dev Apps ɾJava(ͬΆ͍ݴޠ) + xml ɾAndroid Studio(IDE) ωΠςΟϒͳΞϓϦ
ScalaͰॻ͜͏ͱؤுͬͯΔਓ͍ΔΒ͍͠
How to Dev Apps ɾTitanium Mobile ɾMonaca ɾRhodes ɾCordova !
ͳͲͳͲ… WebΞϓϦͬΆͭ͘͘ΕΔϑϨʔϜϫʔΫ
How to Dev Apps Java Ϣʔβ͔Βͷೖྗʹର͢ΔԠ ͳͲɺ৭ʑͳॲཧ xml ϨΠΞτΞϓϦͷจࣈྻɺͳͲͷ ఆٛ
Architecture
Architecture Java Resources(xml) AndroidManifest.xml Build Script Project Source ͦΜͳʹେ͖͘ͳ͍
Java Resources(xml) AndroidManifest.xml Build Script Project Source ΞϓϦέʔγϣϯશମͷઃఆϑΝΠϧ Architecture
Java Resources(xml) AndroidManifest.xml Build Script Project Source ϏϧυઃఆͷεΫϦϓτϑΝΠϧ(Gradle) Architecture
Way to hello world
Way to hello world ɾAndroid StudioΛηοτΞοϓ ɾ৽نϓϩδΣΫτΛ࡞ ɾRun ϘλϯΛԡ͢
Way to hello world ɾAndroid StudioΛηοτΞοϓ ɾ৽نϓϩδΣΫτΛ࡞ ɾRun ϘλϯΛԡ͢ ͔ΜͨΜʂ
Way to hello world ɾAndroid StudioΛηοτΞοϓ ɾ৽نϓϩδΣΫτΛ࡞ ɾRun ϘλϯΛԡ͢ https://developer.android.com/sdk/installing/studio.html
Way to hello world ɾAndroid StudioΛηοτΞοϓ ɾ৽نϓϩδΣΫτΛ࡞ ɾRun ϘλϯΛԡ͢ New
Project͔ΒαΫαΫͭ͘ΕΔ ॳΊ͔Β1ຕͷActivityΛ͍࣋ͬͯΔ
Way to hello world ɾAndroid StudioΛηοτΞοϓ ɾ৽نϓϩδΣΫτΛ࡞ ɾRun ϘλϯΛԡ͢
Way to hello world
Way to hello world ɾAndroid StudioΛηοτΞοϓ ɾ৽نϓϩδΣΫτΛ࡞ ɾRun ϘλϯΛԡ͢ New
Project͔ΒαΫαΫͭ͘ΕΔ ॳΊ͔Β1ຕͷActivityΛ͍࣋ͬͯΔ
Activity?
Activity ɾϘλϯϦετͳͲͷը໘ύʔπ ɾWebϖʔδ(WebView) ɾάϥϑΟοΫε AndroidΞϓϦʹ͓͚Δը໘ͷ୯Ґ ͳͲ͕දࣔ͞ΕΔJavaͷΫϥε
Activity AndroidΞϓϦʹ͓͚Δը໘ͷ୯Ґ Ϣʔβͷૢ࡞Λड͚ͯॲཧ͢Δͷ Activityͷࣄ
Activity Activity Resource Load Show Operation User
Development Environment
Development Environment Android։ൃ༻ͷϓϥάΠϯΛ ՃͰΠϯετʔϧ͢Δඞཁ͕͋ͬͨ
Development Environment 2013ϦϦʔεɺ0.8.6(20149݄9ݱࡏ)
Development Environment Eclipseͱൺ͍͍ͯͱ͜Ζ
Development Environment Gradle͕͑Δ
Development Environment ʢGradle͕͑Δ͜ͱͰʣ ϥΠϒϥϦͷཧָ͕
Development Environment ࢀߟࢿྉʢ͍͍ײ͡ʹ·ͱ·ͬͯ·͢ʣ http://blog.nkzn.info/entry/2014/03/21/015914
Development Environment pixivͰ2014ͷ4݄ʹҠߦͨ͠
Gradle
Gradle
Gradle ɾAntMavenʹΘΔϏϧυπʔϧ ɾهड़͕؆୯Ͱਓؒʹݟ͍͢ ɾAndroid StudioͰඞਢ ɾϥΠϒϥϦͷཧָ
Gradle [Gradle] GradleͱMavenͱAnt+ivyͷൺֱ http://d.hatena.ne.jp/kaakaa_hoe/20130312 ࢀߟࢿྉ
None
None
None
Gradle ɾAntMavenʹΘΔϏϧυπʔϧ ɾهड़͕؆୯Ͱਓؒʹݟ͍͢ ɾAndroid StudioͰඞਢ ɾϥΠϒϥϦͷཧָ
Gradle ɾAntMavenʹΘΔϏϧυπʔϧ ɾهड़͕؆୯Ͱਓؒʹݟ͍͢ ɾAndroid StudioͰඞਢ ɾϥΠϒϥϦͷཧָ
Gradle ͜͜ʹॻ͚ͩ͘ʂ
Gradle ศརʂ
Android@pixiv
ɾpixiv ɾpixiv ίϛοΫ ɾpixiv wall Android@pixiv ग़ͯ͠ΔΞϓϦ
iOSΞϓϦʹൺͯϦϦʔεͷख͕ؒͳ͍ͨΊɺ ࣮ݧతػೳΛಋೖ͢Δ࣌ͷઑฌʹͳΔ͜ͱ͋Δ Android@pixiv
ɾgit / GitHub ɾTravis CI ɾDeployGate ɾCrashlytics ɾGoogle Analytics Android@pixiv
ར༻ͯ͠Δπʔϧ
ݴΘͣͱΕͨιʔείʔυཧγεςϜ ػೳՃόάमਖ਼PRϕʔεͰߦ͏ Android@pixiv git / GitHub
GitHubʹ push ͞ΕͨίʔυΛ Ϗϧυɺςετͯ͘͠ΕΔ ͜Εʹ pass ͠ͳ͍ίʔυϚʔδ͞Εͳ͍ Android@pixiv Travis CI
ΞϓϦͷβ൛γεςϜ ࣾͷਓʹͬͯΒͬͯ ༻ײͷ֬ೝσόοάΛߦ͏ Android@pixiv DeployGate
ΞϓϦͷΫϥογϡݪҼੳͳͲΛ αϙʔτͯ͘͠ΕΔαʔϏε ൃੜՕॴճ͕Θ͔ΔͷͰσόοάʹॏๅ͍ͯ͠Δ Android@pixiv Crashlytics
Ϣʔβ͕ΞϓϦͰͲΜͳΞΫγϣϯΛߦ͔ͬͨʁ ͱ͍ͬͨΠϕϯτΛղੳͯ͘͠ΕΔαʔϏε Android@pixiv Google Analytics
ྑ͛͞ͳπʔϧ / ϥΠϒϥϦੵۃతʹಋೖͯ͠Δ Android@pixiv
࣮ɺpush ࣮͢Δͷ ܾΊΔ ࣾςετ (DeployGate) ϦϦʔε Release Cycle
Android@pixiv ࣮͢Δػೳͷݕ౼ Β͕ ΄͍͠ͷ Ϣʔβ͕ ΄͍͠ͷ ձࣾతʹ ྑ͍ͷ ίίΛॏతʹ ຬ͍ͨͯ͘͠
Android@pixiv ։ൃ Issueཱͯͯ
Android@pixiv ։ൃ ॻ͍ͯPRΛ͛Δ
Android@pixiv ։ൃ PRඞͣϨϏϡΞʔ͕1ਓҎ্͍ͭͯ ίʔυϨϏϡʔΛߦ͏
Android@pixiv ։ൃ ࠷ۙWIPͱͯ͠࡞ۀ్தͷPRΛग़͠ɺ ࡉ͔͍୯ҐͰϨϏϡʔͯ͠Β͏͜ͱ
Android@pixiv ։ൃ ྑ͛͞ͳϥΠϒϥϦυϯυϯ͏
Android@pixiv ։ൃ ඞཁʹԠͯ͡APIΛॻ͍ͨΓ͢Δ
Android@pixiv ྫ UIେվम
Android@pixiv Β͕΄͍͠ ɾࣜUI͍͍Ճݮμα͍ ʢެࣜͬΆ͘ͳ͍…ʣ ɾࠓͬΆ͍σβΠϯͷைྲྀʹΓ͍ͨ
Android@pixiv Ϣʔβ͕΄͍͠ ɾ͖ͬ͢Γ·ͱ·ͬͨUI͍͍͢ ɾଞͷࠓ෩ͷΞϓϦͱσβΠϯ͕ἧ͍ͬͯͯྑ͍
Android@pixiv ձࣾతʹྑ͍ ɾΞϓϦͪΌΜͱ࡞Γ͜ΜͰΔΞϐʔϧͰ͖Δ
None
None
Android@pixiv ɾେنͳվमͩͬͨͷͰ ɹϦϦʔε͞Εͨ࣌ͷײಈ͕େ͖͔ͬͨ ݟ
Android@pixiv ݟ ɾIssueͱPRͷن͕େʹͳΓ͗ͨ͢ →ͳΔ͘ࡉ͔۠ͬͨ͘ํ͕ϨϏϡΞʔ͕ࠔΒͳ͍
Android@pixiv ݟ ɾIssueͱPRͷن͕େʹͳΓ͗ͨ͢ →ͳΔ͘ࡉ͔۠ͬͨ͘ํ͕ϨϏϡΞʔ͕ࠔΒͳ͍ ϞόΠϧΞϓϦʹݶͬͨ͡Όͳ͍͚Ͳ…
matome ɾϞόΠϧνʔϜϑοτϫʔΫ͕͍ܰ ! ɾΓ͍ͨ͜ͱ͕࣮ݱ͘͢͠ɺ ɹϢʔβ͔ΒͷϨεϙϯεૣ͍ ! ɾগͳ͘ͱpixivͰͦΜͳײ͡Ͱ͢