3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C#とXamarinを使用したプログラム開発

Posted at

「Xamarin」について書きたいと思います。

1.Xamarinとは?

 XamarinはXamarin社(現Microsoft社に買収)が開発したiOS、Mac、Androidで動作するアプリを開発ができるプラットフォームです。
 基本的にはC#で開発します。
 以前はiOSアプリを開発するためにMac端末でXcode上で開発する必要がありましたが、
 Xamarinは※Monoをベースに実装されているため、VisualStudio上での開発が可能になりました!(コンパイルにはMacが必要)
 ※Mono:.NET Frameworkの要素をLinuxやMacでも利用できるマルチプラットフォーム基盤のイメージ
 何と言っても1つの言語で複数のプラットフォームに対応したアプリを作成できることが 最大の利点です。
 iOSとAndroidに言語を分ける必要がないため、コードを共有できます。
 コードの共有については、UI画面と業務ロジック(BR)の2つに分けられています。
 1つ目はUIはiOS、Android固有のコードで実装し、業務BRのコードを共有する方法。
 これがいわゆる言われている、Xamarin.iOSやXamarin.Androidです。まとめてXamarin Nativeとも呼ばれます。
 2つ目はUI画面と業務BRの両方を共有する方法。これがXamarin.Formsです。

2.Xamarin Native(Xamarin.iOSとXamarin.Android)

 Xamarin.iOSとXamarin.Androidは業務BRはC#で実装し、UI画面は各々の開発コードで実装をします。iOSであればstoryboard、
 AndroidであればxmlでUI画面を作成します。UI画面は固有の開発コードで作成するため、すでに作成しているアプリケーションの
 移植を考えた場合、画面はそのまま移植ができるのが利点です。

f:id:Jaso:20190317194336j:plain ## 3.Xamarin.Forms  Xamarin.Formsは、iOS・Android・Windows10デバイス(UWP)を実装することができるフレームワークです。UI画面はデバイス共通で「XAML(Extensible Application Markup Language)」(読んで「ざむる」)を利用します。  このXAMLはもともとXMLをベースに開発された言語であり、C#・VBなどの.NET言語でも利用することができ、UIの初期レイアウトを定義するために使用されています。

f:id:Jaso:20190317194504j:plain

## 4.まとめ  Xamarinと呼ばれるクロスプラットフォーム開発が可能なフレームワークについて記載しました。その中でUIコードをデバイス固有で実装し、業務BRは共有コード(C#)で実装できる既存アプリの移植性に便利な「Xamarin Native」と、UIコードも共有化(XAML)し、業務BR(C#)も共有化可能な「Xamarin.Forms」について記載しました。
 私は、Xamarin.Formsをでどこまでアプリの開発ができるかを勉強中ですが、正直、Xamarin.Fomrsだけでクロスプラットフォームに対応したアプリができるかわかりません。少しずつ実装していきながら自分自身で確かめたいと思います!
3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?