SlideShare a Scribd company logo
 モバイルアプリ開発のための Core Cross-Platform API
 UI コードの共有方法で二通り
Shared C# App Logic
(.NET Standard)
Shared XAML/C# UI Code
(Xamarin.Forms)
iOS
C# UI
Shared C# App Logic
(.NET Standard)
Android
C# UI
Windows
C# UI
Xamarin.FormsXamarin Native
ロジックのみ共通化
UIはネイティブで個別に作りこむ
 Shared C# App Logic の共通化は?
Shared C# App Logic
(.NET Standard)
 .NET Standard ライブラリのみで実装は不可能
 プラットフォーム固有の API を利用する必要がある
 Interface を作成後、DependencyService / DI Container 経由で呼び出す
Shared C# App Logic
(.NET Standard)
NSUserDefaults SharedPreferences ApplicationData
Interface (C#)
UIPasteboard ClipboardManager Clipboard
CLLocationManager LocationManager Geolocator
アプリ毎に個別実装
していた
 プラットフォーム固有の機能を共通 API で利用できる
ようにした
Shared C# App Logic
(.NET Standard)
NSUserDefaults SharedPreferences ApplicationData
Core Cross-Platform API
Xamarin.Essentials
UIPasteboard ClipboardManager Clipboard
CLLocationManager LocationManager Geolocator
 ユーザー設定
NSUserDefaults SharedPreferences ApplicationData
Preferences.Set(“KeyName”, 100);
Accelerometer
App InformationBarometer
Battery
Clipboard
Color Converters
Compass
Connectivity
Detect Shake
Device Display Information
Device Information
Email
File System Helpers
Flashlight
Geocoding
Geolocation
Gyroscope Launcher
Magnetometer
MainThread
Maps
Open Browser
Orientation Sensor
Phone Dialer
Platform Extensions
Preferences
Secure Storage
Share
SMS
Text-to-Speech
Unit Converters
Version Tracking
Vibrate
# 機能名 説明
1 Accelerometer 加速度計 3 次元空間内のデバイスの加速度データを取得します。
2 App Information アプリ情報 アプリケーションに関する情報を見つけます。
3 Barometer バロメーター 負荷の変化のバロメーターを監視します。
4 Battery バッテリ – バッテリ レベル、ソース、および状態を簡単に検出し
ます。
5 Clipboard クリップボード クリップボード上のテキストをすばやく簡単に設定し
たり読み取ったりします。
6 Color Converters 色の変換機能 System.Drawing.Color のヘルパー メソッド。
7 Compass コンパス 変化のコンパスを監視します。
8 Connectivity 接続 接続状態を確認し、変更を検出します。
9 Detect Shake シェイクの検出 デバイスを振る動きを検出します。
10 Device Display Information デバイス ディスプレイ情報 デバイスの画面のメトリックと向きを取得します。
# 機能名 説明
11 Device Information デバイス情報 デバイスの詳細を簡単に確認します。
12 Email 電子メール 電子メール メッセージを簡単に送信します。
13 File System Helpers ファイル システム ヘルパー アプリ データにファイルを簡単に保存します。
14 Flashlight 懐中電灯 懐中電灯のオン/オフを簡単に切り替える方法です。
15 Geocoding ジオコーディング ジオコードとリバース ジオコードのアドレスおよび座
標。
16 Geolocation 位置情報 デバイスの GPS 位置情報を取得します。
17 Gyroscope ジャイロスコープ デバイスの 3 つの主軸の周りの回転を追跡します。
18 Launcher ランチャー アプリケーションがシステムで URI を開くことができ
るようにします。
19 Magnetometer 磁力計 地球の磁場を基準としたデバイスの向きを検出します。
20 MainThread メイン スレッド アプリケーションのメイン スレッドでコードを実行し
ます。
# 機能名 説明
21 Maps マップ 特定の場所にマップ アプリケーションを開きます。
22 Open Browser ブラウザーを開く ブラウザーで特定の Web サイトをすばやく簡単に開き
ます。
23 Orientation Sensor 向きセンサー 3 次元空間内のデバイスの向きを取得します。
24 Phone Dialer ダイヤラー ダイヤラーを開きます。
25 Platform Extensions プラットフォーム拡張 Rect、Size、Point を変換するためのヘルパー メソッド。
26 Preferences ユーザー設定 永続的なユーザー設定をすばやく簡単に追加します。
27 Secure Storage セキュリティで保護されたストレージ データを安全に格納します。
28 Share 共有 他のアプリにテキストや Web サイトの URI を送信し
ます。
29 SMS SMS 送信用の SMS メッセージを作成します。
30 Text-to-Speech 音声合成 デバイス上のテキストを音声化します。
# 機能名 説明
31 Unit Converters 単位変換機能 単位を変換するためのヘルパー メソッド。
32 Version Tracking バージョンの追跡 アプリケーションのバージョンとビルド番号を追跡し
ます。
33 Vibrate バイブレーション デバイスをバイブレーションさせます。
 Xamarin.Essentials をインストール
 NuGet パッケージをインストール
 Android、iOS、UWP、Xamarin.Forms(.NET Standard) すべてのプロジェクトにイ
ンストールする
 Visual Studio から作成したプロジェクトでは、既定で
インストールされている場合もあります
https://docs.microsoft.com/ja-jp/xamarin/essentials/
 位置情報の例
Platform 名のタブを切り替えて確認
設定内容を確認
https://github.com/xamarin/Essentials
[クラス名].[プラットフォーム名].cs
partial class で宣言
・共通 Interfaceとなるメソッド
・アプリから利用するメソッド
各 Platform
で実装する処理
partial class で宣言
Preference.shared.cs
SharedPreferences
partial class で宣言
Preference.shared.cs
NSUserDefaults
<Project Sdk="MSBuild.Sdk.Extras/2.0.31">
// 中略
</Project>
・Xamarin.iOS, Xamarin.Android の
プラットフォームでもをビルドできるように
OSS の MSBuild 用のライブラリを利用
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT’ ">
netstandard1.0;netstandard2.0;Xamarin.iOS10;Xamarin.TVOS10;Xamarin.W
atchOS10;MonoAndroid60;MonoAndroid70;MonoAndroid71;MonoAndroid80;Mon
oAndroid81;MonoAndroid90;uap10.0.16299;tizen40;
</TargetFrameworks>
ターゲットプラットフォーム
<ItemGroup>
<None Include=“..nugetreadme.txt"
PackagePath="readme.txt" Pack="true" />
<PackageReference Include="mdoc"
Version="5.7.4.3" PrivateAssets="All" />
<PackageReference
Include="System.Numerics.Vectors" Version="4.5.0" />
<Compile Include="***.shared.cs" />
<Compile Include="***.shared.*.cs" />
</ItemGroup>
プラットフォームに関係なく
コンパイルされる
<ItemGroup Condition=" $(TargetFramework.StartsWith('MonoAndroid')) ">
<Compile Include="***.android.cs" />
<Compile Include="***.android.*.cs" />
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors" />
<AndroidResource Include="Resourcesxml*.xml" />
<PackageReference
Include="Xamarin.Android.Support.Compat" Version="28.0.0.1" />
<PackageReference
Include="Xamarin.Android.Support.CustomTabs" Version="28.0.0.1" />
<PackageReference
Include="Xamarin.Android.Support.Core.Utils" Version="28.0.0.1" />
</ItemGroup>
ターゲットが
Xamarin.Android の時
この条件にあう
ファイルをコンパイルする
<ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.iOS')) ">
<Compile Include="***.ios.cs" />
<Compile Include="***.ios.*.cs" />
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors" />
<Reference Include="OpenTK-1.0" />
</ItemGroup>
ターゲットが
Xamarin.iOS の時
この条件にあう
ファイルをコンパイルする
これらを参照に含める
public static partial class Preferences
{
public static string Get( … ) =>
PlatformGet<string>(…);
}
Preference.shared.cs
public static partial class Preferences
{
static T PlatformGet<T>(…)
{
/// 中略
}
}
Preferences.android.cs
public static partial class Preferences
{
static T PlatformGet<T>(…)
{
/// 中略
}
}
Preferences.ios.tvos.watchos.cs
Android
iOS
https://docs.microsoft.com/ja-jp/xamarin/essentials/
https://github.com/xamarin/Essentials
2019 08-30 JXUG Xamarin.Essentials #1 Xamarin.Essentials とは
2019 08-30 JXUG Xamarin.Essentials #1 Xamarin.Essentials とは

More Related Content

What's hot

.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」
.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」
.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」
Kenshiro Fukuda
 
Microsoftの開発環境
Microsoftの開発環境Microsoftの開発環境
Xamarin Dev days 2 xamarin.forms ja
Xamarin Dev days 2   xamarin.forms jaXamarin Dev days 2   xamarin.forms ja
Xamarin Dev days 2 xamarin.forms ja
Atsushi Nakamura
 
Xamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% についてXamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% について
m ishizaki
 
クロスプラットフォーム開発概要@STARTUP HILLS SCHOOL
クロスプラットフォーム開発概要@STARTUP HILLS SCHOOLクロスプラットフォーム開発概要@STARTUP HILLS SCHOOL
クロスプラットフォーム開発概要@STARTUP HILLS SCHOOL
友太 渡辺
 
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
友太 渡辺
 
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しようXamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しようAkira Onishi
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
Yoshito Tabuchi
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Saiki Iijima
 
Friendly
FriendlyFriendly
Friendly
Takaaki Suzuki
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Yoshito Tabuchi
 
Xamarin 概要 2015年5月版
Xamarin 概要 2015年5月版Xamarin 概要 2015年5月版
Xamarin 概要 2015年5月版
Yoshito Tabuchi
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
Yoshito Tabuchi
 
LT発表資料
LT発表資料LT発表資料
LT発表資料
murajun1978
 
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
Jun Hosokawa
 
はじめての HoloLens セッションの集大成お見せします!
はじめての HoloLens セッションの集大成お見せします!はじめての HoloLens セッションの集大成お見せします!
はじめての HoloLens セッションの集大成お見せします!
一希 大田
 
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
Yoshito Tabuchi
 
CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
Masahiro Tanaka
 

What's hot (20)

.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」
.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」
.Net conf 2017 @Tokyo Unconfrenced 「Xamarin news」
 
Microsoftの開発環境
Microsoftの開発環境Microsoftの開発環境
Microsoftの開発環境
 
Xamarin Dev days 2 xamarin.forms ja
Xamarin Dev days 2   xamarin.forms jaXamarin Dev days 2   xamarin.forms ja
Xamarin Dev days 2 xamarin.forms ja
 
Xamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% についてXamarin の Api カバー率 100% について
Xamarin の Api カバー率 100% について
 
クロスプラットフォーム開発概要@STARTUP HILLS SCHOOL
クロスプラットフォーム開発概要@STARTUP HILLS SCHOOLクロスプラットフォーム開発概要@STARTUP HILLS SCHOOL
クロスプラットフォーム開発概要@STARTUP HILLS SCHOOL
 
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
 
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しようXamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
 
Friendly
FriendlyFriendly
Friendly
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
 
Xamarin 概要 2015年5月版
Xamarin 概要 2015年5月版Xamarin 概要 2015年5月版
Xamarin 概要 2015年5月版
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
 
LT発表資料
LT発表資料LT発表資料
LT発表資料
 
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
 
はじめての HoloLens セッションの集大成お見せします!
はじめての HoloLens セッションの集大成お見せします!はじめての HoloLens セッションの集大成お見せします!
はじめての HoloLens セッションの集大成お見せします!
 
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
 
CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
 

Similar to 2019 08-30 JXUG Xamarin.Essentials #1 Xamarin.Essentials とは

Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
Madoka Chiyoda
 
Android builders summit slide tour
Android builders summit slide tourAndroid builders summit slide tour
Android builders summit slide tourmagoroku Yamamoto
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
 
Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027
Shotaro Suzuki
 
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみたCordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
 
Windows Phoneの 企業内活用方法、 社内向けアプリ開発と展開
Windows Phoneの企業内活用方法、社内向けアプリ開発と展開Windows Phoneの企業内活用方法、社内向けアプリ開発と展開
Windows Phoneの 企業内活用方法、 社内向けアプリ開発と展開
Akira Onishi
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Akira Onishi
 
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略Developers Summit
 
モバイル開発者から見た サーバーレスアーキテクチャ
モバイル開発者から見た サーバーレスアーキテクチャモバイル開発者から見た サーバーレスアーキテクチャ
モバイル開発者から見た サーバーレスアーキテクチャ
Takaaki Tanaka
 
Azure IoT Edge の基本
Azure IoT Edge の基本Azure IoT Edge の基本
Azure IoT Edge の基本
Hiroshi Ouchiyama
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
日本マイクロソフト株式会社
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~Akira Inoue
 
日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)eijikushida
 
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Shin-ya Koga
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
信之 岩永
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解Monaca
 

