1分で分かる!Objective-Cとは?
ジャバード先生!大変だ大変だ~!!
おや、ことりん君。今日はどうしたんだい?
バナナ物流さんがObjective-C (オブジェクティブシー)ができるエンジニアさんを探しているみたいなんだ!どうやら、かなり急いでいるみたいでさ!!
ふむふむ。Objective-Cか。何があったんだろう?バナナ物流さん、ほかに何か話していた??
えっとね、バナナ物流さんのとこ、荷物の集配とかお届け日指定ができるスマホアプリがあるんだ。そのアプリのiOS版はObjective-Cで開発されているみたいなんだよ!
あぁ、そうなんだね。
うん!それでどうやらバグが見つかったらしいんだけど、Objective-Cができるエンジニアが転職しちゃったから、すぐに修正できないらしくて困っているって言ってた!
そういうことなんだね。それは確かに困っちゃうね。
だから急いでるって訳なんだ!ところでさ、Objective-Cってどんなプログラミング言語なの?
Objective-Cっていう名前のとおり、C言語の仕様をベースにして、オブジェクト指向オブジェクト指向とは、開発者がプログラミングしやすいように予め定義したものになります。定義をすることで仕様変更などに対応しやすくなります。 例えば、ある2台の車を動かすプログラムがあるとします。 <オブジェクト指向がない場合> ・A車は、ボタンを押すと走って、離すと止まる。 ・B車は、ボタンを押すと走って、離すと止まる。 <オブジェクト指向がある場合> ・A車、B車という車がある。 ・車の動作は、ボタンを押すと走って、離すと止まる。 ここで、ボタンを2回連続で押すとドリフトするという仕様変更が入ったら、オブジェクト指向なしのプログラムは2か所変更する必要がありますね。 例は2台だったからよいものの、これが100台、1000台だったら、、、考えただけでぞっとしますね。 このようにオブジェクト指向だと修正が入ったときや、大人数で開発する際に便利です Moreの概念を取り入れたプログラミング言語なんだ。
確かに名前のとおりだね!
ちなみにC言語の仕様をベースにしているって話だけど、Objective-CからC言語のプログラムを呼び出すこともできるんだよ。
そうなんだ!それは便利そうだね!あ、そういえば今思い出したんだけどさ、Swiftについて教えてもらったときにObjective-Cについても少し教えてくれたよね?
お、よく覚えているね!素晴らしい!
えっと確か、もともとiOSアプリの開発にはObjective-Cが使われていたんだよね?
そうそう。1997年頃にApple社がObjective-Cを開発していた企業を買収したんだ。その後はiOSとかmacOSのアプリを開発するための公式プログラミング言語だったんだ。
なるほど。
だから人気も需要も高かったんだよね。でも、Objective-Cの仕様自体は結構難しくて、初心者が習得するのにかなりの時間を要していたんだよ。
それでApple社がSwiftを開発したんだったっけ?
そのとおり。現在はiOSとかmacOSのアプリを新規開発するときは、Swiftを選択するのがスタンダードになりつつあるね。
そうなんだね。じゃあさ、Objective-Cは「オワコン」ってやつなの?
確かに需要が低下しつつあるという傾向はあるね。でも、今回のバナナ物流さんのように、Objective-Cで開発された既存のアプリケーションもたくさんあるから、「需要がすぐにゼロになります」という状況では無いんだよ。
あ、バナナ物流さんにObjective-Cのエンジニアを探してって頼まれているの忘れていた!
知り合いにObjective-Cに詳しいエンジニアさんがいるからお願いしてみるよ。
それは助かる!ジャバード先生ありがとう!
はーい!バグがなおるといいね!
Objective-Cとは?採用に役立つ基礎知識
Objective-Cとは
Objective-Cは、C言語にオブジェクト指向オブジェクト指向とは、開発者がプログラミングしやすいように予め定義したものになります。定義をすることで仕様変更などに対応しやすくなります。 例えば、ある2台の車を動かすプログラムがあるとします。 <オブジェクト指向がない場合> ・A車は、ボタンを押すと走って、離すと止まる。 ・B車は、ボタンを押すと走って、離すと止まる。 <オブジェクト指向がある場合> ・A車、B車という車がある。 ・車の動作は、ボタンを押すと走って、離すと止まる。 ここで、ボタンを2回連続で押すとドリフトするという仕様変更が入ったら、オブジェクト指向なしのプログラムは2か所変更する必要がありますね。 例は2台だったからよいものの、これが100台、1000台だったら、、、考えただけでぞっとしますね。 このようにオブジェクト指向だと修正が入ったときや、大人数で開発する際に便利です Moreの概念を取り入れたプログラミング言語です。そのため、C言語と上位互換性があり、Objective-CからC言語で書かれたプログラムを呼び出すことが可能です。また、Apple社が開発したプログラミング言語であるSwiftとは完全互換性があり、Objective-C→Swiftの呼び出し、あるいはSwift→Objective-Cの呼び出しも可能となっています。
かつてはApple社のiOSやmacOSのアプリケーションを開発するための標準言語でしたが、現在はその座をSwiftに奪われており、年々シェアを落としています。ただ、企業によっては新規開発案件であってもObjective-Cを選択しているところもあること、既にObjective-Cで開発されたアプリケーションのメンテナンスなどは今後もしばらく発生することを考えると、しばらくは需要がある言語とみてよいでしょう。
Objective-Cを使うエンジニア
Objective-Cは、ネイティブアプリエンジニアが使用します。ネイティブアプリエンジニアの中でも、iPhoneなどのアプリを開発するiOSエンジニアがよく使います。なお、ネイティブアプリとは、端末へのインストールを必要とするようなアプリを指します。
Objective-Cを使うエンジニアの特徴と在籍業界
Objective-Cエンジニアは、Apple社のアプリケーション(iOS)などを開発する企業やSIerに在籍しています。なお、Objective-Cを使うエンジニアの特徴(昨今の傾向)としては、Swiftへ移行している人が多い印象です。
採用する時に知っておくとよいこと
Objective-C Onlyのエンジニア
プログラミング言語には、流行があります。人気があった言語も様々な要因により、廃れていくということは珍しいことではありません。 Objective-Cもそのような言語の1つです。
現在ではあまりいないと思いますが、 Objective-Cしかできない(これまでの経歴がObjective-Cばかり)エンジニアについてはスキルの幅が狭く、将来的に活躍する可能性もやや低くなってしまいます。特にObjective-Cについては、今後需要が先細りしていくことが目に見えています。
採用時にObjective-Cしかできないエンジニアについては注意しておきましょう。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス
Objective-Cとは?採用に役立つObjective-Cの基礎知識
Objective-Cの人気
オランダのソフトウェア会社であるTIOBE Softwareが毎月発表しているプログラミング言語の人気ランキング「TIOBE Index」によれば、Objective-Cの順位は2022年1月現在、24位となっています。2014年10月には12.87%あったレーティング(スコアのようなもの)も、いまでは0.5%程度まで下落している状況です。引用:https://www.tiobe.com/tiobe-index/objective-c/
需要がすぐにゼロとなるわけではありませんが、これからプログラミング言語を学習するという方は、特別な理由がない限りObjective-C以外を選択すべきでしょう。
Objective-C関連の資格
現在、日本ではObjective-Cに関連した資格はありません。かつては株式会社D2Cとジークラウド株式会社がスマートフォンアプリ開発技術検定試験なるものを行っていましたが、現在はこの資格も終了しています。
Objective-C関連のイベント
Objective-C関連のイベントとしては以下のようなものがあります。