【Xamarin.Forms】にはデザイナーがない。「Xamarin.Forms Previewer」を利用してGUI開発!?

デザイナー
Pocket

昨日から触り始めた「Xamarin」だが、いきなり拍子抜けしてしまった。【Microsoft Visual Studio】を利用したことがある人なら知っていると思いますが、Windowsアプリケーションの画面作成って簡単にできますよね?それが、「Xamarin.Forms」に関して言うとユーザーインターフェース(GUI)を作成するのに、デザイナーがありません。これは流石にビックリしました。

ネットで調べても「androidアプリ」と「iPhoneアプリ」で簡単な画面なら「Xamarin.Forms」だけで全て完結するのではないかと期待してたのだが、画面の作成を全て手書きすることになるとは意外でした。

ホームページで言うと「メモ帳のみでHTMLを記述してページを作成しろ」と言っているのと同じである。Windowsアプリの開発で画面作成に苦労なんてしたことが無かったので、流石に考えてしまいました。

ネイティブである「android」と「iphone」用のデザイナーは準備されています。恐らく、基本的に画面に関しては別々に作成した方が良いと言っているようなものである。そういうのが嫌だから「Xamarin.Forms」に期待していたんですけどね。今少し戸惑っています。どうするべきか?モバイルアプリの手法は色々あるので「Xamarin.Forms」を覚えていくのが妥当なの之か?それとも別の手法を採用するかは思考中です。とりあえず「Xamarin.Forms」を手書きで簡単なアプリを作ってみて考えてみようかと思っています。

確かに複雑な画面の場合には「Xamarin.Forms」は画面作成には向いていないオブジェクトであると思います。別々に画面を作成するのはデザイナーがあるので問題はないのですけどね。

「Xamarin.Forms Previewer」は必須です

デザイナーはありませんが、どのような画面になるかを確認できるXamarin.Forms Previewer」という機能があります。この画面を見ながらコーディングしてくのが現実的なようです。恐らく慣れてしまえば、「Xamarin.Forms」での画面作成も簡単にできるようになるのでしょうけど、コードで画面作成するケースは「Visual Studio」で開発してきましたが、動的にボタンやタブを増やしたりするケース位ですね。

まさか画面の作成に苦戦するとは思いませんでした。しかも私の購入した本には「Xamarin.Forms」の利用に関しては殆ど触れられていませんでした。画面に関してはネイティブ開発の方が良いという著者の考え方なのでしょう

しかし、恐らくMicrosoftの事です。きっと「Xamarin.Forms」用デザイナーがその内に搭載されるのではないかと思います。とりあえず現状の「Microsoft Visual Studio Community Version15.4.0」には搭載されておりません。逆に利用できるような方法を知っている方いましたらご教授お願い致します。

モバイルアプリ開発は「Xamarin」が本命!

どちらにせよ「Microsoft Visual Studio」の「Xamarin」を利用した開発手法が今後は主流になるはずです。ここはMicrosoft社がWindowsというプラットフォーム以外の事もきちんと考えていることを称賛したいところです。だからこそ色々試して、どういう開発の仕方が良いのかを見極める必要がありますね。特にiOSの開発で「AppStore」に出品するとなると審査が厳しいです。キチンと認められた開発手法である必要があります。「Xamarin」に関しては承認しているということなので何も問題がありません。

それと「C#」はとても良い言語であることは確かです。きちんとしたオブジェクト指向言語としてクラス作成することができるので、作成したクラスは色々流用することが可能です

作成したプログラムが資産となり、次から次へとアプリ開発の効率性が向上すること間違いなしだと思います。今まで「C#」で作成したプログラムも少し改良すれば使いまわせそうなので、そこら辺も有難いところです。

私が「Xamarin」についてもう少し理解したら、どんどん記事にしていこうと思いますのでよろしくお願いします。「Xamarin」について詳細に説明されているサイトはまだ少ないので、私の方も少し苦労しそうな気がします。どうせ取組むならキチンと覚えた方が良い。ただ動けば良いアプリではメンテナンスが大変なので。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です