スマートフォンアプリ開発技術検定試験とは何か?
スマートフォンアプリ開発技術検定試験(以下、スマ検)は、株式会社D2Cとジークラウド株式会社が実施しているスマートフォンアプリ開発者の技術力を客観的に評価できる検定です。全国共通規格で行われるアプリ開発技術検定試験で、自身のスキルを数値化して客観的に評価できます。また、企業側から見れば、技術者を適切に評価し、適切な担当業務を判断する材料としても使えます。
- スマートフォンアプリ開発技術検定試験(スマ検)
※2018年1月現在、サイトはクローズしています
スマ検では、iOS、Objective-C、Swift、Android、Java、HTML5、JavaScript、CSS3など、スマートフォンのアプリ開発に必要なすべての技術レベルを検定します。出題される問題の総数は5000にもなり、開発分野だけでなく、アプリ申請ルールなどの実践的な内容も検定に含まれています。出題される問題は、日本トップレベルのアプリ開発エンジニアの監修のもと、制作されました。
いつでも・どこも受験できる。しかも無料!
スマ検は、オンライン検定です。よって、インターネットに接続可能なパソコンが必要です。検定に使うパソコンは、専用アプリをインストールする必要はなく、Internet ExplorerなどのWebブラウザがインストールされていれば問題ありません。
オンライン検定なので、決まった時間を設ける必要はなく、いつでも・どこからでも受験ができます。また、途中で中断しても経過が保存されるので、まとまった時間が作れない忙しいサラリーマンでも受験ができ、自分のペースで進められます。また、採点結果もすぐに確認できます。
こうした検定では、受験費用が必要になるのがあたりまえです。しかし、スマ検は、事前にアカウント登録が必要なものの費用は一切かかりません。出題内容に関しては後で触れますが無料だからと言って、簡単で中途半端な問題はありません。
無料で受験できるので気軽にチャレンジできます。しかも、出題される問題は実践的です。腕に自信のあるエンジニアは、空いた時間を見つけて受験してはいかがでしょうか。
アカウント作成が必要
受験には、事前にアカウントを作成しておく必要があります。
このときに、氏名、フリガナ、ユーザー名、生年月日、メールアドレス、サインインのパスワードを登録します。FacebookやGithub、Twitterのアカウントを使ってもログインできるので、こちらを使う方法もあります。
アカウント登録画面には「人材紹介を許可する」という選択があります。これは、人材紹介会社などへの紹介が行われるようです。成績優秀であれば、思わぬところから声がかかるということがあるかもしれません。
いまの時代だからこそ
その昔、モバイルOSのAPIやフレームワークと言えば、充実しておらず基本的なライブラリが提供されるだけで選択肢はありませんでした。現在のスマートフォンOSは、デスクトップOSと変わりないくらい機能豊富で、すべてのAPIを把握するのは難しいくらい数多くあります。また、フレームワークも好みの物が選べるほど充実しています。たとえば、SNS関連であれば、必要なフレームワークを見繕ってうまく組み合わせれば、主要な実装が完了することも珍しい話ではありません。
すでにあるフレームワークを上手く活用するのは、効率的に高品質なアプリを開発するためのアプローチとしては間違っていません。しかし、こうした開発スタイルは、フレームワークとフレームワークを繋ぎ合わせるためのプログラミングをすることが多く、その瞬間に必要な知識しか得られないので偏りがちになります。
また、多く使われているフレームワークであれば、検索することで実践的なサンプルコードが得られて、これを修正するだけでも十分な結果が出せます。これも知識が偏りがちになる原因のひとつです。これで、うまくいくこともありますが、見よう見まねで得た知識だけで、本来必要な知識が無かったために、開発に時間がかかったり、重大なバグを持ったアプリを開発してしまう可能性も考えられます。
こうした時代だからこそ、自身のスキルを数値化して客観的に把握できる『スマ検』の活用が考えられます。前でも書いたように、機能豊富になったOSやさまざまな選択肢があるフレームワークを網羅的に学習するのは時間がかかります。スマ検の受験結果を分析し、自身の苦手な部分を客観的に把握して、スキル向上のツールとしても活用できます。
いま、活用できる知識を網羅的に学習して身につければ、なにか新しいことを取り組む時に、考えをまとめる下地やとっかかりを掴むキッカケになります。また、より実践的なところでは、設計過程やプログラミングをしているときに、潜在的な問題に早い段階で気付くことができたり、無理で無駄のないアプローチで設計やプログラミングに取り組めるようになります。
手強く実践的な検定内容
検定種別は、iOSとAndroidに大きく分けられますが、この中も以下のように分けられています。
iOS:
Objective-Cに関連した初心者から中級者向けの検定です。
iOS Professional:
Objective-Cに関連した上級者向けの検定です。
Swift:
アップルのiOSおよびOS Xのためのプログラミング言語の検定です。
Unity:
総合開発環境を内蔵し複数のプラットフォームに対応する、Unity Technologies社が開発したゲームエンジンに関する検定です。
Android:
AndroidやJavaに関連した初心者から中級者向けの検定です。
Android Professional:
AndroidやJavaに関連した上級者向けの検定です。
また、検定カテゴリは、開発言語、ハードウェア機能、OSのAPIやサードパーティーAPI、サーバ連携、UI/UX、検証/実機テスト、アプリ申請ルールの7種類となっています。
出題される問題は、iOSとAndroidに分けられているものの出題範囲が広く、開発言語やOSに関わる内容だけではなく、CSSに関する問題やOS等のライセンス形態に関する問題、ハードウェアが関連する問題までが出題されます。記憶力だけが試される内容だけではなく、実践経験なども問われる内容になっています。また、出題形式もさまざまで、選択式の知識問題だったり、コードの実例が表示されて空欄箇所を穴埋めする問題までもあります。
筆者のようにプログラミング中でもGoogle検索が欠かせない人間にとっては、初心者から中級向けの検定であっても、手応えのある問題ばかりが出題される印象です。
検定は、60分で100問、90分で200問、100分で200問とさまざまあるようです。1つの問題は、約30秒以内に解答する必要があります。やりはじめは、せかされているような印象を受けますが、次第になれるはずです。検定は中断できますが、途中で他の検定を受けることはできないので、ある程度余裕があるときに取り組むほうが良いでしょう。
Unityの検定もあるので、さらに広範囲のゲーム開発技術に関する設問を解くことができ、「Unity」技術者を求める企業に対して、その技術力を示すことが可能になりますね。
検定の結果は、ログイン後に表示されるマイページで確認できます。
結果の確認は、3つの分析視点があります。まず、1000点満点中のどれだけ点数を得たかの「得点」、次に、どれだけ正解したかパーセントで表示する「正解率」、最後に、設問にどれだけ正解したかの「正解数」です。
また出題カテゴリの開発言語、ハードウェア機能、OS APIやサードパーティーAPI、サーバ連携、UI/UX、検証/実機テスト、アプリ申請ルールのカテゴリごとに、得点、満点、正解率が確認できます。この結果を見れば、自信の弱い分野を把握することができ、どのカテゴリに注力して学習するべきなのか把握できます。
問題は、一問ごとに出題内容と解答と結果が確認できます。
1問ごとに問題を振り返ることができ、正解の解説を読むことができます。たとえば、不正解だった問題を1つずつ確認できるので、わざわざ参考書で調べなくても苦手な分野を克服する知識も得られます。
主題される問題はこんな風
それでは、実際に出題される問題を見ていきます。
たとえば、選択問題からです。
「Androidでホームアプリを作成したい場合にはAndroidManifest.xmlファイルに記述するものとして正しいものを選択してください。」
以下の4択です。
A :
<category android:name="android.intent.category.HOME" / >
B :
<category android:name="android.intent.category.LAUNCHER" / >
C :
<category android:name="android.intent.category.DEFAULT" / >
D :
<category android:name="android.intent.category.TAG" / >
正解は「A」です。
これは、実際に開発した経験がないとわからない問題です。また、解説として「ホームアプリを呼出せるようにするにはAndroidManifest.xmlのタグの中に下記を記述する。」と加えられています。これも知識として身に付けるには十分なものです。
記述式の問題も見てみましょう。
「下記はセンサー機能を使いたい場合のプログラムコードです。空欄(1)を記述してください。」
正解は「SensorEventListener」です。
Androidアプリの開発経験があれば、それほど難しい問題ではありません。筆者は、記述式問題で、コードの穴埋めをするとは想像してなかったので、面くらった問題でした。解説としては、「センサーを利用したい場合にはSensorEventListenerインターフェースを実装する。」と加えられています。
検定後の復習で、自分が不正解だった問題を1つずつ確認していくことになります。ただ、実際のプログラミングでは、その瞬間だけの知識ではカバーできないことも多いので、問題の答えに、関連問題に対するリンクがあると、幅広い知識として身に付けられるはずです。
最後に、知っているようで、知らなかった意外な問題をご紹介します。
「アプリのコンテンツを検討するにあたって、著作物に関する考え方を述べた以下の文のうち、誤っているものを1つ選択してください。」
A : 新聞・雑誌・百科事典の記事や解説は著作物ではない。
B : マンガやテレビ・映画に登場するキャラクターの名前は著作物ではない。
C : 他人の著作物からの「引用」は引用箇所を明確にするなど一定の要件を満たせば許諾の必要はない。
D : 電話帳の電話番号は著作物とはいえない。
この問題の答えは、検定を受験して貴方が確かめてください(笑)。
「優れた」ではなく「素晴らしい」エンジニアを目指して
スマートフォンアプリ開発の現場では、広い知識が必要とされています。
スマ検では、スマートフォンアプリ開発に必要な知識を広範囲にカバーしているので、検定の結果を自信の能力として第三者に対して提示する使い方もできます。フリーランスの方にとっては、自信をアピールするための分かりやすい方法にもなります。
検定で身に着けた知識は、実際の現場でも多くの問題解決に結びつくはずです。検定で高得点が得られたからと言って、ここで満足するのではなく、次のステップとして得た知識をベースに、自分ならではの切り口を身につける努力をしてください。問題をどう捉えて、どう解決へ導くのか、また、物事をどうとらえて、どう結論を導くのか、貴方らしい考え方を持つことが、コモディティ化したIT技術を生業とする者にとって、重要な差別化要因となってくるはずです。
最近は、プログラミングが大流行で、中学校の技術家庭で必修化されるような話まであります。これを生業とする者から見れば、いまさらと感じる部分もありますが、裾野が広がればこそ、らしさを持つエンジニアは、頭一つ抜き出る存在となるはずです。ただ、技術は時代と供に変化するので、潮流に合わせて必要な知識を身に付けていく必要はあります。スマ検は、その手助けをしてくれるはずです。
受験者の皆さんは、優れたエンジニアではなく、素晴らしいエンジニアを目指してください。そして、世界を目指してください。日本の素晴らしいエンジニア達が造り上げたアプリが世界中の生活の中で、当たり前のように使われる。想像しただけでワクワクします。