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
0
1.4k
Xcode8移行に備える(Swift2.3/3移行)@yidev
Kohei Tabata
July 02, 2016
Tweet
Share
More Decks by Kohei Tabata
See All by Kohei Tabata
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
840
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
81
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
3.9k
家庭をプロジェクトとして運営した話
nerd0geek1
2
3.9k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
940
みんなで育てるprecheck
nerd0geek1
1
600
matchとは?match導入のメリット
nerd0geek1
4
490
Improve your workflow with Sketch plugin
nerd0geek1
3
1.2k
Looking back try! Swift 2017
nerd0geek1
0
540
Other Decks in Programming
See All in Programming
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
320
Java 22 Overview
kishida
1
180
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
0
240
2 週間で Twitter Bot を作ってみた
contour_gara
0
390
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
720
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
250
What We Can Learn From OSS
inouehi
0
420
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
27
8.3k
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.4k
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
Anthropic Cookbook のおすすめレシピ
schroneko
7
970
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
43
6.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
For a Future-Friendly Web
brad_frost
172
9k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
The Language of Interfaces
destraynor
151
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
Why Our Code Smells
bkeepers
PRO
331
56k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Embracing the Ebb and Flow
colly
80
4.1k
Code Reviewing Like a Champion
maltzj
514
39k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
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)