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
990
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
sabotage
yoppie
May 27, 2019
More Decks by yoppie
See All by yoppie
AmperとFleetを使ったAndroidアプリ
yoppie
0
1.1k
Androidエンジニアが Flutterでアプリを リリースするまでの苦悩
yoppie
0
550
Navigation Component 実践編
yoppie
1
300
FragmentContainerViewとは
yoppie
0
810
Recent tips collection
yoppie
0
1.1k
Distribute Android app updates with bitrise
yoppie
0
1.4k
EC2 using Lumen and DynamoDB and SNS
yoppie
1
290
Play with Kotlin
yoppie
1
650
Other Decks in Technology
See All in Technology
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
190
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
510
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
Claude Teamプランの コスト最適化を考える
rfdnxbro
0
470
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
460
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
430
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
780
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
140
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
Rust×eBPFでEDRっぽいものをつくる
sunlife3
2
940
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
トークンマネジメントでAIにとって働きやすい環境を実現する
hikaruegashira
0
160
Featured
See All Featured
We Are The Robots
honzajavorek
0
310
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
670
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Tell your own story through comics
letsgokoyo
1
1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
660
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
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͠·͢ (ͨͿΜ)
Ҏ্Ͱ͢