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

Mais conteúdo relacionado

Mais procurados

20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方Yoshito Tabuchi
 
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2m ishizaki
 
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんねHideaki Aoyagi
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Takaaki Suzuki
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよShinichi Hirauchi
 
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Yoshito Tabuchi
 
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...友太 渡辺
 
xamarin for android試してみた
xamarin for android試してみたxamarin for android試してみた
xamarin for android試してみたLee Choong Geun
 
勉強会用Swift授業2018-0126
勉強会用Swift授業2018-0126勉強会用Swift授業2018-0126
勉強会用Swift授業2018-0126Akihiro Fujiwara
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方Shinichi Hirauchi
 
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにWeb制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにinvogue
 
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたComputer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたYoshito Tabuchi
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発友太 渡辺
 
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオンXamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオンm ishizaki
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点Yoshito Tabuchi
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う AzureYoshito Tabuchi
 

Mais procurados (20)

20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
 
Friendly
FriendlyFriendly
Friendly
 
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2
 
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんね
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
 
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
Xamarin と Visual Studio でまとめて作る iOS / Android / Windows アプリ ( Developers Summ...
 
xamarin for android試してみた
xamarin for android試してみたxamarin for android試してみた
xamarin for android試してみた
 
勉強会用Swift授業2018-0126
勉強会用Swift授業2018-0126勉強会用Swift授業2018-0126
勉強会用Swift授業2018-0126
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方
 
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリにWeb制作で培ってきたFlashのリッチな表現力をモバイルアプリに
Web制作で培ってきたFlashのリッチな表現力をモバイルアプリに
 
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみたComputer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみた
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
 
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオンXamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
 
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う Azure
 

Semelhante a Xamarin.Android ハンズオン

Xamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% についてXamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% についてm ishizaki
 
5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)Yoshito Tabuchi
 
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントXamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントMasuda Tomoaki
 
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Masaki Takeda
 
Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03m ishizaki
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarinYoshito Tabuchi
 
Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11m ishizaki
 
2019 07-20 JXUG Xamarin.Forms の今
2019 07-20 JXUG Xamarin.Forms の今2019 07-20 JXUG Xamarin.Forms の今
2019 07-20 JXUG Xamarin.Forms の今Takeshi Fujimoto
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)一希 大田
 
F# で ASP.NET
F# で ASP.NETF# で ASP.NET
F# で ASP.NETm ishizaki
 
すまべんLite@関西#4
すまべんLite@関西#4すまべんLite@関西#4
すまべんLite@関西#4Shin Ise
 
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarinマスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarinjz5 MATSUE
 
すまべんLite@関西#3
すまべんLite@関西#3すまべんLite@関西#3
すまべんLite@関西#3Shin Ise
 
2020年4月版_Xamarin.Forms 入門 (Mac での開発編)
2020年4月版_Xamarin.Forms 入門 (Mac での開発編)2020年4月版_Xamarin.Forms 入門 (Mac での開発編)
2020年4月版_Xamarin.Forms 入門 (Mac での開発編)Madoka Chiyoda
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!hmimura_embarcadero
 

Semelhante a Xamarin.Android ハンズオン (20)

Xamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% についてXamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% について
 
5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)5分で(は終わらなかった)分かるXamarin(開発者向け)
5分で(は終わらなかった)分かるXamarin(開発者向け)
 
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントXamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
 
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~
 
Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03Uno Platform 入門 2020/04/03
Uno Platform 入門 2020/04/03
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarin
 
Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11
 
2019 07-20 JXUG Xamarin.Forms の今
2019 07-20 JXUG Xamarin.Forms の今2019 07-20 JXUG Xamarin.Forms の今
2019 07-20 JXUG Xamarin.Forms の今
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
 
F# で ASP.NET
F# で ASP.NETF# で ASP.NET
F# で ASP.NET
 
すまべんLite@関西#4
すまべんLite@関西#4すまべんLite@関西#4
すまべんLite@関西#4
 
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarinマスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
 
すまべんLite@関西#3
すまべんLite@関西#3すまべんLite@関西#3
すまべんLite@関西#3
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
2020年4月版_Xamarin.Forms 入門 (Mac での開発編)
2020年4月版_Xamarin.Forms 入門 (Mac での開発編)2020年4月版_Xamarin.Forms 入門 (Mac での開発編)
2020年4月版_Xamarin.Forms 入門 (Mac での開発編)
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
 
【de:code 2020】 2020 年の最新 Xamarin 概要
【de:code 2020】 2020 年の最新 Xamarin 概要【de:code 2020】 2020 年の最新 Xamarin 概要
【de:code 2020】 2020 年の最新 Xamarin 概要
 
DataTable
DataTableDataTable
DataTable
 
Androidの開発概要
Androidの開発概要Androidの開発概要
Androidの開発概要
 

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# もくもく会
 

Último

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Último (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Xamarin.Android ハンズオン

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