Objective-Cってどんな開発言語?Swiftと何が違う?エンジニア求人案件の特徴も解説

iPhoneアプリを開発するときに、最初に浮かぶ言語といえばObjective-CかSwiftだと思います。この二つは用途が同じなのでなにが違うのか?と疑問に思うこともあると思います。これからmacOSやiOSアプリの開発に携わりたいと思う方は、この二つの言語の違いを知っておきましょう。また、フリーランスの求人案件の特徴や今後の動向も解説します。

目次

  1. 『Objective-C』の基礎知識
  2. Objective-CとSwiftの違い
  3. Objective-C エンジニア求人案件の特徴
  4. Objective-C エンジニアの将来性と今後の動向
  5. まとめ

最新案件

『Objective-C』の基礎知識

Objective-C は、MacBookやiPhoneといったApple製品のアプリ開発に使用されるプログラミング言語です。AndroidのアプリやWebサービス開発ではあまり使用されないので、Apple製品のユーザーでなければ馴染みの薄い言語かもしれません。

一方、MacBookを使用して昔からアプリ開発をしていた方には、馴染みのある言語でしょう。というのも、Appleのアプリ開発に使用できる言語は、一昔前まではObjective-Cのみだったからです。

しかしXamarinやCordovaが開発されたことにより、C#やJavaScriptが使用できるようになり、新しい言語としてSwiftも誕生しました。現在では、macOSやiOSのアプリ開発には新しい言語であるSwiftが使用されることも多くなっています。とはいえ、昔からある老舗iOSアプリではObjective-Cが使用されているので、まだまだ現場でも需要があります。

Objective-Cとは

Objective-Cは、C言語にSmalltalkというプログラミング言語の特徴を組み合わせて作られた言語です。C言語特有の記法に加えて、Smalltalkの特徴の一つであるオブジェクト指向というパラダイムを持ちます。

C言語にオブジェクト指向を追加した言語といえば、C++が浮かぶ方もいるかと思いますが、それぞれC言語の拡張の仕方に違いがあります。C++ではオブジェクト指向を取り入れるために言語の仕様を改変していますが、Objective-CはC言語の記法を守りつつ、拡張的に機能を盛り込んだ仕様となっています。

そのためObjective-Cは、コンパイラディレクティブを使用してクラスを定義するといった大きな特徴があります。現在主流のJavaやC#といった言語と比べると、書き方が特殊であると感じる方も多いでしょう。

Objective-Cの歴史

Objective-Cは、コンピューター科学者であるブラッド・コックスとトム・ラブらによって、1983年に開発されました。開発のきっかけは、「一般の人々の生産に影響を与えるようなシステム作り」を考えたことから始まります。

このようなシステムは、現在ではグループウェアと呼ばれますが、当時主流であったC言語で理想のシステムを作ることは難しかったそうです。そこでSmalltalkのオブジェクト指向という特徴に着目して、C言語に同様のパラダイムを持たせて開発できないかと考えました。そうして生まれたのが、Objective-Cです。

ブラッド・コックスはObjective-Cを開発すると、Stepstoneという企業を立ち上げてコンパイラやライブラリの支援をします。しかし、当時は他の言語に埋もれてしまって、それほど認知度は上がりませんでした。その後、今のように認知度が上がるきっかけを作ったのが、スティーブ・ジョブズです。

Appleを退社したジョブズがNeXTという会社を立ち上げて、NeXTSTEPと呼ばれるオペレーションシステムにObjective-Cを採用したのです。これが大成功したため、Apple社はNeXT社を買収。その後、Objective-Cを使用したMac OS Xが発売されると、Objective-Cは飛躍的に認知されることとなったのです。

Objective-Cのメリット・デメリット

Objective-Cのメリットは、頻繁に使用されるようになってから10年以上も経っているため、ライブラリが充実しているという点です。ライブラリが豊富であると、開発を効率的に進められます。また、アップデート時にも大きな変更点がないので、エンジニアが急な対応に迫られることがありません。

