拡張現実における体験設計 | try! Swift Tokyo 2018 Day2-7

技術が現実世界でよりユビキタスになっていくにつれて、経験がスクリーンや物理空間からはみ出てくるのは避けられません。VRや声のように、また10年前モバイルアプリケーションがそうだったように、拡張現実 (AR) は未知の段階にいる新しい技術です。 David …

iOSでCharlesを導入する | try! Swift Tokyo 2018 Day2-6

twitter.com 我々が開発するアプリの多くが、インターネット経由でAPIにアクセスします。macOS上で実行されるCharles Proxyは、iOSからの HTTP と HTTPS のトラフィックをキャプチャできるため、障害をデバッグしたり、パフォーマンスを測定することができま…

超解像+CoreML+Swiftを使ってアプリの画像データ転送量削減に挑戦する | try! Swift Tokyo 2018 Day2-5

「超解像」は低解像度画像を高解像度に変換する技術のことです。この技術をiOSアプリに適用することで、画像データの転送量削減が期待できます。本トークではCoreMLとSwiftを使って超解像処理を実装し、従来手法と比較・検証した結果についてご報告します。 …

Kitura で Codable ルーティング | try! Swift Tokyo 2018 Day2-4

Swift 4では、Codable が導入されました。これは、JSONEncoder や JSONDecoder を通して、JSON を扱いやすくしてくれるものです。 JSONのエンコードやデコードが、RESTful API を扱う際の一番複雑な部分です。Codable を使うことで、 Kitura 2.0 は JSON の…

Swift によるアルゴリズムの可視化 | try! Swift Tokyo 2018 Day2-3

視覚教材は、アルゴリズムがどのように機能するかを明確にするのに役立ちます。 このトークでは、UIBezierPathがどのように動作するかを、我々が見ることができるインタラクティブな方法で、アルゴリズムを再実装して調べてみます。 Swift Playgroundを使っ…

Swift もくもく会 in Barcelona | try! Swift Tokyo 2018 Day2-2

バルセロナで開催した Swift Peer Lab の体験についてお話します。コンセプトから説明し、これがあなたの街でもでき、簡単で価値ある体験が得られると思っている理由を説明します。いくつかのTipsについてもお話します。 Swift もくもく会 in Barcelona デベ…

Expression Problem を解決する | try! Swift Tokyo 2018 Day2-1

UIKitでは、一連の UIView と UIView のサブクラスをまとめてビュー階層を記述します。UIViewをサブクラス化することによって自分自身のビューを作成することもできます。しかし、この View Description をAppKitやシリアライゼーションに再利用することはで…

AST メタプログラミング | try! Swift Tokyo 2018 Day1-15

Swift にはランタイムにおける動的な振る舞いがほとんどありません。コード注入の実現方法や、AST を用いたアスペクト指向プログラミングについてお話します。 AST メタプログラミング こんにちは、フリーランスでデベロッパーです。メタプログラミングの手…

👾 | try! Swift Tokyo 2018 Day1-14

インディーズゲームの開発者の多くは、開発にSwiftを使ったことがありません。Swiftでモバイルゲームを作ってみましょう。このトークでは、Swiftでカジュアルゲームを作る方法を紹介します。SpriteKitやゲームのアルゴリズム、ツールについてもお話します。…

Protocol Oriented WebAPI Abstraction | try! Swift Tokyo 2018 Day1-13

今やスタンドアロンで動くiOSアプリは数少なく、ほとんどのアプリではWebAPIを経由してサーバーと情報のやり取りを行います。アプリの動作の根幹となるAPI通信を適切に設計し、将来の改修や通信/マッピングライブラリの入れ替えなどをより容易にするためのプ…

ブロックチェーンのクライアントをSwiftで実装する | try! Swift Tokyo 2018 Day1-12

Swiftにおける分散アプリケーションの作成について紹介します。 ブロックチェーンのクライアントをSwiftで実装する Swiftでブロックチェーンクライアントを書くことの話をします Ethereumとインタラクションを起こすフレームワークはありません。コントリビ…

UI Test の楽しさとメリット | try! Swift Tokyo 2018 Day1-11

多くのiOS開発者はユニットテストには精通していますが、Xcodeを使ったUIテストを行なっていない方が多いと思います。自分のアプリに UI テストを導入した際のハイライトと、すべてをテストすることの苦労を共有します。 UI Test の楽しさとメリット ビジネ…

我が家を支えるSwiftの技術 | try! Swift Tokyo 2018 Day1-10

Swiftは我が家庭内のコミュニケーションには欠かせない技術となっています。育児用のiOSクライアントアプリ、そのリクエストを受け取るWebサーバー、ちょっと便利なSlackBot、妻が喜ぶ定期実行タスクなどなど、いろんなものがSwiftによって作られ活用されて…

SwiftyPi | try! Swift Tokyo 2018 Day1-9

モバイル開発からサーバーサイドアプリケーションまで、我々はSwift 言語に柔軟性を見出だし始めています。ですがまだSwiftには開拓されていない領域があり、Swiftエンジニアがその可能性を切り開くかもしれません。このトークでは、Kate が Raspberry Pi で…

変性のダイヤモンド | try! Swift Tokyo 2018 Day1-8

ジェネリクスはSwift言語における悩みの種となっている面白いトピックです。Generics Manifest では、Swift の型システムが定義よりも実践に重きを置いて作られたかについて素晴らしい説明がされています。ですが、「変性のダイヤモンド」という理論では、型…

Event driven networking for Swift | try! Swift Tokyo 2018 Day1-7

