スライドショースライドショースライドショー

プログラミング言語「Swift」とは?大注目言語を徹底解説!

これからiPhoneやMac向けのアプリケーション開発に挑戦したい人が、まず最初に出会うのがSwiftというプログラミング言語です。

Swiftって何?どんなことができるの?

これは、初心者の方がまず最初に抱く疑問ですよね。

しかしどんな特徴があってどのような将来性を秘めているのかまで詳しく解説できる人は決して多くはありません。

そこで、本記事ではSwiftを初めて勉強しようと考えている人が知っておくべき基本的な知識から可能性までを分かりやすく解説していますので、ぜひ参考にしてみてください。

Swiftとは

SwiftはApple社が2014年に発表したオープンソースのプログラミング言語です。

Mac・iPhone・iPad・Apple Watchなど、さまざまなApple製品向けのアプリケーションをSwiftで開発していくことができるわけです。しかも、一般的なWebアプリの開発までSwiftで出来るようになったので効率はさらに向上しています。


Swiftで開発できるもの

基本的に他のプログラミング言語ではApple製品向けのアプリケーションを開発するのは難しいので、Swiftは毎年のように人気が高くなっています。

例えば、プログラミング言語の人気指標をランキングで公開しているTIOBEのサイトで、2020年度の最新版をチェックするとSwiftが17位から一気に13位まで上昇しているのが分かります。


Swiftを学習すれば開発できるモノが一気に増えるので、自身のスキルアップにも繋がるのは魅力的でしょう。

SwiftとObjective-Cの違い

今までApple製品のアプリ開発にはObjective-Cというプログラミング言語が使われてきました。Objective-Cからはたくさんの素晴らしいアプリが生まれ、十分成果を挙げていました。

ですから、Swiftが発表された当時はなぜ新しいプログラミング言語が必要なのか?という疑問が多く挙がりました。

Swiftが作られた理由としては、今までアプリ開発で使われてきたObjective-Cが、独特な構文や特徴を持っていたので、開発を続けていく上で不便な部分や難しい部分があったことが挙げられます。

また、Objective-CはApple製品に特化していたため、違う言語を使用している人や新しく学ぶ人たちの敷居が高くなっていたことも理由の1つではないでしょうか。

そういった理由から、Swiftは「世界中の人たちに使ってもらいたい」という思いが込められて作られました。

Swiftの特徴

モダン(現代的)

モダンっていう言葉はよく目にしますが、あまりイメージが湧かないですよね。プログラミング言語でいうモダンは、一言でいうとコードが読みやすくて書きやすいことを指しています。

近年で利用者が伸びているRubyやPythonが持つ共通の特徴はコードが読みやすくて書きやすいことそして将来性があることです。Swiftはそういった人気のある現代的なプログラミング言語の良い部分を取り入れています

他の言語の特徴を取り入れたことによって、自然と他の言語と似ている部分が出てきますので、他の言語を使用している人たちも抵抗なくSwiftを学んで使うことができます。

また、今までのObjective-C言語とも互換性があり一緒に使えるので、現在Objective-Cで開発を行っている人も移行が簡単です。さらにWebアプリケーションも作れるようになったため、今後は様々な場面で活躍することが期待できますね。

安定性

Swiftは不具合が起こりづらく、安定してアプリやシステムを稼働するために必要なコードの安定性を高く保つことができます。

少しプログラミング言語の深い話になりますが、「コードの安定性」とは具体的に何なのかをご説明します。Swiftは「型」に厳しく暗黙的な型変換などは行いません。実は「1」という数字と「”1”」という文字数字は、プログラミング言語では違う「型」として扱われます。

一般的な言語であれば「1 + ”1”」や 「1 - ”1”」などの計算を行う場合は、気を利かせて「”1”」の文字数字を「1」の数字に暗黙的に変換してくれます。

つまり、変換されると「1 + ”1”」は「2」になり、 「1 - ”1”」は「0」になります。(※ちなみに「”1” + 1」と逆にすると、左の文字数字に合わせて変換され「"11"」となる言語もあります)

しかし、Swiftではエラーになります。これは、「暗黙的に変換してくれているはずだ!」っというプログラマーの思い込みによるミスを防ぐ役割をしています。また「nil(何も値がない状態を表すもの)」に関しても厳しいです。

nilはアプリやシステムを稼働させる上で、不具合の原因になることがしばしばあります。そのため「nilかもしれない」ということを常に頭にいれて明示的にコードを書かないと、前もってエラーが起こるようになっています。

