WindowsやmacOSなど異なるプラットフォーム上で、同じ仕様のアプリケーションを動かすことができるプログラム、クロスプラットフォーム。iOS・Android両方に対応したアプリを開発するためには、この技術は必須の技術と言えます。このクロスプラットフォーム開発で活用できる代表的なツールの1つに、Swiftという言語があります。こちらの記事では、このSwiftとはどのような言語か、メリットやデメリット、活用事例をご紹介していきます。
Swiftとは?
Apple社が2014年に開発・発表したApple製品向けのアプリ開発に特化したプログラミング言語です。Apple社が開発した言語のため、iOSやMac製品向けのアプリ開発、Webサーバーの開発に特化されたものです。
具体例としては、iPhoneやiOS搭載のタブレット、Mac、Apple Watch等向けのアプリやWebサーバーなどの開発に向けて作られました。iOS 7以降、OS X version 10.9以降のOS搭載のアプリケーションは全てSwiftで開発することができます。
開発環境は、「Xcode」というツールを使います。この「Xcode」はApple社が開発・リリースを行なっているソフトウェアのことを指します。iOSやmacOS向けのアプリ開発向けのもので、デスクトップアプリをはじめスマートフォンアプリを作成する際に必要なツールです。
2015年にSwiftはオープンソース化されたため、Windows・Linuxでも動作するようにはなっていますが、環境構築が複雑なのでmacOSがインストールされたPCでの開発の方が初めはスムーズに構築ができるでしょう。
Swiftの特徴は?
Swiftの特徴は主に以下の3点が挙げられます。
・読みやすい、書きやすい
・動作が速い
・objective-Cとの違い
具体的に一つ一つ見ていきましょう。
・読みやすい、書きやすい
Swiftは、プログラミング言語に対する最新の調査結果と、数十年にわたるAppleプラットフォームの構築経験を活かして生み出され、SwiftのAPIを一段と読みやすく、メンテナンスしやすいものにしています。セミコロンの入力が不要で、型推測も行われるため、コードの記述が快適に行えます。
また、XcodeのPlayground機能を使用すれば、インプリンタ言語のようにコードが即時に実行され、リアルタイムで実行結果が表示されます。
参照:AppleよりSwift高速化について
・動作が速い
Swiftは最初のコンセプトの段階から、高速性を目指して構築されました。Apple社は、深さ優先探索アルゴリズムを使って1つのグラフ内で10,000個の整数を検索した場合、Python2.7より最大8.4倍のスピードで処理することが可能であると発表していました。
・objective-Cとの違い
まず初めに、Objective-CとSwiftでは根本的に大きく違います。
Objective-Cは「マクロ的である」とか「メタ言語的」と言われ、非常にマニアックな言語と言えます。元々iOSアプリケーションは単機能な点が良いとされていたため、Object-Cの開発がされていました。しかし、現在では、スクリーンの大画面化など徐々にアプリケーションの内容が複雑多岐に渡っており、シンプルで高速に動く言語が求められるようになったという背景があり、Swiftが登場したのです。
Swiftのメリットは?
さて上記のようなSwiftですが、開発に活用するとどのようなメリットがあるのでしょうか?
以下に挙げられる4点が主に考えられるメリットです。
・学習コストが低い
・処理速度の速さ
・コードがシンプル
・将来性がある
こちらも一つ一つ見ていきましょう。
・学習コストが低い
SwiftはPythonやRubyなどの言語を参考にしており、文法がシンプルで初心者にも分かりやすいのが特徴です。また、学習用のチュートリアルも充実しているため、技術を習得しやすい環境にある言語と言えます。
・処理速度の速さ
前述した通り、Swiftの前身とも言えるObjective-Cという言語と比べると最大2.6倍、Python2.7の8.4倍もの速度での処理が可能です。
・コードがシンプル
構文の最後のセミコロンが不要であったり、自動で変数の型を判定してくれるなど、コードの記述が快適に行えます。Webフレームワークの種類もたくさんあるので、作業効率を上げバグを減らすことができるので、これは大きなメリットと言えます。
・将来性がある
Apple社が開発した言語のため、Appleの製品との相性がよく、IPhoneの人気が続けばiPhoneのアプリケーション開発の需要は無くなることはありません。
iPhoneの人気が途絶えぬよう、アプリケーションの開発に力を入れることで、将来性はより一層出てくるといえるでしょう。
Swiftのデメリットは?
上記のようなメリットが挙げられるSwiftですが、実際にはデメリットも考えられます。
以下のデメリットが主たるものとして挙げられます。
・基本的な開発環境はMac
・iOSのアプリケーション開発がメイン
・コンパイルが遅い
こちらも一つ一つ見ていきましょう。
・基本的な開発環境はMac
Windowsでも開発は可能ですが、Windowdsでは仮想マシンという技術を用いる必要があります。この仮想マシンとは、ソフトウェア上で仮想のコンピュータを動かすもので、複雑な技術になります。そのため、Swiftで開発するにあたって技術面に不安がある方にとってはデメリットと言える部分になるでしょう。
・iOSのアプリケーション開発がメイン
Apple製品に適した開発言語であるため、Androidアプリを作るときには、別の言語を使わなければいけません。
Androidアプリを開発するためには、Kotlin等の別の言語を使用する必要が出てきます。汎用性が乏しい点はデメリットと言えます。
・コンパイルが遅い
Swiftはコンパイル言語のため、コンパイルに時間がかかるのが特徴です。これによって、作業時間が増えてしまうことから、迅速に作業を進めたいエンジニアにとってはデメリットといえるでしょう。
Swiftの活用事例
実際にこのSwiftを用いて開発されたアプリケーションの事例をご紹介しましょう。
フリマアプリでもよく知られている「メルカリ」をはじめ、「LinkedIn]、「hinadan」を事例として挙げたいと思います。
・メルカリ
Objective-CからSwiftへ移行しているサービスの一つです。メルカリは、従来使用していたObjective-Cを部分的にリニューアルするという形でSwiftへ移行しています。この部分リニューアルは既存のコードベースを残しながら画面をひとつずつ作り直す方法のため、リニューアル後にエラーが生じても、旧画面に戻すことができるようA/Bテストの機能を使い、サーバー側の設定変更で旧画面と新画面の入れ替えが可能な状態で開発を進めているそうです。
現在は、MVVMとReactiveSwiftを採用し、複雑な画面をシンプルに保つためにMicroViewControllerも検討され開発されています。
参照:Objective-CからSwiftへ、4つの移行ポイント~メルカリの実践例から最適な手法を学ぶ
LinkedInは、Swiftで開発されているアプリケーションの一つで、アメリカ生まれのSNSの1つで、全世界で8億人以上のユーザーがいます。ビジネスシーンに特化しているSNSで日本では200万人強登録されています。このアプリケーションはユーザーにとっては学習ツールとしても機能し、Swiftも学習することができます。
・hinadan
hinadanはまだ記憶にも新しい当時82歳のシニアプログラマーの若宮さんの開発した、ゲームアプリです。このゲームもSwiftで開発をされています。
開発された具体的な内容は明らかにはなっていませんが、約半年で開発し11万人を越える世界中のAppleユーザーに喜んでもらうことができたアプリケーションです。
参照:「82歳のiPhoneアプリ開発者 若宮正子さんの横顔」
まとめ
いかがでしたでしょうか?
こちらの記事では、Swiftとはどのようなもので、どのようなメリットやデメリットがあるのか、そして具体的な活用事例をご紹介してきました。
このSwiftの登場によって、Windowdsでの開発環境にデメリットはあるものの、将来性のある開発言語のため、今後iOSアプリの開発からサーバーサイドのSwiftの開発もどんどん進んでいくことでしょう。
—————————————————————————————————————
システム開発、アプリ開発、新規事業立ち上げ、DX化の推進でお困りではありませんか?
日本全国には開発会社が無数にありますが、Webサービスやアプリサービスのスケール(規模拡大)を実現するビジネス推進力やシステムの堅牢性、可用性を意識した設計力・技術力を合わせ持つ会社は、全国で見ても多くはなく、弊社は数少ないその一つ。お客様のご要望通りに開発することを良しとせず、お客様のビジネス全体にとって最適な解を模索し、ご提案ができるビジネス×テック(技術力)×デザインの三位一体型のシステム開発/アプリ開発会社です。ITやDX全般に関して、何かお困りのことがございましたら下記の「GeNEEへのお問合せ」フォームからお気軽にご連絡いただけたらと思います。
—————————————————————————————————————