くれぃんのプログラミング雑記

詳しいことはググってください

Continuousで始めるC# / Xamarin : 001 Introduction

プログラミング言語の勉強スタイル

  新しいプログラミング言語を覚える時、皆さんはどのように勉強するでしょうか。明確な目的がある時はガッツリと集中して勉強するでしょうし、「何となく面白そうだから試してみよう」位の時はのんびりと勉強することもありますよね。

例えば、通勤/通学電車の中でプログラミング言語の本を読んで勉強することもあると思います。すると確実に「このコード実際に動かしたい!」と思うことになります。

こんな場合に役に立つのが、iPhone上で動く開発環境です。覚えたばかりの知識でコードを書いて動かすというのは楽しいものです。

MicrosoftがXamarinを買収!

さて、急に話が変わりますが、2016年2月MicrosoftがXamarinの買収を発表しました。

MicrosoftがXamarinを買収

当時、私はXamarinという言葉も知りませんでしたが、Windows / macOS / Android / iOS のアプリが書けるマルチプラットフォームの開発環境ということを知り興味津々。

とはいえ、自分はマルチプラットフォームの開発環境に興味はありましたが、Windowsのみで動くアプリを作ることにはあまり興味が無く、C#とか.NETは自分には関係ないものと思っていましたので、ほとんど知識無し。MacにXamarin Studioをインストールしたものの、放置気味でした...。

しかし、iPhone上のC# / Xamarinの開発環境のContinuousというアプリがリリースされたことを知り、早速ゲット。通勤電車内でC#を勉強し始めたのです。

Continuousってどんなアプリ?

  Continuousは、iPhone上で動くC#とF#の開発環境です ( この記事ではF#には触れません )。iPhone上の開発環境というと、コンソールに文字列出して終わりというものも多いのですが、Continuousは、ユーザーインターフェイス(UI)も作ることが出来ます。

1200円と安くはないものの、値段に見合うレベルでシッカリと作られている印象です。  

Continuous .NET C# and F# IDE

Continuous .NET C# and F# IDE

  • Krueger Systems, Inc.
  • 仕事効率化
  • ¥1,200

Official Site : Continuous C# and F# IDE for iPads and iPhones

画面は以下のような感じです。シンタックスハイライトされていて見やすいですね。

設定画面を先に見ると、文字の大きさとDark Modeというのがあります。自分はDark Modeで使っています。Auto Runは、入力したコードをバックグラウンドでコンパイルして即座に実行するもののようです。

Xamarinって何?

Microsoftが、Windows用のソフトウェアを作るために作った新しいプログラミング言語C#であり、ソフトウェアを作るために便利なフレームワークとして作ったのが.NET Framework。他にも様々な技術がありますが、これらをまとめて.NETというみたいです。

この.NETの技術を他のOSでも使えるようにしたのがXamarinです。WindowsC#でMyApplicationを作っても、Xamarinがあれば、他のプラットフォームでも動くようになるのです。

この手のマルチプラットフォームの開発環境では、UIを操るところだったり、カメラだったり、GPSだったりも共通コードになるの?という疑問が湧いてきます。

UIに関してはXamarin.Formsというフレームワークを使うことでコードを共通化出来ます。でも、これを書いている時点では、まだ発展途上という感じでしょうか。比較的シンプルなアプリには使えそうです。

逆に、Xamarinでは、各OSが持っているAPIC#から直接呼び出せるようになっています。これをXamarin Nativeといいます。コードの共通化は出来なくなりますが、そのプラットフォームの作法に沿ったアプリとして作り込めるというメリットもあります。

データ操作のような部分は、モジュール化してソースを共通化。UIなどはプラットフォーム別に作り込むというやり方です。もちろんプログラミング言語C#ですので、SwiftとJavaを両方覚えなくて済むというメリットもあります。

上の画像の矢印のところに、以下のコードがあります。usingは、C#での使用するライブラリの指定で、これで、iOSのFoundationとUIKit、そして、Xamarin.Formsも使用しているのがわかりますね。

using Foundation;
using UIKit;
using Xamarin.Forms;

MapKitを使ったサンプル

Continuousに入っているサンプルコードにMapKitを使った地図表示のアプリがあります。コードは1画面に入る程度のものです。プログラミング言語C#ですが、iOSのコードという見慣れないと少し不思議な感じですね。

目玉アイコンのタブに切り替えると、UIと各変数の値を確認できる画面になります。ブレークポイントは付けられないので、トレース実行は出来ないようです。

矢印のアイコンでUIをフル画面に切り替えることも出来ます。

コンソールを見るためのタブもあります。

次回は簡単なコードを動かしてみたいと思います。