お役立ち情報

【クロスプラットフォームの求人・案件情報】案件単価や開発例や種類、メリットは?

クロスプラットフォームのイメージ

システム開発において、開発効率は常に重要です。特に同じようなコードを繰り返し書く、使い回しの利かないコードを書く、といったステップ数が無駄に増える書き方は避けるべきでしょう。

もちろんプログラミングの書き方だけでなく、開発環境も重要です。フレームワークのことだけでなく、最近は特にスマホのアプリ開発でクロスプラットフォームという概念が注目されています。

このページでは、クロスプラットフォームについて紹介していきます。

クロスプラットフォームとは?

クロスプラットフォームとは、異なるOSやアーキテクチャーに対応した開発をする際に、共通するロジック部分を共有した開発のことです。たとえばパソコンのソフトウェアを開発する際に、windowsとLinuxでは別の動きをする可能性があります。

その際にわざわざwindows用とLinux用に開発するのはコストも時間もかかるので、クロスプラットフォームでどちらのOSにも対応したシステム開発を行います。ただし、現状windowsとLinuxで特別クロスプラットフォームを意識する必要はありません。

パソコン用のシステムだと、特別意識しなくてもどのOSにも対応した形になるからです。現在特別に意識する必要があるのは、コンシューマーゲームやスマホのアプリでしょう。コンシューマーゲームの場合、複数のハードウェアに対応したソフトを開発することがあります。

その際にクロスプラットフォームを使用するのですが、コンシューマーゲームで複数のハードウェアに対応した開発を行うケースは稀です。つまり、クロスプラットフォーム開発のほとんどはスマホのアプリケーションで行われます。

厳密には違うのですが、「クロスプラットフォーム=スマホの複数のOSに対応したアプリを開発できる環境」と考えて問題ないでしょう。そして、この複数のOSとはAndroidとiOSを指します。

今の時代のクロスプラットフォーム開発のほとんどは、AndroidとiOSに対応したアプリ開発ということになります。ちなみに、クロスプラットフォームはマルチプラットフォームと呼ばれることもあります。

言い方が異なるので混乱されるかもしれませんが、まったく同じものを指しています。サイトによって解説が異なるので別物のように感じることもありますが、クロスプラットフォーム=マルチプラットフォームとなります。

クロスプラットフォームに似た用語として、クロスブラウザがありますが、これは様々なブラウザ上で同じ動作をすることを指します。そして、クロスブラウザも別名でマルチブラウザと呼ばれます。

このように、クロス、マルチ、と変わっても同じ意味合いの用語はいくつかあるので、知っておくとIT用語が少しわかりやすくなります。また、マルチデバイス=クロスブラウザというように、まったく言い方が異なっても同じ意味合いの用語もあります。
クロスプラットフォームで楽しむ人々

クロスプラットフォーム開発例や種類

kotlin クロスプラットフォーム

kotlinは、Android開発でよく使用されるプログラミング言語です。ただしiOSにも互換性があるアプリケーションの開発に便利です。つまり、クロスプラットフォーム開発によく使用される言語になります。

kotlin専用のクロスプラットフォームはありませんが、多くのクロスプラットフォームでkotlinに対応しています。ちなみに、iOSでよく使用されるプログラミング言語はSwiftです。

java クロスプラットフォーム

javaに関しても、java専用のクロスプラットフォームはありません。しかし、多くのクロスプラットフォームでjavaを使用できるので、javaが得意な方はjavaで開発可能です。AndroidやiOSのアプリ開発ではjavaはあまり使用しないイメージがあるかもしれませんが、実際は使用頻度はそれなりに多いです。

PHP、Ruby、Python、C♯、Swiftあたりが注目されがちですが、javaの開発件数もかなり多いです。結局のところ現在もjavaはすべてのプログラミング言語の中心的存在と言えるので、あえてスマホアプリ開発の技術で注目されないのかもしれません。

クロスプラットフォームでも使うので、やはりjavaは書けた方が良いですね。

xamarin クロスプラットフォーム

xamarinはC♯のクロスプラットフォームです。C♯ならスマホアプリの開発経験がない方でも扱える可能性が高いので便利です。パソコン用のシステムをC♯で開発している場合、それをある程度そのままスマホ版にすることも可能です。

サーバー側の処理はもちろん、クライアント側の処理も大部分はそのまま使えるでしょう。ただし、もちろんデザインに関しては完全に作り直す必要があります。パソコンと携帯ではレイアウトがまったく異なるので、そのまま使用すると明らかに利便性の低いシステムに仕上がります。

スマホが出始めた頃はパソコンのレイアウトをそのまま使っているようなサイトも多かったのですが、最近は見かけませんね。見にくいレイアウトのサイトだと悪目立ちし、またグーグルの検索エンジン上も不利になります。

詳細は後述しますが、クロスプラットフォームはいつでも採用すべき環境ではありません。クロスプラットフォームを利用しない方が目的に合致する場合もあるので、そもそもクロスプラットフォームを採用すべきか検討する必要があります。

