SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Xamarin概要+最新情報
2017/5/27(土)
JXUGC #23 Xamarin 無料化一周年記
念勉強会!
Japan Xamarin User Group
田淵義人@エクセルソフト
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft
Xamarin概要
営業(セールスエンジニア) 兼 新規事業開発室 室長
Xamarin コミュニティエバンジェリスト
Microsoft MVP Visual Studio and Development Technologies
Xamarin MVP
連載・執筆
Build Insider Xamarin Tips
.NET開発テクノロジ入門2016年版
コミュニティ
Japan Xamarin User Group 主宰
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft
Blog: Xamarin 日本語情報
4
田淵義人@エクセルソフト
C# / .NET / Visual Studio
フル “ネイティブ” アプリ
API 100% 移植
コード共通化
Xamarin
5
2つの開発手法
Shared C# App Logic
(PCL)
Shared XAML/C# UI Code
(Xamarin.Forms)
iOS
C# UI
Shared C# App Logic
(PCL)
Android
C# UI
Windows
C# UI
Xamarin.FormsXamarin Native
ロジックのみ共通化
UIはネイティブで個別に作りこむ
6
必要な知識
プラットフォーム
個別
Xamarin Native
iOS API Objective-C, Swift Xcode
Android API Java Android Studio
Windows API Visual StudioC#
API 言語 統合開発環境
iOS API Objective-C, Swift Xcode
Android API Java Android Studio
Windows API Visual StudioC#
Xamarin.Forms
iOS API
Android API
Windows API
Objective-C, Swift Xcode
Java Android Studio
Visual StudioC#Xamarin.Forms
UI toolkit
7
UIは個別
ネイティブAPIは個別
PCL or Shared
ネットワーク
Json, XML
永続化
async/await
8
Xamarin ネイティブ
iOS
C# UI
Shared C# App Logic
(PCL)
Android
C# UI
Windows
C# UI
Xamarin Native
ロジックのみ共通化
UIはネイティブで個別に作りこむ
Xamarin ネイティブ
9
抽象化UIライブラリ
最大公約数
ワンソース・ネイティブUI/UX
XAML / MVVM
拡張可能
10
Xamarin.Forms
Shared C# App Logic
(PCL)
Shared XAML/C# UI Code
(Xamarin.Forms)
Xamarin.Forms
Xamarin.Forms
ワンソース
ネイティブの
UI/UX
XAML
MVVM
14
XAML
15
XAML
2*3 の Grid
図のようになるように設定
1行目と2行目は高さが1:3
3行目の高さは100
Aはサイズ指定なし、Bは50x50、CはDの
上に重なる、Dは高さ100、Eは幅150高
さ50、Fは幅は50、右から20のマージン
17
Grid
1
3
18
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="3*" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<BoxView Grid.Row="0" Grid.Column="0" BackgroundColor="Red" />
<BoxView Grid.Row="0" Grid.Column="1" BackgroundColor="Red" HeightRequest="50" WidthRequest="50"
HorizontalOptions="Center" VerticalOptions="Center" />
<BoxView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" BackgroundColor="Red" HeightRequest="100"
VerticalOptions="Center" />
<BoxView Grid.Row="1" Grid.Column="0" BackgroundColor="Gray" Opacity="0.5" />
<BoxView Grid.Row="2" Grid.Column="0" BackgroundColor="Red" HeightRequest="50" WidthRequest="150"
VerticalOptions="Start" />
<BoxView Grid.Row="2" Grid.Column="1" BackgroundColor="Red" Margin="0,0,20,0" WidthRequest="50"
HorizontalOptions="End" />
</Grid>
Header と Footer
シンプルな ImageCell を使用
19
ListView
20
<ListView ItemsSource="{Binding Items}" CachingStrategy="RecycleElement" HasUnevenRows="true"
IsPullToRefreshEnabled="true" IsRefreshing="{Binding IsBusy, Mode=OneWay}"
RefreshCommand="{Binding RefreshDataCommand}">
<ListView.Header>
<StackLayout Padding="10" BackgroundColor="#dadada" HorizontalOptions="FillAndExpand" Orientation="Horizontal">
<Label FontAttributes="Bold" HorizontalOptions="FillAndExpand" HorizontalTextAlignment="Center"
Text="Header" TextColor="Black" />
</StackLayout>
</ListView.Header>
<!--Built in Cells-->
<ListView.ItemTemplate>
<DataTemplate>
<ImageCell Detail="{Binding Detail}"
ImageSource="{Binding ImageUrl}"
Text="{Binding Text}" />
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Footer>
<StackLayout Padding="10" BackgroundColor="#dadada" HorizontalOptions="FillAndExpand" Orientation="Horizontal">
<Label FontAttributes="Bold" HorizontalOptions="FillAndExpand" HorizontalTextAlignment="Center"
Text="Footer" TextColor="Black" />
</StackLayout>
</ListView.Footer>
</ListView>
Visual Studio:表示>その他のウィンドウ>Xamarin.Forms Previewer
Visual Studio for Mac:XAML ファイルを開いて右上のプレビューボタンをクリック
21
Forms Previewer
C#er/XAMLer/WPF/UWP → Forms
素早く簡単に作る → Forms
iOS/Android ネイティブ経験者 → ネイティブ
きれいに細かく作る → ネイティブ
社内プロジェクト → ??
受託開発 → ??
HTML/JS → Cordova? React Native?
23
Xamarin.Forms VS Xamarin ネイティブ
最新情報
Build 2017 & de:code 2017
Visual Studio(for Mac)から転送されたソースコードをインタープリ
タ形式で実行
Xamarin Live Playerの仕組みを想像してた - ぴーさんログ
Limitations – Xamarin
Storyboard の一部の機能, XiB, axml などのリソースは使用できない。
reflection が限定サポート(SQLite や Json.NET などは使えない)
使ってみました
Youtube ビデオ
Xamarin Live Player
26
https://channel9.msdn.com/events/Build/2017/B8099
Xamarin.Forms Feature Roadmap
2.3 Q2 2017
3.0 Q3 2017
3.1 Q4 2017
27
ロードマップ
Blog
Make Your Xamarin.Forms Apps Even Better (and Faster!)
Fast Renderers
Label, Image, Button をより高速に描画できるように。
Startup Time Improvements
Xamarin.Forms Init 時に時間が掛かっていた問題を解消。
28
Xamarin.Forms 2.3
Xamarin.Forms for Mac/WPF/Gtk#
Xamarin.Forms Embedding
Xamarin.Forms のコントールを Xamarin.iOS, Xamarin.Android, UWP から呼び出せるよ
うに。
Visual State Manager
Xamarin.Forms で Visual State をサポート。コントロールの focus や disabled などの時に
どのように表示されるかを指定可能に。
.NET Standard 2.0 サポート
藤原さんのブログ「.NET Standard のおさらい」を参照
CSS Layout & FlexLayout
デザイナーにデザインを依頼できるようになるかも。CSS Styling and FlexBox のフォーラムを
参照。
29
Xamarin.Forms 3.0
Introducing XAML Standard and .NET Standard 2.0
XAML Standard がサポートされると、Xamarin.iOS/Xamarin.Android のアプリに
<Label /> の代わりに <TextBlock /> を使えるようになります。
既存の開発者は何も変更はありません。
Windows Developer Blog の言う「既存」の開発者なので、恐らく WPF/UWP 側にコントロー
ル名が寄ると思われます。
レポジトリ
ドラフト
仕様を考えているところなので、Issue を投げてください。とのこと。
30
XAML Standard 1.0
31
榎本さんの de:code の資料も参照ください
https://speakerdeck.com/atsushieno/xamarinwozhi-eruji-shu
32
その他の展望
まとめ
C# だけで iOS/Android/Mac など様々なアプリを開発できる
Xamarin.Forms は単純に技術を追うだけでも楽しい
Xamarin はいいぞ
34
ありがとうございます
田淵義人@エクセルソフト
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft
080-7015-3586
35

