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
190
Swiftと愉快な仲間たち
2018/05/16 言語不問! 各言語の思想や成り立ちを知ろう&女性エンジニアについて考えようの会 #javajo
akatsuki174
May 16, 2018
Tweet
Share
More Decks by akatsuki174
See All by akatsuki174
逆向きUIの世界〜AndroidアプリのRTL言語対応〜
akatsuki174
1
150
私が変えてきたこと、変えなかったこと
akatsuki174
2
860
最近読んでいる本-読書シェア会vol.1
akatsuki174
2
210
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
99
Appleにおけるプライバシーの全容を把握する
akatsuki174
0
5.8k
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
470
オフライン勉強会ぼっち対策
akatsuki174
1
660
Xcode 15の新機能
akatsuki174
0
2.8k
AndroidにもSelect Photosがやってきた
akatsuki174
0
1.4k
Other Decks in Programming
See All in Programming
はじめてのMaterial3 Expressive
ym223
2
900
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
3.3k
Reading Rails 1.0 Source Code
okuramasafumi
0
250
Testing Trophyは叫ばない
toms74209200
0
890
アセットのコンパイルについて
ojun9
0
130
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
770
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
310
Cache Me If You Can
ryunen344
2
3.1k
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
290
Namespace and Its Future
tagomoris
6
710
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
190
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
How GitHub (no longer) Works
holman
315
140k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Why Our Code Smells
bkeepers
PRO
339
57k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Embracing the Ebb and Flow
colly
87
4.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Building Adaptive Systems
keathley
43
2.7k
Typedesign – Prime Four
hannesfritz
42
2.8k
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ΛֶΔ ɹπʔϧ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