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
750
1
Share
ドッグフーディング用機能開発のススメ
チームで開発してると自分の把握してない場所でバグが発生している事がある。そんな時に原因を探す為にアプリの中にGitのブランチを表示させたらどうかという提案です。
fromkk
November 25, 2016
More Decks by fromkk
See All by fromkk
note社の全員野球で品質向上活動について / note_qa_challenge #iOS_test_teatime
fromkk
3
2k
1年分のデータが見たいと言われてやったこと/yearly_data_with_note
fromkk
0
1k
note iOSチームの自動化 ver.2021/automation_with_iOS_team_on_note_ver2021
fromkk
0
2.1k
Bitrise体験会説明資料/bitrise_explore
fromkk
1
1.1k
noteのiOSアプリで実装したアクセシビリティの全て #iosdc #a /a11y_with_iOS_App_on_note
fromkk
2
4.8k
dSYMのアップロードで SPMを活用する/use_spm_with_upload_dsyms
fromkk
1
3.2k
Bitriseのリモートアクセス機能 #bitrise_meetup/remote_access_of_bitrise
fromkk
1
660
note社でのMagic Pod活用事例 #af_iosdc/magicpod_with_note
fromkk
2
12k
iOSには無いmacOS独自機能をCatalystで実装する #iosdc #d/make_macos_apps_with_catalyst
fromkk
9
2.2k
Other Decks in Technology
See All in Technology
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
150
Oracle Cloud Infrastructure:2026年3月度サービス・アップデート
oracle4engineer
PRO
0
330
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
4
960
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
250
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.7k
Babylon.js Japan Activities (2026/4)
limes2018
0
150
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
140
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.3k
スクラムを支える内部品質の話
iij_pr
0
180
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
120
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
670
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
240
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
91
Designing for Timeless Needs
cassininazir
0
180
Crafting Experiences
bethany
1
100
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Statistics for Hackers
jakevdp
799
230k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
300
Leo the Paperboy
mayatellez
6
1.6k
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