はじめに
先日、発表されたSurface Duoを見て、いよいよAndroidの開発もやってみよう/やらなきゃいけないと思った人もいることでしょう。なにしろ、MicrosoftからもAndroidデバイスが出てくるというのですから(発売は2020年のホリデーシーズンとの予告)。
エンドユーザー向けアプリを動かしている現在主流のプラットフォームといえば、次の4つが挙げられるでしょう。
- Windows(PC)
- iOS(iPhone、iPad)
- Android(スマホ、タブレット)
- Webブラウザー(PC、スマホ、タブレット)
プラットフォームごとにアプリを開発するのは大変です。1つのコードベースで複数のプラットフォームに対応できないでしょうか? それを実現するのがクロスプラットフォーム開発環境で、すでにそれはいくつもあります。C#で開発するなら、現在のVisual StudioにはXamarin(ザマリン)という優れたクロスプラットフォーム開発環境が入っています。
Xamarinは十分に成熟した開発環境だといえます。しかし残念なことに、大きな弱点が2つあります。
- Webアプリに対応していない
- XAMLの書き方が、WPFやUWPとはずいぶん異なる
Webアプリに対応できていないのは、上に挙げた4プラットフォームすべてを狙おうとするなら致命的です。また、UIを記述するXAMLの書き方が違うというのは、これからXAMLを覚えようという開発者には問題ではありませんが、WPFやUWPの経験を積んできた開発者にとってはかなりの負担となります。
UWPアプリ開発者にとっては、UWPアプリのコードを書くだけで上記4プラットフォームで動くアプリになってくれたらどれだけ嬉しいでしょう。そんな夢を実現しようというのが、これから紹介するUno Platformなのです。
さらに、Uno PlatformはXamarinの弱点も補います。Xamarin.Forms(UWP)のプロジェクトからWebアプリのプロジェクトを生成できるので、Xamarinでも上記4プラットフォームに対応できるようになるのです。
Uno Platformは、最初のコードがGitHubにコミットされたのが2018年5月という、まだ比較的新しいオープンソースのプロジェクトです。とはいえ、コントリビューターにMicrosoftやXamarinを含む50以上の個人/組織が参加して、精力的に開発が進められています。2019年9月にはUno Platform 2.0が発表されました(本稿執筆時点ではまだプレリリース版)。
どんなアプリをUno Platformで作れるのか、気になってきたでしょう。まずは公式サンプルをいろいろと試してみてください。次の画像は、そのうちの1つ、「Uno Calculator」です。これは、オープンソース化されたWindows電卓をUno Platformに移植したものです。
この「Uno Calculator」は、ビルドされたものを入手できます(UWPは除く)。あなたのお手持ちのプラットフォームで試してみてください。
- iOS:https://apps.apple.com/jp/app/uno-calculator/id1464736591
- Android:https://play.google.com/store/apps/details?id=uno.platform.calculator
- Webアプリ:https://calculator.platform.uno/
対象読者
- UWPアプリを作っている開発者
- クロスプラットフォーム開発に興味を持っている開発者
必要な環境
Uno Platformを使うには、Windows 10とVisual Studio 2017(15.5以降)が必要です。iOS用のピルドには、macOSが必要です(後述しますが、Macの実機がなくてもなんとかなります)。
サンプルコード(GitHub)は以下の環境で作成し、動作確認しています。
- Windows 10 1809
- Visual Studio 2019 Version 16.3.6
- UWP用Windows 10 SDK: 10.0.17134.0、10.0.17763.0
- Android SDK 26、28
- macOS 10.14.6
- Xcode 11.1
- iOS SDK:13.1
- Uno Platform Solution Templates 1.45.0.1865
- Uno.Core 1.28
- Uno.UI 1.45
- Uno.UniversalImageLoader 1.9.32
- Uno.Wasm.Bootstrap 1.00-dev.244
なお、環境が整わなかったり、あるいは、「ごちゃごちゃインストールする前に、とりあえず試したい!」というようなときには、Uno Platform Playgroundを試してみてください。XAMLの記述がどのように動くか、簡単なデータバインディングも含めて体験できます(次の画像)。