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
初めてのターミナルプログラム
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Elvis Shi
March 09, 2018
Programming
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初めてのターミナルプログラム
Elvis Shi
March 09, 2018
More Decks by Elvis Shi
See All by Elvis Shi
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
570
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
560
ゼロから始めるPreferenceの実装 / Let's implement Preferences from scratch
lovee
0
160
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
410
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
790
How did I build an Open-Source SwiftUI Toast Library
lovee
1
190
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
1.3k
SwiftUIで二重スクロール作ってみた / When I tried to make a dual-scroll-ish view in SwiftUI
lovee
1
390
Observation のあれこれ / A brief introduction about Observation
lovee
3
460
Other Decks in Programming
See All in Programming
iOSDC2026登壇資料.pdf
riofujimon
0
200
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
270
APNsからLive Activityを開始する話
yumnumm
0
100
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
Webの地図
yosuke_furukawa
PRO
6
5k
mrbgem 三角測量 開発
ogom
0
170
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
180
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
130
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
330
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
270
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Six Lessons from altMBA
skipperchong
29
4.5k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
540
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
560
New Earth Scene 8
popppiees
4
2.6k
WCS-LA-2024
lcolladotor
0
840
Art, The Web, and Tiny UX
lynnandtonic
304
22k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Limits of Empathy - UXLibs8
cassininazir
1
690
Transcript
ॳΊͯͷ λʔϛφϧϓϩάϥϜ forUSZ4XJGU5PLZP"GUFSUBMLT
var employedBy = "YUMEMI Inc." var job = "iOS Developer"
var favoriteLanguage = "Swift" var twitter = "@lovee" var qiita = "lovee" var github = "el-hoshino" var additionalInfo = """ ΏΔΏΔΩϟϯϓ͘͘ձɺࢀՃऀืूத """ class Me: Developable, Talkable { }
༷ʑͳλʔϛφϧϓϩάϥϜ ▸ QJOH ▸ CSFX ▸ HJU ▸ LVSJ ▸
IBOBLP ▸ FSVUBTP 1kuri: https://github.com/bannzai/Kuri 2hanako: https://github.com/el-hoshino/hanako 3erutaso: https://github.com/sgymtic/sl
ࣗ࡞Ζ͏
·ͣੈքʹ ѫࡰ͠Α͏
9DPEF ʷ 4XJGU
None
import Foundation print("Hello, World!")
import Foundation print("Hello, World!")
import Foundation print("Hello, World!")
$ cd {path/to/project/dir} $ xcodebuild $ cp build/Release/{app_name} /usr/local/bin $
{app_name} hello, world! 今回は簡単なプログラムなので Xcode 使わずに `swiftc` で ビルドしてもいいけど まあいいや
Ͷɺ؆୯Ͱ ͠ΐʁ
$ cd {path/to/project/dir} $ xcodebuild $ cp build/Release/{app_name} /usr/local/bin $
{app_name} hello, world! コマンド引数って どうやって取るんだろ
import Foundation CommandLine.arguments: [String]
None
import Foundation let candidates = Array(CommandLine.arguments.dropFirst()) var outputs: [String] =
[] output: while let random = candidates.random { print(random) outputs.append(random) outputs.keepLast(candidates.count) if outputs == candidates { print(outputs.joined(separator: " ") .appending("!")) break output } }
import Foundation extension Array { var random: Element? { guard
self.isEmpty == false else { return nil } let randomIndex = arc4random_uniform(UInt32(self.count)) return self[Int(randomIndex)] } mutating func keepLast(_ n: Int = 1) { guard self.count > n else { return } let removingElementsCount = self.count - n self.removeFirst(removingElementsCount) } }
%&.0