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
Xcode8移行に備える(Swift2.3/3移行)@yidev
Search
Kohei Tabata
July 02, 2016
Programming
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xcode8移行に備える(Swift2.3/3移行)@yidev
Kohei Tabata
July 02, 2016
More Decks by Kohei Tabata
See All by Kohei Tabata
AIと協業する開発の進め方
nerd0geek1
0
190
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
1k
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
160
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
4.6k
家庭をプロジェクトとして運営した話
nerd0geek1
2
4.4k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
1.3k
みんなで育てるprecheck
nerd0geek1
1
870
matchとは?match導入のメリット
nerd0geek1
4
650
Improve your workflow with Sketch plugin
nerd0geek1
3
1.6k
Other Decks in Programming
See All in Programming
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
890
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
210
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Mobile First: as difficult as doing things right
swwweet
225
10k
Rails Girls Zürich Keynote
gr2m
96
14k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Designing for humans not robots
tammielis
254
26k
Thoughts on Productivity
jonyablonski
76
5.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The SEO Collaboration Effect
kristinabergwall1
1
590
Balancing Empowerment & Direction
lara
6
1.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
The Curious Case for Waylosing
cassininazir
1
570
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)