AttsuBlog

ATTSU INC. Official Blog
IMGP3424_Fotor
0 comments

Swiftが登場してから約一年……

タグ:, ,

こんにちは、萬屋です。

いよいよ梅雨ですね(^_^;)洗濯物に再び困ってしまう季節です……
前も洗濯物の話をした気が……どんだけ洗濯気にしてんだよって感じですねw

さて、今回は前置きも短く、Swiftが出て1年経過するのもあるのでSwiftのお話をしようかと思います(・∀・)

先日Swiftで一本アプリを作り終えました。
それを終えての感想みたいなものを書いてみます。

1, Optional型について

Swiftと言ったらまず真っ先にこれが来るのでは?というくらい目玉になっていましたね( ゚д゚)
変数や定数にnilを入れるのを許可するかしないかを指定できる優れもので、nil判定が必要だった部分が要らなくなったりと、恩恵に授かることが多いです(*^_^*)

ですがちゃんと意識して書いていないとXcodeに怒られまくります(-_-;)
しかも「unwrapしろよ」と言われているのでunwrapしたら、「そこはunwrapすんな」と言われて行ったり来たり……

そしてOptional型の変数はOptional型であるということが大事ですね、当たり前のこと言っていますが^^;多分Swiftやったことある人ならこの感覚わかっていただけますよね?よね?(懇願)
Optionalという箱の中に実際の値が入っているというイメージでしょうか。実際の値を使うにはこの箱を取らなくてはならないのですが、それを行うのがunwrapという操作(!をつけたりする)、みたいな感じですかね。

このへんはいずれ記事とかにしたいなぁと思っています。

2, クロージャ

Objective-Cの時にブロック構文というのがありましたが、自分はあれが慣れなくて辛かったです……(見た目の問題もあるかと思いますが)
その分Swiftのクロージャはわかりやすくなったなぁという印象を受けました。

3, タプル

自分はPython大好きっ子なのでタプルに関しては欲しいなぁと望んでいました。
メソッドの返り値を複数返したい場合などによく使いましたね。便利です(^-^)

4, Realm最高

これはSwift関係無いですが、最高過ぎて書きたかっただけですw

アプリ内にDBをもたせるときは普通CoreDataを使いますが、これを今回RealmというオープンソースのDBを使ってみました。
CoreDataの時と比べてモデルの書き易さが格段とアップしました!今回の開発で一番感動したかも……
こちらも詳しく記事にしたいなぁと思っています。

5, ビルド速度

よく遅いと言われてますね……
確かに遅かったです。
一度、いきなり遅くなってこれは耐え切れない……となったくらいです。
何が遅かったのか調べたら変数の宣言が原因でした。


class HogeClass {
    // メニュー
    let MenuList = [
        ["メニュー1", "メニュー2", "メニュー3"],
        ["メニュー4", "メニュー5"],
        ["メニュー6", "メニュー7", "メニュー8", "メニュー9"]
    ]
}

これを


class HogeClass {
    // メニュー
    let MenuList: [[String]] = [
        ["メニュー1", "メニュー2", "メニュー3"],
        ["メニュー4", "メニュー5"],
        ["メニュー6", "メニュー7", "メニュー8", "メニュー9"]
    ]
}

とやっただけでいきなり爆速になりましたΣ( ̄ロ ̄lll)
まぁ、この辺はどんどん修正されていくことを願いたいですね……

こんなところでしょうか……
まだまだジェネリクスなど使い倒せていない部分があるので日々精進です(`・ω・´)ゞ

ではまた(^_^)/~


Leave A Comment