LoginSignup
15
14

More than 5 years have passed since last update.

Visual Studio for MacでXamarinのチュートリアルアプリを作ってみた

Last updated at Posted at 2016-11-19

概要

Visual Studio for Mac PREVIEWをインストールしてみたで、チュートリアルは別記事にするって書いたので、その別記事。
つまづいたところなど、手が止まったところをメモして残す。

参照:
Xamarin.Forms Quickstart

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は動作がもっさりしている印象なので。
ビジネスロジックを一回書けばいいのは大きな魅力なんだけどな。
次は通信を絡めたサンプルを作るつもり。

15
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
14