Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Useful Command Line Tools in Swift 3
Search
giginet
PRO
October 26, 2016
Programming
7.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Useful Command Line Tools in Swift 3
potatotips #34
giginet
PRO
October 26, 2016
More Decks by giginet
See All by giginet
🀄️ on swiftc
giginet
PRO
0
580
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
480
Claude Codeログ基盤の構築
giginet
PRO
7
4.7k
Inside of Swift Export
giginet
PRO
1
3.5k
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
2.9k
SwiftでMCPサーバーを作ろう!
giginet
PRO
3
480
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
1.7k
Mergeable Libraryで 高速なアプリ起動を実現しよう!
giginet
PRO
2
8.5k
5分でわかるExplicitly Built Modules
giginet
PRO
2
1.9k
Other Decks in Programming
See All in Programming
速習iPhone Duo対応
yuukiw00w
1
590
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
340
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
380
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
300
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
Java 27新機能 / Java 27 new features
kishida
2
150
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
430
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
560
すこし踏み込む CancellationToken
htkym
1
480
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3k
XHTMLが残したもの
yosuke_furukawa
PRO
2
810
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.1k
Code Reviewing Like a Champion
maltzj
528
40k
Building Adaptive Systems
keathley
44
3.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
30 Presentation Tips
portentint
PRO
1
400
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Are puppies a ranking factor?
jonoalderson
2
3.9k
Odyssey Design
rkendrick25
PRO
2
810
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Transcript
Useful Command Line Tools in Swift 3 potatotips #34 @giginet
@giginet • iOS Engineer @ Cookpad • ։ൃج൫ͬͯ·͢ • झຯɿήʔϜ։ൃ
None
None
None
None
None
giginet/Toybox
$ toybox create Snippet $ toybox create $ toybox create
—-platform macos $ toybox open Snippet $ toybox list https://github.com/giginet/Toybox
None
CLI with Swift 3
Architecture • Carthage/Commandant toybox ToyboxKit.framework
Carthage/Commandant struct ListOptions: OptionsProtocol { typealias ClientError = ToyboxError let
platform: Platform? static func create(_ platform: Platform?) -> ListOptions { return self.init(platform: platform) } static func evaluate(_ m: CommandMode) -> Result<ListOptions, CommandantError<ToyboxError>> { return create <*> m <| Option<Platform?>(key: "platform", defaultValue: nil, usage: "Platform to list (ios/mac/tvos)") } } struct ListCommand: CommandProtocol { typealias Options = ListOptions typealias ClientError = ToyboxError let verb = "list" let function = "List the Playground" func run(_ options: Options) -> Result<(), ToyboxError> { // Do Something return .success() } }
Distribution
Distribution • HomebrewͰ͢Δ • Makefile • Homebrew Formula • Bottle
Makefile • CarthageͷౕΛύΫΔ $ make prefix_install PREFIX=`brew —-prefix`
class Toybox < Formula desc "Xcode Playground management made easy"
homepage "https://github.com/giginet/Toybox" url "https://github.com/giginet/Toybox.git", :tag => "0.1.0", :revision => "e65059061cd33bdbc01fe9883e6e4d2c863979f4", :shallow => false head "https://github.com/giginet/Toybox.git", :shallow => false depends_on :xcode => ["8.0", :build] depends_on 'carthage' => :build def install system "make", "prefix_install", "PREFIX=#{prefix}" bash_completion.install "Sources/Scripts/toybox-bash- completion" => "toybox" zsh_completion.install "Sources/Scripts/toybox-zsh-completion" => "_toybox" end test do system bin/"toybox" end end
Homebrew Bottle $ brew install giginet/toybox/toybox —- build-bottle $ brew
bottle toybox
None
ײ • Swift 3ॻ͖͍͢ • Commandantศར • ͭΒ͍
brew install giginet/ toybox/toybox
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