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
sabotage
Search
yoppie
May 27, 2019
Technology
1
900
sabotage
yoppie
May 27, 2019
Tweet
Share
More Decks by yoppie
See All by yoppie
AmperとFleetを使ったAndroidアプリ
yoppie
0
720
Androidエンジニアが Flutterでアプリを リリースするまでの苦悩
yoppie
0
510
Navigation Component 実践編
yoppie
1
230
FragmentContainerViewとは
yoppie
0
670
Recent tips collection
yoppie
0
930
Distribute Android app updates with bitrise
yoppie
0
1.3k
EC2 using Lumen and DynamoDB and SNS
yoppie
1
230
Play with Kotlin
yoppie
1
570
Other Decks in Technology
See All in Technology
開発者体験を定量的に把握する手法と活用事例
ham0215
0
150
AIエージェント入門
minorun365
PRO
35
20k
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
230
プルリクエストレビューを終わらせるためのチーム体制 / The Team for Completing Pull Request Reviews
nekonenene
4
2k
社内でKaggle部を作って初学者育成した話
daikon99
1
170
貧民的プログラミングのすすめ
kakehashi
PRO
2
310
役員・マネージャー・著者・エンジニアそれぞれの立場から見たAWS認定資格
nrinetcom
PRO
5
6.9k
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
2
210
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
36
24k
Qiita Organizationを導入したら、アウトプッターが爆増して会社がちょっと有名になった件
minorun365
PRO
1
380
2025/3/1 公共交通オープンデータデイ2025
morohoshi
0
120
AIエージェント開発のノウハウと課題
pharma_x_tech
10
5.7k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building Applications with DynamoDB
mza
93
6.3k
Navigating Team Friction
lara
183
15k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
390
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
560
Become a Pro
speakerdeck
PRO
26
5.2k
Bash Introduction
62gerente
611
210k
Code Review Best Practice
trishagee
67
18k
Agile that works and the tools we love
rasmusluckow
328
21k
Transcript
͞΅͖ͬͯͨ͜ͱ
Facebook hi.kowaii.de / Twitter @yoppie_x Github yoshiya12X / Qiita yoppie_x
ϒϩά https://yoppiex.hatenablog.com/ yoppie
20134݄ - 20153݄ େֶͰιϑτΣΞֶ • High Impact Bugͷݚڀ • Androidʹؔ͢Δݚڀ
20154݄ - 20173݄ େֶӃͰιϑτΣΞֶ WebΞϓϦͱAndroidΞϓϦͷ डୗ։ൃͱόΠτ 20174݄ - 20195݄ ͙ΔͳͼͰαʔόʔαΠυ झຯͰAndroid 20196݄ ~ ϑϦʔϥϯε
20134݄ - 20153݄ େֶͰιϑτΣΞֶ • High Impact Bugͷݚڀ • Androidʹؔ͢Δݚڀ
20154݄ - 20173݄ େֶӃͰιϑτΣΞֶ WebΞϓϦͱAndroidΞϓϦͷ डୗ։ൃͱόΠτ 20174݄ - 20195݄ ͙ΔͳͼͰαʔόʔαΠυ झຯͰAndroid 20196݄ ~ ϑϦʔϥϯε
Engineer Blogs
࠷ۙνʔϜʹͳͬͨ
͞΅͖ͬͯͨ͜ͱ • CI/CDڥ • ΞφϦςΟΫε • Lint • ςετίʔυ
͞΅͖ͬͯͨ͜ͱ • CI/CDڥ • ΞφϦςΟΫε • Lint • ςετίʔυ
CI/CDڥ
ΞοϓσʔτΛ • νʔϜʹͳͬͨ͜ͱʹΑΓɺ ։ൃͨ͠ΞοϓσʔτΛϝϯόʔʹ͢Δ ඞཁੑ͕Ͱͨ • ͬͨͷ Bitrise, DeployGate
·ͰͷྲྀΕ 1. git pushͰมߋΛpush 2. BitriseͷWorkflowൃՐ 1. AndroidϓϩδΣΫτͷBuild 2. DeployGateΞοϓϩʔυ
ϦϙδτϦͱBitriseΛඥ͚ͮΔ 1. Add New AppϘλϯΛԡԼ 2.
SET PRIVACY OF THE APPͰʮPrivateʯ or ʮPublicʯΛબ 3. Github, Bitbucket, GitLab, Other/Manual͔Βରͱ͢Δ ϦϙδτϦΛબ
4. Setup repository accessͰೝূํ๏Λઃఆ 5. Choose branchͰݕূͱηοτΞοϓΛ͢ΔͨΊͷ branchΛࢦఆ
ଘࡏ͠ͳ͍branchΛࢦఆ͢Δͱ ࣍ͷεςοϓͷValidating repositoryͰౖΒΕΔ
6. Validate͕௨Δͱ࣍ͷεςοϓͷ Project build configuration͕ࣗಈͰग़ྗ͞Ε BitriseͷԸܙΛड͚Δ͜ͱʹͳΔ
7. ઃఆΛฤू͠ConfirmϘλϯΛԡ͢ͱΞΠίϯΛઃఆ͢Δ ఔʹөΔͷͰΞϓϦͷΞΠίϯͳͲΛࢦఆ 8. Webhook setupͰgit pushΛτϦΨʔʹWorkflowΛ ൃՐͤ͞Δઃఆ
Register a Webhook for me!ͱ͍͏ϘλϯΛΆͪΔ͚ͩ
σϑΥϧτͰ༻ҙ͞Εͨ Workflow
AndroidϓϩδΣΫτͷBuild Workflowʹ͋Δ+ϘλϯͰAndroid BuildΛՃ
DeployGateΞοϓϩʔυ AndroidBuildޙʹDeployGate UploadΛՃ DeployGate UploadͰࡉ͔͘ઃఆ
• Version always latest • DeployGate: API Key 1. DeployGateͷϓϩϑΟʔϧϖʔδʹ͋ΔAPI
keyΛίϐʔ 2. ೖྗ͠Α͏ͱ͢ΔͱϞʔμϧ͕දࣔ͞Ε, Bitrise্Ͱѻ͏ άϩʔόϧมͱͯ͠ఆٛ͢ΔΑ͏ʹଅ͞ΕΔ 3. $DEPLOY_GATE_API_KEYΛ࡞͠ʮ1ʯͰίϐʔͨ͠ Λೖ
• DeployGate: Owner Name DeployGateͰ࣮ࡍʹ͍ͬͯΔΞΧϯτ໊Λఆٛ • App file path binary
file(APK file)ͷύεΛఆٛ Bitrise͕༻ҙ͍ͯ͠Δมʮ$BITRISE_APK_PATHʯΛ ॻ͘ͱ௨Δ • DeployGate: App Visibility ΞϓϦ໊ͱΞΠίϯͷදࣔΛࢦఆ
ΞφϦςΟΫε
Firebase AnalyticsΛಋೖ • ʮAndroidϓϩδΣΫτʹFirebaseΛՃ͢Δʯ ͱ͍͏FirebaseެࣜͷυΩϡϝϯτ https://firebase.google.com/docs/android/setup • AndroidStudio͔Βಋೖ
1. AndroidStudioͷ Tools>FirebaseΛ։͘
2. Analyticsͷ߲͔Β Connect to FirebaseΛԡ͢
3. 3ͷ֬ೝ߲ • Connect your app to Firebase͕Connectedʹͳ͍ͬͯΔ͜ͱ
• AndroidϓϩδΣΫτʹgoogle-services.json͕࡞͞Ε͍ͯΔ͜ͱ • Firebaseͷίϯιʔϧը໘ʹϓϩδΣΫτ͕࡞͞Ε͍ͯΔ͜ͱ
4. AnalyticsΛΞϓϦʹೖΕΔ 1. Add Analytics to your appΛϙνΔ
2. implementation 'com.google.firebase:firebase-core:16.0.4' ͕gradleʹՃ͞ΕΔͷͰ࠷৽ͷόʔδϣϯͷ ʮ16.0.8ʯʹमਖ਼
Lint
LintΛ࣮ߦ Lintͷ࣮ߦํ๏ෳ͋Γ·͕͢ Android Studio্Ͱ࣮ߦ͢Δͷ͕؆୯ Android 39 warnings Kotlin 10 warnings
2 infos Spelling 72typos XML 1 warning
XML 1 warning appΛ͓ͬͯΒͣ Namespace declaration is never usedͱͳ͍ͬͯͨ ʮxmlns:app="http://schemas.android.com/apk/res-auto"ʯ
Λআ
Spelling 72typos • ී௨ʹεϖϧϛε Entity Entitiy Thumbnail Thumnail • MoshiSthethoͱ͍ͬͨޠ
Android Studio > Preferences... > Spelling > Accepted Words
Kotlin 10 warnings 2 infos • Unused import directive import
android.util.Logফ͠Ε͕ͪ • Unused symbol ͍ͬͯͳ͍ϝιου͕͋Δͱ͍͏warning • privateԽ privateʹͰ͖Δͱ͜Ζprivateʹ͠Α͏
Android 39 warnings • ImageViewʹcontentDescription͕ͳ͍ ΞΫηγϏϦςΟ্ͷͨΊͷcontentDescription • layoutͷஔͷࢦఆํ๏ android:layout_marginLeft →
android:layout_marginStart • ඞཁͷͳ͍RelativeLayout This 'RelativeLayout' layout or its 'RelativeLayout' parent is useless; transfer the 'background' attribute to the other view
• ͍ͬͯͳ͍Ϧιʔεͷআ Unused resourcesͱ͍͏warning͕Ͱͨ Android Studio্Ͱ؆୯ʹফ͢͜ͱ͕Ͱ͖Δ (ґଘؔ֬ೝ͍ͯ͠ΔΑ͏ͩͬͨ)
Lintͷର֎ϑΝΠϧͷࢦఆ app/lint.xml app/build.gradle
͜Ε͔Β͜·Ίʹ Lint͠·͢ (ͨͿΜ)
Ҏ্Ͱ͢