これらの特徴によって、プログラマーのミスによる不具合が起こりづらい安定したコードを書くことができるのです。

リアルタイム性

Swiftで大きく変更された特徴の1つが、Playgroundという環境です。

Screenshot 2016-05-13 16.46.47

画像:Playgroundの画面

JavaやC言語などでは、コードの追加や修正によっ動作がどのように変わるかを、実際にシステムやアプリケーションを実行することによって確認する必要があります。

それは今まで開発で使われてきたObjective-Cも同じでした。少しの変更や修正でも、毎回システムやアプリケーションを実行して確認を行うので時間がかかっていました。

しかし「Playground」を使えば、自分が意図した結果が返ってくるかをリアルタイムで確認できるため、面倒な手間と時間がかからなくて済みます。私も頻繁に使いますが、これは開発時に多いに役に立ちます!

Swiftの基本構文

「今すぐSwiftを触ってみたい」という方のために、基本構文をご紹介します。せっかくなので、Playgorundを使ってHelloWorldを表示してみましょう。

Playgroundを起動する

真ん中のモード「Get Started with a Playground」を選択します。
playground

画像:Welcome to Xcode

次にファイルの名前を決めますが、デフォルトで大丈夫なのでそのまま「Next」をクリックします。

Screenshot_2016_08_22_20_42

画像:ファイル名を決める

ファイルの保存場所を聞かれますが、こちらもデフォルトで大丈夫なので「Create」をおして完了です。

Screenshot_2016_08_22_20_43

画像:ファイル作成

そのまますすむとPlaygroundが立ち上がります。

Screenshot 2016-08-22 20.45.06

画像:Playground画面

基本構文

それでは、Playgroundで基礎構文を見ていきましょう。まずはHelloWorldをprintメソッドで表示ができます。結果が右側に表示されます。文末にセミコロンが必要ありません。

Screenshot 2016-08-22 20.50.28

画像:Playground画面

コメントの書き方
Screenshot 2016-08-22 20.51.16

画像:コメントの書き方

変数宣言
Screenshot 2016-08-22 20.53.47

画像:変数宣言

基本データ型、四則演算や論理演算
Screenshot 2016-08-22 20.58.18

画像:基本データ型、四則演算や論理演算

タプル(キーと値を組み合わせる型)
Screenshot 2016-08-22 21.00.46

画像:タプル(キーと値を組み合わせる型)

配列
Screenshot 2016-08-22 21.05.42

画像:配列

辞書(いわゆるハッシュ)
Screenshot 2016-08-22 21.10.04

画像:辞書

条件分岐
Screenshot 2016-08-22 21.12.49

画像:条件分岐

関数
Screenshot 2016-08-22 21.21.44

画像:関数

基本的なものは以上です。雰囲気は大体わかったのではないでしょうか。

Swiftを学習するには

Swiftを独学で学ぶ方法としては、Appleの公式ドキュメントや関連書籍を購入したり勉強会などに参加するのが一般的でしょう。

また、最近ではオンラインによる以下のような学習サービスも増えています。

  • ドットインストール
  • Udemy
  • YouTube

いずれも動画を視聴しながら誰でも分かりやすくSwiftによるプログラミングを学習できるのが特徴です。このような方法を取り入れながら基本的なSwiftの勉強をしていくのが独学には最適でしょう。

ただし、いざオリジナルのアプリを開発しようとした途端に何をして良いのか分からずに挫折してしまう人は少なくありません。

このような時は弊社の「無料体験レッスン」をぜひ活用してみてください。

自分が作りたいアプリを想定した最適な学習方法や進め方について、現役エンジニアがマンツーマンでご相談をお受けします。自分だけのアプリを実現するためにも、ぜひお気軽にご利用ください。

侍エンジニア塾
無料体験レッスンを受ける

Swiftで作れるもの

shutterstock_370004558

iPhone、iPadのイメージが強いためか、SwiftはiPhone、iPadアプリしか作れないと思われているのではないでしょうか。いえ、そんなことはありません。Swiftでは実に様々なものを作ることができるのです!

iPhone、iPodtouch、iPadアプリ

もちろんiPhone、iPadのアプリを作ることができます。実はiPhoneで動くアプリであればiPodtouch上でも動作します。iPhone専用やiPad専用として作ることもできますし、iPhone、iPadの両方に対応したアプリを作ることもできますよ!

Macアプリ

