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
ドッグフーディング用機能開発のススメ
Search
fromkk
November 25, 2016
Technology
1
630
ドッグフーディング用機能開発のススメ
チームで開発してると自分の把握してない場所でバグが発生している事がある。そんな時に原因を探す為にアプリの中にGitのブランチを表示させたらどうかという提案です。
fromkk
November 25, 2016
Tweet
Share
More Decks by fromkk
See All by fromkk
note社の全員野球で品質向上活動について / note_qa_challenge #iOS_test_teatime
fromkk
2
1.6k
1年分のデータが見たいと言われてやったこと/yearly_data_with_note
fromkk
0
790
note iOSチームの自動化 ver.2021/automation_with_iOS_team_on_note_ver2021
fromkk
0
1.8k
Bitrise体験会説明資料/bitrise_explore
fromkk
1
980
noteのiOSアプリで実装したアクセシビリティの全て #iosdc #a /a11y_with_iOS_App_on_note
fromkk
1
2.9k
dSYMのアップロードで SPMを活用する/use_spm_with_upload_dsyms
fromkk
1
2.4k
Bitriseのリモートアクセス機能 #bitrise_meetup/remote_access_of_bitrise
fromkk
1
480
note社でのMagic Pod活用事例 #af_iosdc/magicpod_with_note
fromkk
2
9.8k
iOSには無いmacOS独自機能をCatalystで実装する #iosdc #d/make_macos_apps_with_catalyst
fromkk
9
1.9k
Other Decks in Technology
See All in Technology
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
340
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
120
コンテナセキュリティの基本と脅威への対策
kyohmizu
3
750
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
340
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
3
12k
私が trocco を推す理由
__allllllllez__
1
210
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
190
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
380
Next'24 事例セッションの紹介とクラウド資格を活用したキャリア形成について語りMuscle
yasumuusan
1
440
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
890
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
370
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
180
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
237
11k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
A designer walks into a library…
pauljervisheath
200
23k
Atom: Resistance is Futile
akmur
259
25k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Designing the Hi-DPI Web
ddemaree
276
33k
How to Ace a Technical Interview
jacobian
272
22k
4 Signs Your Business is Dying
shpigford
175
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
Raft: Consensus for Rubyists
vanstee
132
6.3k
Transcript
υοάϑʔσΟϯά༻ػ ೳ։ൃͷεεϝ shinagawa.swift #1 (C) fromkk. 2016 1
ࣗݾհ ২Ԭɹ࠸ Timers inc.ͷiOSΤϯδχΞ Twitter: @fromkk Github: fromkk (C) fromkk.
2016 2
એ Χοϓϧ͚ΞϓϦͷPairy ͱ Ո͚ࣸਅڞ༗ΞϓϦͷ Famm ΛӡӦ͍ͯ͠Δ Ͱ ΤϯδχΞΛืू ͍ͯ͠·͢ʂ ڵຯͷ͋Δํֻ͓͚ɺ͘͠
http://timers-inc.com/ ΑΓ͓͍߹ΘͤԼ͍͞ʂ (C) fromkk. 2016 3
ૣͰ͕͢ (C) fromkk. 2016 4
νʔϜͰ։ൃͯ͠Δͱ ͜Μͳࣄ͋Γ·ͤΜ͔ʁ (C) fromkk. 2016 5
͜Μͳࣄ͋Γ·ͤΜ͔ʁ • ࣾһʮ͜͜όάͬͯΔΜ͚ͩͲʯ • ʢϏϧυ൪߸͔Β͏ͷେม...ʣ • ʮ...֬ೝ͢Δ͔Βͪΐͬͱͬͯʯ • ʢΘ͔ΜͶʔΑɺ͜Ε୭ͷϏϧυͩΑ...!ʣ (C)
fromkk. 2016 6
ϒϥϯν໊͕͔Ε ୭͕ॻ͍ͨͷͳͷ͔͔Δͷʹʂ (C) fromkk. 2016 7
ʢ։ൃதͷʣ ΞϓϦͷதʹϒϥϯν໊ Λग़ͯ͠͠·͓͏ʂ (C) fromkk. 2016 8
खॱ • Xcodeʹ Branch.plist ͱ͍͏ϑΝΠϧΛ࡞ • Edit Scheme ʹҠಈ •
εΩʔϜΛ Shared ʹมߋ • Build -> Pre Actions ΛΫϦοΫ • ϏϧυλʔήοτΛ Provide build setting from *** ʹมߋ • Scheme/Build/Pre-actions/Run Script ʹ࣍ͷίʔυΛՃ ※ https://github.com/fromkk/GitBranchName ʹαϯϓϧΛΞοϓ͍ͯ͠·͢ʂ (C) fromkk. 2016 9
खॱ branch="master" if [ ! -z "${CIRCLE_BRANCH+x}" ]; then branch=$CIRCLE_BRANCH
elif [ ! -z "${TRAVIS_BRANCH+x}" ]; then branch=$TRAVIS_BRANCH elif [ ! -z "${BITRISE_GIT_BRANCH+x}" ]; then branch=$BITRISE_GIT_BRANCH else git_path=$(which git) if [ -e $git_path ]; then branch=$($git_path --git-dir=$PROJECT_DIR/.git rev-parse --abbrev-ref HEAD) fi fi plistName=$PROJECT_DIR/Branch plistPath=$plistName.plist if [ ! -e $plistPath ]; then touch $plistPath fi chmod u+wr,g+wr,o+r $plistPath defaults write $plistName "branch" $branch (C) fromkk. 2016 10
खॱ • Ϗϧυͯ͠ΈΔ • Branch.plist ʹݱࡏͷϒϥϯν໊͕ө͞Ε͍ͯΔࣄΛ֬ ೝ • ࣍ͷ༷ͳίʔυͰϒϥϯν໊Λऔಘͯ͠ը໘ʹදࣔ (C)
fromkk. 2016 11
खॱ struct Branch { private enum Constants { static let
defaultBranch: String = "master" static let plistFileName: String = "Branch" static let branchNameKey: String = "branch" } static var current: String { guard let path: String = Bundle.main.path(forResource: Constants.plistFileName, ofType: "plist") else { return Constants.defaultBranch } guard let plist: [String: String] = NSDictionary(contentsOfFile: path) as? [String: String] else { return Constants.defaultBranch } return plist[Constants.branchNameKey] ?? Constants.defaultBranch } } let branch: String = Branch.current (C) fromkk. 2016 12
Demo (C) fromkk. 2016 13
·ͱΊ • ࢪࡦ͕ଟ͍ͱݪҼ͕ࢄΒΔͷͰࠞཚͷݩ • ݪҼΛٻͯ͠ରԠ͢Δҝʹ൜ਓ୳͕͠ඞཁͳࣄ͋Δ • ։ൃதͷෆ۩߹ϒϥϯν໊͕͔Δͱ৭ʑḿΔʂ • ෆໟͳݪҼ୳͜͠ΕͰΦαϥόʂ (C)
fromkk. 2016 14
͍ͬͯ͏༰ͰiOS Advent Calendar 2016ʹهࣄΛॻ͘ͷͰ ετοΫ ͍͍Ͷ Լ͍͞ʂ (C) fromkk. 2016
15
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ (C) fromkk. 2016 16