Swift が iPhone, iPad, Mac, Apple Watch そして Apple TV のアプリを開発する言語として選ばれていることはみなさんご存知でしょう。この数年、Swift は Linux で動作するサーバーサイドアプリケーションを開発するのにも優れた言語としても浮上してきまし…

コーダーがデザインすべきなのか | try! Swift Tokyo 2018 Day1-6

ほとんどのソフトウェアエンジニアは、デザイナーがコーディングする世界がより良い世界であることに同意します。 このトークでは、反対の考えを探求したいと思います。 コアデザインの原則を知っていることによって、時間を節約し、よりプロダクトに実用的…

関心の分離と単純化のためのSwiftコードの最適化 | try! Swift Tokyo 2018 Day1-5

関心の分離は、コードが再利用されないときには時期尚早な最適化とみなされることがよくありますが、我々がコードが何をしているのかを理解することに対しては大きく影響します。Swiftにおけるこの実例を紹介します。 関心の分離と単純化のためのSwiftコード…

レスポンダチェーンを知ろう | try! Swift Tokyo 2018 Day1-4

レスポンダチェーンパターンの仕組み、Apple のフレームワークの仕組み、そしてその活用方法の例を紹介します。 レスポンダチェーンを知ろう ユーザーがこのメニューバーをタップするとそれはどこに行きどう見極めるのでしょうか それにこたえるのにレスポン…

Clang モジュールの探検 | try! Swift Tokyo 2018 Day1-3

Swift や Objective-C のフレームワークは Clang モジュールをベースとした同じモジュールシステムを共有しています。ライブラリのインターフェースとやりとりすることでヘッダファイルを置き換えますが、それぞれにエッジケースが存在します。Clang モジュ…

SIL入門 | try! Swift Tokyo 2018 Day1-2

Swiftのコンパイラは複数のフェーズにわけて実行され、そのうちもっとも大きなものが SILの最適化です。SIL Optimizer はSwift特有のすべての最適化を担うので、SwiftのエンジニアがSILを理解しておくことは極めて重要だと考えます。このトークでは、SILの基…

裏 Swift Tour | try! Swift Tokyo 2018 Day1-1

Swift を学び始めるとき、Apple の公式チュートリアル 'A Swift Tour' に取り組んだ方も多いのではないでしょうか。 そして、時を経て、Swift に慣れ親しんだ今だからこそ理解し、得られるものがあります。もう少し深堀りした Swift の世界、'A Swift Tour' …

Auto Layoutのアルゴリズム | iOSDC Japan 2017 Day1

iOS 6から登場したAuto Layoutは、マルチデバイス・可変レイアウト対応が必要な現在のiOS開発において、無くてはならないものになりました。 しかしその裏側で、一体どんな仕組みでレイアウト計算が行われているのか、ご存知ですか? このプレゼンでは、Appl…

節子、それViewControllerやない...、FatViewControllerや...。 | iOSDC 2017 前夜祭

UIViewController(以下UIVC, VC)クラスにおいてよく起こりがちな問題があります。iOS開発者であれば一度は耳にしたことがあるでしょう、「VCの肥大化問題」です。VCの肥大化の原因は、UIVCクラスの責務過多にあります。 このトークでは、UIVCクラスの責務を…

Swaggerで始めるAPI定義管理とコードジェネレート | iOSDC 2017 前夜祭

twitter.com REST APIのインターフェイス仕様をSwaggerのAPIドキュメントで一元的に定義・管理することで、モバイルとサーバエンジニア間のコミュニケーションを齟齬なく円滑に進めることができます。 さらに、SwaggerのSwiftコードのジェネレート機能を活用…

Objective-C++を使ってMRCで快適に開発する | iOSDC 2017

iOSやMacの開発において現在ではARC(Automatic Reference Counting)が前提となっており、MRCの時代と比べて飛躍的に簡単になりました。しかし、開発するアプリによってはMRCでメモリ管理をしたい場面が少なからずあるはずです。そんな時はObjective-C++の力…

SiriKit and Me | iOSDC Japan 2017

去年発表されたSiriKit。Siriにしゃべるだけでアプリが動かせる?と話題になりましたが、実際には使える機能が限定されているので、なかなか使う機会が多くないと思います。 その上、実際にプロダクトにいれようとすると、SiriKitは通常のアプリ開発ではあま…

モバイルアプリ開発エキスパート養成読本 をご恵贈いただきました: 「今の現場のノウハウが生きたまま届く本」

このたび 株式会社技術評論社より出版される モバイルアプリ開発エキスパート養成読本 をご恵贈いただきました! 嬉しくてとにかく高評価してしまいそうですが、早速感想を書かせていただきたいと思います。 なお、こちらの本はAndroidとiOS、それぞれの最新…

try! Swift Tokyo 2017 みんなのレポート、感想、考察、やってみた...etc まとめ!!

今年も作りました!try! Swift Tokyo 2017についてのレポート、感想、考察、やってみた記事のまとめです!! まだ書いてない方、まだ集めるのでぜひ書いてください!! 書いたのにここに載ってない(涙)、載ってない記事知ってる!という方、 @niwatakoにご一…

try! Swift Tokyo 2017 聞き起こしまとめ | レシーバーを返してブログを書くまでがtry! Swiftです!

この三連休はcatch Swift!!連休にあわせて公開です! 2日間のセッションの聞き起こしをまとめました!! 今年の聞き起こしの感想も書いたので少しお付き合いいただけると幸いです。 ごあいさつ niwatakoです。本業は株式会社はてなのiOSエンジニアをしてお…