Swift の特色 Lightning Talk #odewc

-- Views

August 22, 26

スライド概要

8月22日の「オホーツク最高!CYBER TEAM IN ODEWC@網走」で発表したスライドです。iOS アプリ作りをしていないとなかなか触れない気がする Swift 言語の特色を、駆け足でざっくり紹介してみました。

profile-image

正統派趣味人プログラマー。プログラミングとは幼馴染です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Swift の特色 Lightning Talk 熊谷友宏 @es̲kumagai 2026/08/22 オホーツク最高!CYBER TEAM IN ODEWC@網走

2.

▶︎ ▶︎ ▶︎ 熊谷 友宏 Tomohiro Kumagai Swift 言語が好み みんなで楽しむ勉強会が好み 次は何をしようか ̶ 道迷い傾向

3.

近況

4.

▶︎ ▶︎ ▶︎ Okhotsk DEW Community 勉強会 @ 北見 2026/05/23 北見 @ 西地区公民館 発表してきた。 『ほんのちょっとだけ Ruby on Rails してみた』 前々回の初網走に続き、前回、はじめての北見 戦利品 きーたん

5.

技術同人誌 制作 2016/12/29 〜 @ 同人誌即売会 各種

6.

▶︎ ▶︎ 第二種電気工事士 学科試験 2026/05/24 北見 @ 日本赤十字 北海道看護大学 Okhotsk DEW Community 勉強会から 帰るついでに受験してきた 眺めの良い街を歩くのが心地良かった

7.

2026/06/28 大阪 @ うめだMホール 頒布してきた。 新刊 → 千歳アウトレットモール・レラ特集+ おもバザ初の大阪開催は大盛況 次回開催は 2027年6月27日 個人的には 7年ぶりの大阪訪問 ⋯ ▶︎ ▶︎ ▶︎ ▶︎ おもしろ同人誌バザール 大阪 遠い

8.

▶︎ ▶︎ ▶︎ 北海道漁業就業支援フェア 観覧 2026/07/11 札幌 @ アスティホール 北海道の漁業に関心が湧いて どんな世界なんだろう 北海道各地から 24 団体ほどが出展 オホーツクでの漁業の話も、少しばかり 聞けたりしたり

9.

▶︎ ▶︎ ▶︎ 囲碁×将棋トークイベント 盤上の勝負師たち 観覧 2026/07/19 東京 @ 白瀧呉服店 囲碁と将棋の対談イベント 囲碁界 → 芝野虎丸 棋聖、木部夏生 三段 将棋界 → 佐藤天彦 九段、野原未蘭 女流二段 和やかに進むトークが心地良かった 囲碁に興味を持ってもらうにはどうしたら良いか ̶ そんな話も興味深くて

10.

2026/08/01 東京 @ 囲碁将棋喫茶 樹林 2度目の囲碁シルオフ会に参加 ゲームの外で囲碁を打つのも楽しい心地 思っていたよりか、 自分も勝てたりするみたい ⋯ ▶︎ ▶︎ ▶︎ 囲碁シル交流会 参加 と知る

11.

▶︎ ▶︎ やさしい Swift 勉強会 SEASON 2 2025/12/03 〜 YouTube Live 株式会社ゆめみさんで開催していた勉強会が 楽しかったので、終わったあともそのまま継続 YouTube ライブで 13:00 から、 基本「月・水・金」で配信中

12.

▶︎ ▶︎ ▶︎ とりあえず読書会 & 読書実況 2025/07/09 〜 YouTube Live やさしい Swift 勉強会が「自分の」タメになっている実感なので、 同じような方式で気になる技術文書を眺めてみたり YouTube ライブで、だいたい毎日 21:00 から配信中 これまでに読み進めたもの • The Rust Programming Language • SwiftUI Tutorials • Ruby ‒ Documentation • The Python Tutorial • Codex | OpenAI Achademy

13.

▶︎ ▶︎ ▶︎ 囲碁シルしながら雑談配信 2026/04/18 〜 YouTube Live 何をするにも、 自分だけでやっても意味ないような 心地のこの頃 囲碁シルもそんな気持ちで配信してみる 自分初のゲーム配信?

14.

今後の予定

15.

同人誌即売会 評論情報ザフェスタ 2026/09/21 神奈川 @ 川崎市産業振興会館 旅チケット 13 2026/10/10 東京 @ 大田区産業プラザ PiO おもしろ同人誌バザール 2026/11/01 東京 @ ベルサール神保町 技術書典 21(未確定) 2026/11/23 東京 @ 池袋サンシャインシティ

16.

Swift の特色 L i g h t n i n g Ta l k

17.

