Swiftレター #16

2017/01/15

mono 
Swift・iOSコラム
16 min readJan 15, 2017

--

ブラウザ・アプリで見ると、URL展開されて見やすいのでオススメです👀

Swift

Swift Tweets開催 #swtws

@koherさん主催のSwift Tweetsが昨夜開催されました。どんな感じだったか書こうとしたら長くなったので、別記事にしました

Accessing Dictionaries with Key Paths

[String: Any] 型のDictionaryから、ネストした値アクセスを dict[keyPath: "translations.characters.Gyro Gearloose"] のように行えるようにする実装の紹介です。結論にも書いてありますが、通常のアプリ開発だとstructなど定義して型付きで扱うことが多いですが、手っ取り早くDictionaryにアクセスしたいシーンのためにこういう手軽なアクセス方法があると便利なことも多そうです。

#32 Errorify String

次のようなextensionを書くと、String型で例外を投げられるようになる、というTipsです。

extension String: Error {}
func bar() throws {
throw "Something went wrong!"
}

コメントでも指摘されていますが、せっかくのエラーの型が無くなるので実コードではやめた方が良さそうですが、実験コードなどで手っ取り早く書きたい場合など便利になりそうです。

Request Behaviors

ネットワーク通信の各フェーズで色々処理を挟むことが多いですが、 それを各種フェーズに反応出来るメソッドを持つRequestBehavior というプロトコルを用意して、適切に実装を分離した上でNetworkClientクラスに差し込むという実装の紹介です。ネットワーク通信処理するクラスは色々処理を追加して混んできますが、それをすっきり保てそうです👀

Swift実践入門 ── 安全性と直感的な文法を両立した言語

@ishkawaさんによる、2月7日発売のSwift本の予約がAmazonにて開始されました。gihyo.jp で電子版も販売されるようなので、僕は目次見て良い感じだったらそちら買おうかなと思っています👀

Swift Evolution

SwiftPM系のProposal2件が実装完了

しばらく前のSwift開発版最新から使えるようになっていた以下の2件ですが、Statusも Swift 3.1に実装済みとなりました(Statusが変わっただけで多分差分無さそう)。

SE-0147: UnsafeMutablePointer.initialize(from:)を廃止して UnsafeMutableBufferPointerに統合がAcceptedへ

破壊的変更では無いので、Swift 3.1 に入れても問題無さそうですが、Swift 3.1向けの機能実装が1月16日に終わるので、さすがに間に合わないですかね。(詳しくはこちら: Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(前編))

iOS

フォントの基本とUIFont/UIFontDescriptor

Mastering TextKitと少し似た内容ですが、Auto Layoutに関するものなどより高レイヤーの話が多くて実用的に思いました。

プッシュ通知で雨雲が動く — 未来感を味わうことができるウェザーニュースのアップデート

iOS 10でリッチなプッシュ通知を送れるようになりましたが、そのすごく良い利用例だと思いました。画像を含める対応は各アプリでよく見てて、例えばInstagramやTwitterで通知内容の画像をアプリ開かずに見られるなど便利ですが、動画(かつこのような実用的な内容)になるとさらに格段と便利に感じます。この例だと「東京都新宿区の8時の雨雲の様子」の動画で、地域・時間によって動画生成してて、丁寧にパーソラナイズされていて好印象です👏

ツール

simMagnifier

iOS Simulatorのアプリや各種フォルダ、さらにCore Data・UserDefaultsの中身を確認・編集(Core Dataのみかも)出来る$15のアプリです。

僕は€9,90のSimPholdersを購入して使っていますが、後発・高機能でそれより良さそうな雰囲気です🤔

Swinject

おそらくSwift製では最も定番のDIライブラリのSwinjectの2.0.0がリリースされました。かなりこなれてきて、機能も豊富でドキュメントも充実しているので、僕も自前の簡易実装DIからキリの良いタイミングで移行するのも良いかなと考え中です。iOSアプリの設計とDependency Injectionにて紹介されているCleanseも面白そうですが、メインブランチがSwift 2だったりちょっと今後のメンテ状況が心配に思いました🤔

Mustard

文字列から特定条件にマッチしたものを取得するライブラリです。正規表現やScannerで良いかと思ってしまいますが、それについてもこのライブラリ以外に考えられる選択肢についてのドキュメントが用意されていて、勉強になります。最新のUnicodeの絵文字仕様に対応したTokenizerの実装例も書いてあります

リリース

Apple系のリリース

