しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

今からiPhoneアプリを作るなら Swift or Objective-c のどっち?

今後iPhoneアプリを作るなら SwiftObjective-c のどっちを使った方が良いかという記事です。
まだSwift歴3ヶ月程度で知らない事ばかりですが現状思っている事を書いてみます。

Swift or Objective-c のどっちがいいか

プログラミング経験あるならSwiftが良いと思います。

Swiftが良い理由

私がSwiftを推す理由は短いしファイル数が減るからです。
Objective-cより速度が早いとかnilの扱いが厳密だからとかは二の次でとにかく気持よく書ける所が良いです。
文字列書くのに@がいらないし;いらないしSwitchbreakなくていいしヘッダーファイルにメソッド宣言しなくていいしメソッドの引数増やす時にヘッダーと実装の両方を修正しなくていいし他クラスを使いたい時に一々画面最上部にスクロールしてimportしなくていいとか それだけで十分Swiftが良いと思ってます。

Swiftを始める前にあった懸念と今の感想

まだObjective-cに比べて情報が少ないのではないか

Swift使う前は不安だったのですが実際にSwiftやってみるとそこまで困ってないです。
というのも開発してて調べたい事って大抵「テーブルの並び替えに使うメソッドなんだっけ?」とか「カメラ起動するにはどのクラス使うんだっけ?」と言ったAPIに関する事が多いです。
APIの名前や引数等はSwiftでもObjective-cでも大して変わらないので、情報で困る事はほとんどないです。

Objective-cのライブラリを使えないのではないか

ここも不安だったのですが、今の所問題なく使えています。
BridgeファイルでObjective-cのライブラリのヘッダーをインポートするだけで使えました。

Swiftをやる時のデメリット

Swiftの仕様変更

ここは少し工数がかかるかと思います。
試しに既存プロジェクトをXcode7.0で開いたのですが結構エラーが出ていました。
大規模プロジェクトや大人数での開発をしている場合は少し大変だと思います。

Swiftの難易度

Swiftnil周りが厳密だったりimmutableな変数が簡単に宣言できたりと、堅牢なコードが書けると言われていますがその分覚える事が多いです。
特にInitialize周りがややこしくて自分も未だに理解できてないです。(勉強しないと

プログラミング経験あるならSwiftと書いた理由

「プログラミング経験あるなら」って書いた理由は上で書いた通りSwiftはちょっと難しい部分があるからです。
あと入門書もObjective-cが多かったりするので初めてプログラミングをするならObjective-cもありだと思います。

既存プロジェクトをObjective-cからSwiftに変換する方法

ファイル単位で簡単にSwift化ができるので、徐々にやっていくのが良いのではないかと思ってます。
下は移行した際のメモです。

llcc.hatenablog.com

Objective-cの勉強はした方が良いか

ネットの情報はまだObjective-cが多いので少しは勉強した方が良いかとは思ってます。
とは言ってもメソッドやクラスの書き方とかプロパティーとか基本的な構文を覚える程度で十分だと思っています。

まとめ

まだまだ勉強を初めたばかりですが、Swiftは書いてて楽しいのでオススメです!

詳解 Swift

詳解 Swift