Swift

Bitissues を Swift で実装し直した

春に RubyMotion で実装し直した Bitbucket のイシュー専用クライアント『Bitissues』だけど、 今度は Swift で実装し直した。 https://itunes.apple.com/jp/app/bitissues/id693561154?mt=8&at=10l8JW&ct=hatenablog 1 つのアプリを Objective-C、RubyMotio…

DTCoreText で NSAttributedString を高速に描画

先日、HTML 文字列を NSAttributedString に変換する方法を書いた。 HTML を NSAttributedString に変換する - present NSAttributedString を UILabel の attributedText にセットするだけで、 お手軽に HTML を表示できるけど、UILabel は描画が非常に遅い…

HTML を NSAttributedString に変換する

HTML の文字列は let html = "<h1><a href=\"http://tnakamura.hatenablog.com\">Title</a></h1>" + "<ul>" + "<li><strong>Item1</strong></li>" + "<li><i>Item2</i></li>" + "</ul>" let data = html.dataUsingEncoding( NSUTF8StringEncoding, allowLossyConversion: true) let attrStr = NSAttributedString(HTMLData: data…

AFNetworking と ReactiveCocoa を組み合わせる

ReactiveCocoa を導入したからには使い倒す方針でやっていて、 AFNetworking を使った Web API 呼び出しは、次のようにして RACSignal 化している。 let signal = RACSignal.createSignal({ (subscriber) -> RACDisposable! in let manager = AFHTTPRequestO…

Swift で ReactiveCocoa を使う

はじめに Swift で iOS アプリを実装し直すにあたって、 ただ Swift に翻訳するだけではつまらないので、 MVVM アーキテクチャで実装することに決めた。 View/ViewController と ViewModel のバインド、 イベントや非同期 API 呼び出しのインタフェースを統…

Swift で AFNetworking を使う

CocoaPods で AFNetworking をインストール Podfile に pod "AFNetworking" を追加して pod install 実行。 Bridging-Header で AFNetworking のヘッダーをインポート <プロジェクト名>-Bridging-Header.h に #import <AFNetworking/AFNetworking.h> #import <AFNetworking/UIImageView+AFNetworking.h> を追加。 画像の非同期ダウン</afnetworking/uiimageview+afnetworking.h></afnetworking/afnetworking.h>…

Swift で MagicalRecord を使う手順メモ

CocoaPods で MagicalRecord をインストール Podfile に pod "MagicalRecord" を追加し pod install でインストール。 <アプリ名>-Bridging-Header.h に #import <MagicalRecord/CoreData+MagicalRecord.h> を記述して、Swift から MagicalRecord を使えるようにする。 なお、Bridging-Header を作る</magicalrecord/coredata+magicalrecord.h>…

Swift で CocoaPods を使う

RubyMotion で作ったアプリを Swift で作り直すことにした。 手始めに、Swift でも CocoaPods のライブラリを使えるようにしてみる。 CocoaPods でライブラリをインストール Swift プロジェクトのルートディレクトリで pod init を実行し Podfile を生成。 P…