/ 39
Android/iOS の Cross-Platform
ができる Xamarin について
1
CROSS-PLATFORM DEVELOPERS COMMUNITY
2019年11月01日
石崎 充良
/ 39
自己紹介
石崎 充良 ( @mishi_cs )
イメージ情報システム株式会社 スーパーエンジニア
Microsoft MVP for Developer Technologies
言語: C# XAML
活動:
・C# もくもく会 (connpass)
・城東.NET (connpass)
・C# Tokyo (connpass)
2
/ 39
名言
良いアウトプットは
良い定時退社から生まれる
3
/ 39
[1ページでわかる]
Xamarinの概要
4
/ 39
Xamarin とは
・クロスプラットフォーム
・ネイティブアプリ
・(Android ・iOS) のAPI カバー率 (だいたい) 100 %
・C# / .NET / Visual Studio
・クロスプラットフォームでコードを共通化する
5
/ 39
注意点
6
/ 39
Mac / Visual Studio (有償) は必要
・iOS 向けのビルドは Mac 上で行わなければならない
これはどのクロスプラットフォームアプリ開発でも同様
iOS アプリのビルドは Mac 上で行わなければならない決まり
・業務で使うなら有償 Visual Studio ライセンス
が必要
一時、Xamarin 無償化と言われたが、Visual Studio に無料でついてくる
以前は Visual Studio の別に購入 (そもそも会社も違った)
Visual Studio 無償版の業務利用条件はほぼ満たせない
OSS や個人開発 (受託の場合は委託元で考える) でなら無償版 OK
7
/ 39
[再放送]
Xamarinの概要
8
/ 39
Xamarin とは
・Android / iOS の API を C# から使えるようにしたもの
・C# (.NET) のライブラリを使えるようにしたもの
9
ロジックのみ共通化
UIはネイティブで個別に作りこむ
Shared C# App Logic
(.NET Standard)
iOS
C# UI
Android
C# UI
Windows
C# UI
/ 39
Xamarin の2つの開発方法
10
Xamarin Native Xamarin Forms
ロジックのみ共通化
UIはネイティブで個別に作りこむ
ロジックとUIを共通化
UIは各プラットフォームの
同じ役割のUIが自動マッピング
Shared C# App Logic
(.NET Standard)
iOS
C# UI
Android
C# UI
Windows
C# UI
Shared C# App Logic
(.NET Standard)
Shared C# UI Code
(Xamarin.Forms)
/ 39
ネイティブの UI
11
/ 39
UI の開発手法
12
Xamarin.Native Xamarin.Forms
概要 ネイティブの技術を使用 UI 共通化ライブラリ
定義 Android では axml
iOS では storyboard など
xaml というシンプルな XML
制約 制限のない UI 各プラットフォームの最大公約数の機能
のみ
特徴 UI が共通化できない UI にこだわらないアプリなら UI まで共
通化可能
使いどころ コンシューマー向けアプリやデザ
インを重視する場合に
ビジネス向けアプリや機能重視のツール
系アプリなどに
Formsで細
かくUIを定
義したい
Custom Renderer で独自にネイティブの
コントロール/プロパティと結合するコン
トロールを作成可能
/ 39
APIカバー率100% (近い)
薄いラッパーとも呼ばれる。
13
Android / Java Xamarin / C#
/ 39
Xamarin の特徴
・C# / .NET / Visual Studio
◦C# / Visual Studio の新機能はすぐにすべて使える
・(Android・iOS) のAPI カバー率 100 % (近い)
◦Android・iOS の新機能はすぐにすべて使える
14
/ 39
コード共有化
15
/ 39
コード共有
16
共有コード
Android 用コード
iOS 用コード
参照して使用
Android の API
C# の API
/ 39
例
(Xamarin.Formsで)
17
/ 39
プロジェクト作成 (1/4)
18
/ 39
プロジェクト作成 (2/4)
19
/ 39
プロジェクト作成 (3/4)
20
/ 39
プロジェクト作成 (4/4)
21
実行
/ 39
コードを変更
22
/ 39
テキストを変更
23
/ 39
ライブラリを
作って使用
24
/ 39
ライブラリ作成
新しいライブラリ プロジェクト
を追加
25
/ 39
新しいプロジェクトを追加
26
/ 39
参照を追加して使用
27
C# ライブラリ
アプリで使用
/ 39
コンソール
アプリケーション
28
/ 39
コンソールアプリで使ってみる
C# のクラスライブラリは、Xamarin プロジェクトだけでなく
何にでも使えます
29
/ 39
別の言語で作った
ライブラリ
30
/ 39
ライブラリは .NET のライブラリ
.NET どの言語でも共通の中間言語にコンパイルされます。
どの言語でライブラリを作っても、どの言語で書いているアプリからでも使えます。
31
C#
VB.NET
F#
/ 39
ちゃんと使える
32
/ 39
F#
33
/ 39
F#の概要
34https://docs.microsoft.com/ja-jp/dotnet/fsharp/what-is-fsharp
関数型プログラミング言語です
/ 39
F# ライブラリプロジェクト
35
/ 39
できあがり
36
/ 39
C# のライブラリも使えます
37
/ 39
まとめ
38
/ 39
まとめ
• Xamarin で Cross-Platform
• Xamarin だけでなく .NET なら何でも Cross-Platform
• .NET 言語なら言語を超えて使用可能
• C#、F#、VB.NET 何でも好きなものを
• 最近流行りの関数型なら F#
39
/ 39
ありがとうございました。
40

Cross-Platform ができる Xamarin について