Swift
Method Dispatch in Swift
Method Dispatch is how a program selects which instructions to execute when invoking a method. It's something that…www.raizlabs.com
Method Dispatch(Direct/Table/Message Dispatch)についての詳細かつ網羅的な解説です。ハマリどころや既存バグなども記載されています。パフォーマンスを意識した書き方にしたい際に役立つのはもちろん、メソッドオーバーライドがなぜか効かないなどで困った時にも役立つ内容となっています。
Optionals and String Interpolation
Using optionals in string interpolation segments can lead to surprising or unwanted results. I defined a custom…oleb.net
例えば、sがオプショナル文字列の時、“\(s)”のような書き方(String interpolation)をした際に、”Optional(“s文字列”)”のように意図せずOptional文字列などが付いてきてしまうミスを誘発する、という問題についてです。僕もたまにこのミスを犯してしまうので少し困っていました。
まず、Swift 3.1ではこの際警告が出るようになります🎉
この記事では、これらのことを冒頭で紹介しつつ、さらに踏み込んで???というカスタムオペレーターを用意してInt?型の変数がnilだった場合に代用文字列を指定出来るようにしたということが紹介されています。
個人的には、カスタムオペレーターなど用意せずとも、Swift 3.1のデフォルトの挙動だけで充分幸せになれそうです( ´・‿・`)
Guarding Against Long Compiles
I am Soroush Khanlou, and this is my blog. I write about programming, primarily Objective-C and learning what I can…khanlou.com
Other Swift Flagsに -Xfrontend
・-warn-long-function-bodies=100
を指定すると、100ms以上ビルド時間のかかった箇所を警告として指摘してくれるテクニックの紹介です。RobertGummesson/BuildTimeAnalyzer-for-Xcodeはたまに使っていましたが、それ無しでこの指定だけで良いかなと思いました。個人的には、基本的にはビルド時間のことはまったく考えずに書きやすさ・読みやすさ重視で型推論なども多用しつつ、ビルド時間のボトルネックになっているところのみ仕方なく書き換える、というスタンスなので、このように警告で指摘してくれる方法はとてもしっくり来ました。5月のコミットでなされた対応(Xcode 8.0・Swift 3.0で対応?)だったようですが、今回初めて知りました。
As a frontend option, this is UNSUPPORTED and may be removed without notice at any future date.
コミットメッセージに、この記述があることに注意です。(これに限らずfrontend系のオプション全般に言えることだと思いますし、とりあえずあまり気にせずで良いと思いますが。)
Exploring Swift Memory Layout
Let's get down to bits and bytes! Abstraction is great, but sometimes it's useful to dig down. In this GOTO Copenhagen…realm.io
普段あまり意識する必要も無いメモリレイアウトですが、いざというときにあまり資料が無かったりするので、貴重な記事です👀
MemoryLayout and Data in Swift3 — Qiitaも参考になります👀
今回は、普段の開発では触れる機会が少ない MemoryLayout とそれに関係した Data について書きます。 API Reference - MemoryLayout Swift3.0 以前は、同じ役割を sizeof …qiita.com
Swift: UIView Animation Syntax Sugar
UIViewのanimateメソッドのcompletionをtrailing closureで書くとanimatinsクロージャーとの並び的に微妙で、かと言ってどちらもtrailing closure使わずに書くのも微妙ということで、簡単なAnimatorクラスを用意してメソッドチェーンで書けるようにした、という内容です。アニメーション系ライブラリは色々ありますが、そこまで凝ったことせずとも標準のメソッドを多少イケてる感じにする策として良いと思いました。ソースはこちらです。
サーバーサイドSwift
Building Microservices in Swift and Kitura: Part 1 of 3
Swift on the server is that even a thing? It is, and at notonthehighstreet.com we have had a Swift service using the…unwrapped.notonthehighstreet.com
ちょうど1年前にMicroservices with Swiftという記事にてFoundationレイヤーの欠損などを理由にまだ早いと述べられた @sheriffjackson さんが、そろそろSwiftによるマイクロサービス構築もありなのでは、と挑戦されている記事です。概ねうまくいっているようです。まだパート1のみの公開なので、今後の記事も楽しみです。ソースコードはこちらです。
Swift Evolution
[swift-build-dev] Try out new SwiftPM features!
12月7日以降のSnapshots版Swiftにて、SwiftPMの新しい機能をデフォルトで使えるようになりました。(それまでのSnapshots版では — enable-new-resolver指定が必要でしたが、デフォルトになりました。)
それぞれ対応Proposalは以下です:
iOS
Optimistic UIs in under 1000 words
通信など長い処理時間を要するものはプログレス表示で操作ブロックして待たせることも多いですが、”Optimistic”とはそれをせずに瞬時にUIを更新していき、結果的に運悪くエラーになってしまったら何かしらの手段でそれを伝えて復帰手段を用意する(致命的で無いものはスルーしたりもあり得る)、というものです。その際の表示パターンや、エラー時の対処法など紹介されています。
確かにこういうケアは出来るにこしたこと無いですが、けっこういい加減に採用しているアプリも多く、例えば変更操作したのにその後タイミングの差で早めに返ってきた変更反映前のレスポンスで上書きされてしまうなど、たまに体験します(Wunderlistなどで頻発)。そういういい加減な挙動になってしまうくらいなら、操作ブロックして確実に処理してほしいなと思います。
AsyncDisplayKit 2.0 Tutorial: Getting Started
AsyncDisplayKit is a UI framework that was originally born from Facebook's Paper app. It came as an answer to one of…www.raywenderlich.com
facebook/AsyncDisplayKitのチュートリアルです。10,000スター超えているわりに周りで使っている声聞かないですが、活発に開発が続いていて12月8日には2.0がリリースされています。
標準UIKitでこと足りているうちはそれ使うことに越したこと無いと思ってしまうので、個人的にはなかなかサンプル動かす以上のことをする動機が無いですね🤔
Xcode
My Favorite Xcode 8 Shortcuts (Part 1/3)
Assistance Editor, Navigator, Quick Open, Line Numbermedium.com
ちょくちょく使いこなせていないショートカットがあって、参考になりました。すべてgif動画活用するなどして分かりやすく解説されていて良いです。
リリース
Apple系のリリース
- 2016/12/05: watchOS 3.1.1 beta 5 (14S883)
- 2016/12/06: tvOS 10.1 beta 5 (14U593)
- 2016/12/07: iOS 10.2 beta 7 (14C92)
- 2016/12/08: macOS Sierra 10.12.2 beta 6
macOS Sierra 10.12.2 beta 5からApple File System(APFS)のプレリリース版が含まれているようです👀
The Apple File System (APFS) is the next-generation file system designed to scale from an Apple Watch to a Mac Pro…developer.apple.com
Apple has done amazing things with HFS+ since its introduction, but it's time to move on to something a bit more modern…www.bignerdranch.com
macOS 10.12 Sierraで使えるAppleの新しいファイルシステム「APFS」のチュートリアルのまとめです。詳細は以下から。 AppleはWWDC 2016にあわせ 新しいファイルシステム「APFS」を開発していることを …applech2.com
Apple系のニュース
App Store Best of 2016
See the most innovative apps and games of 2016 and the developers behind them.developer.apple.com
Appleが2016年にリリースされたアプリとゲームの中から最も優れたものを選出する「 Best of 2016(今年のベスト)」を発表しました。2015年のベストゲームは「」、ベストゲームは「Lara Croft GO 」でし…gigazine.net
年末恒例のApp Store Best of 2016が発表されました。
ちなみに、Google Playの「ベスト オブ 2016」はこちらです。
Google Play は本日、今年日本で人気を集めたアプリやゲームを紹介する企画「ベストオブ 2016」を発表しました。 これらアプリとゲームの各部門 の受賞作品から、 12 月 8 日に各部門の 大賞、さらには 2016 年 ベスト…japan.googleblog.com
その他のニュース
Amazon GO
レジ精算無しで買い物出来るシステムということで、すごいですね( ´・‿・`)2017年初めというかなり早いタイミングでの正式開店予定みたいですが、多分アメリカから順次という感じだと思うので、いつか日本上陸するのを楽しみにしてます( ´・‿・`)
Amazon Go is a new kind of store featuring the world's most advanced shopping technology. No lines, no checkout - just…www.amazon.com
アマゾンが本社ビルに併設した実験的食料品店「Amazon Go」を、写真と動画で紹介。人工知能とコンピューターヴィジョンを駆使することで、レジでの精算なしで食品を買うことができるのが売りだ。wired.jp
Amazon Dash Button
2015年にリリースされたAmazon Dash Buttonが日本にも展開されました。
ボタンを「ぽちっ」。Amazon Dash Buttonは、ワンプッシュでお気に入りの商品を簡単に注文できるボタンです。新しい買い物スタイルをご体験ください。www.amazon.co.jp
500円で購入出来、さらに本来の利用以外に簡単にカスタマイズ応用可能ということで、そっち方面でけっこう流行っている気がします( ´・‿・`)僕も1つ買いましたが、どう使うか考え中です🤔
AmazonDashButtonに関する情報が集まっています。現在17件の投稿があります。 また39人のユーザーがAmazonDashButtonタグをフォローしています。qiita.com
Affinity Photo 1.5リリース
Affinity Photo 1.5 is another huge update. From big new fundamental features such as macros, to other improvements like…affinity.serif.com
写真加工系デザインツールのAffinity Photoの1.5がリリースされて、このバージョンからWindows対応もされました。
紹介動画観ても、かなり本格的なツールであることが分かりますが、それが$39.99(通常は$49.99)買い切りですごいです( ´・‿・`)
ベクター系デザインツールのAffinity Designerもあります(というよりこちらが先)。
Affinity - the fastest, smoothest, most precise professional creative software.affinity.serif.com
筆者の小話
昨夜、人喰いの大鷲トリコをクリアしました🎉トリコかわいいし、面白かったです( ´・‿・`)トリコの動き・仕草が気まぐれで、本当に生き物ぽくてすごかったです🐶
バックナンバーはこちらから一覧出来ます。
↓アカウントやSwift・iOSコラムPublicationフォローしていただけるとありがたいです🙇 PublicationフォローしていただけるとこのSwiftレターのメール通知も届くようになります( ´・‿・`)