Swiftレター #19
2017/02/05
Swift
Swift 3 マイグレーション
Swift 3正式リリースから半年近く経ったタイミングですが、プロジェクト規模やチームメンバー数によってはこれくらい大変だったりしますよね。iOS 8 特有の問題については初めて聞いて、にわかには信じがたいレベルのバグだなと思いました🤔 Stackoverflowとかでも報告見つけられなかったのですが、どうなのですかね🤔
(検証しようか迷いつつ、個人的にはiOS 8切ってしまって手間なのでスキップ)
石川さんから『Swift 実践入門』を頂いたので、見所などを綴ってみました。
2月7日に発売のSwift実践入門 について、 熊谷 友宏 さんが早速詳細な書評を書かれていました。Swift は公式の The Swift Programming Language がよく出来ていますが、それと同じように詳しい内容を日本語で書かれていて、さらにプラスαの内容もあってSwiftを詳しく学べる良い本だと思います。
僕も@_ishkawa さんからいただけたので、感想書きたいなと思いつつ、まだ読み途中です🤕
Swift Evolution
SE-0149: Package Manager Support for Top of Tree development・SE-0150: Package Manager Support for branchesがAcceptedに
先週In ReviewとなったSwiftPM関連の2つのProposalがAcceptedになりました。
Rust creator Graydon Hoare is now at Apple working on Swift
Hacker Newsにて、[swift-dev] Using git-clang-format in the Swift compiler code base. など見てRust作者の @graydon さんがAppleでSwift開発をしている、ということが話題になっていました。そういえば、Faster Mix-and-Match Builds with Precompiled Bridging Headersもこの方が書かれていましたね。
[swift-evolution] [Discussion] mailing list alternative
これまでも何度か、議論をメーリングリストやり取りする現状に対して他の方法にしたいという話が挙がっていたようですが、また話題になりました。SwiftのプロジェクトリードのTed Kremenekさん(Chris Lattnerさんから引き継がれた)は前向きで、移行するとしたら Discourse というサービスが良いのではということです。
そういえばちょうど先週、The .NET Language Strategy | .NET Blog では逆にGitHub Issueからメーリングリストに変えるということが告知されて議論になってたりしました。
ツール
Guaka
コマンドラインツール作成用のライブラリです。すでに以下などありましたが、丁寧な作りで後発ながら定番になりそうな印象です👀
IBAnalyzer
Storyboard・Xibファイルの接続(@IBOutlet・@IBActionなど)の欠損・不使用などを指摘してくれるツールです。実行時エラーを未然に防いでくれて良さそうです。まだ出来たばかりでこなれていないところありましたが、こなれてきたらBuild Phasesに加えても良いかもと思いました。
iOS
The Yin and Yang of Unit Testing in iOS
ブラックボックステスト・ホワイトボックステストの例をサンプルコード交えて説明されています。少し混ざったものをグレーボックスと表現されています。そういえば、僕は最近は書くとしても入出力がはっきりしたブラックボックステストしか書いてないくらいかなと思いました(実装もなるべくブラックボックステストしやすいように意識)。
Chromium for iOS がオープンソース化
Chromium for iOSのソースが公開されました。
[iOS] Chromium for iOS がオープンソース化されたのでビルドしてみた によると、ビルドするまで数時間コースらしいです👀
iOS 10.3 beta 32-bit alert suggests Apple may drop legacy app support in iOS 11
iOS 10.3 betaで32bitアプリを起動すると、今後のiOS(iOS 11)から使えなくなるという警告が表示されるようです。僕もiOS 10.3 betaにあげてしまいましたが、まだその警告見たこと無いくらい、32bitアプリはレアで今普通に開発している分には大抵問題無いと思いますが、昔作ったまま放置しているアプリはこのタイミングで使えない状態になってしまうとかありそうですね。
リリース
watchOS 3.2 beta (14V5205d)
先月諸々のベータ版がリリースされましたが、一足遅れてwatchOS 3.2もリリースされました。
主に次の2つがメインだと思います
- シアターモード(映画館などで画面の点灯を抑制するモード)
- SiriKit対応
その他
Scaling open source communities
fastlane作者の Felix Krause さんによる、オープンソースプロジェクトをスケールさせる手順についての記事です。fastlaneという素晴らしいプロダクトを根気よくここまで育て上げていただいていることに感謝です🙏 iOSアプリ開発ではCI環境整えるのがかなり辛かったですが、fastlaneによって僕を含めてとても多くの人が救われていると思います。
Parse終了
Parse Shutdownというサービスによると、実際には2017/01/30 17:12 PSTに完全に終了されたようです🙏当初は1月28日終了と告知されていましたが、30日に延びたようです。
サービスは終了するものの、Parse Serverを自分でホストすれば大体同じように使え、その事例など載っている ありがとう、さようなら Parse.com。ノハナがParse.comと共に過ごした4年間の話。 という記事が面白かったです。
Parseサービスは終わりましたが、mBaaS系だと次のはどれもある程度信頼して使えるかなという感触です(適材適所ですが個人的にはFirebase推し)。
筆者の小話
最近Firebaseとその周辺よく弄ってます
前々から興味はありつつきちんと弄っていなかったFirebaseですが、Fabric買収をきっかけに詳しく見てみたらかなり良い感じで積極導入中です( ´・‿・`)
特に良いなと思ったのがこのあたりです:
- Firebase Dynamic Links でUniversal Links対応やインストール時のデータ引き渡しなどが簡単にできる
- Firebase Analytics がBigQuery・Google Analyticsとも連携できる
- Firebase Notifications で1,000端末への通知を1リクエストで発行可能
Firebase Analyticsは、アナリティクス 日本版 公式ブログ: Google データスタジオを皆様に無料でご提供を開始というニュースもあり、とりあえずログ系はBigQueryに突っ込んでおけば良いかな気分です( ´・‿・`)
Fabricはそれはそれで気が利いてて良いので、併用していくつもりですが。また、リアルタイムデータベースなどは一筋縄では導入出来なさそうに感じて様子見中です( ´・‿・`)
PSVRにハマリ中😎
奥さんがPSVRを調達してきてくれたので、PSVRで遊んでます( ´・‿・`)バイオ7・Until Dawn: Rush of Bloodあたりが秀逸で、サマーレッスンやその他無料コンテンツなどもどれもそれなりに楽しいです( ´・‿・`)
非VR対応ゲーム・映画なども大画面で楽しめて、色々すごく楽しめてます( ´・‿・`)
バックナンバーはこちらから一覧出来ます。
↓アカウントやSwift・iOSコラムPublicationフォローしていただけるとありがたいです🙇 PublicationフォローしていただけるとこのSwiftレターのメール通知も届くようになります( ´・‿・`)