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
800
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
10
5.1k
How Do I Contact Jetblue Airlines® Reservation Number: Fast Support Guide
thejetblueairhelpsupport
0
150
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
120
第64回コンピュータビジョン勉強会「The PanAf-FGBG Dataset: Understanding the Impact of Backgrounds in Wildlife Behaviour Recognition」
x_ttyszk
0
240
セキュアな社内Dify運用と外部連携の両立 ~AIによるAPIリスク評価~
zozotech
PRO
0
120
AWS CDK 入門ガイド これだけは知っておきたいヒント集
anank
5
750
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
100
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
13k
組織内、組織間の資産保護に必要なアイデンティティ基盤と関連技術の最新動向
fujie
0
280
データ戦略部門 紹介資料
sansan33
PRO
1
3.3k
TLSから見るSREの未来
atpons
2
310
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
524
40k
Code Review Best Practice
trishagee
69
19k
Making Projects Easy
brettharned
116
6.3k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Speed Design
sergeychernyshev
32
1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
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ͰͦΜͳײ͡Ͱ͢