一方で、Objective-C はSwiftと比べると難解で癖があり、冗長的な記述になりやすいというデメリットがあります。そのため学習が難しく、工数がかかってしまうこともあります。Swiftが発表されたことによって、今やObjective-Cはレガシーな言語になりつつあります。

Objective-Cが活躍している開発現場

前述の通り、Objective-CはiOSやmacOSのアプリケーション開発に使用されます。しかし、現状ではiOSのネイティブアプリケーションの開発や保守に利用されているケースがほとんどです。

募集案件は、ECアプリ開発やゲームアプリ開発などさまざまなタイプがあります。その中でも特に増えてきているのが、toB向けの業務系アプリの開発です。

これはたとえば、生体認証やフィールド支援、広告配信、基地局点検管理といった案件のことを指します。特に近年では、IoT・AI・RFIDを取り入れたアプリ開発も多くなってきています。

Objective-CとSwiftの違い

Objective-Cを解説するにあたって、Swiftとの関係を避けては通れません。なぜなら現在、macOSとiOSのアプリケーション開発は、Objective-CとSwiftの二つが大半を占めているからです。このうちSwiftは、2014年に発表された比較的新しい言語で、マルチパラダイムという大きな特徴を持ちます。

スクリプト言語の設計を取り入れていて、RubyやPythonとも似ているので、C言語がベースであるObjective-Cとは根本的に違います。ソースもコンパクトに記述が可能で、癖の少ないモダンな言語です。

このような理由から、最近ではSwiftの案件が多くなっており、Objective-Cが押されてきているのが現状です。Objective-Cよりも学習が容易なので、今後もエンジニアの数が増えると予想されます。

Objective-C エンジニア求人案件の特徴

Objective-Cの求人案件では、toB向けサービスの募集が多く見受けられます。では実際に、それらの案件にはどのような特徴があるのでしょうか?

業務内容

基本的にObjective-Cの案件は、iOSのアプリ開発が主となります。macOSのアプリ開発案件は少数といってよいでしょう。また、新規開発案件よりも保守案件が多いため、業務内容もそれに合わせたものとなっています。

たとえば、UIや表示モジュールの改善といった機能改修、新機能の単体テストや結合テストなどの検証が募集内容では多くあります。そのため、保守案件であればObjective-Cの案件がすぐに見つかるでしょう。

一方、少ないながらも新規開発の案件もあります。新規開発案件では、基本設計や製造、結合と上流から下流まで担当することもあります。このタイプの案件では、要件定義の経験やSwift・Javaといった他言語の知識、またGitやRDBの使用経験などを高いレベルで要求されます。

平均年収と単価相場

Objective-Cのエンジニアの平均年収は、約600万円となっています。保守案件の相場も50万円前後なので、平均年収とほぼ重なっています。また、開発の中でも、大規模なアプリ開発や金融関係でビッグデータを扱うなど、求められるレベルが上がるにつれて単価も高くなります。

高レベル案件の単価はおよそ60万円~80万円となり、年収も跳ね上がります。

学習のポイント

Objective-Cのスキルを上げるには、iOSアプリの開発からリリースまでを一人(またはチーム)で行うのが一番早い方法です。そうすれば、メソッドの定義やクラスの生成といった基礎的な言語の使い方を覚えられます。問題が発生したときも自分で解決しなければいけないので、自己解決能力も高められるでしょう。

ネット上には、リファレンスからゲーム感覚で学べるサイトまで、さまざまな解説サイトがあるので、上手に活用すれば一人でも開発ができます。英語に抵抗がなければ、海外のサイトも参考にするとより多くの情報が見つけられるはずです。

また、これから学習を始める方は、C言語から触れてみるのも一つの手です。C言語を学べば、Objective-Cだけでなく、C++やPythonといった他の言語の学習にも役立ちます。幅広い言語を扱えるようにしたいのであれば、学習しておいて損はありません。

おすすめの資格

現在、Objective-Cに関連した資格はありません。しかし、国家試験である「情報処理技術者試験」は、取得しておくと専門的なスキルを持っていることの証明になるのでおすすめです。中でも「基本情報技術者試験」と「応用情報技術者試験」は、転職の際のアピールポイントにできます。