MacBookやAirMac専用のPCアプリも作れます。作ったアプリはMacAppStoreで配信することができます。Macアプリの最大の魅力はメモリ、ハードディスク、キーボードや電源など、コンピューターの深い部分に関わるアプリを作れることです。

PCの内部について詳しくなれるので、興味のある方はぜひ一度挑戦してみてはいかがでしょうか。

Apple watchアプリ

shutterstock_270262076
近年話題のApple watchのアプリも作れます。手首の上で数秒から数十秒で操作できるアプリがたくさん生まれています。乗り換え案内、ニュース、ランニングなどの身近なアプリが手首上で活躍していますよ!

身につけて持ち歩くことができるコンピューターである「ウェアラブル」は、まだ新しいジャンルです。まだまだ発展途上なので、チャンスがたくさん眠っています。ぜひ、アイディアを生かしてみたいですね!

AppleTVアプリ

shutterstock_400349758

これは知らなかった方も多いのではないでしょうか。Apple TVは映画や音楽、ゲームなどをTVの大画面で楽しめる製品です。また、MacやiPhone内に入っている写真や動画、またはYoutubeやHuluといった動画配信サービスを自宅のTV画面で鑑賞することができます。

2015年9月に発売した第4世代のApple TV からはAppleTV上でアプリが動くようになりました。それによって専用アプリの開発が行いやすくなり、すでに1000個以上もAppleTVアプリが生まれています。

TV好きの方はぜひAppleTVアプリに挑戦してみてはいかがでしょうか。全世界の人々のTV生活を変えることができるかもしれません!

Webアプリケーション、Webサーバー

これはSwfitの特徴の中でも一番大きいのではないでしょうか。WebアプリケーションはよくJava、Ruby、Pythonなどで作られていますが、Swiftで作ることもできるようになりました

Webサーバーも作ることができるようになったので、通信が発生するアプリを作る場合に非常に効率がよくなりました。なぜなら、iPhoneアプリはObjective-Cで開発、WebサーバーはRubyなどで作る必要があったため、2つのプログラミング言語を使用する必要があったからです。

これはものすごく効率が悪いことです。今となってはオンライン対戦ゲームアプリや、SNSアプリなどWebサーバーとの通信が発生するアプリの方が圧倒的に多いです。

アプリを開発するたびに「アプリ開発でObjective-Cが使える人」と「Webサーバー開発でRubyやJavaなどの言語が使える人」を両方探す必要があったからですね。

Swiftはアプリ、Webサーバーの両方を作れるため、この問題が解消されています。残念ながら、WebサーバーやWebアプリケーションとして活躍している実績がまだ少ないですが、これからどんどん増えていくでしょう。Webアプリを主にSwiftで開発する時代がくるのは近いかもしれないですね!

Swiftの仕事市場

まだSwiftは新しい言語だから仕事は少ないのでは?と思われるかもしれません。

しかし、企業は積極的にSwiftを取り入れる傾向があります。なぜなら、速い、書きやすい、読みやすい言語を使わない理由がないからです。今はまだ、Swiftが使えるエンジニアも少ないため、仕事の平均単価は高くなってます。

実務経験のない初心者でも、アプリを作ったことがあるなら仕事を獲得できる場合があります。Swiftの案件が多いサイトを2つほどご紹介しますので、腕に自信がなくても思い切って挑戦してみるといいでしょう!

Swift転職ナビ

名前通りで、Swift専用の転職サイトです。登録すると非公開求人の紹介をしてもらうことができます。非公開求人は収入が平均でものすごく高くなっています。

Screenshot 2016-05-13 21.55.39

引用元:Swift転職ナビ https://swift-job.com/

年収換算で500万円~1000万円以上まであります。ものすごく平均収入が高いですよね。1000万円以上であれば、収入は月給90万円以上。もはや毎月ボーナスのような感覚です。。。

でもそういった高収入の求人ってどうせベテランじゃないと無理でしょ?と思われるかもしれません。確かに高収入の求人は、高度な技術を必要とされる案件が多いことは事実です。それではこちらの求人はいかがでしょうか?

Screenshot 2016-05-13 22.03.52

引用元:Swift転職ナビ https://swift-job.com/

この求人は非公開のものではありません。しかも求められる経験が、アプリ開発経験のみです。これはたとえ自分で趣味で作ったアプリであっても「アプリ開発経験がある」と判断される傾向があります。ですので初心者の方にもおすすめできます。

