Upload
yoshito-tabuchi
View
6.283
Download
2
Embed Size (px)
DESCRIPTION
第2回 Japan Xamarin User Group Conference 西日本編 https://atnd.org/events/57075 でのセッション資料です。(いつもと同じですw)
Citation preview
はじめに・Xamarin 概要
2014/11/8第2回 Japan Xamarin User Group Conference西日本編エクセルソフト株式会社
Business Development Manager
田淵 義人
03-5440-7875 / 080-7015-3586
JXUGのご紹介
• サイト• http://jxug.org
• Japan Xamarin User Group (JXUG)• 読み方ェ…
• コミュニティ概要• JXUG は 2014/2/18 に発足した Xamarin を愛する方のコミュニティです。
• 初心者の方が参加しやすく、上級者の方も気軽に情報交換できる場に出来ればいいなと考えています。
• 活動場所• http://www.facebook.com/groups/xm.jxug
• Twitter タグ• #JXUG
• 運営メンバー• 絶賛募集中です!• 手伝える方は [email protected] まで
facebook グループへのご参加お待ちしております。後、ロゴというかキャラクターが必要だと思うんですよー?JXUG のロゴ書いて頂ける方も募集中です。
本セッションのゴール
お知らせ
• Xamarin についてイメージを掴んでいただくこと
• 出来ること出来ないことをご理解いただくこと
• Xamarin に興味を持っていただくこと
• 今日のスライド
• アンケートにご協力ください。
• http://j.mp/jxugc2w-enq
自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。非開発者。
• Xamarin でググれ
• Twitter, SNS, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。開発者になりたい。
• Xamarin でググれ (と言ってみたいw)
• Twitter, SNS, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
はじめに・アンケート
アンケート • Xamarin 知ってますか?
• Xamarin 触ってみた方は?
•開発環境は? (Windows / Mac)
• モバイル開発経験は?
•個人として?業務として?
スマホ、タブレットが増えてるのでモバイルアプリ作成が必須ですぜ?っていう導入部分のデータが入ります(略
今までのアプリ開発
モバイル向けクロスプラットフォーム開発環境“no silver bullet”
何を使えばいいの?
• ネイティブ (Objective-C/Swift, Java)• Xcode, Android Studio/eclipse
• HTML5, CSS3, JS• Cordova (PhoneGAP, Monaca)
• Sencha Touch
• C++/Delphi• RAD Studio XE/Appmethod
• JS• Titanium
• ActionScript• Flash/AIR
ハイブリッド開発
共通化による最小限の機能
分厚いラッパー
リリースまでの日数
適切な UX かどうか?
App Generation
Xamarin(ザマリン)・ C# / .NET / Visual Studio・ “ネイティブ” アプリ・ コード共通化・ API 100% 移植
C# / .NET
C# で開発 • 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;
“ネイティブ” アプリ
“ネイティブ”アプリ
• .NET ランタイム
• ネイティブ UI / UX
• ネイティブ “パフォーマンス”
Mono Miguel de Icaza (ミゲル・デ・イカザ 1972年 - ) : GNOME、Mono の開発者
1999年 ミゲル氏、Helix Code 設立
2001年6月 Helix Code を Ximian(ジミアン) に社名変更し、Mono プロジェクト開始
2001年7月 Mono OSS 化
2003年8月 Novell が Ximian を買収。ミゲル氏は Novell 開発部門のバイスプレジデントに就任
2004年6月 Mono 1.0 リリース
2011年4月 Attachmate の Novell 買収に伴い、Mono 開発者のレイオフ実施
2011年5月 Xamarin 設立
2011年7月 Novell から Xamarin に Mono, MonoTouch, Mono for Android などが譲渡される
2013年2月 Xamarin 2.0 リリース
2014年5月 Xamarin 3.0 リリース
ミゲル・デ・イカザ (Wiki) http://j.mp/1p8kRjF | Mono (Wiki) http://j.mp/1vxsP5L
Windows API
iOSAPI
100% 対応
AndroidAPI
100% 対応
Xamarin.Android
http://www.buildinsider.net/mobile/insidexamarin/07
DEMO
コード共通化
.NET BCL (Mono)
• System.IO• ファイル操作の共通化
• System.NET• ネットワーク操作の共通化
• System.Linq• データ操作の簡素化、共通化
• System.XML• XML 操作の簡素化、共通化
• System.Threading• 上記全般もですが、非同期処理の恩恵
Xamarin を使用した開発
共有方法 • PCL• Visual Studio 2012 / Xamarin Studio 4.2 (要追加ライブラリ)
• PCL (Portable Class Library) - Xamarin 3 の新しいコード共有テクニック : XLsoft エクセルソフト• http://www.xlsoft.com/jp/products/xamarin/port
able_class_libraries.html
• Shared Project• Visual Studio 2013 Update 2 / Xamarin Studio
5.0• Shared Project - Xamarin 3 の新しいコード共有テクニック : XLsoft エクセルソフト• http://www.xlsoft.com/jp/products/xamarin/shar
ed_projects.html
• Xamarin.Forms• 後述
PCL
iOS Android
Windows RT
Shared Project
プロジェクトをリンクする
#if platform
Xamarin.Forms - 画面の共通化
UI “コード”の共通化
ビルド時にネイティブUI にマップ
XAML で書ける!(ただし手動)
Phone
API 100% 移植
API 100% 移植
• Xamarin.iOS• iOS 8.1 対応済み
• iOS SDK リリースと同日
• 次期 iOS SDK Beta と Xamarin.iOS Alpha/Beta で時期 iOS 対応アプリを開発可能
• Xamarin は iOS 8 に完全対応 - Xamarin でiOS 8 をさらに素晴らしく (紹介記事)
• Xamarin.Android• Android L Preview, Android wear は対応済み
• Lollipop API 21 は 2014/11/7 時点では未対応
• 今までは 1ヶ月~3ヶ月程してリリース
• Android L Developer Preview / Android Wear をサポート (紹介記事)
DEMO
最新機能・その他サービスhttp://www.xlsoft.com/jp/products/xamarin/xamarin_platform_previews.htmlhttp://www.xlsoft.com/jp/products/xamarin/introducing_xamarin_insights.html
Xamarin Android Player
• Virtual Box ベースの高速 Android エミュレーター• http://yutawatanabe.hatenablog.com/entr
y/xamarin-android-player-preview-install
Sketches • iOS, Forms などのリアルタイム実行環境• http://qiita.com/ytabuchi/items/22b616d7
558b41b4726c
• https://www.youtube.com/watch?v=v9vEhwomUEY&t=19m0s
最新の Yosemite 10.10 / Xcode 6.1 / Xamarin Studio 5.6.2 (Alpha)で動かない… 辛み…
Xamarin Profiler
•解析ツール
•未調査… すみません…
Xamarin Insights
• データ収集サービス
•多分お高いですw
Xamarin Test Cloud
• UI 自動テストサービス• ローカル版は Xamarin.UITest, Calabash
• お高いw
FAQ
FAQ 0 • C# T シャツかっこいい!• http://xamarin.com/prebuilt/sharp-shirt からサンプルプロジェクトをダウンロードしてビルドしてください。船便で Tシャツが届きます!
FAQ 1 • でも、お高いんでしょう?• はいw
• 学生向けの無料ライセンスが発表になりました!
•無料の STARTER というのがあると聞きました• http://xamarin.com/starter
• Mac が必須と聞いたんですが…• iOS アプリをビルドするのに Xcode が必要なんです。
• Visual Studio Express でも大丈夫?• VS は Pro 以上が必要です。
• Windows ストアアプリも対応してますか?• Visual Studio があるじゃない (Mac では無理ゲー)
FAQ 2 • ネイティブで作ったライブラリは使えるの?• Binding して Xamarin 用 dll にする。• ネイティブライブラリを組み込んで P/Invoke や JNI 経由• iOS Framework を Android で、Android の jar を
iOS では使えません。
• Xamarin で作ったライブラリはネイティブで使えるの?• 使えません。
• NuGet は使えるの?• 使えます。Xamarin 専用の ComponentStore もあります。
• WinForm や WPF 用のライブラリは使えるの?• 基本的には使えないと思います。• Prism (Pattern & 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 ライセンスなのでそのまま使っても大丈夫!
事例
NHK 紅白
フェンリル株式会社
http://biz.fenrir-inc.com/application_development/casestudy_app/nhk_kouhaku.html
ルナルナ 体温ノート
株式会社エムティーアイ 様
http://www.xlsoft.com/jp/products/xamarin/apps_mti.html
戦国RUN
読売テレビ/シリコンスタジオ 様
C# ゲーム エンジンParadox
評価版
http://xamarin.com/download
参考資料
デモで使用したサンプル
• iOS• SingleWordKeyboard
• http://developer.xamarin.com/samples/SingleWordKeyboard/
• Android• FindMyPhone
• http://developer.xamarin.com/samples/FindMyPhoneSample/
• XMLReading• Xamarin.Forms 版
• http://jp.xlsoft.com/demo2/xamarin/UniversalXMLReading.zip
• PCL 版• http://jp.xlsoft.com/demo2/xamarin/XMLReadi
ng.zip
Tasky • PCL• https://github.com/xamarin/mobile-
samples/tree/master/TaskyPortable
• Shared Project• https://github.com/xamarin/mobile-
samples/tree/master/Tasky
• Xamarin.Forms• https://github.com/xamarin/xamarin-
forms-samples/tree/master/Todo
サンプル・ブログなど
• Xamarin.iOS サンプル• https://github.com/xamarin/monotouch-samples
• Xamarin.Android サンプル• https://github.com/xamarin/monodroid-samples
• facebook グループ• https://www.facebook.com/groups/xm.jxug/
• JXUG サイト リンクページ• http://jxug.org/links.html
• 田淵ブログ• http://ytabuchi.hatenablog.com/entry/toc
• Xamarin ブロググループ• http://j.mp/xm-htngrp
• Qiita Xamarin タグ• http://qiita.com/tags/xamarin
Xamarin.Forms について
• Xamarin.Forms 概要• http://www.slideshare.net/amay077/xamarinforms
• 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.Forms
• 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 統合インストーラーに同梱)
まとめ
Xamarin(ザマリン)API 100% 移植“ネイティブ” アプリC# / .NETコード共通化
“ネイティブ”アプリ
• C# + .NET ランタイム
• ネイティブ UI
• ネイティブ “パフォーマンス”
iOSAPI
100% 対応
AndroidAPI
100% 対応
Xamarin を使用した開発
Xamarin.Forms - 画面の共通化
UI “コード”の共通化
ビルド時にネイティブUI にマップ
XAML で書ける!(ただし手動)
Phone
ご清聴ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞ[email protected] / 03-5440-7875Twitter: @ytabuchiBlog: http://ytabuchi.hatenablog.com/