iOS 10.3 でシネマモードという機能が載るという噂があって、そのベータがそろそろ配信されるようですが、なかなか来ませんね🤔

Now Accepting Larger tvOS Binaries

tvOSアプリの最大容量が200MBから4GBに増えました。最大20GBまで追加コンテンツダウンロードできるので、アプリの容量自体はあえて200MBという制限にしていたはずなのに、なぜ増やしたのですかね。やはり追加コンテンツダウンロード対応が面倒、などの開発者からの不満が大きかったのですかね🤔

…とちょっと考えましたが、特にマルチプラットフォームのゲームでこれまでtvOS版だけ追加コンテンツダウンロード対応しなくてはいけないことがあって、それが面倒だったのかなと思いました。4GBまでなら大抵のアプリはそのケア不要になりますね。

Apple系のニュース

Swiftの生みの親のかつProjectLeadだったChris LattnerさんがAppleからテスラに✋️

1次情報は、この2つですかね:

今後もSwiftコアチームのアクティブなメンバーを継続とのことですが、とはいえSwiftに割ける時間は減るでしょうし、何より心境的に残念です😥

オープンソース化したドキュメントビューア「Dash for iOS」のGPL違反アプリが続々とApp Storeに登場。

過去にも何回か取り上げた、App Storeから削除されてiOS版をオープンソース公開したDashですが、第三者がそのソース(+改変?)を用いてビルドしたアプリがいくつかリリースされてしまっているようです。Dashの宣言しているGPLライセンスへの違反となっています(´・︵・`)

また、Dashに関する話題としては、100 Days Without the App Storeという記事にてApp Storeから削除されても収益は維持出来ている、という報告も先日なされていました👏

iPhone at ten: the revolution continues

iPhone 3Gが2007年に登場してから10周年です🎉

ちなみに、僕は3Gは見送ったものの、3GS以降毎年買い換えています( ´・‿・`)さらに余談ですが開発視点だと、当時は院生だったので研究のために簡単なiOSアプリ作ったりはしつつ、その後Windows開発中心になるなどブランクあって、本格的にiOSアプリ開発始めたのはSceneという写真整理共有アプリ作っていた2013年頭くらいからです( ´・‿・`)

Apple iPhone ad — Hello (2007)という10年前の動画がシェアされてました:

その他

2016年に最も収益を挙げたアプリはSpotify、LINE、Netflixなどだ

世界売上げで、LINEが2位・LINEマンガが7位にランクインしているのが驚異的だと思いました。LINEは2016年3月時点でメッセージアプリのシェアは世界7位程度でしたし。その他、ビデオストリーミング市場に言及していたり、2016年のトレンドがざっくり掴めます。

また、All of 2016’s top mobile apps are owned by either Google or Facebook は収益ではなくユニークユーザー数でランキングしていて、タイトル通りFacebook・Google系のアプリがトップ10すべて占めている、とのことです(Apple純正アプリは対象外?)。

#アップルノート を創刊します

Taro Matsumura 松村太郎さんが、#アップルノートという有料マガジンをnoteにて開始されました。

我々の生活に更なる変革をもたらすテクノロジーについて、Appleを軸に、知るべき話題、押さえておくべき数字、今後の予測を、週刊でお届けしていきます。私にとって最も重要な「考えるきっかけ」であり、原稿の素材。それを皆さんと共有して行こうと考えています。

という面白そうな内容で、月4回配信予定とのことです。1,000円/月ということでちょっと迷ってましたが、とりあえず1ヶ月購読してみることにしました。良ければ翌月以降も継続予定です👀

ちなみにこれ系だと僕は他に 中島聡さん週刊 Life is beautiful を購読していて、こちらオススメです👀

nullが生まれた背景と現在のnullの問題点 ― null参照問題(前編)

昨年null安全でない言語は、もはやレガシー言語だという記事から流行った「null安全」に関する内容を主にC#視点で語られています👀

筆者の小話

昨晩のSwift Tweets(とその準備)で少し大変でした( ´・‿・`)
また、最近すぐブレーカー落ちるので、iMacがブチッと切れて心配です🤕昨夜の発表時にブレーカー落ちずに良かったです🤕けっこう問題なので管理会社に相談中です🤕

あと、Trelloは個人活用しているのですが、先週Attlassianに買収された影響が今後無いかちょっと気がかりです🤔

Atlassianの他の買収同様、Trelloは企業としてもサービスとしても従来どおり運営が続けられる。当面、Trelloの現行ユーザーには影響はない。

当面🤔🤔🤔

バックナンバーはこちらから一覧出来ます。

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

--

--