Swift」がいよいよ昨日から始まりました。恥をさらすようですが、半分ぐらいのセッションでリアルタイムについていけませんでした。上がっている発表資料やレポート記事を参照しつつ復習をしていこうかと。(WWDCもリアルタイムでは理解できないのでいつもスライドpdfが出てから自分のペースで手を動かしながら勉強する、というスタイルでやってます)オーバービュー的な話、考え方的な話はありがたく参考にさせていただきつつ、ここでは主に実装面のセッションについて復習していきたいと思います。SwiftはApple以外のプラットフォームでも利用できるようになりました。iOSアプリ以外でも好きなようにSwiftを書けます。この講演では、CocoaやObjective-Cの機能を犠牲にせずに、クロスプラットフォームでSwiftを用いるときの実践的な書き方、テスト・デバッグ手法、について解説します。開発環境まず開発環境の話。できるだけ統一したいよねーというので、次の3つが挙げられていました。いうメニューがある)Docker使ってCLI+好きなエディタで開発できますという話とかは、サーバーサイド開発とかで普段そうしてる人だとピンと来る話なのかもしれないそもそも非マルチプラットフォーム(MacでiOS開発しかやってない)、エディタとかにもこだわりがない(Xcodeで不満がない)人間なので、とりあえず何がわからなかったのかを列挙できたのでいったんokとします。オススメしたいのはSPMを使う時に自分のコードを細かいプロジェクトに分けることです。使いまわしやすいように細かく分けてSPMで管理しよう、という話だと解釈しました。違ってたらすみません。依存これもリアルタイムでそもそも何についての話なのか(依存性の話だということが)理解できないまま聞いてましたが、niwatakoさんの書き起こしで理解。アーキテクチャチェック、AppleFrameworkを使っていないか、Objective-Cランタイムを使っていないかなど。この辺離れていくしか無い。時間がたてば軽減していくと思われる。今のところは大変そうだ。クロスプラットフォーム&オープンソースなXcodeこれもniwatakoさんの記事で理解。Darwin以外でも動くXcodeはオープンソースとして出るか?という質問だったらしい。回答としては、Xcode自体は出ないと思うけど、SourceKitとかほとんどのIDEサポートはオープンソースになってるし、クロスプラットフォームで使えるものもあるので、実質的には別プラットフォームでIDEサポートはできると思います、と。On型を明確にすることがSwiftらしいやり方であると気づいた時、同時に時には型を消す必要があると分かります。この講演では、型とは何か、型を消すことが何を意味するか、なぜそうしたいかについて解説します。さんが試されてて、さっきのAnyPokemonが動かない。さんがgistにアップされてました。2016年3月2日ありがたや。こんな風に書けるのか。}}で、こんな感じで使えると。AnyPokemon(Hitokage())pika.attack(3)hito.attack(3.0)勉強になりました。Swiftエラー処理は安全なコードを書く上で重要です。おけるエラー処理の論点を整理します。LandSwiftの設計はジェネリクスや第一級プロトコルなど言語の機能がアプリケーション開発のカギとなることを推進しています。Objective-Cから導入されたものを含む論理的パターンの多くは期待した通りには動作しません。多くの場合、Swiftの型システムは、プロパティをクラスとプロトコルの両方に拘束したりする素直なパターンとうまく動きません。この講演ではいくつかの課題に着目し、内部に潜む原因を議論し、対応策について考えます。CulturesSwiftでアプリケーションを書くということはObjective-Cで書かれたアプリケーションをただSwiftに書き換えるだけでなく、Swiftの特徴や哲学を受け入れる必要があります。この講演では、標準的なMVCで構成されたテーブルビューを使用したアプリケーションをSwiftに書き換えるところから始まり、よりSwiftらしいコードにするために、関数型プログラミング、オブジェクト指向プログラミング、デザインパターン、プロトコル指向プログラミングの考え方を適用していきます。コードの意味、やってることそのものはわかるのですが、一枚一枚のスライドとその間にある「その心は?」的なところがわからない。結局何をやっているのか、というのは最後にひとことで要約されてました。何をしましたか、いろんな簡素化しました。変更しないコードを外に追い出しました。実際にサンプルコードを書いてくれた方がいます。サブクラスを見ると、効果が一目瞭然です。}}なんとこれで全部。VCを肥大化させてしまった個人プロジェクトがあるので、この考え方でリファクタリングしてみようと思います。使ったライブラリを公開しています。アニメーションさせてます。我ながらAPIがいけてないのですが、実装時間3分ぐらいでそれなりにインパクトのあるアニメーションを入れられるので費用対効果抜群です。Samplerシリーズやハッカソンでの作品、プロトタイプ案件等々、Bluetoothや位置情報を使う場合にしょっちゅう利用してます。Swiftでつくりなおそうと思ってます。Home上に同じく、理解はできたので復習は省略しますが、ちらほらタイムラインで見かけた意見について。HomeKitのAPIがCoreBluetoothに似ているという話がありますが、HomeKitのプロトコルはBLEのGATTをラップしてるので、そうなってるのかと。次のような構造になっています。記事を書こうと思います。さんプルリクありがとうございました!*4:昨年WWDCでSFに行ってきたときに買ってきて、まだ触ってない。(22)月別アーカイブリンクWishlist検索はてなブログをはじめよう!shu223さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。