情報系人間のブログ

プログラミング、開発に関することを書いていきます。

Swiftで2つの配列を同時にIterate

swiftで2つの配列を同時にfor文で処理したい時は以下のようにする。

let array1 = [1,2,3,4]
let array2 = [5,6,7,8]

for (a1, a2) in Zip2Sequence(array1,array2) {
    print(a1)
    print(a2)
}

Rxの関数を図で見る

ReactiveProgrammingを導入するためにはmap,filter等の様々な関数を理解する必要があるのでコストが高いです。
それぞれの関数がどういった動作をするのかはまずは公式をみるべしです。

ReactiveX - Operators

こちらのサイトでは公式の図にあるObservableを自分で動かす事ができます。
少し理解しやすくなっていると思います。なによりおもしろい。rxmarbles.com

FREETEL SAMURAI MIYABI 買った

普段はiphone6を使っていてAndroidほしいなと思っていたので買いました。
Androidは4年ぶりくらいで久しぶりです。前の端末はOSが2.2か2.3の時でした。root化失敗して文鎮化したのがなつかしいです。
動作はかなり満足です。一つ気になる点は背面がすぐ熱くなるくらいですけど、約2万なので文句言ってもしょうがないです。むしろコスパ良し。

Androidアプリ開発もがんがんいくぞい。

f:id:reida:20151101194057j:plain

swift2.0でStringの先頭、最後を削除する

swift2.0ではdropFirst,dropLastがなくなったのでタイトルの動作をどのようにすればよいのか調べた。

What is the most succinct way to remove the first character from a string in Swift? - Stack Overflow

こちらのstackoverflowの回答でいくつか良い方法が挙がっている。こういったユーティリティ的な動作はふたつ目の回答のようにextensionにしておくのが良い。
swift2.0からadvance関数はBidirectionalIndexTypeのadvancedByに変わっているのでそこを直すと以下の様になる。

extension String {
    func chopPrefix(count: Int = 1) -> String {
        return self.substringFromIndex(self.startIndex.advancedBy(count))
    }
    
    func chopSuffix(count: Int = 1) -> String {
        return self.substringToIndex(self.endIndex.advancedBy(-count))
    }
}

JSONからモデルを自動生成する

JSONからその要素に対応したモデルを作る際に手打ちで作成するのは非常に面倒です。
こちらのJSONExportというツールはこの作業を自動でやってくれるので非常に便利です。

Ahmed-Ali/JSONExport · GitHub
こんな感じで左側にJSONを入力すると右側に指定した形式でモデルが出力されます。
f:id:reida:20151014203844p:plain
対応している形式は以下のとおりです(Version 0.0.9)。
f:id:reida:20151014203845p:plain
最近きているRealmだけでなくSwiftyJSONや
SwiftyJSON/SwiftyJSON · GitHub
ObjectMapperといったライブラリにも対応しています。
Hearst-DD/ObjectMapper · GitHub
個人的にはObjectMapperにお世話になっているので非常にありがたいです。