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
Xcode8移行に備える(Swift2.3/3移行)@yidev
Search
Kohei Tabata
July 02, 2016
Programming
1.5k
0
Share
Xcode8移行に備える(Swift2.3/3移行)@yidev
Kohei Tabata
July 02, 2016
More Decks by Kohei Tabata
See All by Kohei Tabata
AIと協業する開発の進め方
nerd0geek1
0
160
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
980
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
150
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
4.5k
家庭をプロジェクトとして運営した話
nerd0geek1
2
4.4k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
1.2k
みんなで育てるprecheck
nerd0geek1
1
820
matchとは?match導入のメリット
nerd0geek1
4
620
Improve your workflow with Sketch plugin
nerd0geek1
3
1.5k
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
300
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
rio432
0
140
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.9k
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
140
AIを導入する前にやるべきこと
negima
2
340
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
110
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.7k
Kingdom of the Machine
yui_knk
2
1.5k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
240
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
350
The Less-Told Story of Socket Timeouts
coe401_
3
1.1k
Liberating Ruby's Parser from Lexer Hacks
ydah
2
2.7k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Deep Space Network (abreviated)
tonyrice
0
130
30 Presentation Tips
portentint
PRO
1
290
The Cult of Friendly URLs
andyhume
79
6.9k
The Language of Interfaces
destraynor
162
26k
Into the Great Unknown - MozCon
thekraken
41
2.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
170
Transcript
Xcode8移行に備える (Swift2.3/3移行) 2016/07/02 @yidev
自己紹介 ・Kohei Tabata(@nerd0geek1) ・iOS/Mac/tvOSDeveloper ・Saib Studio LLC ・Fastlane大好き ・最近はBLEと仲良し。 Saib
Studio LLC Kohei Tabata
None
今回、色々発表ありましたね • SiriKit.framework • CallKit.framework • Speech.framework • UserNotifications.framework •
…
僕もいくつかまとめました
・既存プロジェクトに発表された機能を使えるのはまだまだ先。 ・それよりも、今後のアップデートに備えないと ・ATS必須化 ・Swift2.3/3への移行 でも…
・セッション、”What‘s New in Security”で発表 ・2017/01からATS(=HTTPS通信)必須化 ATS必須化
詳しくは、はてな開発者ブログ
Thank you! niwatako
ざっくり言うと ・全ての通信において、HTTPSが要求される。例外は以下の2つ ・AVFoundationを利用したストリーミング再生 ・WKWebViewを利用したWebページの表示 ・それ以外でHTTP通信を行う場合は、それ相応の正当な理由 が要求される(What’s new in Security p.20参照)。
ATS必須化
None
Swift2.3/3への移行について
AppleのSwift Blogを確認
Swift2.3/3のそれぞれの位置づけは? • Swift3: Xcode8がサポートするメイン開発言語。 いくつかの文法やAPIに変更が加えられており、Cocoaのframeworkを呼ぶ際に より自然でSwiftyな形でプログラムを書けるようになっている。 • Swift2.3: Swift2.2で開発しているが、Swift3への移行準備ができていない開発者について、 最新のSDKへの素早い移行を促すためのもの。
Xcode8でのメイン開発言語はSwift3である、と同ブログで言及しており、コンパイ ラやSDK、デバッガーについては、両バージョンをサポートしているが、IDEとして のいくつかの機能はSwift3のみをサポートしている、とのこと。
None
• Swift2.3: 変更を加えることなくビルド成功。 • Swift3: かなり変更を加える必要あり。 また、まだバグがあり、ビルド自体ができないことも。 気になったので試してみた。
• CoreBluetooth関連 CBCentralManagerのstateの型がCBCentralManagerStateからCBManagerStateに。 →iOS10以前でビルドできない! • CoreLocation関連 CLLocationManager.isMonitoringAvailableForClass(_: )が CLLocationManager.isMonitoringAvailable (for
regionClass: )に。 →どちらの記法でもビルドエラー! ビルド失敗事例
• プロジェクトをSwift2.3へ移行 • Swift2.3でエラーを吐くライブラリにはPRを投げる • Swift2.3での動作が担保されたら、Swift3への移行を試す • Xcodeにバグがある場合は、Apple Bug Reporterから報告
• 使用しているライブラリが全てSwift3をサポートした時点で Swift3へ 移行ToDo
ライブラリ化を検討 よく利用する機能のうち、プロダクトのコアでない部分を Cocoa Touch Frameworkとしてライブラリ化し、同じ機能を 集約 & 運用コストを下げる ・ログ機能 :nerd0geek1/Logger
・ストップウォッチ機能:nerd0geek1/PausableTimer ・Extension :nerd0geek1/SwiftExtensions
参考 • What's New in Security (https://developer.apple.com/videos/play/wwdc2016/706/) • What’s New
in Security(PDF) (http://devstreaming.apple.com/videos/wwdc/2016/706sgjvzkvg6rrg9icw/706/706_whats_new_in_securi ty.pdf) • iOS 10のApp Transport Securityと2016年末からのATS必須化についてAppleのエンジニアに聞いてきた (http://developer.hatenastaff.com/entry/2016/06/16/165924)