【18-C-5】
2016/02/18
青柳臣一 @ShinichiAoyagi
C# で iOS/Androidアプリ開発
- Visual Studio 2015 + Xamarin + MVVMCross -
ハッシュタグ: #devsumiC
#devsumi
#devsumiC
自己紹介
 青柳臣一
 @ShinichiAoyagi
 株式会社ディーバ(大阪市中央区)
 代表取締役・デベロッパー
 オリジナルソフトウエア開発、受託開発
 WPF、Windows Forms、 ASP.NET Web Forms/MVC/Web API
 iOS(Objective-C)、Android(Java)、Windows Phone
 Xamarin
 その他(HTML5、JavaScript、PHP…)
2015年12月発売
秀和システム
ISBN: 978-4-7980-4495-8
#devsumi
#devsumiC
Ask the Speaker
 セッション終了後、ご質問にお応えします
ちょっとしたことでも疑問点・不明点がありましたら
ぜひお越しください
 場所
 2Fラウンジ (この部屋の隣です)
2Fラウンジに
JXUG (Japan Xamarin User Group)
のブースもあります!
#devsumi
#devsumiC
Xamarinってご存知?
 Xamarin(ザマリン)社の提供する商用開発環境
 iOS、Android のアプリを C# で開発できる(あとMacも)
 開発環境
Windows Mac
Xamarin Studio Xamarin Studio
Visual Studio
#devsumi
#devsumiC
Xamarinのエディション
 xamarin.com からダウンロードしてインストール
 Visual Studio 2015 には同梱
(インストール時にカスタムで選択する必要あり)
エディション
Starter 無料 各種制限あり
Indie 個人 or 従業員5名以下
Business
Enterprise Business + 有線サポートやhotfix
#devsumi
#devsumiC
Macが必要です!!
 WindowsでiOSアプリ開発
 Xamarin Studio、Visual Studio
 ビルドや実行にはMacが必要!
 ネットワーク経由でMacにアクセスする仕組み
 Macを横に置く
 Windows on 仮想化ソフト on Mac
#devsumi
#devsumiC
Xamarinプロジェクトの構成
 共通部とプラットフォーム依存部
 PCLは限定された.NET
App1 共通部
ポータブルクラスライブラリ(Portable Class Library)
App1.Droid Android固有部分(ビューなど)
App1.iOS iOS固有部分(ビューなど)
App1.WinPhone Windows Phone固有部分(ビューなど)
#devsumi
#devsumiC
PCLへ機能追加、プラグイン
 NuGetなどにいろいろあり
Microsoft.Net.Http HttpClient
Portable.BouncyCastle 暗号化・復号化
Zlib.Portable 圧縮・解凍
PCLStorage ストレージアクセス
Xam.Plugins.Settings アプリケーション設定
その他いろいろ
#devsumi
#devsumiC
Xamarinの特徴
 とても薄いラッパー
 OSを抽象化しているわけではない
 ほぼネイティブ
 プログラミング言語が変わっただけ
 Objective-C/Swift や Java → C#
 なので iOS や Android の知識は必要
#devsumi
#devsumiC
薄いラッパー(というかラッパーなんてない)
 加速度センサー(iOS)
 加速度センサー(Android)