業務未経験だと最初は年収400万円スタートかもしれませんが、スキルの上昇に応じて収入を2倍の800万にすることも十分可能です。技術は一度身につけてしまえば、もう一度習得する必要はありません。

一度就職して経験を積み、技術を身につけることができれば、このような求人の仕事も問題なくこなせるようになります。

Screenshot 2016-05-13 22.04.13

引用元:Swift転職ナビ https://swift-job.com/

近年、賑わっているゲーム業界の求人です。こちらはインターネット業界、ゲーム業界での経験が必須となっていますので、未経験だと厳しいでしょう。ですが、たとえ経験がないからといって諦める必要はないと私は思います。

人が足りていないから求人を出しているのです。このような高額案件でも「歓迎技術要素」を2、3個ほど持っていれば採用される可能性はあります。

もし他のプログラミング言語が使える、またはインターネット業界を経験した方であれば、Swiftを学習することによって、さらなる収入アップも可能なのではないでしょうか。安定して稼げる「転職」を徹底的にサポートしてくれるサイトなので、必ず目に通しておきたいサイトです。

A-STAR

iOSの案件が豊富です。フリーランスから正社員の雇用まで幅広く取り扱っています。他の大手のサイトだとObjective-Cの案件が多いのですが、こちらは主にSwiftを使って開発する案件を取り扱っています。

Swiftを使う案件は特に新規でアプリを開発する案件が多くなるので、1からいろんな技術を身につけることもできます!

フリーランスとしていろんなアプリに挑戦して腕を磨く、または正社員として就職してしっかり基礎から身につけていく、などなどキャリアの選択も行えるのが魅力です。具体的には以下のような求人を取り扱っています。

Screenshot 2016-05-13 22.26.41

引用元:A-STAR https://agency-star.co.jp/

こちらはフリーランス向けの案件です。スキルに応じて単価は変動しますが、55万円からとなっているので平均的な単価は高いです。フリーランスの求人案件は単価がほとんどが50万円〜90万円の間です。

やっぱりフリーランス向けの案件は安定して高収入をマークしていますね。もちろん未経験でも採用される可能性が高い案件もあります。

Screenshot 2016-05-13 22.27.21

引用元:A-STAR https://agency-star.co.jp/

単価が下限が25万円となっており、Swiftの案件としては一番収入は低い方です。

ただ、このような案件では初心者でも雇ってもらえる可能性があります。必須スキルによく書かれている「iOS開発経験」は実務経験のことだけではなく、自分で趣味で作ったようなアプリでも経験として含まれます。

すこし凝ったアプリを作ってアピールすれば、単価アップも見込めます。もしかしたら業務委託でフリーランスとして仕事がもらえる可能性だってあるのです。仕事や収入の面を考えてもSwiftはおすすめです!

Swiftの将来性は?

Apple製品の開発で今後も使われる

国内のスマホ利用者の大半がiPhoneを利用していることからも分かるように、今後もApple製品の人気は続くことが容易に想像できます。もちろんスマホ市場だけでなく、タブレット・ノートパソコン・スマートウォッチなどの市場でも人気があり、特にエンジニアがMacbookを開発マシンとして利用しているのはよく知られています。

このようなApple製品が使われている限りSwiftによる開発は必ず需要があるとも言えます。

また、求人サイトにおいてもSwiftによるアプリ開発案件は常に募集がある状態であり、複数の大手求人サイトをチェックすると平均月収がおおよそ40~60万円ほどの案件が多いことも分かります。

Webアプリケーション開発でも需要がある

アプリ開発ノウハウをそのままWebアプリ開発に活用できるのもSwiftの大きな魅力と言えます。

Swift用にいくつかフレームワークが提供されており、例えばIBMが提供する「Kitura」を使えば素早くサーバーと連携したWebアプリを開発して公開できます。

Webアプリを開発できるということは、PythonやRubyなどを使わなくても良いのでApple製品向けのアプリからWebアプリまで一貫してSwiftだけで開発ができるのです。たとえApple製品のシェアが落ちたとしてもWebアプリが開発できるなら安心というわけです。

Swiftの代替言語が存在しない

iPhoneやMacbookなどApple向けの製品用にアプリケーションを開発する場合は、必ずXcodeという統合開発環境が必要です。そして、この開発環境でプログラミングするにはSwiftを使う必要があるというわけです。

かつてはObjective-Cによるプログラムも一般的でしたが、現在ではほぼすべてSwiftで一本化されていると言っても過言ではありません。Swift以外では開発できないので、特にApple製品向けのアプリ開発では絶対条件になっているわけです。

