読者です 読者をやめる 読者になる 読者になる

うさぎ駆動開発

UWP, Xamarin.Macを中心によしなしごとを書いていきます。

<週刊 自分のごちうサーチを作る> #2 プロジェクトの構造を知る

Mac Xamarin

全然週刊ペースではありませんが,前回の記事はこちらです。

aile.hatenablog.com

今回のおしながきです。

  • 作成したプロジェクトに含まれているファイルについて
  • ターゲットフレームワークについて
  • クローンしたプロジェクトへの参照を追加する
  • Mono で Windows Forms プロジェクトを動かしてみる

プロジェクトに含まれているもの

作成直後はこのような状態になっている,と思います。 f:id:ailen0ada:20160512140927p:plain

フォルダ(っぽいアイコン)

  • References
    参照している.NETアセンブリ。後述するターゲットフレームワークによって初期状態は異なります。
  • Native References
    ネイティブのライブラリ (.dylib, .framework) への参照を追加できます。が,ちょっとまだ解説するほど触れていません…
  • Components
    Component Storeからコンポーネントを追加できますが,たいていモバイル向けなので,特に使う機会はないと思います。
  • Packages
    NuGet パッケージを追加するとこの配下にエントリが入ります。
  • Assets.xcassets
    アプリケーションアイコンやイメージなどアプリケーションで使うアセットを管理します。

ファイル

  • AppDelegate.cs
    アプリケーションのライフタイムイベント,ざっくり言えば起動して終了するまでを管理するAppDelegateクラスです。ここに書けばアプリケーション全体から参照することができるため,使い方を間違えるととても汚くなるクラスです。
  • Info.plist
    アプリケーション名やバンドルID,バージョン情報と言ったアプリケーションに関するメタデータを記述します。Xamarin Studioでは専用エディタで編集できますが,このエディタではすべての項目を設定することができないため,必要なときには別のテキストエディタXcodeで編集する必要があります。
  • Main.cs
    アプリケーションのエントリポイントです。ネイティブライブラリのロードは最初にここで行います。
  • MainMenu.xib
    メインメニューのUIデザインが記述されています。Xcodeで開いて編集します。
  • MainWindow.cs / .designer.cs
    NSWindow クラスとXcodeとの通信に使うデザイナクラスです。特に触る必要はありません。
  • MainWindow.xib
    MainWindow のUIデザインが記述されています。これもXcodeで開いて編集します。
  • MainWindowController.cs / designer.cs
    MainWindow に紐付くコントローラクラス,またXcodeと通信するためのデザイナクラスです。デザイナクラスを直接触る必要はありません。

ターゲットフレームワーク

クローンしたプロジェクトへの参照を追加する前に,ターゲットフレームワークを変更します。プロジェクトのプロパティを開きます。MyGochiusearchプロジェクトをダブルクリックすると,プロパティウィンドウが開きます。 f:id:ailen0ada:20160512152018p:plain

それぞれのフレームワークの違いは以前Qiitaにまとめました。

qiita.com

まずここではUnsupported Frameworkを選択してください。いろいろ選択できますが,Mono/.NET 4.5でかまいません。 f:id:ailen0ada:20160512152516p:plain

参照の追加

前回クローンしたリポジトリから,以下のプロジェクトをソリューションに追加します。

  • Gochiusearch
  • ImageSearchEngine

MyGochiusearch ソリューションを右クリックし,Add Existing Project...です。 f:id:ailen0ada:20160512152651p:plain

追加できるとこんな感じ。カッコの中はブランチ名なので特に気にする必要はありません。

f:id:ailen0ada:20160512152920p:plain

ImageSearchEngineへの参照を追加します。Referencesを右クリックしてEdit Referencesです。 f:id:ailen0ada:20160512153044p:plain

チェックを入れて,OKで反映します。 f:id:ailen0ada:20160512153136p:plain f:id:ailen0ada:20160512153320p:plain

これで準備できました。

Windows Formsプロジェクトを動かしてみる

元アプリの動作を確認するため,Gochiusearchプロジェクトを動かしてみましょう。右クリックからRun Itemです。 f:id:ailen0ada:20160512153720p:plain

mono でそのまま動作し,デバッガも使えることがわかります。

f:id:ailen0ada:20160512153729p:plain

次回予告

  • XcodeでUIをデザインする
  • コントローラにプロパティを生やす
  • ユーティリティメソッドを作る