xamarin 概要 at plus programming .net 勉強会 (2014/9/20)
DESCRIPTION
https://atnd.org/events/55564 第9回 Plus Programming .net 勉強会 Xamarin.iOS でデバイスを超えるプログラミング でご紹介した Xamarin 概要の資料です。TRANSCRIPT
Xamarin 概要
2014/9/20 Plus Programming .net 勉強会 #9Xamarin.iOS でデバイスを超えるプログラミング
エクセルソフト株式会社
Business Development Manager
田淵 義人
03-5440-7875 / 080-7015-3586
自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。非開発者。
• Xamarin でググれ
• Twitter, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。非開発者。
• Xamarin でググれ (と言いたいw)• でも「Xamarin 日本語」でググると私のブログが!!!
• Twitter, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
本セッションのゴール
お知らせ
• Xamarin についてイメージを掴んでいただくこと
• 出来ること出来ないことをご理解いただくこと
• Xamarin に興味を持っていただくこと
• 本日の資料は短縮版です。全部入りは以下をご覧ください。http://j.mp/xm201408
今までのアプリ開発
クロスプラットフォーム開発“no silver bullet”
Xamarin を使用した開発
Xamarin(ザマリン)“ネイティブ” アプリC# / .NETコード共通化
“ネイティブ”アプリ
• C# + .NET ランタイム
• ネイティブ UI
• ネイティブ “パフォーマンス”
C# / Visual Studio で開発
• async/await, LINQ, ラムダ式などの実装が使える
• Java, Objective-C, Swift を書く必要がない
• TFS, Resharper などのエコシステム
button.TouchUpInside += (s, e) => {message.Text = "Hello!";
};
from p in Table<Person> ()where p.ID == idselect p;
iOSAPI
100% 対応
AndroidAPI
100% 対応
.NET BCL (Mono)
• System.IO• ファイル操作の共通化
• System.NET• ネットワーク操作の共通化
• System.Linq• データ操作の簡素化、共通化
• System.XML• XML 操作の簡素化、共通化
• System.Threading• 上記全般もですが、非同期処理の恩恵
できること・できないこと FAQ
FAQ 0 • その T シャツかっこいい!• http://xamarin.com/prebuilt/sharp-shirt からサンプルプロジェクトをダウンロードしてビルドしてください。船便で Tシャツが届きます!
FAQ 1 • でも、お高いんでしょう?• はいw
• Mac が必須と聞いたんですが…• iOS アプリをビルドするのに Xcode が必要なんです。
• Visual Studio Express でも大丈夫?• VS は Pro 以上が必要です。
• Windows ストアアプリも対応してますか?• Visual Studio があるじゃない (Mac では無理ゲー)
• ネイティブの API はどれくらい使えるの?• 全部が C# から使えるようにラップされた API です。
• iOS SDK Beta には対応しているの?• Xamarin Alpha/Beta で対応し、iOS 正式版が出たら即日対応です。
• Android L Preview / wear は対応しているの?• 最新の Alpha 版で対応しています。
FAQ 2 • ネイティブで作ったライブラリは使えるの?• この後のセッションにご期待くださいw
• Binding して Xamarin 用 dll にする。• ネイティブライブラリを組み込んで P/Invoke や JNI 経由
• iOS Framework を Android で、Android の jar をiOS では使えません。
• Xamarin で作ったライブラリはネイティブで使えるの?• 使えません。
• NuGet は使えるの?• 使えます。Xamarin 専用の ComponentStore もあります。
• WinForm や WPF 用のライブラリは使えるの?• 基本的には使えないと思います。• Prism (Patern & Practice 製の Mvvm フレームワーク) は PCL 化されているので Xamarin でも使えます。
FAQ 3 • どれくらい共通化できるの?• 30%~60% くらいかと思います。
• OS 毎に開発するのは?• UI を定義する部分
• OS 固有の機能を実装する部分
•共通化できるのは?• ロジック (データベースへのアクセス、通信処理など) 部分
• 定義した UI に対してデータのやり取りをする部分
• Xamarin.Forms を使用するとベーシックな UI は共通化できます。
FAQ 4 •共有化はどうやってやるの?• Universal App (Shared
Project)
• PCL (Portable Class Library)• Profile に注意
• リンク参照
• MvvmCross などのフレームワーク
FAQ 5 •日本語の資料ってあるの?• ・・・• 鋭意努力します! ><• 英語ドキュメントは Xamarin が山のように用意していますので、ぜひご覧ください。
• サンプルが欲しいんですが?• Xamarin が山のように (ry なお、Apache 2.0 ライセンスなのでそのまま使っても大丈夫!
•書籍が欲しいんですが?• http://www.amazon.co.jp/exec/obidos/AS
IN/4822298345/
• この後の参考資料をご参照ください
参考資料
サンプル・ブログなど
• Xamarin.iOS サンプル• https://github.com/xamarin/monotouch-
samples
• Xamarin.Android サンプル• https://github.com/xamarin/monodroid-
samples
• Japan Xamarin User Group• http://j.mp/xm-jxug
• 田淵ブログ• http://ytabuchi.hatenablog.com/entry/toc
• Xamarin ブロググループ• http://j.mp/xm-htngrp
• Qiita Xamarin タグ• http://qiita.com/tags/xamarin
Xamarin.Forms について
• Build Insider インサイドXamarin(14) -Xamarin.Formsの基本構想と仕組み• http://www.buildinsider.net/mobile/insidexamarin/14
• Build Insider Xamarin逆引きTips 連載• http://www.buildinsider.net/mobile/xamarintips
• Xamarin.Forms ドキュメント(英語)• http://developer.xamarin.com/guides/cross-
platform/xamarin-forms/
• API ドキュメント(英語)• http://iosapi.xamarin.com/?link=N%3aXamarin.Form
s
• Xamarin.Forms サンプル (C#)• https://github.com/xamarin/xamarin-forms-
samples/tree/master/FormsGallery
• Xamarin.Forms サンプル (XAML)• https://github.com/xamarin/xamarin-forms-
samples/tree/master/XAMLSamples
開発OS 対象 OS IDE 必要なシステム
Windows
iOSVisual Studio
Windows• Windows 7 以上• Visual Studio 2010/2012/2013 Professional 以上(Express 未対応)• Xamarin.iOS (Xamarin 統合インストーラーに同梱)Mac• OS X Lion 10.8 以上• Xcode 5
Xamarin Studio 未対応
Android
Visual Studio
• Windows 7 以上• Visual Studio 2010/2012/2013 Professional 以上(Express 未対応)• J2SDK 1.6/1.7 32bit (Xamarin 統合インストーラーに同梱)• Android SDK, NDK (Xamarin 統合インストーラーに同梱)• Gtk# (Xamarin 統合インストーラーに同梱)• Xamarin.Android (Xamarin 統合インストーラーに同梱)
Xamarin Studio
• Windows 7 以上• J2SDK 1.6/1.7 32bit (Xamarin 統合インストーラーに同梱)• Android SDK, NDK (Xamarin 統合インストーラーに同梱)• Gtk# (Xamarin 統合インストーラーに同梱)• Xamarin.Android (Xamarin 統合インストーラーに同梱)
Mac
iOS Xamarin Studio• OS X Lion 10.8 以上• Xcode 5• Xamarin.iOS (Xamarin 統合インストーラーに同梱)
Android Xamarin Studio
• OS X Lion 10.7 以上• J2SDK 1.6/1.7• Android SDK, NDK (Xamarin 統合インストーラーに同梱)• Xamarin.Android (Xamarin 統合インストーラーに同梱)
評価版
http://xamarin.com/download
ご清聴ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞ[email protected] / 03-5440-7875Twitter: @ytabuchiBlog: http://ytabuchi.hatenablog.com/