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
チームのテスト力を鍛える
goyoki
3
900
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
250
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
120
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
530
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
350
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.9k
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
170
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
AI Agents: How Do They Work and How to Build Them @ Shift 2025
slobodan
0
100
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
170
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
230
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Six Lessons from altMBA
skipperchong
28
4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Building Applications with DynamoDB
mza
96
6.6k
Facilitating Awesome Meetings
lara
55
6.5k
Visualization
eitanlees
148
16k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Optimizing for Happiness
mojombo
379
70k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
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ΛֶΔ ɹπʔϧ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