34
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swift で UICollectionView + AFNetworking Image あと感想

Last updated at Posted at 2014-06-04

Swiftで遊んだのでqiitaに残しておきます。
たくさん遊んだ跡なので、なにか恥ずかしいものを発見しても気にしないでください…

含有物

  • UICollectionView
  • AFNetworking
  • DAPagesContainer
  • JSONKit

#感想

Swiftはとても素直で使いやすいです。
RubyやJSとか好きだけどObjective-Cは文法がキモい、というWebな人(自分)にはすごく入りやすいと思いました。
なにしろ型宣言をせずとも変数を使えるし、allocとか書かずにnewをすることも出来ます。@も書かなくて良し、[]たくさん書かなくていい。(個人的には@が一番嫌いだった)

気になるのは互換性だと思うので、一応書いておきます。

iOS

まず、SwiftはiOS7開発出来ます。
iOS8専用の新言語じゃありません。

Objective-Cとの互換性

Objective-Cのオブジェクトは全てSwiftから使えます。(もちろんCocoaPodsも!)
AppName-Bridging-Header.h というヘッダーファイルを作り、ここにヘッダーをインクルードしていくだけで、全 .swiftから見えるようになります。(要ビルド設定)
Objective-Cオブジェクトは、何らかのブリッジを用意するなど余分なことは一切なしで、そのままSwiftから呼ぶことが出来ます。
インターフェースは一切変わらず同じです。initの仕方だけ少し違います。

平たく言えばObjective-Cでやっていたのと同じように呼べます。

Swiftの影響と、移行の状況について。

Swift自体は、いままでと根本は一切変わっておらず、構文が変わっただけであると感じました。(JS=>Coffeeみたいな)
Objective-CとSwiftの互換性は半端ないです。Apple本気過ぎます。

その構文も、Objective-Cっぽさを極端に削ぎ取った、現代仕様。
先ほども書いた通り、Webの人はもの凄くiOS開発に入りやすくなったと思います。
Web言語慣れてる人なら、見慣れた感じの構文になりました。
見慣れた風の構文で書ける/読めることは重要です。

今後は、Swiftにどんどん移行していくかな、と思いました。
互換性が高いレベルで保たれているため、移行は非常にスムーズです。

Objective-Cの資産が多い事業会社は難しいでしょうが、Objective-Cのサポートがどんどん薄くなるのは明白なので、年のスパンでは移行すると思います。

個人レベルでは、今すぐ移行する価値はあるように感じました。

問題があるならば、サードパーティのドキュメントとチュートリアルがまだ充実しておらず、コピペで使えるコードがありません。
適宜Objective-CのコードをSwiftに読み替える必要があります(違うのは書き方だけなので、書き方さえSwiftにしてあげれば動く)
見方を変えれば、書き方を変えるだけで動くコードが沢山あります。新言語特有の、リファレンスが全然ない><といったことはありません。

まあ、ドキュメント/リファレンス/チュートリアルが普及するのは、3ヶ月くらいが目処かなぁと思います。
他ならぬiOS(そしてApple手動)の言語変更なので、動きは速いかと。

つらつらと書きましたが、そんな感じです。

34
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?