Objective-C Xamarin(C#)
CMMotionManagerクラス CMMotionManagerクラス
startDeviceMotionUpdatesToQueue()メソッド
startDeviceMotionUpdatesUsingReferenceFrame()メソッ
ド
StartDeviceMotionUpdates()メソッド
Java Xamarin(C#)
SensorManagerクラス SensorManagerクラス
registerListener()メソッド RegisterListener()メソッド
#devsumi
#devsumiC
Xamarinでアプリ開発
 iPhoneアプリとAndroidアプリ
 (残念ながらWindows Phoneは対象外)
 サーバーにデータを蓄積
 APIサーバー
 運用チームが使用するツール
 Webベースのシステム + Windowsアプリ
#devsumi
#devsumiC
みんなC#
SQL Database
Redis Cache
BLOB Storage
Web App (API)
Web App (Web)
Azure
iPhone
Android
PC(ブラウザ)
運用ツール
Xamarin
(C#)
Xamarin
(C#)
ASP.NET Web API
(C#)
ASP.NET MVC
(C#)
WPF
(C#)
#devsumi
#devsumiC
Xamarinを使ったわけ
 Objective-C(iOS)やJava(Android)での開発もやってる
 けどC#やVBが得意(好き)なメンバーたち
 サーバーやツール類は?
 Azure?AWS?
 ASP.NET?Java?Node.js?
 Winアプリ?
#devsumi
#devsumiC
MVVMCross
 MVVMをサポートするライブラリ
 https://github.com/MvvmCross/MvvmCross
 Xamarin専用ではない
 もちろん必須というわけでもない
 MVVM以外にも便利な機能あり
#devsumi
#devsumiC
MVVMCrossの導入
 NuGetでインストール
 MVVMCross.HotTuna.StarterPack
 ちょっと修正
 App1.Core → App1
 ToDoに書かれてることをやる
(一部間違ってるところもあるので注意)
#devsumi
#devsumiC
DataBinding.ViewModel
 ビューモデル
 MvxViewModelを継承する
 XAMLと同様INotifyPropertyChangedで変更通知する仕組み
private string hello = "Hello MvvmCross";
public string Hello
{
get { return this.hello; }
set { SetProperty(ref hello, value); }
}
public IMvxCommand ClickCommand
{
get { return new MvxCommand(() => { this.Hello = "Click!"; }); }
}
#devsumi
#devsumiC
DataBinding.iOS
 コードで書く
 using MvvmCross.Binding.BindingContext;
 インテリセンスのおかげで悪くはない
 Set.Bind(control).For(c => c.Text).To(vm => vm.Hello).WithConversion(…);
var set = this.CreateBindingSet<FirstView,
App1.ViewModels.FirstViewModel>();
set.Bind(label).To(vm => vm.Hello);
set.Bind(textField).To(vm => vm.Hello);
set.Bind(button).To(vm => vm.ClickCommand);
set.Apply();
#devsumi
#devsumiC
DataBinding.Droid
 axml に書く
<EditText
~略~
local:MvxBind="Text Hello" />
<TextView
~略~
local:MvxBind="Text Hello" />
<Button
~略~
local:MvxBind="Click ClickCommand"/>
#devsumi
#devsumiC
MVVMCross.Plugins
 コードでよく使うのにプラットフォームで違うものたち
カラー
ブラウザー起動
メール起動
ファイルアクセス
Sqlite
その他いろいろ
http://mvvmcross.com/docs のPLUGINSの項
Mvx.Resolve<IMvxWebBrowserTask>().ShowWebPage("http://yahoo.co.jp/");
#devsumi
#devsumiC
MVVMCross.Plugin.Color
 ViewModel
 MvxColor を使う
 View
 データバインディング + ValueConverter
 iOS: set.Bind(label)
.For(c => c.TextColor).To(vm => vm.LabelColor)
.WithConversion(new MvxNativeColorValueConverter());
 Android: local:MvxBind="Text Hello; TextColor NativeColor(LabelColor)“
 XAML: Color="{Binding CurrentColor, Converter={StaticResource NativeColor}}"
#devsumi
#devsumiC
Xamarin.Forms
 ビューも共通化できる
 XAMLっぽい
 それに慣れてる人には扱いやすい(かも)
 DependencyService
 共通部からプラットフォーム依存の機能を呼ぶ
 https://developer.xamarin.com/guides/xamarin-forms/dependency-service/
 デザイナーがない!
 そろそろ?
#devsumi
#devsumiC
Xamarinを使った感想
 ViewModelとModelは共通化できた
 データ処理エンジンはPCLにして共通化
 同じDLLがAzure、スマホ、Windowsで動いている
 C#好き的には捗る
 Objective-C/SwiftやJavaでの開発になれているんであればわざわざC#をマス
ターするってのはどうなんだろう
 Xamarin.Formsはプロトタイプ開発時に便利だった
#devsumi
#devsumiC
Xamarin社のサービス
 Xamarin Insights
 Azure Application Insightsみたいなもの(だと思う)
今はGoogleアナリティクスを使っている
(ちなみに、Azure上のWeb AppはNew Relic)
 Xamarin Test Cloud
 いろいろなデバイスでのテスト
#devsumi
#devsumiC
ご清聴ありがとうございました。
JXUGC #11 Xamarin ハンズオン大会
http://jxug.connpass.com/event/27329/
2016/03/26(土)
会場未定(品川?)

More Related Content

PPTX
Visual Studio 2015 + Xamarin
PPTX
Xamarin+MVVMCross のあれこれ
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
PPTX
オレたちとVisual Studioとの関係を話そう
PDF
Xamarin で今日から始めるクロスプラットフォーム開発
PDF
Visual Studio + xamarin で始めるモバイル アプリ開発
PPTX
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
PDF
Empower every App and every Developer in a Mobile-first, Cloud-first World.
Visual Studio 2015 + Xamarin
Xamarin+MVVMCross のあれこれ
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
オレたちとVisual Studioとの関係を話そう
Xamarin で今日から始めるクロスプラットフォーム開発
Visual Studio + xamarin で始めるモバイル アプリ開発
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Empower every App and every Developer in a Mobile-first, Cloud-first World.

What's hot (20)

PDF
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
PPTX
Xamarin 101 ~環境構築からビルド・テストまで~
PPTX
いまさら学ぶMVVMパターン
PDF
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
PPTX
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
PDF
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
PPTX
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
PPTX
C++からC#まで Visual Studio 縛り (で死ぬ実験)
PDF
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
PDF
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
PDF
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
PDF
Xamarin.Mac をこれからはじめるあなたへ
PPTX
Xamarin Overview
PPTX
Xamarin.formsでのmvvm利用のコツ
PDF
続Xamarinはじめました
PDF
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
PDF
20171202 Xamarinの歩き方
KEY
塹壕よりLivetとMVVM
PDF
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
PDF
Xamarin から使う Azure
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
Xamarin 101 ~環境構築からビルド・テストまで~
いまさら学ぶMVVMパターン
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
C++からC#まで Visual Studio 縛り (で死ぬ実験)
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin.Mac をこれからはじめるあなたへ
Xamarin Overview
Xamarin.formsでのmvvm利用のコツ
続Xamarinはじめました
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
20171202 Xamarinの歩き方
塹壕よりLivetとMVVM
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin から使う Azure
Ad

Viewers also liked (20)

PDF
10分でわかる無料になったXamarin
PDF
【夏サミ2016】CodeZine Book『 デベロッパーのキャリアと働き方を語ろう』番外編~ 特別対談「How to the Hack the Rea...
PPTX
Androidアプリ本格開発入門 webブラウザ編
PDF
20160218 devsumi
PPTX
Xamarin の救世主 Unity !
PDF
IT系女子集まれ!女子部カンファレンスvo.1 用スライド資料
PDF
Selenium boot campの紹介
PPTX
モノづくりを楽しもう! ~ このデバイスとクラウドでできること
PPTX
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
PDF
How to develop a huge Single Page Application
PPTX
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
PPTX
Xamarin.forms実践投入してみて
PDF
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
PDF
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
PDF
我が家のフロントエンド開発事情
PDF
オープンソースで作るスマホ文字認識アプリ
PDF
Java script.trend(spec)
PDF
現場から変えた“サービスの作り方” -何を作るのかではなくなぜ作るのか- #devsumi
PDF
Akira shibata at developer summit 2016
PDF
マイクロサービス時代の動画配信基Ruby×go=∞
10分でわかる無料になったXamarin
【夏サミ2016】CodeZine Book『 デベロッパーのキャリアと働き方を語ろう』番外編~ 特別対談「How to the Hack the Rea...
Androidアプリ本格開発入門 webブラウザ編
20160218 devsumi
Xamarin の救世主 Unity !
IT系女子集まれ!女子部カンファレンスvo.1 用スライド資料
Selenium boot campの紹介
モノづくりを楽しもう! ~ このデバイスとクラウドでできること
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
How to develop a huge Single Page Application
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Xamarin.forms実践投入してみて
クラウドを使ったデザイン データ活用 - Autodesk Forge ご紹介 @ デブサミ 2016
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
我が家のフロントエンド開発事情
オープンソースで作るスマホ文字認識アプリ
Java script.trend(spec)
現場から変えた“サービスの作り方” -何を作るのかではなくなぜ作るのか- #devsumi
Akira shibata at developer summit 2016
マイクロサービス時代の動画配信基Ruby×go=∞
Ad

Similar to 【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross - (20)

PPTX
Visual Studio 2017 事はじめ
PDF
C#の強み、或いは何故PHPから乗り換えるのか
PPTX
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
PDF
.NET Coreから概観する.NETのOSSへの取り組み
PPTX
20160308 私とVisual Studio
PPTX
xamarin for android試してみた
PPTX
Visual Studio を使わず .NET する
PPTX
ASP.NET MVC プログラミング入門の入門
PDF
OWIN - .NETにおけるPSGI -
PDF
Introduction to Visual Studio App Center
PPTX
Asp.net core mvc の core な話
PDF
MvvmCross 入門
KEY
Web App Framework at SwapSkills vol28
PDF
CLR/H 第 79 回勉強会での LT
PDF
JSオジサン openframeworks emscripten
PPT
T35 ASP.NET MVCを使ったTDD入門
PDF
Application Architecture for Enterprise Win Store Apps with DDD Pattern
PPTX
うるう秒とタイムゾーン
PDF
そろそろレガシーな.Net開発をやめなイカ?
PPTX
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Visual Studio 2017 事はじめ
C#の強み、或いは何故PHPから乗り換えるのか
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
.NET Coreから概観する.NETのOSSへの取り組み
20160308 私とVisual Studio
xamarin for android試してみた
Visual Studio を使わず .NET する
ASP.NET MVC プログラミング入門の入門
OWIN - .NETにおけるPSGI -
Introduction to Visual Studio App Center
Asp.net core mvc の core な話
MvvmCross 入門
Web App Framework at SwapSkills vol28
CLR/H 第 79 回勉強会での LT
JSオジサン openframeworks emscripten
T35 ASP.NET MVCを使ったTDD入門
Application Architecture for Enterprise Win Store Apps with DDD Pattern
うるう秒とタイムゾーン
そろそろレガシーな.Net開発をやめなイカ?
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)

More from ShinichiAoyagi (11)

PPTX
WPF & Windows Forms on .NET Core 3.0
PPTX
XAML 入門
PPTX
LINQ 概要 + 結構便利な LINQ to XML
PPTX
C# と .NET と ・・・
PPTX
LINQ概要
PPTX
LINQ の概要とかもろもろ
PPTX
Windows ストアーアプリで SQLite を使ってみよう
PPTX
WindowsストアーアプリでSharpDXを動かしてみる
PPTX
メトロスタイルアプリ開発 最初の一歩
PPTX
メトロスタイルってなに?
PPT
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
WPF & Windows Forms on .NET Core 3.0
XAML 入門
LINQ 概要 + 結構便利な LINQ to XML
C# と .NET と ・・・
LINQ概要
LINQ の概要とかもろもろ
Windows ストアーアプリで SQLite を使ってみよう
WindowsストアーアプリでSharpDXを動かしてみる
メトロスタイルアプリ開発 最初の一歩
メトロスタイルってなに?
ついに日本上陸!Windows Phone 7.5 アプリケーション開発

【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -