SlideShare a Scribd company logo
/ 48
Xamarin で始める
クロスプラットフォーム開発
~Xamarin.Android から始める
クロスプラットフォーム~
1
JAPAN ANDROID GROUP
2018年03月14日
石崎 充良
/ 48
自己紹介
石崎 充良 ( @mishi_cs )
Japan Xamarin Users Group ( JXUG )
Microsoft MVP for Visual Studio and Development Technologies
言語: C# XAML
活動:
・JXUG (もくもく会) (connpass)
・城東.NET Users Group (connpass)
・C# もくもく会 (connpass)
※主に秋葉原
2
/ 48
[1ページでわかる]
Xamarinの概要
3
/ 48
Xamarin とは
・クロスプラットフォーム
・ネイティブアプリ
・(Android ・iOS) のAPI カバー率 100 %
・C# / .NET / Visual Studio
・クロスプラットフォームでコードを共通化する
4
/ 48
今日話さないこと
5
/ 48
今日話さないこと
・Windows、Tizen
Windows や Tizen アプリもターゲットです
・F# (.NET 界の関数型言語)
F# (関数型言語)でも作れます
・C# と Mono/.NET 言葉の明確な使い分け
Java と JVM Javaクラスライブラリ のような関係。今日は C# のライブラリと表現します
・Visual Studio for Mac
Windows 版と Mac で IDE の UI が異なります
6
/ 48
注意点
7
/ 48
Mac は必要
・iOS 向けのビルドは Mac 上で行わなければならない
これはどのクロスプラットフォームアプリ開発でも同様
iOS アプリのビルドは Mac 上で行わなければならない決まり
・Xamarin Live Player はビルドしていない
Mac 不要でアプリのデバッグができるが、アプリのビルドはしていない
浅い動作しかしないため、デバッグとしても UI 定義の確認程度
8
/ 48
[再放送]
Xamarinの概要
9
/ 48
Xamarin とは
・Android / iOS の API を C# から使えるようにしたもの
・C# (.NET) のライブラリを使えるようにしたもの
10
ロジックのみ共通化
UIはネイティブで個別に作りこむ
Shared C# App Logic
(.NET Standard)
iOS
C# UI
Android
C# UI
Windows
C# UI
/ 48
Xamarin の2つの開発方法
11
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)
/ 48
ネイティブの UI
12
/ 48
UI の開発手法
13
Xamarin.Native Xamarin.Forms
概要 ネイティブの技術を使用 UI 共通化ライブラリ
定義 Android では axml
iOS では storyboard など
xaml というシンプルな XML
制約 制限のない UI 各プラットフォームの最大公約数の機能
のみ
特徴 UI が共通化できない UI にこだわらないアプリなら UI まで共
通化可能
使いどころ コンシューマー向けアプリやデザ
インを重視する場合に
ビジネス向けアプリや機能重視のツール
系アプリなどに
Formsで細
かくUIを定
義したい
Custom Renderer で独自にネイティブの
コントロール/プロパティと結合するコン
トロールを作成可能
/ 48
C# (.NET) のライブラリ
全体像
14
Xamarin
コード共有
Xamarin.Navive Xamarin.Forms.axml /
storyboard
Xamarin.Android
Xamarin.iOS
UI の定義UI の定義 どちらか選択
/ 48
C#
・C 言語の流れをくむオブジェクト指向言語で比較的素直で覚えやすい
・言語の進化も歩みを止めていない
15
/ 48
C# 拡張メソッド
・null 対策など頻出するコードなども拡張メソッドを使って簡潔に(書けるようにできる)
※やりすぎ注意
16
/ 48
拡張メソッド例
・null でなければ値を編集し自身のインスタンスを return する例
17
/ 48
拡張メソッド例
前述の 2 例をまとめたコード
18
/ 48
APIカバー率100%
薄いラッパーとも呼ばれる。
19
Android / Java Xamarin / C#
/ 48
プログラミング言語はなんでしょう?
20
/ 48
プログラミング言語はなんでしょう?
21
Android / Java Xamarin / C#
/ 48
Xamarin の特徴
・C# / .NET / Visual Studio
◦C# / Visual Studio の新機能はすぐにすべて使える
・(Android・iOS) のAPI カバー率 100 %
◦Android・iOS の新機能はすぐにすべて使える
22
/ 48
ARKit
23
/ 48
コード
24
参考: https://qiita.com/shu223/items/e55e1426c9e036254761
Github: https://github.com/m-ishizaki/XamARKitSample
/ 48
Xamarin.Android
で始める
Xamarin開発
25
/ 48
ハンズオン例
https://github.com/m-ishizaki/XamarinAndroidHandsOn01
26
移植するアプリ
/ 48
プロジェクトの新規作成
27
/ 48
出来上がるプロジェクト
28
/ 48
Android の UI 定義を取り込み
29
ドラッグ& ドロップ
/ 48
パッケージ追加
取り込んだ UI 定義によってはパッケージを追加する必要がある
※前述のハンズオンにない手順
30
AppCompat、
Constraint.Layout を追加
右クリック
クリック
検索
/ 48
コードをコピペして調整
31
コピーして貼り付け
/ 48
実行
32
/ 48
書き換えポイント例
33
Java C#
名前空間 package namespace
package インポート import using
メソッドオーバーラ
イド
@Override
public void method()
public override void Method()
定数 final const
定数 Double.MAX_VALUE Double.MaxValue
ゲッター/セッター getValue() / setValue(...) プロパティ
public int Value{ get; set; }
種類を表す定数 static final 定数 enum 列挙型
無名クラス ある ない
ボタンクリックなどはラムダ式で設定
インナークラスから
親クラスの参照
できる できない
親クラスの参照を渡す必要がある
/ 48
コード共有化
34
/ 48
Xamarin とは
・Android / iOS の API を C# から使えるようにしたもの
・C# (.NET) のライブラリを使えるようにしたもの
35
ロジックのみ共通化
UIはネイティブで個別に作りこむ
Shared C# App Logic
(.NET Standard)
iOS
C# UI
Android
C# UI
Windows
C# UI
/ 48
コード共有
36
共有コード
Android 用コード
iOS 用コード
参照して使用
Android の API
C# の API
/ 48
実行
37
/ 48
Xamarin.Forms
38
/ 48
プロジェクトの新規作成
39
/ 48
プロジェクトの新規作成
40
以前は “PCL” だった
/ 48
出来上がるプロジェクト
41
共有コード
Android 用コード
iOS 用コード
UI 定義
/ 48
XAML による UI の定義
42
/ 48
C# によるコード
43
/ 48
一目で分かった気になる Xamarin.Forms
44
データバインディング
リストの要素ごとの定義
ListView
TextView
LinearLayout
C# の API でコード共有
ページクラスの
メンバーとして
自動で定義される
/ 48
実行
45
/ 48
手を動かしてみる
~ハンズオンの紹介~
46
/ 48
Xamarin.Android
https://github.com/m-ishizaki/XamarinAndroidHandsOn01
47
移植するアプリ
/ 48
クロスプラットフォームに向けて
・iOS 版ハンズオン
・Xamarin.Forms のハンズオン (クロスプラットフォーム開発)
・Custom Renderer のハンズオン (独自コントロールの作成)
JXUG への参加
・Japan Xamarin User Group
(https://jxug.connpass.com/)
48
/ 48
ありがとうございま
した!
49

More Related Content

PPTX
Cross-Platform ができる Xamarin について
m ishizaki
 
PPTX
DataTable
m ishizaki
 
PPTX
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
m ishizaki
 
PPTX
Xamarin ハンズオン Android の部
m ishizaki
 
PPTX
Xamarin で クラシックデスクトップ 2
m ishizaki
 
PPTX
私とXamarinと。
Takkiiii
 
PPTX
Xamarin.Android ハンズオン
m ishizaki
 
PPTX
Xamarin.Android ハンズオン 2018/11
m ishizaki
 
Cross-Platform ができる Xamarin について
m ishizaki
 
DataTable
m ishizaki
 
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
m ishizaki
 
Xamarin ハンズオン Android の部
m ishizaki
 
Xamarin で クラシックデスクトップ 2
m ishizaki
 
私とXamarinと。
Takkiiii
 
Xamarin.Android ハンズオン
m ishizaki
 
Xamarin.Android ハンズオン 2018/11
m ishizaki
 

What's hot (20)

PPTX
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
Shinichi Hirauchi
 
PDF
BoxViewの美味しい食べ方
Shinichi Hirauchi
 
PPTX
証券取引アプリについて
Masahiko Miyasaka
 
PPTX
.NET界隈で最近気になる話題
Makoto Nishimura
 
PDF
Programmer's Brain
Takaaki Suzuki
 
PDF
Computer Vision と Translator Text API 使ってみた
Yoshito Tabuchi
 
PPTX
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
 
PDF
Friendly
Takaaki Suzuki
 
PPTX
はじめてのChu カッコカリ
Masuda Tomoaki
 
PPTX
証券取引アプリとNote app作ってみた
Masahiko Miyasaka
 
PDF
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
Yoshito Tabuchi
 
PPTX
WinFormsからWPFへ
Yamamoto Reki
 
PDF
20171202 Xamarinの歩き方
Yoshito Tabuchi
 
PDF
WPF Interoperability
Takaaki Suzuki
 
PPTX
Uno Platform 入門
m ishizaki
 
PDF
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
 
PDF
C#のココが好き!
Takaaki Suzuki
 
PDF
Xamarin概要+最新情報
Yoshito Tabuchi
 
PPTX
C#/WPFで作るデスクトップマスコット入門
Fujikido
 
PDF
WPF開発での陥りやすい罠
Sho Okada
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
Shinichi Hirauchi
 
BoxViewの美味しい食べ方
Shinichi Hirauchi
 
証券取引アプリについて
Masahiko Miyasaka
 
.NET界隈で最近気になる話題
Makoto Nishimura
 
Programmer's Brain
Takaaki Suzuki
 
Computer Vision と Translator Text API 使ってみた
Yoshito Tabuchi
 
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
 
Friendly
Takaaki Suzuki
 
はじめてのChu カッコカリ
Masuda Tomoaki
 
証券取引アプリとNote app作ってみた
Masahiko Miyasaka
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
Yoshito Tabuchi
 
WinFormsからWPFへ
Yamamoto Reki
 
20171202 Xamarinの歩き方
Yoshito Tabuchi
 
WPF Interoperability
Takaaki Suzuki
 
Uno Platform 入門
m ishizaki
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
 
C#のココが好き!
Takaaki Suzuki
 
Xamarin概要+最新情報
Yoshito Tabuchi
 
C#/WPFで作るデスクトップマスコット入門
Fujikido
 
WPF開発での陥りやすい罠
Sho Okada
 
Ad

Similar to Xamarin で始めるクロスプラットフォーム開発 (20)

PDF
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Yoshito Tabuchi
 
PDF
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
 
PDF
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Yoshito Tabuchi
 
PDF
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
 
PDF
XamarinStudio勉強会 2014/09/08
孝文 田村
 
PDF
Visual Studio + xamarin で始めるモバイル アプリ開発
インフラジスティックス・ジャパン株式会社
 
PDF
Introduction to Xamarin - JXUG 20171209
Takeshi Fujimoto
 
PDF
Xamarin 概要 2014年08月版
Yoshito Tabuchi
 
PDF
続Xamarinはじめました
Yuya Yamaki
 
PPTX
Xamarin 101 ~環境構築からビルド・テストまで~
Masaki Takeda
 
PDF
これから始めるXamarin開発
Tsukasa Kato
 
PPTX
第1回 Japan Xamarin User Group Conference - Xamarin 概要
Yoshito Tabuchi
 
PDF
Xamarin によるクロスプラットフォームモバイルアプリ開発(2014.06)
Hironov OKUYAMA
 
PDF
Xamarin 基礎講座 2016年7月版
Yoshito Tabuchi
 
PDF
Xamarinをこれから始める皆様へ
Yoshito Tabuchi
 
PDF
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
 
PDF
Xamarinでアプリを作ったときのエトセトラ
Akira Hatsune
 
PDF
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
jz5 MATSUE
 
PDF
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
Yoshito Tabuchi
 
PDF
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Yoshito Tabuchi
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Yoshito Tabuchi
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
 
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Yoshito Tabuchi
 
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
 
XamarinStudio勉強会 2014/09/08
孝文 田村
 
Visual Studio + xamarin で始めるモバイル アプリ開発
インフラジスティックス・ジャパン株式会社
 
Introduction to Xamarin - JXUG 20171209
Takeshi Fujimoto
 
Xamarin 概要 2014年08月版
Yoshito Tabuchi
 
続Xamarinはじめました
Yuya Yamaki
 
Xamarin 101 ~環境構築からビルド・テストまで~
Masaki Takeda
 
これから始めるXamarin開発
Tsukasa Kato
 
第1回 Japan Xamarin User Group Conference - Xamarin 概要
Yoshito Tabuchi
 
Xamarin によるクロスプラットフォームモバイルアプリ開発(2014.06)
Hironov OKUYAMA
 
Xamarin 基礎講座 2016年7月版
Yoshito Tabuchi
 
Xamarinをこれから始める皆様へ
Yoshito Tabuchi
 
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
 
Xamarinでアプリを作ったときのエトセトラ
Akira Hatsune
 
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
jz5 MATSUE
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
Yoshito Tabuchi
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Yoshito Tabuchi
 
Ad

More from m ishizaki (20)

PPTX
継承辺りのもしかしたらマイナーかもしれない C#
m ishizaki
 
PPTX
継承辺りのもしかしたらマイナーかもしれない C#
m ishizaki
 
PPTX
Visual Studio を使わず .NET する
m ishizaki
 
PPTX
Xamarin で良くやっていたあれを MAUI でする話
m ishizaki
 
PPTX
「スタバ」する話
m ishizaki
 
PPTX
エンジニアと「スタバ」ツイートについて
m ishizaki
 
PPTX
Build 2022 / Uno Platform
m ishizaki
 
PPTX
7 つの Blazor
m ishizaki
 
PPTX
C# Tokyo コミュニティ説明 202205 版
m ishizaki
 
PPTX
仮想環境に MAUI 環境を構築する話
m ishizaki
 
PPTX
2022 抱負
m ishizaki
 
PPTX
モバイルディスプレイ
m ishizaki
 
PPTX
Windows フォームアプリ 2022
m ishizaki
 
PPTX
dotnet tool
m ishizaki
 
PPTX
C#10
m ishizaki
 
PPTX
C# Tokyo コミュニティについて Short 版
m ishizaki
 
PPTX
C# Tokyo コミュニティ案内
m ishizaki
 
PPTX
C# 9 のおすすめ新機能
m ishizaki
 
PPTX
C# Tokyo コミュニティ説明 2021/01/29 版
m ishizaki
 
PPTX
秋葉原 C# もくもく会
m ishizaki
 
継承辺りのもしかしたらマイナーかもしれない C#
m ishizaki
 
継承辺りのもしかしたらマイナーかもしれない C#
m ishizaki
 
Visual Studio を使わず .NET する
m ishizaki
 
Xamarin で良くやっていたあれを MAUI でする話
m ishizaki
 
「スタバ」する話
m ishizaki
 
エンジニアと「スタバ」ツイートについて
m ishizaki
 
Build 2022 / Uno Platform
m ishizaki
 
7 つの Blazor
m ishizaki
 
C# Tokyo コミュニティ説明 202205 版
m ishizaki
 
仮想環境に MAUI 環境を構築する話
m ishizaki
 
2022 抱負
m ishizaki
 
モバイルディスプレイ
m ishizaki
 
Windows フォームアプリ 2022
m ishizaki
 
dotnet tool
m ishizaki
 
C# Tokyo コミュニティについて Short 版
m ishizaki
 
C# Tokyo コミュニティ案内
m ishizaki
 
C# 9 のおすすめ新機能
m ishizaki
 
C# Tokyo コミュニティ説明 2021/01/29 版
m ishizaki
 
秋葉原 C# もくもく会
m ishizaki
 

Xamarin で始めるクロスプラットフォーム開発