SlideShare uma empresa Scribd logo
1 de 19
/ 17
JXUG
Xamarin.iOS & Xamarin.Android
ハンズオン!
Xamarin.Android の部
1
JXUG XAMARIN.IOS & XAMARIN.ANDROIDハンズオン!
2018年02月10日
石崎 充良
/ 17
自己紹介
石崎 充良 ( @mishi_cs )
Microsoft MVP for Visual Studio and Development Technologie
言語: C# XAML
活動:
JXUG (もくもく会) (connpass)
城東.NET Users Group (connpass)
C# もくもく会 (connpass)
2
/ 17
Xamarin とは
3
/ 17
Xamarin とは
・クロスプラットフォームアプリ開発
・ネイティブ (iOS・Android) のAPI カバー率 100 %
・C# でアプリを開発できる
・Visual Studio でアプリを開発できる
・UI はネイティブの技術で定義する (Android なら axml など)
・UI も共通化するライブラリがある
あまり売りではない売り
・Mac や Windows アプリも作れる
・F# でアプリを開発できる
4
/ 17
C#
・C 言語の流れをくむオブジェクト指向言語で比較的素直で覚えやすい
・言語の進化も歩みを止めていない
・Apple の swift や、Android の kotlin と比べると古さはある
・サーバーサイドからクライアントアプリまで、何でも作れる
F#
・.NET 界の関数型言語担当。関数型が好きな方にお勧め
・ユーザーが少ないのか少なくとも日本ではあまり情報がない
5
/ 17
Visual Studio
・マイクロソフトが誇る IDE
・機能的には充実しており人気が高い
・ビジネスで使う場合は有償
・Windows 版と Mac 版は別の製品。UI や機能も違いがある
・Community 版や試用でぜひ一度お試しください
あまり売りにならない売り
・日本語 UI が選択可能のため(企業によっては)導入の敷居が低い
6
/ 17
UI の定義
Xamarin.Native - ネイティブの技術を使用
・Android では axml、iOS では storyboard など
・クロスプラットフォームゆえの制限のない UI
・UI が共通化できない
→ コンシューマー向けアプリやデザインを重視する場合に
Xamarin.Forms – UI 共通化ライブラリ
・xaml というシンプルな XML
・各プラットフォームの最大公約数な機能のみという制約
・UI にこだわらないアプリなら UI まで共通化可能
→ビジネス向けアプリや機能重視のツール系アプリなどに
7
/ 17
注意点(重要)
8
/ 17
Mac は必要
・iOS 向けのビルドは Mac 上で行わなければならない
これはどのクロスプラットフォームアプリ開発でも同様
iOS アプリのビルドは Mac 上で行わなければならない決まり
・Xamarin Live Player はビルドしていない
Mac 不要でアプリのデバッグができると言う技術もあるが、アプリのビルドはしていない
浅い動作しかしないため、デバッグとしても UI 定義の確認程度
9
/ 17
ネイティブの知識も学ぶと良い
・アプリストアのルールを守る
アプリストアによっては UI のデザイン等にもガイドラインがある
ガイドラインを守らない場合、リジェクトされる場合がある
・API の詳細やサンプル、その他情報はネイティブのものを読む
API のカバー率は 100% ですが、その詳細や使い方はネイティブの情報が詳しい
iOS や Android のアップデートによる変更や追加もネイティブの情報が詳しい
※ネイティブの情報でブログ等を書いているエンジニアと、Xamarin だけを書いているエンジニ
アの数を考えると必然
逆に「薄いラッパー」ゆえに、ネイティブの情報を活用しやすいことがメリット
10
/ 17
今回は Android のみ
・クロスプラットフォームという要素は無視
今回のハンズオンは Android のアプリを Xamarin に置き換えます
Android の API はAndroid でしか使えません
今回のコードは iOS では動作しません(ビルドもできません)
・クロスプラットフォームに向けて
Xamarin は .NET のクラスライブラリを使えます
ネイティブの API やライブラリを使用する部分を .NET のライブラリに置き換えるとコードを共
有できるようになります
iOS・Android の各 API をラップし、共通の手続きで利用できるようにしたライブラリも作られ
ています。ネイティブの API をこれらのライブラリに置き換えるとコードを共有できるようにな
ります
11
/ 17
ハンズオンで学べる
こと
12
/ 17
ハンズオンで学べる事
・ネイティブの API 知識が生かせること
・Android アプリのコードを Xamarin で動作するようにする勘所
・Xamarin によるアプリ開発の経験
・既存の Android アプリを Xamarin に書き換えるヒント
宿題としてチャレンジして欲しい事
・.NET や Xamarin 用のライブラリへの書き換え
・iOS 版ハンズオン
13
/ 17
ハンズオン
14
/ 17
移植するアプリ
15
/ 17
ハンズオンテキスト
https://github.com/m-ishizaki/XamarinAndroidHandsOn01
16
/ 17
続けてチャレンジして欲しい事
17
/ 17
クロスプラットフォームに向けて
・.NET や Xamarin 用のライブラリへの書き換え
・iOS 版ハンズオン
・Xamarin.Forms のハンズオン (クロスプラットフォーム開発)
JXUG への参加
・Japan Xamarin User Group
(https://jxug.connpass.com/)
18
/ 17
おつかれさまでした
19

Mais conteúdo relacionado

Mais procurados

Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントXamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントMasuda Tomoaki
 
Xamarin で始めるクロスプラットフォーム開発
Xamarin で始めるクロスプラットフォーム開発Xamarin で始めるクロスプラットフォーム開発
Xamarin で始めるクロスプラットフォーム開発m ishizaki
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方Yoshito Tabuchi
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方Shinichi Hirauchi
 
Xamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi RobotXamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi RobotMasuda Tomoaki
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Takaaki Suzuki
 
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性decode2016
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよShinichi Hirauchi
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点Yoshito Tabuchi
 
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたComputer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたYoshito Tabuchi
 
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Yoshito Tabuchi
 
2018/06/24 .NETラボ Xamarinトーク
2018/06/24 .NETラボ Xamarinトーク2018/06/24 .NETラボ Xamarinトーク
2018/06/24 .NETラボ XamarinトークKenshiro Fukuda
 
Xamarin概要+最新情報
Xamarin概要+最新情報Xamarin概要+最新情報
Xamarin概要+最新情報Yoshito Tabuchi
 
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例Yoshito Tabuchi
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜Shinichi Hirauchi
 
証券取引アプリについて
証券取引アプリについて証券取引アプリについて
証券取引アプリについてMasahiko Miyasaka
 
続Xamarinはじめました
続Xamarinはじめました続Xamarinはじめました
続XamarinはじめましたYuya Yamaki
 

Mais procurados (20)

Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントXamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
 
Xamarin で始めるクロスプラットフォーム開発
Xamarin で始めるクロスプラットフォーム開発Xamarin で始めるクロスプラットフォーム開発
Xamarin で始めるクロスプラットフォーム開発
 
Friendly
FriendlyFriendly
Friendly
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方
 
Xamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi RobotXamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi Robot
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
 
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
 
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたComputer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみた
 
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
 
2018/06/24 .NETラボ Xamarinトーク
2018/06/24 .NETラボ Xamarinトーク2018/06/24 .NETラボ Xamarinトーク
2018/06/24 .NETラボ Xamarinトーク
 
Xamarin概要+最新情報
Xamarin概要+最新情報Xamarin概要+最新情報
Xamarin概要+最新情報
 
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
 
証券取引アプリについて
証券取引アプリについて証券取引アプリについて
証券取引アプリについて
 
Xamarin概要
Xamarin概要Xamarin概要
Xamarin概要
 
続Xamarinはじめました
続Xamarinはじめました続Xamarinはじめました
続Xamarinはじめました
 

Semelhante a Xamarin ハンズオン Android の部

Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜Daiki Kawanuma
 
Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03m ishizaki
 
F# で ASP.NET
F# で ASP.NETF# で ASP.NET
F# で ASP.NETm ishizaki
 
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門Yasuhiko Yamamoto
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)一希 大田
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarinYoshito Tabuchi
 
