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
Swiftと愉快な仲間たち
Search
akatsuki174
May 16, 2018
Programming
0
180
Swiftと愉快な仲間たち
2018/05/16 言語不問! 各言語の思想や成り立ちを知ろう&女性エンジニアについて考えようの会 #javajo
akatsuki174
May 16, 2018
Tweet
Share
More Decks by akatsuki174
See All by akatsuki174
最近読んでいる本-読書シェア会vol.1
akatsuki174
2
140
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
60
Appleにおけるプライバシーの全容を把握する
akatsuki174
0
5.5k
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
420
オフライン勉強会ぼっち対策
akatsuki174
1
600
Xcode 15の新機能
akatsuki174
0
2.6k
AndroidにもSelect Photosがやってきた
akatsuki174
0
1.3k
Famm Android改善記
akatsuki174
0
360
Flutterアプリ開発にネイティブコードはどこまで求められるのか
akatsuki174
2
4.6k
Other Decks in Programming
See All in Programming
動作確認やテストで漏れがちな観点3選
starfish719
6
1k
Open source software: how to live long and go far
gaelvaroquaux
0
620
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
130
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
240
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
360
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
AWSマネコンに複数のアカウントで入れるようになりました
yuhta28
2
160
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
41
15k
iOSエンジニアから始める visionOS アプリ開発
nao_randd
3
120
Honoをフロントエンドで使う 3つのやり方
yusukebe
5
2.2k
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
10
1.8k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
The Invisible Side of Design
smashingmag
299
50k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
How GitHub (no longer) Works
holman
313
140k
Practical Orchestrator
shlominoach
186
10k
A Philosophy of Restraint
colly
203
16k
Faster Mobile Websites
deanohume
306
31k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
310
Documentation Writing (for coders)
carmenintech
67
4.6k
Transcript
Swiftͱ༇շͳؒͨͪ @akatsuki174
ࣗݾհ • ਢ౻ຘ • גࣜձࣾZaimॴଐ • iOSΤϯδχΞ • Twitter, Qiita,
SlideShare, GitHub, SpeakerDeck, ͯͳϒϩά, note →akatsuki174
iOSDC2017,2018 ίΞελοϑ
એ
ɾSwiftͷੜͱมભ ɾSwiftͱObjective-Cͷؔ ɾSwiftͱଞݴޠͷจ๏ൺֱ ɾ͓·͚ɿPlayground ࠓͷ༰
͜ͷࢿྉͳΜͱͳʔ͘SwiftΛ ཧղͯ͠Β͓͏ɺͱ͍͏͘Β͍ͷ ςϯγϣϯͰ࡞͍ͬͯΔͷͰઆ໌ෆɺ ᐆດͳ෦ଟʑ͋Δͱࢥ͍·͢ɻ ྃ͝ঝ͍ͩ͘͞ɻ
Swiftͷੜͱಛ
WWDC2014Ͱൃද
iOS, macOS, watchOS, tvOS Ͱ͑Δ ɾଞϓϥοτϑΥʔϜͰ ɾɾಉ͡ݴޠͰॻ͚Δ ɾɾಉ͡API͕͑ͨΓ͢Δ
αʔόʔαΠυͰ͑Δ ɾSwift͔͠৮ͬͨ͜ͱͳ͍ਓͰ ɹαʔόαΠυʹઓ͍͢͠ ɾ·ͩීٴ్த ɾϝδϟʔͳϑϨʔϜϫʔΫ ɾɾPerfect ɾɾVapor ɾɾKitura
ܕਪ͕͑Δ
Φʔϓϯιʔε ຊਓίϛολʔଘࡏ
όʔδϣϯΞοϓ͕ܹ͍͠ ɾ1ͰϝδϟʔόʔδϣϯΞοϓ ɾɾ߹ΘͤͯiOSɺXcode1Ͱ ɹɹϝδϟʔόʔδϣϯΞοϓ ɾഁյతͳมߋʹԿٽ͔͞Ε͔ͨ ɾ͏͍ͩͿམͪண͍͖ͯͨʢͣʣ
ʮϞμϯʯͳݴޠ ɾ࠷ۙͷݴޠʹ͋ΔศརػೳΛࡌ ɾɾΫϩʔδϟ ɾɾλϓϧ ɾɾδΣωϦΫε ɾɾΤΫεςϯγϣϯ ͳͲͳͲ
ʮ҆શʯͳݴޠ ɾݴޠ༷ϨϕϧͰόά͕ൃੜ͠ʹ͍͘ ɹΑ͏ʹ͍ͯ͠Δ ɾɾOptional ɾɾϝϞϦ֬อɺղ์͕ࣗಈͰߦΘΕΔ ɾɾ੩తݴޠ ͳͲͳͲ
ʮ҆શʯͳݴޠ ɾݴޠ༷ϨϕϧͰόά͕ൃੜ͠ʹ͍͘ ɹΑ͏ʹ͍ͯ͠Δ ɾɾOptional ɾɾϝϞϦ֬อɺղ์͕ࣗಈͰߦΘΕΔ ɾɾ੩తݴޠ ͳͲͳͲ
Optional ɾʮnull҆શʯͱ͔ͦ͜ΒΜͰΑ͘ ɹʹͳΔͭ ɾnilʹͳΔՄೳੑ͕͋Δม ɹOptionalܕʹ͢Δ ɾnilʹରͯ͠ૢ࡞Λ͠Α͏ͱͯ͠ ɹΫϥογϡɺΛ͙
Optional ʢίʔυೖΕΔʣ
Objective-Cͱͷؔ
Ұॹͷ͓͏ͪʹॅΊΔ ɾ1ͭͷϓϩδΣΫτʹࠞͥͯ͏͜ͱ͕ ɹͰ͖Δ ɾͳͷͰ100% Obj-CϓϩδΣΫτͰɺ ɹঃʑʹSwiftʹॻ͖͑Δ͜ͱ͕Ͱ͖Δ ɾBridging HeaderΛͬͯSwift͔Β ɹObjective-CɺObjectiveC͔ΒSwiftΛ ɹݺͼग़͢
Swift͔ΒObjective-CίʔυΛ ͏ ͜Μͳ͔Μ͡ͷهड़ΛBridging Header ʹॻ͘ #import "XYZCustomCell.h" #import "XYZCustomView.h" #import
"XYZCustomViewController.h"
Objective-C͔ΒSwiftίʔυΛ ͏ ͜Μͳ͔Μ͡ͷهड़ΛBridging Header ʹॻ͘ #import "ProductModuleName-Swift.h"
ଞݴޠͱൺֱͯ͠ΈΑ͏
͓̍ ɾ1ʙ10·ͰͷΛग़ྗ͢Δ ɾIntܕ
͓̍ɿSwiftͷճྫ (1...10).forEach { print($0) } Range
͓̍ɿଞݴޠͷճྫ Java Ruby Kotlin
͓̎ Enum[Orange, Apple, Lemon]ͷΛ ೖΕͨม͕Appleͩͬͨ߹ɺ ʮ͋ͨΓʂʯͱग़ྗ͢Δ
͓̎ɿSwiftͷճྫ enum Fruit { case orange, apple, lemon } let
fruit = Fruit.apple switch fruit { case .apple: print("͋ͨΓʂ") default: print("ͣΕʂ") } ઌ಄খจࣈ breakෆཁ جຊతʹdefaultඞਢ
͓̎ɿଞݴޠͷճྫ Java
͓·͚ɿPlayground
Playground ɾΠϯλϥΫςΟϒʹSwiftΛֶΔ ɹπʔϧ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