Más contenido relacionado

La actualidad más candente

アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
Daiki Kawanuma
 

La actualidad más candente (20)

Xamarin概要
Xamarin概要Xamarin概要
Xamarin概要
 
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tipsゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
 
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要
 
BlueMonkeyプロジェクトのご紹介
BlueMonkeyプロジェクトのご紹介BlueMonkeyプロジェクトのご紹介
BlueMonkeyプロジェクトのご紹介
 
Xamarin 概要 2017/01/15
Xamarin 概要 2017/01/15Xamarin 概要 2017/01/15
Xamarin 概要 2017/01/15
 
Xamarin.forms+azureで始めるモバイル開発
Xamarin.forms+azureで始めるモバイル開発Xamarin.forms+azureで始めるモバイル開発
Xamarin.forms+azureで始めるモバイル開発
 
ちょっとエモい話
ちょっとエモい話ちょっとエモい話
ちょっとエモい話
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
Xamarin 基礎講座 2016年7月版
Xamarin 基礎講座 2016年7月版Xamarin 基礎講座 2016年7月版
Xamarin 基礎講座 2016年7月版
 
Xamarinの歩き方
Xamarinの歩き方Xamarinの歩き方
Xamarinの歩き方
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
 
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015 この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
 
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全
 
私とXamarinと。
私とXamarinと。私とXamarinと。
私とXamarinと。
 