これはSwiftの強みでもあり、今後も需要があることを意味していると言えます。

SwiftのWEBフレームワーク

ここではSwiftで作られたWEBフレームワークをご紹介します!正直なところ、アプリ開発ならXcodeで十分です。(※Xcodeが凄すぎます)WEBフレームワークを仕事で使う機会は、いまのところ少ないでしょう。

しかし、私は今後はSwiftのWEBフレームワークを使って仕事をする機会は増えると確信しています。なぜなら、先ほども申し上げましたが、アプリとWebサーバーを両方Swiftで作れるので、開発面や雇用の面でも効率的で経費削減が見込めるからです。

Swiftでアプリ開発を行う企業であれば、余計な経費は防ぎたいと考え、WEBフレームワークの利用を検討することはごく自然なことです。今のうちに使えるようになっておくと、後々有利になることは間違いないと私は考えています。

そこで今の段階で有力な2つのWEBフレームワークをご紹介します。これらのWEBフレームワークを使うことによって、アプリとWEBサーバーの両方をSwiftで開発することができます。

Perfect(パーフェクト)

一番最初に登場したWEBフレームワークです。このWEBフレームワークは、噂によるとカナダ在住の方がほとんど一人で作られたそうです。すごいですよね!PerfectはLinuxかMac OSで動くWEBアプリケーションやWEBサーバーを作ることができちゃいます。

自分で用意したサーバー環境で使うことができるので自由度が高そうです。

Kitura(キトゥーラ)

あの有名なIBM社が2016年2月22日に発表したフレームワークです。Bluemixという同社のクラウド環境上(herokuやcloud9などと同じPaaSというサービス)で動作するWebアプリケーションやWebサーバーを作ることができます。

SwiftのWEBフレームワークで共通していることは、趣味などで試しに使ってみたという情報はあるのですが、まだ商用で使われた実績が見当たりません。

Kitura(キトゥーラ)はIBM社が提供している環境に依存する部分があり、Perfectは自分で用意できる環境で利用できるので自由度が高そうです。

ただ、サーバー上での動作スピード、安定性などがデータとして出てくれば他のWEBフレームークと比較できるようになります。また専用のライブラリが増えてくると実用的になるのではないでしょうか。

今の段階だと、どれが良いかという比較が難しいので、今後の展開に注目です!

まとめ:学習ノウハウを手に入れてオリジナルアプリ開発をしよう

Swiftによる基本的なプログラミングスキルは誰でも習得できます。実は難しいのはそこからなんです。

いざオリジナルのアプリ開発を始めるとさまざまな疑問が湧いてくるのです。


このエラーは何で発生するんだろう...
こんな機能が作りたいのにどうやってもできない

このようなケースは独学で基本的なSwiftプログラムを勉強した方にとってはよくある話です。

「トライ&エラー」という言葉がありますが、オリジナルアプリの開発はまさにこれの繰り返しです。周りに誰か教えてくれる人がいれば少しは変わってくるかもしれませんが、そうでなければどんどん時間がだけが過ぎていくわけです。

大事なのは自分に合った学習方法や解決法を見つけることでもあります。

そこで手前味噌ではありますが、侍エンジニア塾の「無料体験レッスン」を受けてみてはいかがでしょうか?

あなたにピッタリの侍式学習ノウハウを惜しみなくご提供させて頂くうえ、無料体験レッスン受講者全員に豪華3大特典プレゼントしています!

  • 「最短1ヶ月で開発ができる学習方法」電子書籍(非売品)
  • 効率的なオリジナル学習カリキュラム
  • 未経験の転職を可能にするキャリアサポート

以下のカレンダーから1分で予約でき、オンライン受講も可能ですのでぜひご活用ください。

LINEで送る
Pocket

書いた人

佐野裕史

佐野裕史

侍エンジニア塾インストラクター。
主に技術担当をしています。

【経歴】
力仕事、接客業、営業職など様々な業界を経てIT業界に参入。
IT未経験からスタートし、1ヶ月で仕事獲得に奇跡的に成功。
1年半後にフリーランスに転身。

Web開発を主に行っており、得意とするのはRails、Ruby。
【技術スキル】
Rails、Ruby、Swift、Java(Android)、JavaScript

【趣味、趣向】
麻雀
MTG(マジックザギャザリング)
ダーツ、卓球、野球、ボウリングなどの球技

【Facebookページ】
https://www.facebook.com/hiroshi.sano.7
【Twitter】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。