Swift の特色 コンセプト • Fast プログラムの高速動作 Expressive • 初心者でもわかりやすい簡潔なコード • Safe メモリー安全性とデータ競合安全 Interoperable • C/C++ コードとの相互運用 • Adaptable 組込用途からサーバー用途まで、幅広い適応性

18.

Swift の特色 マルチプラットフォーム • iPhone アプリ開発 その他の Apple プラットフォーム • - iPad Mac Apple Watch Apple TV Apple Vision • Windows Linux •

19.

Swift の特色 実行方式 • コンパイル方式 逐次実行方式 • シェルスクリプトのようにも使用可能 #!/usr/bin/swift print("Hello, Shell Script in Swift!")

20.

Swift の特色 公式ガイドライン • Swift API デザインガイドライン 要領をコンパクトにまとめた指針 • 好きな記述 • - 関数は、流暢な英語表現になるように定義 - 専門用語は、それを使わなければ意味を正確に 伝えられないときに限って使う(略語も同様)

21.

Swift の特色 公式ガイドライン 関数は、流暢な英語表現になるように定義 関数定義 struct Collection { func insert(_ element: Element, at position: Int) } 関数の使用 values.insert(value, at: 4)

22.

Swift の特色 公式ガイドライン 専門用語 間違い・誤解を招く例 enum Event { case seismicEvent case explosion } 精密に意味を伝えたいとき func record(_ event: some SeismicEvent)

23.

Swiftの言語機能 L i g h t n i n g Ta l k

24.

Swift の言語機能 安全性チェック • コードの安全性を Swift 言語自身が検査 - NULL 安全 構造体における可変性/不変性の制御 列挙型の網羅性 並行安全性

25.

Swift の言語機能 安全性チェック NULL 安全 struct Ticket { var departure, arrival: String var reservedSeat: Int? } if let seat = ticket.reservedSeat { print("Reserved: ", seat) } else { print("Unreserved") }

26.

Swift の言語機能 安全性チェック 構造体における可変性/不変性の制御 struct Counter { var count: Int = 0 mutating func increment() func times(_ predicate: (_ n: Int) -> Void) } var counter = Counter() let counter = Counter(count: 6) counter.count = 5 counter.increment() counter.times { n in print(n) } counter.times { n in print(n) }

27.

Swift の言語機能 安全性チェック 列挙型の網羅性 enum Weather { case sunny, cloudy, rainy, snowy } switch weather { case .sunny: print("晴") case .cloudy: print("曇") case .rainy: print("雨") }

28.

Swift の言語機能 安全性チェック 並行安全性 struct Item: Sendable { var name: String } func storeItem(_ item: Item) async let item = Item() await storeItem(item)

29.

Swift の言語機能 メモリー管理 • 参照型は、自動参照カウント管理 共有数を常時把握し、使われなくなったら直ちに解放する • 値型は、自動複製 共有しないことで、扱いを簡単にする

30.

Swift の言語機能 プロトコル • 他の言語では「インターフェイス」とも呼ばれる - 型がどんな特色を持つかを表現する - 型に縛られないプログラミング • プロトコル指向 プロトコルを主軸に組み立てるのが Swift の流儀

31.

Swift の言語機能 プロトコル 型の特色を表現 struct Array: Collection, Equatable, Hashable, Sendable, ExpressibleByArrayLiteral, Encodable, Decodable 型に縛られないプログラミング func count(of values: some Collection) extension BinaryInteger { init(fromBase64 value: String) }

32.

Swift の言語機能 型拡張 • 型に機能を後付けできる コードの記述に統一感 • - 型変換 - 機能の呼び出し • 既存の型にプロトコルを適合可能 → プロトコル指向を支える重要な機能

33.

Swift の言語機能 型拡張 型への機能後付け extension String { func store(to store: some Store) { } ⋯ }

34.

Swift の言語機能 型拡張 型変換の統一感 struct ID extension String { init(_ id: ID) } let id = ID() view.text = String(id)

35.

Swift の言語機能 型拡張 機能使用時の統一感 extension Collection where Element: AdditiveArithmetic { var sum(): Element } let values = [1, 2, 3, 4, 5] print("Count:", values.count) print("Total:", values.sum)

36.

Swift の言語機能 型拡張 既存の型へのプロトコル適合 protocol Storeable { func store(to store: some Store) } extension String: Storeable { func store(to store: some Store) } let value: any Storeable = "ABC"

37.

▶︎ ▶︎ Enjoy! Swift Thank you Swift の特色 熊谷友宏 @es̲kumagai • コンセプト • マルチプラットフォーム • 実行方式 • 公式ガイドライン Swiftの言語機能 • 安全性チェック • メモリー管理 • プロトコル • 型拡張