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
Swiftと愉快な仲間たち
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
akatsuki174
May 16, 2018
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swiftと愉快な仲間たち
2018/05/16 言語不問! 各言語の思想や成り立ちを知ろう&女性エンジニアについて考えようの会 #javajo
akatsuki174
May 16, 2018
More Decks by akatsuki174
See All by akatsuki174
逆向きUIの世界 〜iOSアプリのRTL言語対応〜
akatsuki174
1
730
逆向きUIの世界〜AndroidアプリのRTL言語対応〜
akatsuki174
1
1.2k
私が変えてきたこと、変えなかったこと
akatsuki174
2
1.1k
最近読んでいる本-読書シェア会vol.1
akatsuki174
2
300
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
160
Appleにおけるプライバシーの全容を把握する
akatsuki174
0
6.4k
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
540
オフライン勉強会ぼっち対策
akatsuki174
1
750
Xcode 15の新機能
akatsuki174
0
2.9k
Other Decks in Programming
See All in Programming
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
220
Event is what happens
moro
2
770
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
4
3.5k
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
Next.js: The final boss of Web Performance
guaca
0
250
JIS keyboard support in Omarchy
lef237
0
110
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
R8 の設定見直しでアプリサイズ削減
andpad
0
220
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
sbt 2.0: takeoff
eed3si9n
0
160
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
The Cost Of JavaScript in 2023
addyosmani
55
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Mobile First: as difficult as doing things right
swwweet
225
10k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
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ΛֶΔ ɹπʔϧ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