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
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
250
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.3k
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
290
「Linux」という言葉が指すもの
sat
PRO
4
140
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
260
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
270
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
120
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
220
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
310
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
730
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Thoughts on Productivity
jonyablonski
70
4.8k
A Tale of Four Properties
chriscoyier
160
23k
Code Reviewing Like a Champion
maltzj
525
40k
RailsConf 2023
tenderlove
30
1.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Done Done
chrislema
185
16k
Building an army of robots
kneath
306
46k
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ͰͦΜͳײ͡Ͱ͢