Swift
Structs and NSCoding
NSCoding requires the NSObjectProtocol, which is a class protocol, and can't be conformed to by structs. If we have…khanlou.com
Swiftのstructをシリアライズ出来るようにするテクニックです。NSCodingに準拠したcontainerクラスでラップする手法が取られています。
NSUserDefaultsのextensionで対処するパターンより責務が分かれていて良さそうに思いました。
この記事は最終更新日から1年以上が経過しています。 swift初心者です。 このシンプルな構造体の配列を、NSUserDefaultsに保存しようと思いました。 Objective-Cの場合、NSCodingを継承…qiita.com
記事後半には、structデータを手軽かつ型セーフにキャッシュして扱う方法も書いてあります。
Swift — クロスプラットフォーム
Server APIs Work Group
Server APIs Work Group発足がアナウンスされました。
Since Swift became available on Linux there has been a huge amount of interest in using Swift on the server, resulting…swift.org
以下など用意されました。
以下の挨拶的なメーリス投稿もありました。
- [swift-evolution-announce] announcing Server APIs work group
- [swift-server-dev] Developing Server APIs for Swift
まとめの日本語記事としてはSwift言語、サーバアプリのためのAPI群を策定へ。「Server APIs Project」スタートに分かりやすくかいてあります。
アップルから登場し、現在はオープンソースとして開発されているプログラミング言語「Swift」の開発チームは、クロスプラットフォームに対応したサーバアプリケーショwww.publickey1.jp
これをきっかけに今新しいフレームワークが生まれたわけではなく、今後のサーバーサイトSwift API・フレームワーク開発を円滑に進めていくためのグループが立ち上がった、という感じです。サーバーサイドSwiftの今後の実用利用により一層期待が持てるようになりましたね。
Swift on Linux
All the cool kids are experimenting with Swift on Linux and I've always meant to but never got around to it. After…ashfurrow.com
swiftdocker/docker-swiftというDocker imageを使って、スムーズにLinux上でSwiftを動かせた、という記事です。こういうのはセットアップで色々苦労して消耗しやすいので手軽に動かせる環境を作れるのは良いですね。
Swift Evolution
SE-0144: Allow Single Dollar Sign as a Valid Identifier がリジェクト
swift-evolution - This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.github.com
Swiftレター #3で紹介したSE-0144($単体を識別子として利用可能に戻す提案)がリジェクトされました。このProposalは経緯が複雑なのですが、結果的には$単体を識別子として利用出来ないようにする対応を続行することに決まりました。つまりソースコードの破壊的変更に繋がるのですが、まあまあ気を遣われています。
- Swift 3系では$単体利用可の状態を継続
- Swift 4で$単体利用をコンパイルエラーとする
よほどのことが無い限りはSwift 3系でのソースコード互換を保つようにする、という姿勢が伝わってきますね。かといって、Swift 4でSwift 3でまた大きく変わるというわけではなく3でかなり変更を入れきったこともあり、こういう比較的影響力の少ない変更がまとめて入る感じになるかと思っています。
まとめるとこんな感じです:
- [Lex] Reject standalone dollars as identifiers by CodaFi · Pull Request #3901 · apple/swiftが以前マージ済み・未リリース($単体利用を不可に)
- 1.のPRは破壊的変更になるのでやめようという提案(SE-0144)
- 2.のSE-0144リジェクト
- Disable the ability to use $ as an identifier head harder by CodaFi · Pull Request #5270 · apple/swiftで、Swift 3系で許容してSwift 4ではコンパイルエラーとする対応(マージ済み)
#5270のPRでLangOpts.isSwiftVersion3() で分岐しているのがポイントです👀
変更自体は地味ですが、Swift言語開発の姿勢が読み取れる感じで面白かったです( ´・‿・`)
- 意図しない挙動(バグ)を、互換性担保のために維持して、複雑にしたり一貫性を損なうのは良くない
- とはいえ、特にSwift 3系のソースコード互換性は大事にしたい
iOS
How to create effective push notifications
Over the past 20 years, the ways in which content has been distributed have completely changed. We've moved from huge…blog.intercom.com
効果的なプッシュ通知をいかにするかが述べられています。プッシュ通知経由のアクションなどは個人的には愛用しているものの、一般的にそこまで使いこなしている率高そうだなと思っていましたが、iOS 10でのリッチな通知(画像など付き)は分かりやすくて魅力的に思っています。
記事の1つ目のポイントに書かれていた、プッシュ通知開封率が18時以降(〜20時くらい)に高まるデータなど、面白かったです。
For example, a successful push could be a self-contained, standalone message, as discussed above. If people don’t click through, it could mean the push didn’t engage them — or that it performed its job.
これも、なるほどと思いました。
リリース
Xcode 8.1リリース🎉
この1週間で以下がリリースされました。
- 10月24日: Xcode 8.1 GM
- 10月27日: Xcode 8.1 正式版 (App Store配信)
GM版はiOS 10.1正式版と同時リリースでしたが、iOS 10.1実機実行はXcode 8.1 GMを使う必要(裏技で回避可能)があって、少し混乱があったようです。
差分はGM版(Touch Barが欠けているくらいの差なはず)の方ではありますが、What’s New in Xcode 8.1 GMが見やすくまとまっていて良かったです。
Apple has released Xcode 8.1 GM — here’s what’s new and improved in the new version:medium.com
MacBook Pro
10月27日のAppleイベントで、MacBook Proなどが発表され、特にTouch Barについて話題になりました。
新しいMacBook Proは、かつてないほど薄く、軽く、パワフルです。あなたの指先には、Macの使い方を一新する革命的なTouch Barがやってきました。www.apple.com
Get your apps ready for Touch Bar on the new MacBook Pro.に各種情報が載っています。
Get your apps ready for the Touch Bar on the new MacBook Pro.developer.apple.com
特にこのあたりが気になりました。
- macOS Human Interface Guidelines: About the Touch Bar
- NSTouchBar — AppKit | Apple Developer Documentation
- [サンプル] NSTouchBar Catalog: Creating and Customizing NSTouchBar
- [サンプル] ToolbarSample: Using NSToolbar to construct a window toolbar
また、わりとネガティブな記事が多めに思いました(メディアの書いている記事はポジティブなのが多かったですが)。
- New MacBook Pro is not a Laptop for Developers Anymore
- Apple just told the world it has no idea who the Mac is for — Charged Tech — Medium
- New MacBook Pros and the State of the Mac
New MacBook Pro Hands-on: Touch Bar Isn’t a Gimmickという紹介動画は、使用感が伝わってきて良かったです。
その他のリリース
デザイン
Origami Studioリリース
A new tool for designing modern interfaces, built and used by designers at Facebookorigami.design
FacebookがOrigami StudioというUI・アニメーションデザイン用のアプリをリリースしました。完全に新規のプロダクトではなく、Origami for Quartz Composerが2014年からあって、そのQuartz Composer依存が取れたり完成度上げたりしてリニューアルリリースという感じみたいです。少し弄ったことありますが、やや取っつきにくい第一印象でした。
その他のニュース
Apple Payが日本で開始🎉
Get updates, tips, and how-to information on a range of development, App Store, and Mac App Store topics.developer.apple.com
ドキュメント:
まだそこまで日本語開発情報出てきていないですが、日本でのApple Payローンチパートナーに選ばれたminneアプリの開発秘話のような記事も出てきて、ありがたいです。
[email protected] [email protected]Apple Pay対応がリリースされました。 すでにApple Payを使ってみた、という方もたくさんいるのではないで.…tech.pepabo.com
Suicaアプリが色々ひどいと評判で、その通りとは思いつつ機能的には普通に使えているので、まあいいかなと思っています。ただ、サービスローンチ日(25日)のサーバーエラーなどはもう少し何とかしてほしかったような。
Read reviews, compare customer ratings, see screenshots, and learn more about Suica. Download Suica and enjoy it on…itunes.apple.com
AirPods発売延期
正式情報はどこか分からないですが、公式サイトでも10月下旬発売表記も消えました(延期ニュース当日はまだ表記残っていました)。残念です😥
Confirming a report from Wednesday, Apple's AirPods street date has shifted on the company's web page from late October…appleinsider.com
Advent Calendar募集開始
このあたりは要チェックですかね:
- Swift Advent Calendar 2016 (最終日に登録)
- Swift その2 Advent Calendar 2016
- Swift愛好会 Advent Calendar 2016
- iOS Advent Calendar 2016 (最終日に登録)
- iOS その2 Advent Calendar 2016
Microsoft Windowsイベント
今日(米国時間10/26)、開催されたWindowsイベントでMicrosoftは新しいオール・イン・ワンPC、Surface Studioを発表した。28インチ、3対2のPixelSenseディスプレイはMicrosoftによればこの…jp.techcrunch.com
Microsoft(マイクロソフト)が26日に開催したスペシャルイベントでは、一体型PCの「Surface Studio」あり、新型Surface Bookあり、VRヘッドセットあり...と盛りだくさんな内容でした。目立った発表をつまみ…www.gizmodo.jp
特に、Surface Studio良いなーと思いました( ´・‿・`)
筆者の小話
Apple Payの日本開始・Apple Watch Nike+入手で興奮中
どちらも良い感じでとても生活が快適になった感じです。電車に乗りたくて仕方ないです🚃
関連投稿色々してしまいました:

↓アカウントやSwift・iOSコラムPublicationフォローしていただけるとありがたいです🙇 PublicationフォローしていただけるとこのSwiftレターのメール通知も届くようになります( ´・‿・`)