WEBフレームワークはたくさんあるけどそれぞれの特徴が知りたい
こんにちは!インストラクターの佐野です。Swiftがオープンソースとなってからすでに3年以上の年月が経ちました。以前と比べて、SwiftでWEBサーバー作ってみたという声が増えてきましたね。すでにSwiftで開発できるWEBフレームワークがたくさん誕生しています。
しかし、WEBフレームワークの種類がありすぎてどれを使えばいいのか?わからなくてお困りではないでしょうか?
そこで、今回はあらためてSwiftで使える各WEBフレームワークの特徴や使い道、実践で使えそうなWEBフレームワークはどれなのかをまとめました。Swift開発者の助けになれば幸いです。
Swiftでフレームワークを使うための前提知識
最近ですが、SwiftでのWEB開発はどんどん活発になってきました。
Swiftが発表された2年前はWEB開発をする人はごく一部でしたが、多数のWEBフレームワークの登場により検証が繰り返され実践でも使われるようになっています。
もはや、WEB開発には「Ruby」「Python」「PHP」だけではなく、Swiftも候補に入れておく必要があるでしょう。
Swiftでフレームワークを使用するにはWEBサーバーの知識が必要です。まだこれといったWEBフレームワークがないので、使い方を自分で学んでコーディングしていく必要があります。
初心者にとっては非常に辛い部分ですが、WEBの知識と英語のドキュメントが読むことができれば、初心者でもアプリとWEBサーバーの両方をSwiftで開発することも可能でしょう。
そもそもフレームワークって何?
ライブラリとの違いは何?
という方は、以下の記事にフレームワークについての詳細な解説をしていますので参考にしてください。
Swiftで使えるWEBフレームワーク7選
現在あるSwfitのWEBフレームワークは以下のようなものがあります。
フレームワーク | 特徴 |
---|---|
Perfect(パーフェクト) | Linux/Mac OS対応 フロントエンド・バックエンド両方の開発が可能 |
Kitura(キトゥーラ) | IBM社が開発し、人気が高い 本格的なWEB開発にも使える |
Vapor(ベイパー、ベーパー) | 近年人気が上昇している MacOS/Ubuntu上で動作 「Laravel」に影響を受けている |
Express | 非同期、シンプル、強力なWEBアプリケーションを作れる ーティングのメカニズムやテンプレート機能が提供されている |
HTTPSwiftServer | 「Cocoa」を拡張するフレームワーク iOSアプリとの通信を行うサーバーを開発したい人向け |
Swifton | Ruby on Railsに影響を受けたWEBフレームワーク MysqlやPostgreSQLなどのデータベースもサポートされている |
Slimane | 非同期に関わる機能はほぼ対応している WEBフレームワーク自身がHTTP Serverとして機能 |
それぞれの詳細について見ていきましょう。
Perfect(パーフェクト)
Appleは12月の初めにSwiftをオープンソースとして公開しました。それとほぼ同じ時期にリリースされたのが「Perfect」です。おそらく一番最初に登場したWEBフレームワークでしょう。
しかも、このWEBフレームワークは噂によるとカナダ在住の方がほとんど一人で作られたそうです。すごいですよね!
PerfectはLinuxかMac OSで動くWEBアプリケーションやWEBサーバーを作ることができちゃいます。自分で用意したサーバー環境で使うことができるので自由度が高そうです。
Perfectがほぼ同時に登場したおかげで、1つのプログラミング言語(Swift)だけで、フロントエンド(iOSアプリケーション)とバックエンド(Webアプリケーション)の両方をいきなり開発できるようになりました。
Kitura(キトゥーラ)
Kitura(キトゥーラ)は、あの有名なIBM社が2016年2月22日に発表したフレームワークです。
Bluemixという同社のクラウド環境上(herokuやcloud9などと同じPaaSというサービス)で動作するWEBアプリケーションやWEBサーバーを作ることができます。IBM社が開発しているだけあって開発は活発に行われています。
WEBに関する機能にはしっかり対応しているので、本格的なWEB開発にも十分使うことができる優れたWEBフレームワークです!
Vapor(ベイパー、ベーパー)
Vaporは、最近はどんどん人気をあげているWEBフレームワークです。
MacOSとLinuxのUbuntu上で動作します。PHPのフレームワーク「Laravel」に影響を受けたフレームワークなので、非常に効率的に開発ができます。
WEBサイト、REST API、クラウドサービスを作るための便利な機能が提供されています!ぜひ次のWEB開発で使われてみてはいかがでしょうか。
Express
Expressは、非同期、シンプル、強力なWEBアプリケーションを作ることができます。RailsやLaravelなどと同じ拡張性に優れたMVCによる開発がサポートされています。
シンプルなルーティングのメカニズムやテンプレート機能が提供されているので、WEB開発者は使いやすいでしょう。SwiftでWEBアプリを開発するのであれば、ぜひフレームワーク候補に入れておく必要があるでしょう!
HTTPSwiftServer
HTTPSwiftServerは、MaxOSアプリを構築するためのフレームワーク「Cocoa」を拡張するフレームワークです。
WEBの基礎技術である「HTTP」をiPhoneなどのiOSアプリと連携できるように改良されています。シンプルな機能しか提供していませんが、もともとMacに組み込まれているCocoaを拡張しているので統合性が高く、サーバー機能を使う為の最もベストな方法だと言われています。
ただ単純にiOSアプリとの通信を行うサーバーを開発したい場合は一番の候補に挙がってくるでしょう!
Swifton
Ruby on Railsに影響を受けたWEBフレームワークです。
LinuxとMaxOS上で動作します。Rails風に書くことができるので、Railsに慣れている方であれば一番使いやすいでしょう。MysqlやPostgreSQLなどのデータベースもサポートされています。
マイグレーション機能はまだないですが、今後改良がすすむと一気に主流になる予感がするWEBフレームワークです!
Slimane
先ほどのExpressに影響を受けた最新バージョンのSwift3に対応しているWEBフレームワークです。
非同期通信に強く、非同期に関わる機能はほぼ対応しているといっていいでしょう。高速で動作し、WEBフレームワーク自身がHTTP Serverとして機能するので、扱いやすいです!
ぜひ今後発展してほしいWEBフレームワークです!
SwiftでのWebアプリ開発をより効率的に進めるには?
SwiftでのWebアプリ開発はまだ他の言語に比べると発展途上ではありますが、現状でもここまで多くのWebフレームワークがあります。
将来的にはWebアプリ開発はSwiftと呼ばれる時代がくるかもしれませんね。しかしSwiftでのWebアプリ開発はあくまでも発展途上の段階です。
他の言語に比べると参考となる資料や書籍がまだ多くありません。そのため、独学での学習は通常よりも難しいと言えます。
独学でのプログラミング学習には1000時間ほど必要と言われています。その理由は教材が足りないこととモチベーションが続かないことが要因です。それらを解決するためにはプログラミングスクールへ通うことをおすすめします。
手前味噌ではありますが、弊社「侍エンジニア」では、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しいオリジナルアプリ開発や、フリーランスとしての仕事獲得までを徹底的に支援しています。
オンラインでも受けられる無料カウンセリングでは、
- 未経験からSwiftを効率よく学習するコツ
- アプリ制作ができるようになった人のキャリア
- Swift以外にも身につけておくべきスキル
など、IT業界に精通したコンサルタントがただの言語習得ではなく、あなたのキャリアを見据えた上でのコンサルティングを行います。
スキルやノウハウを身につけて成長したい…
そんな熱い気持ちを持ったあなたを弊社では全力でサポートいたします。下記のカレンダーより、お気軽にレッスンへお越しください。
お急ぎの方はこちらからお問い合わせください。
読み込みに失敗しました。
大変お手数ですが、本ページを再度読み込んでください。
再度読み込んでも、読み込み失敗が起こる場合は
こちらからお問い合わせください。
カウンセリングはオンラインにて実施しております。
※予約完了後に、カウンセリングのためのURLやIDなどをメールにてご案内します
1.ご希望の日時を選択してください
2.必須事項を入力してください
ご予約ありがとうございます!
予約が完了しました。ご予約情報とご参加前の準備をご確認ください。
【ご予約情報】○月○日(△) ○○:○○〜
カウンセリング参加に向けてのご準備
※記入いただいたメールアドレスに確認用メールをお送りしておりますのでご確認ください。
※オンラインカウンセリングはGoogle Meetにて実施します。URLが発行したら別途ご案内いたします。
※メールが届かない場合は、SAMURAI ENGINEERサポート(support@sejuku.net)までご連絡ください。
まとめ
いかがでしたでしょうか?
まだまだ発展途上のWEBフレームワークですが、どんどん実用的なものがでてきています。もはやSwiftでのWEB開発も当たり前になってくるのではないでしょうか。
実用で使われるケースも出てきているので、これからもっと発展していくでしょう。SwiftのWEBフレームワークからは目が離せません。今後が楽しみですね!