寄付窓口はこちら

2018-03-01から1ヶ月間の記事一覧

XcodeからショートカットでDerivedData消せるようにした

Xcodeがなんだかおかしい時にTerminalから rm -rf ~/Library/Developer/Xcode/DerivedData/* && rm -rf ~/Library/Developer/Xcode/Snapshots/* したりします。 ※あと全然やったことがなかった人は、 これをやってみると2桁ギガぐらいハードディスクが空いた…

開発者ツールと経験への時間投資 | try! Swift Tokyo 2018 Day2-17

開発者のツールと経験を向上させるためのアイディアを探すにはどうすればよいでしょうか?新しい開発ツールを作成するか、開発プロセスを調整することで、日々の開発における共通の苦しみとその改善方法を見ていきます。 10倍の開発者がいるなら、その人は他…

VisionとCoreGraphicsで顔をデカくする | try! Swift Tokyo 2018 Day2-16

タイムテーブルにありませんが1件ライトニングトークがあります。 VisionとCoreGraphicsで顔をデカくする Timersのアプリには顔を大きくする機能がついています。 突然、1週間で顔を大きくする機能を作って欲しいと言われました。 顔の領域がわかれば大きく…

型とパフォーマンスで見るType-erasureの利点 | try! Swift Tokyo 2018 Day2-15

2016年のtry! Swiftで紹介されてから誰もが知るところとなったType-erasure、これを採用するメリットを型とパフォーマンスの面から紐解きます。また、stdlibのAnySequenceの実装をヒントに、効率が良くパワフルなType-erasureの実装を探っていきましょう。 …

Swiftが動くDockerコンテナの各OSの性能比較 | try! Swift Tokyo 2018 Day2-14

Swiftがオープンソースとして公開されてLinuxサポートがされてから数年経ち、サーバーサイドSwiftの導入・運用事例が増えてきました。その間にもSwiftはアップデートされ続けていて、Swiftのバージョンを複数の開発・運用マシンで揃えることのコストが高くな…

UIImageView vs Metal | try! Swift Tokyo 2018 Day2-13

MetalはGPUへのアクセスを提供するAPIで、OpenGLより10倍速いという謳い文句で登場しました。本セッションではMetalの基礎を解説しつつ、そのグラフィックス描画性能をUIImageViewと比較してみます。 MetalのAPIを直接利用する機会がなくても、Metalはあなた…

iOS / Swift における対話型インターフェースの作成 | try! Swift Tokyo 2018 Day2-12

アプリで対話型インターフェースを実現するための最新技術を紹介します。AppleのAPIとAmazon Lexのような他社の技術による音声認識を見てみましょう。また、音声再生における別なストラテジーについても紹介します。さらに、アプリで対話型インターフェース…

Codableが導く型安全な世界 | try! Swift Tokyo 2018 Day2-11

CodableはAPIのレスポンスをマッピングするためだけの機能ではありません。Codableは様々な場面で利用でき、ソースコードを型安全にすることができます。このLTではCodableをフル活用するためのアプローチや、よりアグレッシブなCodableの活用方法をご紹介し…

デジタル信号処理 in Swift | try! Swift Tokyo 2018 Day2-10

デジタル信号処理の分野に潜って、Apple の Accelerate framework が高速フーリエ変換を使ってどうやってオーディオ周波数を特定しているのかを見てみましょう。Swift のような強力な言語でオーディオサンプリングレートを分解する方法を対話的なデモを通し…

Swift5のOwnershipに備える | try! Swift Tokyo 2018 Day2-9

Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッショ…

Swift エンジニアのための Kotlin 入門 | try! Swift Tokyo 2018 Day2-8

Kotlin は JVM に書かれた関数型言語です。あなたのAndroid開発者の友達は、この言語の登場をとても喜んでいることでしょう。Swiftとの共通点が多いこの言語を学ぶことで、Android チームのメンバーとコミュニケーションが取りやすくなります。Swiftの視点か…

拡張現実における体験設計 | 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 のフレームワークの仕組み、そしてその活用方法の例を紹介します。 レスポンダチェーンを知ろう ユーザーがこのメニューバーをタップするとそれはどこに行きどう見極めるのでしょうか それにこたえるのにレスポン…