5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)Yoshito Tabuchi
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発友太 渡辺
 
Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからYoshito Tabuchi
 
XAML Islands その2
XAML Islands その2XAML Islands その2
XAML Islands その2m ishizaki
 

Semelhante a Xamarin ハンズオン Android の部 (20)

DataTable
DataTableDataTable
DataTable
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
Xamarin
XamarinXamarin
Xamarin
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
 
Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03
 
F# で ASP.NET
F# で ASP.NETF# で ASP.NET
F# で ASP.NET
 
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
 
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
 
Xamarin 概要
Xamarin 概要Xamarin 概要
Xamarin 概要
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarin
 
5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
 
Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれから
 
XAML Islands その2
XAML Islands その2XAML Islands その2
XAML Islands その2
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
【de:code 2020】 2020 年の最新 Xamarin 概要
【de:code 2020】 2020 年の最新 Xamarin 概要【de:code 2020】 2020 年の最新 Xamarin 概要
【de:code 2020】 2020 年の最新 Xamarin 概要
 

Mais de m ishizaki

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

Mais de m ishizaki (20)

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

Xamarin ハンズオン Android の部

  • 1. / 17 JXUG Xamarin.iOS & Xamarin.Android ハンズオン! Xamarin.Android の部 1 JXUG XAMARIN.IOS & XAMARIN.ANDROIDハンズオン! 2018年02月10日 石崎 充良
  • 2. / 17 自己紹介 石崎 充良 ( @mishi_cs ) Microsoft MVP for Visual Studio and Development Technologie 言語: C# XAML 活動: JXUG (もくもく会) (connpass) 城東.NET Users Group (connpass) C# もくもく会 (connpass) 2
  • 4. / 17 Xamarin とは ・クロスプラットフォームアプリ開発 ・ネイティブ (iOS・Android) のAPI カバー率 100 % ・C# でアプリを開発できる ・Visual Studio でアプリを開発できる ・UI はネイティブの技術で定義する (Android なら axml など) ・UI も共通化するライブラリがある あまり売りではない売り ・Mac や Windows アプリも作れる ・F# でアプリを開発できる 4
  • 5. / 17 C# ・C 言語の流れをくむオブジェクト指向言語で比較的素直で覚えやすい ・言語の進化も歩みを止めていない ・Apple の swift や、Android の kotlin と比べると古さはある ・サーバーサイドからクライアントアプリまで、何でも作れる F# ・.NET 界の関数型言語担当。関数型が好きな方にお勧め ・ユーザーが少ないのか少なくとも日本ではあまり情報がない 5
  • 6. / 17 Visual Studio ・マイクロソフトが誇る IDE ・機能的には充実しており人気が高い ・ビジネスで使う場合は有償 ・Windows 版と Mac 版は別の製品。UI や機能も違いがある ・Community 版や試用でぜひ一度お試しください あまり売りにならない売り ・日本語 UI が選択可能のため(企業によっては)導入の敷居が低い 6
  • 7. / 17 UI の定義 Xamarin.Native - ネイティブの技術を使用 ・Android では axml、iOS では storyboard など ・クロスプラットフォームゆえの制限のない UI ・UI が共通化できない → コンシューマー向けアプリやデザインを重視する場合に Xamarin.Forms – UI 共通化ライブラリ ・xaml というシンプルな XML ・各プラットフォームの最大公約数な機能のみという制約 ・UI にこだわらないアプリなら UI まで共通化可能 →ビジネス向けアプリや機能重視のツール系アプリなどに 7
  • 9. / 17 Mac は必要 ・iOS 向けのビルドは Mac 上で行わなければならない これはどのクロスプラットフォームアプリ開発でも同様 iOS アプリのビルドは Mac 上で行わなければならない決まり ・Xamarin Live Player はビルドしていない Mac 不要でアプリのデバッグができると言う技術もあるが、アプリのビルドはしていない 浅い動作しかしないため、デバッグとしても UI 定義の確認程度 9
  • 10. / 17 ネイティブの知識も学ぶと良い ・アプリストアのルールを守る アプリストアによっては UI のデザイン等にもガイドラインがある ガイドラインを守らない場合、リジェクトされる場合がある ・API の詳細やサンプル、その他情報はネイティブのものを読む API のカバー率は 100% ですが、その詳細や使い方はネイティブの情報が詳しい iOS や Android のアップデートによる変更や追加もネイティブの情報が詳しい ※ネイティブの情報でブログ等を書いているエンジニアと、Xamarin だけを書いているエンジニ アの数を考えると必然 逆に「薄いラッパー」ゆえに、ネイティブの情報を活用しやすいことがメリット 10
  • 11. / 17 今回は Android のみ ・クロスプラットフォームという要素は無視 今回のハンズオンは Android のアプリを Xamarin に置き換えます Android の API はAndroid でしか使えません 今回のコードは iOS では動作しません(ビルドもできません) ・クロスプラットフォームに向けて Xamarin は .NET のクラスライブラリを使えます ネイティブの API やライブラリを使用する部分を .NET のライブラリに置き換えるとコードを共 有できるようになります iOS・Android の各 API をラップし、共通の手続きで利用できるようにしたライブラリも作られ ています。ネイティブの API をこれらのライブラリに置き換えるとコードを共有できるようにな ります 11
  • 13. / 17 ハンズオンで学べる事 ・ネイティブの API 知識が生かせること ・Android アプリのコードを Xamarin で動作するようにする勘所 ・Xamarin によるアプリ開発の経験 ・既存の Android アプリを Xamarin に書き換えるヒント 宿題としてチャレンジして欲しい事 ・.NET や Xamarin 用のライブラリへの書き換え ・iOS 版ハンズオン 13
  • 18. / 17 クロスプラットフォームに向けて ・.NET や Xamarin 用のライブラリへの書き換え ・iOS 版ハンズオン ・Xamarin.Forms のハンズオン (クロスプラットフォーム開発) JXUG への参加 ・Japan Xamarin User Group (https://jxug.connpass.com/) 18