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
540
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
Tebiki Engineering Team Deck
tebiki
0
24k
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
480
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
670
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
マネージャー視点で考えるプロダクトエンジニアの評価 / Evaluating Product Engineers from a Manager's Perspective
hiro_torii
0
190
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
4
390
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
190
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Statistics for Hackers
jakevdp
799
230k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
The browser strikes back
jonoalderson
0
420
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
Amusing Abliteration
ianozsvald
0
110
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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͠·͢ (ͨͿΜ)
Ҏ্Ͱ͢