ラベル Swift の投稿を表示しています。 すべての投稿を表示
ラベル Swift の投稿を表示しています。 すべての投稿を表示

2016/07/12

Xcode 8のソースコードエクステンションで「突然の死」をつくってみた

Xcode 8からXcode Source Code Extensionという機能が追加されて、 公式の機能として自作アプリからXcodeのソースコードをいじることができるようになりました。

そこで、サンプルとして「突然の死」エクステンションをつくってみました、という関する内容で第68回 Cocoa勉強会関西で発表しましたが、諸事情でスクリーンショットが載せられませんので、スライドはアップロードしていません。

その代わりではありませんが、そのソースコードをGitHub上で公開しています。

(上のスクリーンショットはXcode 8 betaでの実行結果をXcode 7で開いているものです)

2016/03/11

Swift 2.1のジェネリクスでできないことまとめ

個人的に開発中によく遭遇したジェネリクスでのエラーあたりについてまとめてみました。

なお、Swiftコンパイラテストによる、実際にコンパイルできる/できない例は次のテストケースを参照してください。

  • https://github.com/apple/swift/blob/a048b078e37dfafc0e188bb8c6f3f50f5f796494/test/decl/ext/generic.swift

2016/02/26

関西モバイルアプリ研究会 #11でSwiftのLensについて発表しました

関西モバイルアプリ研究会 #11でSwiftのLensについて発表しました。

今回は大阪イノベーションハブで行われ、関モバでは始めての大阪開催となりました。

2015/11/05

20の言語/環境でてきとうにベンチマークしてみた (Rust, Go, Crystal, Nim, Swiftなど)

自分が普段利用している言語や、気になっている言語などを集めてベンチマークを行いました。

次の2つのブログ記事の伝統に則り、再帰のフィボナッチ関数を使って、処理時間や利用メモリなどを計測してみました。

ただし、値は埋め込みではなくて、コマンドライン引数として取れるように変更しています (定数で最適化されると嫌なので)。

2015/10/07

GitHub + Slather + TravisCI + Codecov.ioでSwiftのコードカバレッジを取る

Xcode 7からSwiftでのコードカバレッジが採れるようになりましたので、Travis CI上でSlatherを実行することでカバレッジデータを取得して、それをCodecovに送るようにします。

本エントリを作成するにあたって、次の記事が大変参考になりました。

2015/09/15

第63回 Cocoa勉強会関西でSwift中間言語について話しました

Cocoa勉強会関西にて、Swift中間言語 (SIL: Swift Intermediate Language) について話しました。

2015/07/24

[Swift] 再帰enumで単連結リストを実装する

Xcode 7 beta 4からSwiftのenumcaseの型に自分と同じ型を利用して、再帰構造をつくることができるようになりました。

これを利用して、単連結リストを実装してみました。

2015/03/03

Streaming APIに対応したTypetalkKit 0.2.6をリリースしました

まだStreaming APIはベータ版みたいなので仕様が変更される可能性もありますが、 現時点でのだいたいのメッセージに対応できたのでCocoaPodsで公開します。

(タイトル画像に特に意味はありません)

2015/02/25

SwiftでassertとpreconditionとfatalErrorをうまく使い分ける

Swiftにはアサーション系のメソッドとして、次の5つのメソッドがあります。

これらの違いや使い分けについて簡単に紹介します。

2014/12/10

Auto LayoutのVisual Format Languageを楽に書くためのSwiftライブラリを書いた

Visual Format Language|-[view]-|みたいな文字列からiOSのAuto LayoutのためのConstraintを作るためのDSLです。

ただ、Visual Format Languageは便利なのですが記述にやや冗長な部分もあるので、カスタム演算子を利用してVisual Format Languageっぽい見ためでもっとシンプルに書けるようにしたSwiftライブラリを書いてみました。

2014/11/27

TypetalkKitとStarscreamでTypetalkのWebSocket APIを試してみる

TypetalkのWebSocket APIが先日公開されましたので、TypetalkKitとSwiftのWebSocketライブラリStarscreamを使ってiOSシミュレータ上で試してみました。

サンプルアプリはこんな感じ。ブラウザ上から入力したメッセージが、iOSのサンプルアプリ上にすぐに反映されているのがわかります。

来月、東京でTypetalk Hack Tokyoがあるらしいので、導入の手順からまじめに書いてみました。

2014/11/26

TypetalkKitをパッケージマネージャCarthageに対応させてみました

Swift+AlamofireなTypetalkのライブラリTypetalkKitを更新して、パッケージマネジャCarthageに対応させてみました。

その他の更新内容は次の通りです。

  • APIの戻り値をウェブAPIと同じにしました
  • 内部コードのJSON処理部分をJSONHelperを使って書き換えました

2014/11/20

@IBDesignableと@IBInspectableでストーリーボード上に表示されるビューをつくる

Xcode 6からインタフェースビルダ (ストーリーボード) 向けに2つの修飾子@IBDesignable@IBInspectableが追加されました。

この2つを使うことでストーリーボード上で実際に描画されたビューを見たり、ビューの属性を変更したりできるようになるので、試してみました。

なお、WWDC 2014のセッション「What’s new in Xcode 6」内の解説が詳しいです。

2014/10/08

Swift+AlamofireでTypetalkのAPIを書いたので公開します

SwiftAlamofireNulabのチャットサービスTypetalkのSwift用APIを書いてみました。

Typetalkの全APIを使えるようにはなっているので、とりあえずGitHubで公開します。

2014/09/22

Swiftでリフレクションを使ってみる

ドキュメントにないメソッドreflectを使えば、Swiftで一応リフレクションが使えるようなので使ってみました。

なお、ドキュメントには載っていない情報なので、今後変更されたり、なくなったりする可能性があります。

2014/06/05

Swiftのextensionとsubscriptで文字列のスライス化っぽいのを実現してみる

PythonとかGoで使えるスライス。Swiftでは使えなさそうですが、extensionsubscriptとRangeオペレータ(.....)でそれっぽいのが作れそうだったので試しにやってみました。

// Swift
let s = "foobar"
let x = s[4]       // a
let y = s[3..5]    // ba

2014/06/04

絵文字で始めるSwift

新言語Swiftでは、識別子にUnicode文字を使えて、さらに絵文字も使えるっぽいです。