VisualStudioでmacosアプリを作る。


こんにちは、代表です。
先日ふとしたきっかけで、Mac版 VisualStudio2017を使ってみることになりました。
VisualStudioと言えば、Windowsでのアプリケーション開発はもう、これしか無いと言って良いくらいメジャーなIDEです。
僕も以前はかなりこれにお世話になりました。
C++やSTLはこれで身につけたと言っても良いくらいです(本家STLとだいぶずれがあるとは言われていましたが)。

それで2017のMac版ですが、さすがにこれはWindows版フルセットの機能は持っておらず、
C#でmacos,iOS,Androidのアプリが作れるくらいです。

VBとかC++は無いみたいですね。
当然ですがWindowsアプリも作れません。

で、iOS, Androidの開発に使用する前に、ちょっとmacosのアプリ開発がどんな感じになるのか、試してみることにしました。

まず、ちょっと触って気づいたのが、
StoryBoardを編集しようとすると、xcodeのInterfaceBuilderが起動する、と言うことです。
いきなり暗雲が立ちこめます、これ、outletとかどうやって繋ぐの?・・・
StoryBoardから関連するクラスファイルを表示して、outletやactionを繋ぐ、と言う操作が出来そうにありません。
というか、すぐに探すのを止めました。
これは無理。1

しかし、例えばiOSアプリの開発では、さっさとStoryBoardを捨てて全てコードで記述する、というのは良く行われる事みたいだし、こっちもそれでやれば良いじゃん、と、気を取り直しました。
全部C#で書けば良いのですよ。

で、書き始めたのですが、すぐに気づいたのが、「自分macosのアプリ開発の経験ほとんど無いや」という事で、いきなりプログラムの起動部分からつまづいてしまいました。

  • アプリケーションメニューってどうやって出すの?
  • 最初のViewControllerのセットアップの手順は?

iOSの情報はWebにいやと言うほどあふれているのですが、macosの方は意外と少なく、この最初の部分でハマりました。

幸いなことに、 UIKit(iOS)とCocoa(macos)は兄弟みたいなもので、UI -> NS と言った簡単な読み替えで大体のことは上手くいく(本当か?)のです。
あとはtry&error。

結果何とか出来上がったのが、これです。
これ
StoryBoardをプロジェクトから削除し、info.plistからStoryBoardの記述を削除して使います。

この、アプリのスタートアップ部分だけ乗り越えれば、あとは簡単(のはず)です。
ということで、良い感じで 「自分用、C#で書いたmacosアプリのひな形」が出来たので、自分的に満足致しました。


  1. ちなみにこの問題は、macosアプリ開発時にだけ起きるようです、iOSの場合は普通にVisualStudio内部でStoryBoardが編集できます