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

どうも!みなさんこんにちは!インストラクターの佐野です。

SwiftってiPhoneのアプリを作れるプログラミング言語でしょ?

と、なんとなく知っている方は多いのではないでしょうか。

しかし、どんな特徴を持っていて、どんなことができて、どんな可能性を秘めていて、今後どうなっていくのか、そういったことまで知っている人はなかなかいないかもしれません。というのも、このSwiftというプログラミング言語は誕生からまだ日が浅いからです。

情報も海外の情報(英語)が多く、プログラミング初心者にはなかなか難しいですよね。そこで、Swiftをこよなく愛す私が、今回Swiftという言語について徹底的に解説していきます。ご参考にしていただければ幸いです。

Swiftとは

Apple社が2014年に発表した新しいプログラミング言語です。iPhoneやMacなどのApple製品のアプリをはじめ、Webアプリケーションまで開発することができます。

さらに2015年には、全世界にSwiftのコードが公開されました。それによって、Swiftは誰でも自由に改良できるようになったため、様々な可能性を秘めています。

SwiftとObjective-Cの違い

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

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

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

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

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

私が思うSwift

Apple社は秘密主義で有名ですが、Swiftのコードを全世界に公開したことによって世界中の人たちに衝撃を与えました。

私もApple製品を開発する言語から、何でも開発できる汎用的なプログラミング言語へ発展させていこうという熱意を感じました。今、一番将来性のある言語といっても過言ではないでしょう。

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を表示してみましょう。

Playgourndを起動する

真ん中のモード「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で作れるもの

shutterstock_370004558

画像:shutterstock

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

画像:shutterstock

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

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

AppleTVアプリ

shutterstock_400349758

画像:shutterstock

これは知らなかった方も多いのではないでしょうか。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の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フレームークと比較できるようになります。また専用のライブラリが増えてくると実用的になるのではないでしょうか。

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

侍式の学習ノウハウを手に入れてオリジナルアプリ開発をしよう

まったくの初心者にとってアプリ開発は高い壁だと感じるかもしれません。ですが、アプリ開発ができるようになると「あれ作ってみよう」「こんなサービスいいかもしれない」と考えることが楽しく、毎日ワクワクできますよね。


今までにない、こんなサービスあったらいいよな
あのサービスにこの機能をつけるアイデアって良いかもしれない

こんなことを考えてワクワクできる方は、アプリ開発で仕事をすることが向いている可能性が高いです。いち早く現場デビューを果たし、アプリ開発プログラマーとしての一歩目を踏み出せるといいですね。


そうは言っても何を学習すれば良いのかがわからない
学習し始めたけど難しくてなかなか進まない

こんなことを考えているかもしれませんよね。今、挫折しているからといって才能がないというわけでは決してありません。あなたに合った学習方法が見つかってないだけです。

すごくシンプルな理由なんですね。そこで手前味噌ではありますが、侍エンジニア塾の無料体験レッスンを受けてみてはいかがでしょうか?

優秀なアプリ開発プログラマーになるためには、いかに早く現場に出てコードを書くかがすごく重要なわけですが、そこに至るまでにも開発現場に出ることができるぐらいのプログラミングスキルが必要です。

そこで無料体験レッスンを受講することで侍式の学習ノウハウを教えてもらうことをおすすめしているのです。さらに無料体験レッスン受講者全員に豪華3大特典プレゼントしています!

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

また、無料体験レッスン受講後にはAmazonギフト券1000円分プレゼント中!
以下のカレンダーから1分で予約でき、オンライン受講も可能ですので、ぜひご活用ください。

Swiftカリキュラム無料公開中!

この記事はSwift入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Swift学習に必要な情報を一つにまとめていますので効率よくSwiftを学ぶことが出来ます。この機会に是非活用していただければと思います。

【初心者必見!】Swift完全攻略ガイド | 学習・アプリ開発・仕事獲得!
更新日 : 2019年5月3日

Swiftを最短で習得したい方へ

マンツーマンレッスンでは、Swift未経験者の方でも安心して学習できるように

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

まで徹底したサポートを行っています。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Swiftならではの学習方法や仕事獲得方法など、より具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta_swift2

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】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説