その他のクロスプラットフォーム開発

その他のクロスプラットフォームには、Unity、Titanium Mobile、Adobe AIR for Mobile、Monaca、PhoneGap、Telerik Platform、Cordovaなどがあります。どれが良いのかは開発の種類にもよるので、シチュエーションごとのおすすめクロスプラットフォームを紹介していきます。

クロスプラットフォームの使用例としてはいろいろありますが、業務用システムに多いです。たとえば、大学、教習所、建設会社などでの業務用アプリにも使用されています。こういったサイトは細かい仕様よりも情報を正確に伝えることが重要です。

ある意味細部にこだわる必要はあまりないので、クロスプラットフォーム開発に向いていると言えます。

クロスプラットフォームのスマホイメージ

クロスプラットフォームのおすすめは?

ゲーム開発ならUnity

Unityはゲーム開発のためのプラットフォームで、ゲーム業界ではデフォルトと言っても過言ではないプラットフォームになります。2Dでも3DでもUnityだけでまったく問題ありません。むしろ他のプラットフォームでゲーム開発するメリットはないと言えます。

クラウド上で開発したいならMonaca

Monacaは環境構築不要で、すべてクラウド上で開発を行うクロスプラットフォームです。ブラウザだけで開発、ビルドできるので、インターネット環境が常にあるところで開発するならMonacaはおすすめです。

MacなしでiOSのビルドができるCordova

CodovaはMacなしでiOSのビルドができるというメリットがります。windowsだけでAndroidとiOSの両方に対応するので、Mac環境なしでアプリ開発している場合におすすめです。

ビジュアル開発ならDelphi

Delphiはwindows、Mac、iOS、Androidに対応しており、GUI(グラフィックユーザーインターフェース)で視覚的に操作することができます。全部プログラミングしなくてもドラッグ&ドロップで操作することが可能なので、なるべく視覚的に操作したい方にはおすすめのクロスプラットフォーム環境と言えます。

この他にも様々なクロスプラットフォームがありますが、結局のところ開発状況によってベストな環境は変わってきます。ただし、やはりゲームに関してはUnityが最強と言えるでしょう。
クロスプラットフォームで屋外でも楽しむ人

クロスプラットフォームのメリット・デメリット

クロスプラットフォームは上述の通りメリットが大きいです。AndroidとiOSのコーディングを別々に行う必要がないので、手間もコストも削減することができます。クロスプラットフォームを使わずに実装していく場合、当然ながら工数は増え、設計書やテストの手間も増えます。

そういう意味で、クロスプラットフォーム開発は今のスマホアプリ開発においてなくてはならないものと言えるかもしれません。しかし、一方でデメリットもあります。クロスプラットフォーム開発を選択すると、AndroidとiOSそれぞれに細かい実装をすることができなくなります。

クロスプラットフォーム開発によって自動的にどちらのOSにも対応するようになるのですが、逆に言えばそれぞれのOSを活かした開発はできないということになります。大まかな機能に関してはクロスプラットフォーム開発でもまったく問題ないのですが、デザインや仕様の詳細に制約が出てきます。

画面表示の際の細かいデザインが気になる、どちらのOSにも合わせるため処理を最短化できないといったデメリットが生じる場合あるでしょう。その結果、見た目だけでなくブラウザ表示速度が落ちる可能性もあります。

タブレットにも対応するクロスプラットフォーム

また、どちらのOSでも実現可能な実装しかできないので、それぞれの機能においてスペックが低い方に合わせることになります。たとえば、Androidだと処理を簡略化できるがiOSだと無理だという場合、クロスプラットフォーム開発だとiOSに合わせるしかなくなります。

一か所なら良いのですが、こういったボトムラインに合わせる処理が多くなると最終的に処理が遅くなります。AndroidとiOSどちらが優れているというわけではありませんが、実装に当たっては微妙に利点と欠点があるのです。

どちらの利点も殺さざるを得なくなるので、実はクロスプラットフォーム開発のデメリットはそれなりに大きいです。こういった事情を踏まえた上で、クロスプラットフォーム開発にするのかそれぞれ別に開発するのか決定すると良いです。

クライアントの中にはクロスプラットフォーム開発さえやれば楽々どちらのOSにも対応し、デメリットはないと思われている場合もあります。しかしそうではないので、クライアントにも事前に説明する必要があるでしょう。

さいごに

結局クロスプラットフォームがおすすめかどうかというと、システムによります。細部にこだわる必要のあるシステムだと、クロスプラットフォームでない方が実装しやすいです。逆に細部にこだわる必要がない業務用のアプリケーションなどなら、クロスプラットフォームで開発を効率化した方がメリットがあると言えます。

キャリアカウンセリングのプロとして
あなたに合った案件をご案内します。

まずはお気軽にお問い合わせください!

イメージ