swiftはApple製品のプログラミングで最も使われています。iPhone、Mac、Apple Watch…人気製品のプログラミング言語というだけあってニーズが大きくGoogleも今後Android製品にswiftでのプログラミングを導入する計画があります。swiftの注目の中身をご紹介します。
swiftでできることの前にswiftとは何かを知ろう!
swiftはプログラミングとしてはどのような位置付けの言語なのでしょうか。成り立ちとざっくりとした仕組みをご説明します。
swiftとは?
swiftはAppleによって開発されたプログラミング言語です。その登場は2014年と現在世の中にあるプログラミング言語の中でも最も新しい言語になります。Xcodeという専用の開発環境が必要です。
もともとApple製品はObjective-Cでの開発がされていましたが、より多くのデバイスやアプリケーションの開発を容易にしたのがこのswiftです。
特徴としては最近主流になりつつあるプログラミング言語と同じく、コードの書きやすさ・読みやすさから初心者のプログラマーでも扱いやすい、動作が早く安全性が高いということが挙げられます。
swiftはAppleの提供サービスの一つになるので商用の開発にはApple ID、Developer IDが必要です。Developer IDはメンバーシップに年間11,800円かかります。ただし、開発したアプリケーションを配布しない場合にはDeveloper IDは不要です。
swiftのメリット・デメリットをご紹介!
それではswiftにはどのようなメリット・デメリットがあるのでしょうか。
swiftのメリット1. Apple製品にとにかく強い。
swiftはiPhone、Mac、Apple Watch、Apple TVなど全てのApple TVの開発が可能です。これまでのApple製品はobjective-Cが開発言語でしたが言語としてのハードルは比較的高く、エンジニアの育成にも時間がかかりました。
しかしswiftは構造がシンプルであるためプログラマーが学習しやすく比較的習得が容易です。そのためスマホやアプリなどで世界シェアの大部分を誇るApple製品の開発を強力に後押ししています。
開発環境のXcodeは開発中の検証も容易です。従来のC言語やJavaはコンパイラーを使って言語を変換していちいち実際の動きを確認しなければなりませんでしたが、Xcodeでは書いた言語をそのままテスト実行することができます。
現在はほぼApple製品のみで採用されていますが、その汎用性と堅牢性からAndroid製品に導入する動きが出ています。
swiftのメリット2. objective-Cとの互換性があり高速で安全
swiftはもともとApple製品で開発に使われていたobjective-Cを基にして作られました。ですの古くからApple製品の開発をしているプログラマーにとっても習得が比較的容易です。objective-Cで開発されたプロダクトをswiftにアップデートするのにももちろん適しています。
これまでMACOS用に作られていた物をiPhoneに流用するような場合にも便利です。また高速で安全というスマホデバイスに適した作りになっているのもメリットです。
swiftのデメリット1. 現状Apple製品以外の用途がない
swiftは今後googleのAndroidなどでも導入される方向性ですが、今の所ほぼApple製品、アプリに対応した言語です。いますぐ他の製品の開発をしたい場合は使えない言語です。
swiftのデメリット2. コードが簡略的すぎる
これはデメリットというより好みの問題ですが、objective-Cで開発を長いこと行ってきた熟練のプログラマーにとっては、コードが簡略化されすぎて使用がわかりづらいと感じることもあるようです。
しかしRubyやPaythonを含めてコードの簡略化は世の流れですのでswiftに限ったこととも言えません。
swiftでできる3つのこと
さてそれではswiftはApple製品でどのようなアプリを開発することができるのでしょうか。具体的な事例をご紹介していきます。
swiftでできること1. iphoneのアプリ開発
iPhoneのアプリ開発は最もニーズが大きい物になります。Appleの公式でもswiftでの開発に使えるコードは多数公開されていますが、Githubの方が実際にテスト開発したようなアプリが多数公開されています。
ゲーム、ニュースアプリ、カメラロール用UI…こういったものの中から自分が開発したいもののコードをいただいてカスタマイズをすることで開発も容易ですし、swiftに対する知識を深めることができます。
swiftでできること2. Macのアプリ開発
アプリとしてはiOSよりはサンプルも断然少ないため、自力で頑張る必要があります。swiftで開発をするにはXcodeが必要ですが、Xcodeには実際にアプリがどのようにうごいいているかを見ながら開発できるtableviewという機能があります。
XcodeでNStableviewを選部とMACOSのアプリ開発が非常にやりやすくなります。実際に書いたコードでアプリがどのように表示されているかわかるからです。
現在のところMAC OSではobjective-Cで書かれたアプリケーションの方が多いようです。それはMAC OSの方が古くからあるアプリが多いからであって、今後swiftに逆転されることはほぼ間違い無いでしょう。
swiftでできること3. Apple watchのアプリ開発
Apple Watchの特徴は「自身のiPhoneの情報を同期して画面で確認できる」というものです。
ですのでiPhoneアプリの開発がされていることが前提にはなりますが、それさえ済んでいればで比較的容易にApple Watch用のアプリを開発することができます。
swiftを使用したアプリケーションを開発するには?
swiftを使用したアプリケーションはまだまだ増加しており、エンジニアのニーズは止むことはなさそうです。自社でAppleのアプリをswiftで開発するためにはどういう方法があるのでしょう。
求人広告でswiftエンジニアを募集する
求人市場には若いエンジニアを中心にswiftを扱えるエンジニアが増えているのは事実です。
しかし、プロジェクトマネージャーなど上流工程を任せられるエンジニアとなるとそう多くはありません。求人広告経由で上流工程の即戦力人材を雇用するのは時間がかかるでしょう。
人材紹介会社でswiftエンジニアを紹介してもらう
人材紹介会社においても基本的には求人広告と状況は変わりません。条件がいい求人を求めるエンジニアが多い分上流工程が可能なエンジニアもそれなりにいますが、高額な費用がかかります。
また全体的にAppleのアプリ開発という枠組みでいうとobjective-Cを扱えるエンジニアの方が多いようです。
受託企業にswift開発を外注する
swiftでのアプリ開発自体を外部の受注企業に丸投げする方法もあります。これだと雇用の必要もありませんし確かに楽ですが、開発がスタートするまでに会社の選定や案件定義などで時間がかかる上に費用が莫大になります。
クラウドソーシングでswiftエンジニアとマッチングする
swiftを扱えるエンジニアとクラウドソーシングでマッチングするという方法があります。
フリーランスに外注するメリットとしては、企業に外注するよりも費用が抑えられる上に案件について直接深くすり合わせができるためミスマッチが生まれづらいということです。
開発する案件ごとの契約になるため雇用の必要もありません。開発が正式にスタートするまでは料金が一切かかりませんし、経験豊富なフリーランスのエンジニアをたくさんの候補者の中から選定することができます。