Hatena::Groupugochara

うごメモをカエル宣言

2016/12/25

うごくメモ帳Pro開発にはXamarinを使う

色々、試行錯誤しております。

記事とコメントを読む

何を作るか?

「何を作るか」については前々回の記事にも書いております。

  • PC, タブレット端末対応(マルチプラットフォーム対応)
  • スタイラス(ペン)への対応
  • ストアでの配信
  • ペイントソフトからドローソフトへ
  • ピクセルパーフェクト表示(1ドットは1ドットとして表示してアンチエイリアシング(ぼかし処理)をしない)

何で作るか?

これについて試行錯誤していました。

フレームワークの選定

フレームワークとは、開発を効率化してくれる機能群であって、ソフトウェアの骨組みを用意してくれるため、少ないコードで実現できるものです。

で、様々なフレームワークをあたってみて、一番良いものを考えてみました。

ちなみに、ボクの希望としてはC#を触りたいのでC#でアプリケーションを作れるものに絞りました。(JavaやC++は触りたくない)

Unity

ゲーム開発プラットフォームで簡単にゲームが作れます。3Dゲームが作れることで注目されてますが2Dゲームも作れます。

マルチプラットフォーム対応で物理エンジンが使えて、将来うごメモが3DCGを扱うようになれば、非常に優位であるといえます。

Unityではうごメモは作れない

Unity側のバグなのか何なのか分かりませんが、クライアント絵画領域のサイズによって、テクスチャのサイズが微妙に変わり、それによってピクセルパーフェクトで絵画できない問題が発生していました。

また、マルチプラットフォーム対応なのはいいのですが、テクスチャ自体の書き換えをしなければならず、動作が非常に遅くなってしまいます。

さらに、標準でスタイラスの入力をサポートしておらず、AssetStoreにあるものもUnity5に対応しておらず、強引に実装している方もいましたが、再現できなかったのでボツとしました。

あとアプリを起動すると最初にでてくるUnityのスプラッシュ画面がかなりうざいので(消すには有料版にする必要あり)、これもテスト時のネックになります。

▼Unity開発時での画像

f:id:satoshi31043104:20161207010835p:image

UWP

Windows10上のみで動くアプリです。Windows10が入っていればどのデバイスでも動きます。デスクトップ、Windows10 Mobile、Xbox Oneもなんのその。

いままではデバイスごとに作らなければならなかったところ、1つのコードで良くなりました。

うごメモは作れるけど

大分迷ったのですが、マルチプラットフォーム対応でないのがネックなのでボツとしました。

▼UWP開発時での画像

f:id:satoshi31043104:20161207013739j:image

Xamarin

Xamarinについて説明する前に・・・開発事情を。

iOSアプリやAndroidアプリを同時に作りたい場合、iOSはXcodeという開発ツールとSwiftという言語、AndroidではAndroid Studioという開発ツールとJavaという言語で開発します。

言語も仕様も全く違うため、それぞれの開発には異なる専門の開発者がいて、同時進行で開発する必要がありました。

それをうごメモでやるとなると非常に大変なのがお分かりでしょう?

正直ボク1人で、やってられないです。

そこで、Xamarinは、Visual Studioあるいは、Xamarin Studioという開発ツールとC#という言語で開発することで、iOSやAndroidアプリなどを同時に作れる非常に素晴らしいものなのです。

作れるアプリはiOS, Android, UWP, Windows 8.1向け, Windows 8.1Moble向け, Macとターゲットが広いのが特徴です。

何が嬉しいのかというと、同じ処理をするコードを使い回しできることが非常に嬉しいのです。ありがたい!

さらに、Xamarin.Formsを使うことで、画面にでてくるボタンの配置などのUIもある程度共有できます!(MacはXamarin.Formsに対応しているかどうか不明)

さらに、うごメモはスタイラス入力やピクセルパーフェクトなど、デバイス依存が非常に強いため、マルチプラットフォーム対応と謳っているフレームワークはそういったデバイス依存の機能にアクセスできないことも多いのです。(Webの技術を使っていたりしているから)

ところが、Xamarinは、デバイス依存の機能にもアクセスできるようになっていて、この機能はこのデバイスのみで対応したいということもできそうだと思います。

ということで、Xamarinを使って開発をすることになりました!

Xamarinを学ぶにあたって

ボクは.NETもXamarinも知らないので、書籍とかあたってみるのですが、中々日本語情報にあたらなかったので、英語のこの本を参考にします。

なんと無料です!やっぱアメリカはいいなぁ。

https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/

読み進めているのですが、これが中々大変でして(笑)

まあ、頑張りましょ!

ちなみに、この本、Xamarinを作った人に問い合わせて作った本なので、情報は確かなはずです。

1200ページくらいあるのですが・・・読み終わるのでしょうかね・・・。

あと、公式のガイドは素晴らしく親切で、日本遅れてるなぁと思ってしまいます・・・。

mtnmso1mtnmso1 2016/12/29 00:11 僕はここ最近(数ヶ月)でVB.NET使いになりました
前は日本語でプログラムゴリゴリしていましたが、今はVB.NETでゴリゴリしています
無料な上に、日本語で書くより機能が広いのでいいですよね。
開発頑張ってください

ゲスト