Visual Studio for Macを使用している方であれば、Mac用のアプリケーションを作成することができます。
今回は、新規プロジェクトの作成方法とプロジェクトに追加されたファイルがどのようなものかを見ていきます。
Macアプリ用のプロジェクトを作成してみよう
Mac用のアプリを作成するには、Visual Studio for Macで「新規プロジェクトの作成」で「新しいプロジェクト」のダイアログを表示します。
続いて左側で[Mac]-[アプリ]を選択して、右側の一覧で「Cocoa app」を選択し[次へ]ボタンをクリックします。
続いて下図のようにMacのアプリ構成の設定を行います。App Nameにアプリケーション名を、Organization Identifierには、企業URLを逆から入力します。企業URlがない場合は、とりあえず適当でも構いません。Dock Itemにチェックを付けると、デスクトップやDockに表示する名前を入力することができます。ターゲットはOS Xのどのバージョン以降で動作するアプリケーションとして開発するのかを選択します。以上の設定が完了したら[次へ]ボタンをクリックします。
Extensionsにチェックを付けると、アプリで使用するファイルの拡張子を設定をすることができます。今回は使用しないこととします。
次の画面ではプロジェクト名やソリューション名、保存場所といった設定を行うことができます。特に必要がなければデフォルト設定のままで[作成]ボタンをクリックします。
プロジェクトのファイルを確認しよう
プロジェクトの作成が完了すると、ソリューションエクスプローラーは以下のようになります。
Main.cs
Main.csはアプリケーションのエントリポイントです。アプリが起動されると最初に実行されるクラスとメソッドが追加されています。Mainめそっどの中ではアプリケーションのインスタンスを作成し、OSのイベントを処理できるようにしています。
using AppKit; namespace MyApp { static class MainClass { static void Main(string[] args) { NSApplication.Init(); NSApplication.Main(args); } } }
AppDelegate.cs
AppDelegate.csはOSからのイベントを受け取るクラスが実装されています。
DidFinishLaunchingメソッドは、アプリケーションのインスタンスが作成された後に実行され、アプリのウィンドウを作成してビューを表示する処理を実行します。
WillTerminateメソッドは、ユーザーやシステムがアプリケーションを終了しようとしたときに実行されます。アプリケーションが終了する前に、設定の保存や何かしらの処理を行いたい場合は、このメソッドにコードを追加します。
using AppKit; using Foundation; namespace MyApp { [Register("AppDelegate")] public class AppDelegate : NSApplicationDelegate { public AppDelegate() { } public override void DidFinishLaunching(NSNotification notification) { // Insert code here to initialize your application } public override void WillTerminate(NSNotification notification) { // Insert code here to tear down your application } } }
ViewController.cs
Xamarin.MacのアプリはMVCモデルです。ViewControllerはメインウィンドウのコントローラーを表すクラスで、ライフサイクルを管理します。
using System; using AppKit; using Foundation; namespace MyApp { public partial class ViewController : NSViewController { public ViewController(IntPtr handle) : base(handle) { } public override void ViewDidLoad() { base.ViewDidLoad(); // Do any additional setup after loading the view. } public override NSObject RepresentedObject { get { return base.RepresentedObject; } set { base.RepresentedObject = value; // Update the view, if already loaded. } } } }
ViewController.Designer.cs
ViewController.Designer.csファイルはユーザーインターフェースを作成したときに自動で作成されるファイルです。
Info.plist
Info.plistはアプリケーションに関する情報を入力することができます。新規プロジェクト作成時に入力した内容もここで確認/変更することができます。
Entitlement.plist
Entitlement.plistはアプリのサンドボックスやiCloudでの設定を行うことができます。
コメント