概要
Visual Studio for Mac PREVIEWをインストールしてみたで、チュートリアルは別記事にするって書いたので、その別記事。
つまづいたところなど、手が止まったところをメモして残す。
XAMLつらい
チュートリアルの最初の一歩でいきなりつまづく。
なにこれ、つらい。
つらいポイント。
ずばり 補完が効かないものがある、これに尽きる。
OnPlatform
タグってよく使うんじゃないの?
StackLayout
タグってよく使うんじゃないの?
なんで補完効かないの?
同じようにXMLでレイアウトを行うAndroidではちゃんと補完効くよね(Android Studio)。
つらいなぁ。
コードスニペットが動作していない
コードスニペットは、例えば
if
と入力した際に
if ($expression$) {
$selected$$end$
}
こんな風にテンプレートを入力してくれる機能。
これが動作していない模様。
ユーザー設定の中には登録されていて、入力中にサジェストもされるんだけどね。
ツールボックスパレットからスニペットを選択するとスニペットが動作した。
新規ファイルの追加時にパス指定が動作していない?
- using Foundation;
- using UIKit;
にusing ディレクティブは不要
とサジェストが表示されていた。
サンプルでは書いてあるし、他のサンプルを見ても書いてあるので、これは必要だろうと判断。
いろいろ調べてもわからず、「なんでやー」とお手上げ状態でボーッと画面を見てたら、気づいた。
ファイルの追加されているパスが違う。
〜.iOS
内にファイルを追加したつもりが、違うところに生成されている。
ファイル作成ダイアログでちゃんと参照したはずなのに。
ショートカットを使わずに、ソリューションパネルからファイルを生成したいディレクトリを選んで、コンテクストメニューの追加から、ファイルを追加したほうがいいかも。
これだと思ったところにファイルが作成された。
チュートリアル記事との差異
以下、見出し行頭の数字はチュートリアル内の項番と連動
13. In App.xaml.cs, 〜
下記の行は必要ないみたい。
新規でソリューションを作成した際に追加されていなかったので。
- using Xamarin.Forms.Xaml;
- [assembly: XamlCompilation(XamlCompilationOptions.Compile)]
- InitializeComponent();
- これのみ、書くとエラーになった
iOSの実機ではデバッグできない?
ブレークポイント設置しても止まらない。
シミュレーターでは止まる。
挙動も不安定。
あとiOSだけなのか、数分すると勝手にデバッグが終了してしまう。
iOS10.0.2
iPhone 6
Androidでは特に問題ない模様
Nexus7
4.4.2
ソースコード
あげときます。
https://github.com/macneko-ayu/XamarinTutorial
まとめ
チュートリアルを写経したものの、Xamarinが使いやすいかそうでないかの判断はつかなかった。
共有UIでどこまでいけるのか、が肝なのかなー。
UIを各OSにあわせて独自でゴリゴリするんだと、ネイティブのほうがいいかも。
Visual Studio for Macは動作がもっさりしている印象なので。
ビジネスロジックを一回書けばいいのは大きな魅力なんだけどな。
次は通信を絡めたサンプルを作るつもり。