20代で転職を検討されている方へ


iOSアプリの開発に興味がある人へ

iOSアプリ開発に適しているのはMac?Windows?

スマートフォンやタブレットが普及し、アプリ開発の一大ブームが起こりました。

現在でも市場に出回るアプリの数は増え続けています。スマートフォンの中でもiPhoneやiPadといったiOS上で動作するものと、Android携帯と言われるAndroidOS上で動作するものに大別されます。

スマートフォンの全世界的な普及から考えると、どちらのOSをターゲットにしても問題はありませんが、今回はiOS上でのアプリ開発に即して記述していきます。

最近のトレンドとしてはクロスプラットフォーム開発となっており、1つの環境で開発をすれば、iOS用とAndroid用等の複数のプラットフォーム上で動作するモジュールを生成できる仕組みについても取り上げていきます。

iOS用のアプリ開発をするのに適したOSは何かという質問が多くありますが、実はこれに明確な答えはありません。回答者の環境次第ということになります。いくつかのケースを挙げて、それぞれでの適したOS選択例を挙げてみることにします。

Windowsしか所持していない

個人の場合、Windowsしか所持していないということはよくあります。法人であっても、これまでスマートフォンの開発を行っていない会社であればMacを置いていないことも普通です。

こういったWindows一択がスタートの場合、まず、iOSアプリを作って、動かしてみてから感触を掴みたいと思うのが普通です。この場合には、当然、Windows環境での開発が一番適しています。

しかし、ここで注意が必要なのは、AppStoreに公開するには、最終的にはMac上でのビルドが必要であり、なんらかの方法でMacが必要になるということです。

これは、Macを買って所有するか、クラウド経由でMacを利用するか、または、ビルドサービスを利用したりすることで解決ができますし、仕事としてコーディングや単体テストまでの作業でよいという場合は必ずしもMacは不要ということです。

Macしか所持していない

この場合は、Mac上で開発を進めることをお勧めします。もともとMacしか持っていないMac派の人が、あえてWindowsを用意してWindowsを利用することはありません。Mac上に標準で付いているXcodeという開発環境を用いることでiOSで動作するアプリの作成が可能です。

WindowsもMacも所持している

「どちらのOSもある環境であればMacに決まっているだろ」と言われそうですが、実はそうでもないのです。この先に記述しているプログラミング言語として何を採用するのか、開発ツールやIDEと呼ばれる統合開発環境に何を採用するのか、最終的にはAndroid版でもリリースをしたいという考えがあるのかどうか等によって変わってくのです。

iOSアプリに適したプログラミング言語とは

iOSを開発するのに利用できるプログラミング言語はいくつかありますが、代表的なものを4つ挙げてみます。Mac上での開発ということであれば「Objective-C」「Swift」が一般的です。Windows上での開発であれば、「JavaScript」「C#」が適していると言えます。それぞれの言語の特徴とiOSアプリを作成する際のメリットについてまとめます。

Objective-C

C言語を元にして、Smalltalk型のオブジェクト指向機能を組み合わせて作られた言語です。MacをはじめiOS上での開発に使われてきました。最近ではSwiftという後継がでてきている状況です。

Objective-Cのメリット

Objective-Cを選択するメリットは、これまで開発されてきたiOSアプリのほとんどがObjective-Cで書かれているということです。これらのアプリの保守を行ったり、これらのアプリ開発に携わってきた開発者がいる場合、Objective-Cを採用するメリットがあります。

Swift

Swiftは、「モダン」「安全」「高速」「インタラクティブ」をテーマとして、2014のWWDC(Worldwide Developers Conference)で発表された、Objective-Cに変わってAppleが提供する開発言語です。しかし、登場からまだ年数が経っておらず、Objective-Cからの移行は思ったほど進んではいない状況があり、これからの発展状況を見極める必要があります。

Swiftのメリット

Swiftを選択するメリットは、何と言ってもiOSでの標準言語であり、Objectie-Cで記述したものよりも2.6倍の速度がでると言われている点です。MacやiPhoneといったiOS上で動作するアプリ開発が主となる場合は選択する価値があります。

JavaScript

JavaScript はWebページにてHTMLだけでは実現しにくい複雑なことをするためのプログラミング言語です。コンテンツを定期的に更新して表示したり、インタラクティブな地図、アニメーションといった動的なコンテンツ部分に利用されています。「Java」と似ていますが、それとは全く異なる言語です。iOS用のアプリ開発という面においては、「PhoneGap」や「Monaca」といった開発環境上でJavaScriptを用いて開発することができます。

JavaScriptのメリット

Web開発者は基礎としてJavaScriptを修めていることが多く、開発者を確保したり教育にかかる時間を削減することができます。また、iOS上で作成するアプリの複雑さや難易度にもよりますが、簡単なアプリを作るのであればJavaScriptを使うことでより生産性を上げた開発が可能になります。そして、一番のメリットは「PhoneGap」や「Monaca」といった開発環境を用いることでクロスプラットフォーム(Android上でも動く)に対応ができるということです。

C#

C#は、.NET Frameworkという仮想マシン上で動作するプログラミング言語です。構文はC言語とDelphiをもとにしています。開発環境は主にVisual Studioで行われ、強力な統合開発環境のもとでGUIやWebサービスの開発生産性を高めることができます。iOS用のアプリ開発という面においては、Visual Studioに拡張機能として「Xamarin」をインストール・設定しておくことで、Macの環境なしでiPhone等の実機をつかった開発・デバッグができるようになります。

