Introduction of Xamarin
2013.7.15 jaghama #27
自己紹介
- amay077
- 位置情報エンジニア
- C++ → VB → .NET → Java, Obj-C …
- Android, iOS …
- 名古屋通勤→在宅(豊橋)
- HexRinger というアプリ作りました
開発会社のよくある風景
- クラ/サバ、Webシステムがメイン
- 言語は Java,.NET,PHP とか
- Javascript 分かりません(jQueryなら…)
- Objective-C やりたくない
-
当然 Mac などない(あっても数台)
だが案件は降ってくる
- 「某在庫システム、スマホ対応したいんだけど」
-
もち、iPhone, Android 両対応ね
-
言い忘れてたけどタブレットでも使うから
- あ、今後の為に Win8 も考慮しといて
- XP で動いてる現行システムもメンテ続くから
どうします?
----------ガチネイティブ----------
- 開発n倍、メンテもn倍で死
- そもそも Obj-C できる人いない
----Titanium とか PhoneGap----
-
Javascript できません
- Eclipse や Visual Studio 並みの開発環境がないと…
Xamarin(ざまりん)!
- Mono (.NET Framework の Open Source 版)を作った人たちの会社とそのプロダクト
- Xamarin.iOS : MonoTouch と呼ばれていたもの
- Xamarin.Android : Mono for Android と呼ばれ(ry
.NET(C#) で Android/iOS アプリが開発できる!
いつもオチに使われるので先に言っとく
有償です!
しかも割と Expensive
Plan Buisiness : $999/year/platform/developer
けど開発&メンテがN倍に比べれば安いもの
あと、先に幻想をぶち壊しておく
"Write once, run anywhere"
ではありません
「諸君らの愛してくれた Flash(Air) は死(にそう)だ!なぜだ!」
Xamarin が提供するモノ
------------- API --------------
- iOS, Android で動く .NET の基本的クラスライブラリ
- iOS API の .NET ラッパー
- Android API の .NET ラッパー
------------ 開発ツール ------------
- Xamarin Studio
- Visual Studio の Add-in
クロスプラットフォーム化できるところとできないところ
-----できる-----
- 通信処理周り
- コアロジック、アルゴリズム
- いわゆる MVC の Model部
-----できない-----
- UI周り(Activity vs ViewController)
- デバイスAPI周り(カメラ、GPS、アドレス帳呼び出しなど)
それで十分
- "Sharing up to 80% code for iOS, Android and Windows platforms, a retail app case study"
via http://xamarin.com/evolve/2013#session-shy07zqsoz
- 「慣れれば8割くらいのコードを共有化できる」
via http://ufcpp.wordpress.com/2013/02/24/xamarin-2-0/
既存.NETライブラリも再利用できる
via http://www.delphifeeds.com/go/t/105853
プラットフォーム依存部はただのラッパ
- クラス名やアプリケーションライフサイクルはプラットフォームのそれそのもの
- つまり「つぶし」が効く
- Objective-C というヘンテコ言語を無視して、iOSアプリの仕組みを学べる
強力な開発環境
-----Xamarin Studio-----
- 実用していてまったく問題ないレベル
- 強力なデバッグ機能(ブレーク、変数のウォッチ等)
- 本家を超えるレイアウトエディタ
- Visual Studio互換のプロジェクトファイル
-----Visual Studio Add-in-----
- Visual Studio で Android/iOSアプリ開発を実現
- Visual Studio の機能がそのまま使える
- (iOSアプリのビルドは Mac をサーバにして行う)
まとめ
- 複数プラットフォーム間のムリのないコード共有
(Windows既存システムとも)
- プラットフォーム固有部は潔く郷に従う
- 最強の開発環境が使える
↓
クロスプラットフォーム開発のベストプラクティス
「Xamarin」
ありがとうございました
this presentation is created by
slid.es