それぞれ高度なIT人材としてのスキルを証明してくれる資格で、応用情報技術者試験のほうが難しい試験となっています。とはいえ、基本情報技術者試験も取得するのは容易ではありません。実際、平成30年には11万1381人の受験者がいましたが、合格したのはそのうちの25.6%となっています。(参照元:https://www.jitec.ipa.go.jp/1_07toukei/suii_hyo.pdf)これから受験をされる方は、しっかりと対策をしてから挑みましょう。

求められるスキルや経験

基本的にどの現場でも、iOSのアプリ開発経験が求められます。そのため、現場でiOSアプリを開発した経験や、個人でiOSアプリを開発しリリースまで担当した経験を持っておく必要があります。

また、iPhoneのアプリにもさまざまな種類があるので、高度な案件になると求められるスキルや経験も変わります。たとえば、金融関係のサービスでは、RDBMSの使用経験が求められます。その他にも、データ・ネットワーク処理やWebAPI連携、Gitを使用した開発経験など、案件によって求められるものが異なります。より高度な案件を目指すのであれば、多くの現場でさまざまなアプリ開発に携わる必要があるでしょう。

初心者向け案件の特徴

初心者が取得しやすい案件は、保守案件がメインです。その中でも、UI改善などの比較的軽い作業がメインとなります。保守作業では、既存のソースコードを読む技術も必要になりますので、ネット上で人が作成したコードを読むなど、プログラムのロジックを理解できるようにしておく必要があります。

また、ソースから悪い点を抽出して、改善ができるとなおよいでしょう。その他、自発的な取り組みができるレベルであるかも重要です。自己解決ができるレベルであれば、現場でも困ることはありません。

高単価案件の特徴

高単価案件のほとんどは、上流工程や他の言語も同時に募集しています。そのため、要件定義に携わった経験や、Androidのアプリ開発経験のある人材が求められます。Objective-Cの他にもSwiftやJava、HTML5などの言語を扱えるようにしておくと、高単価案件が取得しやすくなります。

また、前述の通り、サービスによって要求されるスキルが変わることがあります。とりわけ金融関係や大手サービスの開発においては、高単価の案件が見受けられます。これらのサービスでは、ビッグデータの取り扱いやFXサービスの取り扱い、ゲーム開発経験など、サービス特有のスキルを求められることがありますので、幅広い経験を積んでおくことが必要です。

Objective-C エンジニアの将来性と今後の動向

Objective-CはSwiftの台頭により、案件数が減少傾向にあります。今後もSwiftの案件が増えていくことで、Objective-Cの案件が少なくなると予想されています。また、このような推移は、プログラム言語のランキングからも計れます。ここでは、検索エンジンから統計を出すTIOBE INDEXと、GitHubのプルリクエストからみたランキングをご紹介します。

TIOBE INDEX の言語ランキングでは、2019年10月の言語ランキングにおいてObjective-Cは10位、Swiftは12位となっています。前年の同月では、Objective-Cは15位、Swiftは10位だったので、少しだけ回復したといえます。(参照元:https://www.tiobe.com/tiobe-index/

一方、GitHubの2019年10月時点におけるプルリクエスト数は、Swiftが13位、Objective-Cが17位となっています。(参照元:https://madnight.github.io/githut/#/pushes/2019/3)こちらのランキングでは、Swiftが圧倒的に優位と見えます。

もちろん、これらのランキングが案件数にそのまま反映されるわけではありませんが、ランキングが低いと相対的にエンジニアの数も少ないことが想定されます。エンジニアの数が少なければ、すなわち案件数が少ないということに繋がるので、Objective-CはSwiftに取って代わられる可能性があるのです。Objective-Cのエンジニアは、案件が少なくなったときのためにSwiftの学習もしておいたほうがよいでしょう。

まとめ

Objective-CとSwiftは用途が同じでも、中身は大きく異なる言語です。これからiOS開発に携りたい方は、言語の違いや今後の案件の動向を見て、学習を進めていく必要があるでしょう。また、Objective-Cのエンジニアは、Swiftを学習しておけばいつでもシフトできるので安心です。