- 更新日: 2019年05月23日
- 公開日: 2019年05月22日
iPhoneアプリ新規開発、SwiftとObjective-Cのどちらを選ぶ?
これから iPhoneアプリを新規作成しようと考えた時、 「開発言語は Swiftで大丈夫だよな」 と思う方も。
今回は iPhone アプリのネイティブ言語である Swift と Objective-C を比較してみました。
自信をもって Swift で開発できるように 2つの言語を確認してみて下さい。
iPhoneアプリ新規開発、SwiftとObjective-Cのどちらを選ぶ?
まず 2つの言語についてご紹介。
Objective-Cについて
Objective-Cは、 1980年はじめに OS用のプログラミング言語として開発された オブジェクト指向型の C言語。当時は IT企業の Stepstone社 が Objective-C のライセンスをもち、 Apple社が Objective-C を手に入れたのは、 1996年当時 Objective-C のライセンスを持っていた NeXT社の買収をきっかけ。そして新しい Mac OS X に Objective-C を使ったソフトを使用。
その後、 Mac OS をはじめ iPhoneの iOS でも Objective-Cが使われシステム開発が行われる。そして 2007年に登場した iPhone 内のアプリも Objective-C で開発され、現代に至る、というわけですね。
OS(オペレーティングシステム)/Windows や Mac OS のこと。
Objective-Cの長所
- 30年以上の実績
- C言語由来の処理速度の速さ
- オブジェクト指向
- XCodeで使用可能
- 動的な処理に強い*
- スキルホルダーは高報酬を期待できる
- バージョン更新がないため、一度覚えた構文は長く使える(最終更新 2006年 Objective-C 2.0)
Objective-Cの短所
- 高い学習コスト
- 開発速度と安定性を求める昨今のアプリ開発事情にはやや不向き
- XCode上では、 .m と .h の 2種類のファイルが存在し、管理ファイルが増える
- セミコロン ; が多い etc
Swiftについて
画像引用: Swift.org
Swiftは、 2010年から Apple社を中心に開発が進められ、 2014年にリリースされた新しいプログラミング言語。iPhone をはじめ、 Mac PC や Apple Watch などのアプリ開発に対応。従来の Objective-Cに比べて初期学習コストを下げ、またバグを誘発しにくい構文で世界中の開発現場から指示。今から iPhoneアプリの開発をするなら間違いなく Swift を選択するべきでしょう。「Swift vs objective-c」で検索しても 9割は Swift といっています。
Swiftの長所
- Ruby や Python などのように比較的やさしいプログラミング言語
- Apple社に加えて IBM も支持
- バグを誘発しにくい構文(オプショナル型)
- C言語に劣らない処理速度*
- APIが豊富
- 一人あたりの仕事数は Objective-Cより多い
- 人工知能やOCRなど最新技術を取り入れたサンプルアプリはSwift製
外部サービスとアプリをつなぐ APIですが、例えば Instagram の場合 Swift用 API が 7あるのに対して Objective-C は 1つです(GitHub参照)。また仕事数については、フリーランス市場の upwork で調査。 「Swiftの案件数」 ÷ 「Swiftスキルホルダー」 で計算しました。
言語 | Swift | Objective-C |
案件数 | 656 | 409 |
スキルホルダー | 16,373 | 14,435 |
仕事指数 | 0.04 | 0.028 |
この他にも、 Swiftで作ったアプリを Androidでも動くようにするコンパイラーがあったりなど、時代の流れは完全に Swiftです。
Swiftの短所
- バージョン更新は年 1回
- 浅い歴史
- 実績の少ないエンジニアも(発注者注意)
個人的な一番のデメリットは、毎年行われているバージョンアップです。なるべく最新バージョンでプログラムしたいものの、バージョンアップに伴って書き方が部分的に変わります。ただし、 XCodeのデバッグ機能が「そのクラス名、本当は●●じゃない?」とアドバイスしてくれますので、プログラミングを学びながら XCodeにも慣れていけばクリアできる問題と思います。
Swift、Objective-C、どっちを選ぶべき?
Swift
スピード・安定性・コスト・メンテナンス を重視するなら 間違いなく Swiftでしょう。
開発面
XCodeは、 Objective-C も Swift も対応していますが、圧倒的に Swift の方が管理しやすいです。実際に Objective-C と Swift で簡単なアプリを自分で作ってみましたが、 「接続」 と 「プログラム」 の作業、 Swift を知ったら Objective-C の手順は面倒です。同じファンクションに対してコード量も Swiftの方が少ないので、開発後の可読性やメンテナンス性は高いと思います。
【現在時刻を取得するコードで Swift と Objective-C を比較】
言語 | Swift | Objective-C |
コード |
|
|
労働市況と人材
先程はフリーランス市場で Swift と Objective-C のスキルホルダーを調査しましたが、就職転職市場ではどうなんでしょうか。調べてみました。
【Swift と Objective-Cの求人案件状況】
Swift | Objective-C | |
indeed | 227 | 215 |
DODA | 131 | 156 |
クラウドワークス | 3 | 1 |
求人案件数は Swift も Objective-C もあまり変わらないという印象。Swiftについては新規案件の求人が多いように思いますが、 Objective-C は改修や機能追加など既存アプリのリフォームが多い印象でした。
また誰かにアプリ開発を依頼しようと考えている方、 Swiftエンジニアの人材は比較的豊富なようです。例えばクラウドワークスでスキルホルダーを調べると、
- Swift OKのエンジニア数 1,175
- Objective-C OKのエンジニア数 513
自分たちにあった Swiftエンジニアを見つけられそうですね。
トレンド
Googleトレンドで世の中の Swift と Objective-C の注目度を比較してみました。
んっ、 Objective-C の注目度、低すぎるのでしょうか。。。Swiftを外して Objective-C だけのトレンドを確認してみました。
右肩下がりですね。。
\Webサイト担当者としてのスキルが身に付く!!/
まとめ
アプリ開発は Swift でいこう、と確信を持てたことと思います。ただし、上記ではご紹介していませんでしたが、 Swift も Objective-C も学習環境は他のプログラミング言語に比べるとやや難です。まず Web上のチュートリアルで Swift の最新バージョンを探しましたが、見当たりませんでした。参考書はいくつか Swift4に対応しているものの、アプリ開発初心者の中には参考書通りにやってもエラーでなえる方もいらっしゃるのでは。
私は UI部品とコードの接続で 3時間はまったり、 Objective-C使用時に .m ファイルを編集しないといけないのに、一生懸命 .h ファイルを編集したりなど、初歩的な点でいくつかつまづきました。「もう止めようかな」とも思いましたが、「読者のため、がんばらないと」ということで つまづき を運よく乗り切ることができたのですが、みなさまはどうでしょうか。
「XCodeボタン多すぎ、、」「これ参考書通りにやっているのになんでエラーなの」と悩んでいる方、 挫折する前に CodeCamp を頼ってみませんか? 無料体験をはじめ、無料相談も行っていますので何かの役に立つかもしれませんよ。ご参考までに。
- この記事を書いた人
- オシママサラ