C#のメリット

Windowsアプリやシステム開発をしている開発者は多く、C#を修めている人は多いです。また言語仕様はJavaに近く、Java習得者が新しくC#を習得するコストは極めて小さいものです。Visual StudioとXamarinを通じて開発をすることで、クロスプラットフォーム(Android上でも動く)に対応ができます。また、各プラットフォーム用にネイティブアプリとして出力することができるため、動作速度が非常に高速です。

iOSアプリ開発に適したツールXcodeとは?

XcodeはMac上でiOSアプリを開発するための統合開発環境です。画面デザインやデバッグはもちろん、iPhoneの実機がなくてもシミュレーター機能を使って実機があるのと同様に操作の確認ができます。

アプリケーションの初期設定や画面デザインまでをXcode上で行い、動作の詳細をSwift(またはObjective-C)を使ってプログラミングしていきます。Xcodeがあれば、ビルドをすることで出力したアプリをAppStoreへ公開することも可能です。

iOS上で動作するアプリを最終的にAppStoreへ公開するためには、必ずこのXcodeが必要となるため、iOS上でのアプリ公開を目的とした場合は、Xcodeを設定・整備して開発しておけば他の開発環境を構築することもなく一番シンプルです。

実際の開発について

Xcodeを用いて実際にiOS用のアプリ開発を行う過程を挙げると次のようになります。

細かくはインターネット上にある解説記事を参照しながら進めることが可能です。しかし、下記を見ていただくとわかるように、それなりに事前準備や事後作業、開発環境を整えるのにも前知識が必要です。

自分一人で進めるのが不安な場合や技術力が不足していると感じた場合や、未経験でもiOS開発のエンジニアになりたいと考えている方は、テックキャンプ(TECH::CAMP)を受講することも検討してみてください。短期間で必要な知識や技術を習得することが可能です。

  1. Macを購入
  2. XcodeをMac App Storeからダウンロード・インストール(無償)
  3. Xcodeの初期設定
  4. Xcode上でプロジェクトを新規作成し、ストーリーボードで画面デザインを作成
  5. Xcode上で画面デザインに対する動作をSwiftにてプログラミング
  6. iOSシミュレータか実機を使ってテスト・デバッグを実施

アプリ公開の諸作業

1.Apple Developer Programへの登録(年間費用発生)

2.Apple IDの取得とApple Developer権限付与、iTunesConnect権限の付与

3.アプリ開発

4.ストア プロビジョニング プロファイルの準備

  • 配布用証明書の作成(Xcodeで作成する)
  • App IDを登録(developer.apple.comで登録

5.アプリの基本情報を登録

  • iTunesConnectへログインする
  • アプリの基本情報を登録する
  • アプリの詳細情報を登録する(AppStoreに記載される情報や価格等)

6.アプリをアップロード

  • ストア公開用のアプリをXcodeでビルドする
  • アプリをiTunesConnectでアップロードする
  • アプリの審査依頼を申請する

オススメの転職エージェント

現在は、IT業界に強みを持つ転職エージェントがあります。
業界に精通しているコンサルタントがいますから、相談しながら転職活動が行えて安心です。

マイナビIT

<ポイント>

  1. 大手企業からベンチャー企業まで多くの企業との強いリレーション
  2. IT業界の業務経験のあるキャリアアドバイザーが徹底的サポート!
  3. マネージャー・管理職など様々な希望条件に合った求人をご紹介!

<メリット>

  1. 業界大手のマイナビが運営しているので、IT・Web業界の大手・中小・ベンチャー企業の求人が豊富
  2. IT業界・Web業界に精通したキャリアアドバイザーが担当

<デメリット>

  1. 大手でキャリアアドバイザーの人数が多いために、一定、質にバラつきは出る可能性があります

<こんな方にオススメ>

  1. エンジニア・クリエイターとして転職を希望している方
  2. 将来的にどの技術や言語が伸びるか、自分のキャリアについてアドバイザーに相談したいという

レバテックキャリア

<ポイント>

  1. 大手企業からベンチャー企業まで多くの企業との強いリレーション
  2. IT業界の業務経験のあるキャリアアドバイザーが徹底的サポート!
  3. マネージャー・管理職など様々な希望条件に合った求人をご紹介!

<メリット>

  1. レバテックキャリアだけの非公開求人や独自情報によって、転職者に合った企業をマッチング
  2. IT・Web業界トップクラスの求人数!

<デメリット>

  1. IT・Web業界が全くの未経験の転職者は対象になりづらいです

<こんな方にオススメ>

  1. IT・Web業界への転職を希望している方
  2. IT・Web業界に詳しく、知見のあるキャリアアドバイザーからサポートを受けたい方

リクルートエージェント

<メリット>

  1. 国内最多の求人数を保有
  2. 転職者の8割以上が登録
  3. 幅広い業界・職種の求人を網羅的に閲覧・紹介してもらえます

<デメリット>

  1. 求人数が多い一方で、転職者の登録数も多いため、1人1人に手厚いサービスが期待できない可能性があります

<こんな方にオススメ>

  1. 「大量の求人を一旦閲覧したい、紹介してもらいたい」という方
  2. 業界最大手の転職エージェントの標準的・平均値的なサービスレベルを最初に知っておきたい方