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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yoppie
May 27, 2019
Technology
1
970
sabotage
yoppie
May 27, 2019
Tweet
Share
More Decks by yoppie
See All by yoppie
AmperとFleetを使ったAndroidアプリ
yoppie
0
970
Androidエンジニアが Flutterでアプリを リリースするまでの苦悩
yoppie
0
550
Navigation Component 実践編
yoppie
1
280
FragmentContainerViewとは
yoppie
0
780
Recent tips collection
yoppie
0
1k
Distribute Android app updates with bitrise
yoppie
0
1.4k
EC2 using Lumen and DynamoDB and SNS
yoppie
1
280
Play with Kotlin
yoppie
1
630
Other Decks in Technology
See All in Technology
AI ネイティブ組織への変革:ビジネスとITの統合が拓く未来/ AIで“はたらく”をアップデートする人材業界パーソルキャリアのリアル
techtekt
PRO
0
100
パネルディスカッション資料 (at Tableau Now! - 2026-02-26)
yoshitakaarakawa
0
1k
Agentic Codingの実践とチームで導入するための工夫
lycorptech_jp
PRO
0
380
脱・コピペ!自分で調べて書くK8sマニフェスト
devops_vtj
0
100
dbt meetup #19 『dbtを『なんとなく動かす』を卒業します』
tiltmax3
0
140
OSSで構築するIT基盤管理実践事例: NetBox・Snipe-IT・FreeRADIUS+PrivacyIDEA / Practical Case Studies of IT Infrastructure Management Using OSS
nttcom
0
120
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
8
1.5k
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
440
どこで打鍵するのが良い? IaCの実行基盤選定について
nrinetcom
PRO
2
110
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
380
AI Coding Agentの地殻変動 ~ ai-coding.info の定点観測 ~
kotauchisunsun
1
500
【SLO】"多様な期待値" と向き合ってみた
z63d
2
290
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Marketing to machines
jonoalderson
1
5k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Making Projects Easy
brettharned
120
6.6k
Practical Orchestrator
shlominoach
191
11k
WCS-LA-2024
lcolladotor
0
470
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
96
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
140
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
The Spectacular Lies of Maps
axbom
PRO
1
580
Designing Powerful Visuals for Engaging Learning
tmiket
0
250
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͠·͢ (ͨͿΜ)
Ҏ্Ͱ͢