Xamarin 概要
Xamarin 概要Xamarin 概要
Xamarin 概要
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方
 
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
 

Similar a Xamarin概要+最新情報

デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
Chihiro Tomita
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Fujio Kojima
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
Naoya Ito
 

Similar a Xamarin概要+最新情報 (20)

Xamarin.Forms.WPF を試してみた
Xamarin.Forms.WPF を試してみたXamarin.Forms.WPF を試してみた
Xamarin.Forms.WPF を試してみた
 
Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209
 
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
 
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
デザイナーが実際にAndroidアプリのレイアウトを 組んでみた(秋葉ちひろ)
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
 
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
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 アプリ同時開発のススメ
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用
 
C# と Xamarin
C# と XamarinC# と Xamarin
C# と Xamarin
 
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
 
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
Xamarin.Forms概要
Xamarin.Forms概要Xamarin.Forms概要
Xamarin.Forms概要
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
WordPress × kintone API連携実践_たにぐち まこと氏
WordPress × kintone API連携実践_たにぐち まこと氏WordPress × kintone API連携実践_たにぐち まこと氏
WordPress × kintone API連携実践_たにぐち まこと氏
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
 
Paint Tool 2013-05-14
Paint Tool 2013-05-14Paint Tool 2013-05-14
Paint Tool 2013-05-14
 

Más de Yoshito Tabuchi

Más de Yoshito Tabuchi (11)

Kong Summit 2021 振り返り
Kong Summit 2021 振り返りKong Summit 2021 振り返り
Kong Summit 2021 振り返り
 
Kong 概要
Kong 概要Kong 概要
Kong 概要
 
勉強会参加のススメ
勉強会参加のススメ勉強会参加のススメ
勉強会参加のススメ
 
Kong Enterprise の紹介
Kong Enterprise の紹介Kong Enterprise の紹介
Kong Enterprise の紹介
 
How does a sales person grow up his community
How does a sales person grow up his communityHow does a sales person grow up his community
How does a sales person grow up his community
 
Xamarin で Cognitive Services を使う
Xamarin で Cognitive Services を使うXamarin で Cognitive Services を使う
Xamarin で Cognitive Services を使う
 
Xamarin で Cognitive Services を使ってみよう
Xamarin で Cognitive Services を使ってみようXamarin で Cognitive Services を使ってみよう
Xamarin で Cognitive Services を使ってみよう
 
Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれから
 
Xamarinを触り始めた頃の話〜触りたい人に向けて〜
Xamarinを触り始めた頃の話〜触りたい人に向けて〜Xamarinを触り始めた頃の話〜触りたい人に向けて〜
Xamarinを触り始めた頃の話〜触りたい人に向けて〜
 
2018年のXamarinの概要と活用方法
2018年のXamarinの概要と活用方法2018年のXamarinの概要と活用方法
2018年のXamarinの概要と活用方法
 
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要
 

Último

Último (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Xamarin概要+最新情報