Similar to 2019 08-30 JXUG Xamarin.Essentials #1 Xamarin.Essentials とは (20)

Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
Android builders summit slide tour
Android builders summit slide tourAndroid builders summit slide tour
Android builders summit slide tour
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027
 
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみたCordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
 
Windows Phoneの 企業内活用方法、 社内向けアプリ開発と展開
Windows Phoneの企業内活用方法、社内向けアプリ開発と展開Windows Phoneの企業内活用方法、社内向けアプリ開発と展開
Windows Phoneの 企業内活用方法、 社内向けアプリ開発と展開
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
 
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
 
モバイル開発者から見た サーバーレスアーキテクチャ
モバイル開発者から見た サーバーレスアーキテクチャモバイル開発者から見た サーバーレスアーキテクチャ
モバイル開発者から見た サーバーレスアーキテクチャ
 
Azure IoT Edge の基本
Azure IoT Edge の基本Azure IoT Edge の基本
Azure IoT Edge の基本
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
 
20050903
2005090320050903
20050903
 
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
 

More from Takeshi Fujimoto

2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher
2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher
2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher
Takeshi Fujimoto
 
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
Takeshi Fujimoto
 
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
Takeshi Fujimoto
 
Portable class library to .NET Standard Extension
Portable class library to .NET Standard ExtensionPortable class library to .NET Standard Extension
Portable class library to .NET Standard Extension
Takeshi Fujimoto
 
Mastering Xamarin.UITest
Mastering Xamarin.UITestMastering Xamarin.UITest
Mastering Xamarin.UITest
Takeshi Fujimoto
 
Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018
Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018
Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018
Takeshi Fujimoto
 
Xamarin with Entity Framework Core
Xamarin with Entity Framework CoreXamarin with Entity Framework Core
Xamarin with Entity Framework Core
Takeshi Fujimoto
 
Introduction to Visual Studio App Center
Introduction to Visual Studio App CenterIntroduction to Visual Studio App Center
Introduction to Visual Studio App Center
Takeshi Fujimoto
 
Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209
Takeshi Fujimoto
 
Visual studio extensibility
Visual studio extensibilityVisual studio extensibility
Visual studio extensibility
Takeshi Fujimoto
 
20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin
20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin
20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin
Takeshi Fujimoto
 

More from Takeshi Fujimoto (11)

2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher
2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher
2019-11-22 JXUG Introduction to Xamarin.Essentials #4 Launcher
 
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
 
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
 
Portable class library to .NET Standard Extension
Portable class library to .NET Standard ExtensionPortable class library to .NET Standard Extension
Portable class library to .NET Standard Extension
 
Mastering Xamarin.UITest
Mastering Xamarin.UITestMastering Xamarin.UITest
Mastering Xamarin.UITest
 
Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018
Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018
Xamarin in Microsoft Build 2018 - JXUG Fukuoka May-25-2018
 
Xamarin with Entity Framework Core
Xamarin with Entity Framework CoreXamarin with Entity Framework Core
Xamarin with Entity Framework Core
 
Introduction to Visual Studio App Center
Introduction to Visual Studio App CenterIntroduction to Visual Studio App Center
Introduction to Visual Studio App Center
 
Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209
 
Visual studio extensibility
Visual studio extensibilityVisual studio extensibility
Visual studio extensibility
 
20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin
20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin
20170625 JXUG Fukuoka 発表資料 : Unit / UI Testing - Xamarin
 

Recently uploaded

単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 

Recently uploaded (14)

単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 

2019 08-30 JXUG Xamarin.Essentials #1 Xamarin.Essentials とは

  • 1.
  • 2.
  • 3.
  • 5.  UI コードの共有方法で二通り Shared C# App Logic (.NET Standard) Shared XAML/C# UI Code (Xamarin.Forms) iOS C# UI Shared C# App Logic (.NET Standard) Android C# UI Windows C# UI Xamarin.FormsXamarin Native ロジックのみ共通化 UIはネイティブで個別に作りこむ
  • 6.  Shared C# App Logic の共通化は? Shared C# App Logic (.NET Standard)
  • 7.  .NET Standard ライブラリのみで実装は不可能  プラットフォーム固有の API を利用する必要がある  Interface を作成後、DependencyService / DI Container 経由で呼び出す Shared C# App Logic (.NET Standard) NSUserDefaults SharedPreferences ApplicationData Interface (C#) UIPasteboard ClipboardManager Clipboard CLLocationManager LocationManager Geolocator アプリ毎に個別実装 していた
  • 8.  プラットフォーム固有の機能を共通 API で利用できる ようにした Shared C# App Logic (.NET Standard) NSUserDefaults SharedPreferences ApplicationData Core Cross-Platform API Xamarin.Essentials UIPasteboard ClipboardManager Clipboard CLLocationManager LocationManager Geolocator
  • 9.  ユーザー設定 NSUserDefaults SharedPreferences ApplicationData Preferences.Set(“KeyName”, 100);
  • 10. Accelerometer App InformationBarometer Battery Clipboard Color Converters Compass Connectivity Detect Shake Device Display Information Device Information Email File System Helpers Flashlight Geocoding Geolocation Gyroscope Launcher Magnetometer MainThread Maps Open Browser Orientation Sensor Phone Dialer Platform Extensions Preferences Secure Storage Share SMS Text-to-Speech Unit Converters Version Tracking Vibrate
  • 11. # 機能名 説明 1 Accelerometer 加速度計 3 次元空間内のデバイスの加速度データを取得します。 2 App Information アプリ情報 アプリケーションに関する情報を見つけます。 3 Barometer バロメーター 負荷の変化のバロメーターを監視します。 4 Battery バッテリ – バッテリ レベル、ソース、および状態を簡単に検出し ます。 5 Clipboard クリップボード クリップボード上のテキストをすばやく簡単に設定し たり読み取ったりします。 6 Color Converters 色の変換機能 System.Drawing.Color のヘルパー メソッド。 7 Compass コンパス 変化のコンパスを監視します。 8 Connectivity 接続 接続状態を確認し、変更を検出します。 9 Detect Shake シェイクの検出 デバイスを振る動きを検出します。 10 Device Display Information デバイス ディスプレイ情報 デバイスの画面のメトリックと向きを取得します。
  • 12. # 機能名 説明 11 Device Information デバイス情報 デバイスの詳細を簡単に確認します。 12 Email 電子メール 電子メール メッセージを簡単に送信します。 13 File System Helpers ファイル システム ヘルパー アプリ データにファイルを簡単に保存します。 14 Flashlight 懐中電灯 懐中電灯のオン/オフを簡単に切り替える方法です。 15 Geocoding ジオコーディング ジオコードとリバース ジオコードのアドレスおよび座 標。 16 Geolocation 位置情報 デバイスの GPS 位置情報を取得します。 17 Gyroscope ジャイロスコープ デバイスの 3 つの主軸の周りの回転を追跡します。 18 Launcher ランチャー アプリケーションがシステムで URI を開くことができ るようにします。 19 Magnetometer 磁力計 地球の磁場を基準としたデバイスの向きを検出します。 20 MainThread メイン スレッド アプリケーションのメイン スレッドでコードを実行し ます。
  • 13. # 機能名 説明 21 Maps マップ 特定の場所にマップ アプリケーションを開きます。 22 Open Browser ブラウザーを開く ブラウザーで特定の Web サイトをすばやく簡単に開き ます。 23 Orientation Sensor 向きセンサー 3 次元空間内のデバイスの向きを取得します。 24 Phone Dialer ダイヤラー ダイヤラーを開きます。 25 Platform Extensions プラットフォーム拡張 Rect、Size、Point を変換するためのヘルパー メソッド。 26 Preferences ユーザー設定 永続的なユーザー設定をすばやく簡単に追加します。 27 Secure Storage セキュリティで保護されたストレージ データを安全に格納します。 28 Share 共有 他のアプリにテキストや Web サイトの URI を送信し ます。 29 SMS SMS 送信用の SMS メッセージを作成します。 30 Text-to-Speech 音声合成 デバイス上のテキストを音声化します。
  • 14. # 機能名 説明 31 Unit Converters 単位変換機能 単位を変換するためのヘルパー メソッド。 32 Version Tracking バージョンの追跡 アプリケーションのバージョンとビルド番号を追跡し ます。 33 Vibrate バイブレーション デバイスをバイブレーションさせます。
  • 15.
  • 16.  Xamarin.Essentials をインストール  NuGet パッケージをインストール  Android、iOS、UWP、Xamarin.Forms(.NET Standard) すべてのプロジェクトにイ ンストールする  Visual Studio から作成したプロジェクトでは、既定で インストールされている場合もあります
  • 19.
  • 20.
  • 29. <Project Sdk="MSBuild.Sdk.Extras/2.0.31"> // 中略 </Project> ・Xamarin.iOS, Xamarin.Android の プラットフォームでもをビルドできるように OSS の MSBuild 用のライブラリを利用
  • 30. <TargetFrameworks Condition=" '$(OS)' == 'Windows_NT’ "> netstandard1.0;netstandard2.0;Xamarin.iOS10;Xamarin.TVOS10;Xamarin.W atchOS10;MonoAndroid60;MonoAndroid70;MonoAndroid71;MonoAndroid80;Mon oAndroid81;MonoAndroid90;uap10.0.16299;tizen40; </TargetFrameworks> ターゲットプラットフォーム
  • 31. <ItemGroup> <None Include=“..nugetreadme.txt" PackagePath="readme.txt" Pack="true" /> <PackageReference Include="mdoc" Version="5.7.4.3" PrivateAssets="All" /> <PackageReference Include="System.Numerics.Vectors" Version="4.5.0" /> <Compile Include="***.shared.cs" /> <Compile Include="***.shared.*.cs" /> </ItemGroup> プラットフォームに関係なく コンパイルされる
  • 32. <ItemGroup Condition=" $(TargetFramework.StartsWith('MonoAndroid')) "> <Compile Include="***.android.cs" /> <Compile Include="***.android.*.cs" /> <Reference Include="System.Numerics" /> <Reference Include="System.Numerics.Vectors" /> <AndroidResource Include="Resourcesxml*.xml" /> <PackageReference Include="Xamarin.Android.Support.Compat" Version="28.0.0.1" /> <PackageReference Include="Xamarin.Android.Support.CustomTabs" Version="28.0.0.1" /> <PackageReference Include="Xamarin.Android.Support.Core.Utils" Version="28.0.0.1" /> </ItemGroup> ターゲットが Xamarin.Android の時 この条件にあう ファイルをコンパイルする
  • 33. <ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.iOS')) "> <Compile Include="***.ios.cs" /> <Compile Include="***.ios.*.cs" /> <Reference Include="System.Numerics" /> <Reference Include="System.Numerics.Vectors" /> <Reference Include="OpenTK-1.0" /> </ItemGroup> ターゲットが Xamarin.iOS の時 この条件にあう ファイルをコンパイルする これらを参照に含める
  • 34. public static partial class Preferences { public static string Get( … ) => PlatformGet<string>(…); } Preference.shared.cs public static partial class Preferences { static T PlatformGet<T>(…) { /// 中略 } } Preferences.android.cs public static partial class Preferences { static T PlatformGet<T>(…) { /// 中略 } } Preferences.ios.tvos.watchos.cs Android iOS
  • 35.
  • 36.
  • 37.