狠狠撸
Submit Search
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
?
Download as PPTX, PDF
?
2 likes
?
3,899 views
S
ShinichiAoyagi
デベロッパーサミット2016 2月18日のセッション资料です。
Read less
Read more
1 of 24
Download now
Downloaded 37 times
More Related Content
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
1.
【18-C-5】 2016/02/18 青柳臣一 @ShinichiAoyagi C# で
iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross - ハッシュタグ: #devsumiC
2.
#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
3.
#devsumi #devsumiC Ask the Speaker ?
セッション終了後、ご質問にお応えします ちょっとしたことでも疑問点?不明点がありましたら ぜひお越しください ? 場所 ? 2Fラウンジ (この部屋の隣です) 2Fラウンジに JXUG (Japan Xamarin User Group) のブースもあります!
4.
#devsumi #devsumiC Xamarinってご存知? ? Xamarin(ザマリン)社の提供する商用開発環境 ? iOS、Android
のアプリを C# で開発できる(あとMacも) ? 開発環境 Windows Mac Xamarin Studio Xamarin Studio Visual Studio
5.
#devsumi #devsumiC Xamarinのエディション ? xamarin.com からダウンロードしてインストール ?
Visual Studio 2015 には同梱 (インストール時にカスタムで選択する必要あり) エディション Starter 無料 各種制限あり Indie 個人 or 従業員5名以下 Business Enterprise Business + 有線サポートやhotfix
6.
#devsumi #devsumiC Macが必要です!! ? WindowsでiOSアプリ開発 ? Xamarin
Studio、Visual Studio ? ビルドや実行にはMacが必要! ? ネットワーク経由でMacにアクセスする仕組み ? Macを横に置く ? Windows on 仮想化ソフト on Mac
7.
#devsumi #devsumiC Xamarinプロジェクトの構成 ? 共通部とプラットフォーム依存部 ? PCLは限定された.NET App1
共通部 ポータブルクラスライブラリ(Portable Class Library) App1.Droid Android固有部分(ビューなど) App1.iOS iOS固有部分(ビューなど) App1.WinPhone Windows Phone固有部分(ビューなど)
8.
#devsumi #devsumiC PCLへ機能追加、プラグイン ? NuGetなどにいろいろあり Microsoft.Net.Http HttpClient Portable.BouncyCastle
暗号化?復号化 Zlib.Portable 圧縮?解凍 PCLStorage ストレージアクセス Xam.Plugins.Settings アプリケーション設定 その他いろいろ
9.
#devsumi #devsumiC Xamarinの特徴 ? とても薄いラッパー ? OSを抽象化しているわけではない ?
ほぼネイティブ ? プログラミング言語が変わっただけ ? Objective-C/Swift や Java → C# ? なので iOS や Android の知識は必要
10.
#devsumi #devsumiC 薄いラッパー(というかラッパーなんてない) ? 加速度センサー(iOS) ? 加速度センサー(Android) Objective-C
Xamarin(C#) CMMotionManagerクラス CMMotionManagerクラス startDeviceMotionUpdatesToQueue()メソッド startDeviceMotionUpdatesUsingReferenceFrame()メソッ ド StartDeviceMotionUpdates()メソッド Java Xamarin(C#) SensorManagerクラス SensorManagerクラス registerListener()メソッド RegisterListener()メソッド
11.
#devsumi #devsumiC Xamarinでアプリ開発 ? iPhoneアプリとAndroidアプリ ? (残念ながらWindows
Phoneは対象外) ? サーバーにデータを蓄積 ? APIサーバー ? 運用チームが使用するツール ? Webベースのシステム + Windowsアプリ
12.
#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#)
13.
#devsumi #devsumiC Xamarinを使ったわけ ? Objective-C(iOS)やJava(Android)での開発もやってる ? けどC#やVBが得意(好き)なメンバーたち ?
サーバーやツール類は? ? Azure?AWS? ? ASP.NET?Java?Node.js? ? Winアプリ?
14.
#devsumi #devsumiC MVVMCross ? MVVMをサポートするライブラリ ? https://github.com/MvvmCross/MvvmCross ?
Xamarin専用ではない ? もちろん必須というわけでもない ? MVVM以外にも便利な機能あり
15.
#devsumi #devsumiC MVVMCrossの導入 ? NuGetでインストール ? MVVMCross.HotTuna.StarterPack ?
ちょっと修正 ? App1.Core → App1 ? ToDoに書かれてることをやる (一部間違ってるところもあるので注意)
16.
#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!"; }); } }
17.
#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();
18.
#devsumi #devsumiC DataBinding.Droid ? axml に書く <EditText ~略~ local:MvxBind="Text
Hello" /> <TextView ~略~ local:MvxBind="Text Hello" /> <Button ~略~ local:MvxBind="Click ClickCommand"/>
19.
#devsumi #devsumiC MVVMCross.Plugins ? コードでよく使うのにプラットフォームで違うものたち カラー ブラウザー起動 メール起動 ファイルアクセス Sqlite その他いろいろ http://mvvmcross.com/docs のPLUGINSの項 Mvx.Resolve<IMvxWebBrowserTask>().ShowWebPage("http://yahoo.co.jp/");
20.
#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}}"
21.
#devsumi #devsumiC Xamarin.Forms ? ビューも共通化できる ? XAMLっぽい ?
それに慣れてる人には扱いやすい(かも) ? DependencyService ? 共通部からプラットフォーム依存の機能を呼ぶ ? https://developer.xamarin.com/guides/xamarin-forms/dependency-service/ ? デザイナーがない! ? そろそろ?
22.
#devsumi #devsumiC Xamarinを使った感想 ? ViewModelとModelは共通化できた ? データ処理エンジンはPCLにして共通化 ?
同じDLLがAzure、スマホ、Windowsで動いている ? C#好き的には捗る ? Objective-C/SwiftやJavaでの開発になれているんであればわざわざC#をマス ターするってのはどうなんだろう ? Xamarin.Formsはプロトタイプ開発時に便利だった
23.
#devsumi #devsumiC Xamarin社のサービス ? Xamarin Insights ?
Azure Application Insightsみたいなもの(だと思う) 今はGoogleアナリティクスを使っている (ちなみに、Azure上のWeb AppはNew Relic) ? Xamarin Test Cloud ? いろいろなデバイスでのテスト
24.
#devsumi #devsumiC ご清聴ありがとうございました。 JXUGC #11 Xamarin
ハンズオン大会 http://jxug.connpass.com/event/27329/ 2016/03/26(土) 会場未定(品川?)
Download