嗚呼、素晴らしき哉 MonoTouch

108
嗚嗚 嗚嗚嗚嗚嗚嗚 MonoTouch

description

2010年9月3日、福井高専で行われた「iPhoneアプリ開発勉強会」での資料です。

Transcript of 嗚呼、素晴らしき哉 MonoTouch

Page 1: 嗚呼、素晴らしき哉 MonoTouch

嗚呼、素晴らしき哉

MonoTouch

Page 2: 嗚呼、素晴らしき哉 MonoTouch

中西 孝之 @ アイジュピタ hIDDEN_xv ( なかにし )

iPhone アプリ ウィンドチャイム cornering force! i 花火

iPad アプリ けいさんカード ( 予 )

Page 3: 嗚呼、素晴らしき哉 MonoTouch

※ 講師の方々の iPhoneアプリを買っていただけ

ると喜びます

Page 4: 嗚呼、素晴らしき哉 MonoTouch

※ もちろん強制ではございません

Page 5: 嗚呼、素晴らしき哉 MonoTouch

よろしくお願いします。

Page 6: 嗚呼、素晴らしき哉 MonoTouch

アジェンダ はじめに デモ MonoTouch のおすすめポイント MonoTouch のいま

Page 7: 嗚呼、素晴らしき哉 MonoTouch

はじめにの前に

Page 8: 嗚呼、素晴らしき哉 MonoTouch

謝辞@monobyte さん@masatoshisw20 さん@jun1s さんNovell MonoTouch チーム

Page 9: 嗚呼、素晴らしき哉 MonoTouch

はじめに

Page 10: 嗚呼、素晴らしき哉 MonoTouch

世界一開発効率の高いプログラミング言語

Page 11: 嗚呼、素晴らしき哉 MonoTouch

世界一開発効率の高いプログラミング言語

(hIDDEN 調べ 2010.8)

Page 12: 嗚呼、素晴らしき哉 MonoTouch

C#

Page 13: 嗚呼、素晴らしき哉 MonoTouch
Page 14: 嗚呼、素晴らしき哉 MonoTouch

C#

Page 15: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch

Page 16: 嗚呼、素晴らしき哉 MonoTouch

認知度アンケートでもとってみな

Page 17: 嗚呼、素晴らしき哉 MonoTouch

原メソッド

Page 18: 嗚呼、素晴らしき哉 MonoTouch

スライドの途中に自分への指示を書いておく手法

- とちぎ Ruby 会議 2009

Page 19: 嗚呼、素晴らしき哉 MonoTouch

オレがアシストしてやるぜー

Page 20: 嗚呼、素晴らしき哉 MonoTouch

マジ猿

Page 21: 嗚呼、素晴らしき哉 MonoTouch

うるせー!

マジ猿

Page 22: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch

Page 23: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch

MonoDevelop

Mono Framework

Page 24: 嗚呼、素晴らしき哉 MonoTouch

Mono プロジェクト

Page 25: 嗚呼、素晴らしき哉 MonoTouch

C# 3.0

.NET Framework 3.5

iPhoneSDKライブラリ

.NET Framework

ライブラリ

Page 26: 嗚呼、素晴らしき哉 MonoTouch

最大の武器は

Page 27: 嗚呼、素晴らしき哉 MonoTouch

開発スピード

Page 28: 嗚呼、素晴らしき哉 MonoTouch

ここでみなさんにデモをお見せしろ

Page 29: 嗚呼、素晴らしき哉 MonoTouch

デモ

Page 30: 嗚呼、素晴らしき哉 MonoTouch

ヘッダファイルとかマジ F○○kされちまえばいいのにな!

Page 31: 嗚呼、素晴らしき哉 MonoTouch

おすすめポイント

Page 32: 嗚呼、素晴らしき哉 MonoTouch

.NET のクラスライブラリ

Page 33: 嗚呼、素晴らしき哉 MonoTouch

System.Collections.Generics.*System.Linq.*System.Runtime.Serialization.*System.Net.*System.Xml.*System.Drawing.*System.MathSystem.StringSystem.Console ...

Page 34: 嗚呼、素晴らしき哉 MonoTouch

class GameResult{ public int Score; public DateTime Date;}

var results = from r in GameResult.All where r.Score > 10000 orderby r.Date descending select r;

Linq

Page 35: 嗚呼、素晴らしき哉 MonoTouch

using ( MailMessage message = new MailMessage() ) { message.Subject = "subject"; message.Body = "mail body"; message.From = "[email protected]"; message.To.Add( "[email protected]" ); message.Attachments.Add( new Attachment( "attach.png" ) ); SmtpClient smtp = new SmtpClient( "smtp.me.com", 25 ); smtp.Send( message ); }

SMTP

Page 36: 嗚呼、素晴らしき哉 MonoTouch

シリアライズDataClass data;

FileStream stream = new FileStream( "data.xml", FileMode.Create, FileAccess.Write );XmlSerializer s = new XmlSerializer( typeof( DataClass ) );s.Serialize( stream, data );stream.Close();

Page 37: 嗚呼、素晴らしき哉 MonoTouch

フォーマッティングint all = 10;int count = 3;

String.Format("{0}回中の {1}回 ", all, count);String.Format("{1} times in {0}", all, count);

Page 38: 嗚呼、素晴らしき哉 MonoTouch

正規表現Regex regex = new Regex( "\d\d\d-\d\d\d\d" );Match match = regex.Match( "915-0092 福井県越前市 " );if ( match.Success ){

Console.WriteLine(match.Groups[0].Value);}

Page 39: 嗚呼、素晴らしき哉 MonoTouch

ガベージコレクションタイプセーフ

静的バインディングetc

Page 40: 嗚呼、素晴らしき哉 MonoTouch

むやみにデザパタとかも適用したくなる

Page 41: 嗚呼、素晴らしき哉 MonoTouch

iPhoneSDK のバージョンアップに迅速に追従

Page 42: 嗚呼、素晴らしき哉 MonoTouch

このへんで 20 分経過の予定だが

Page 43: 嗚呼、素晴らしき哉 MonoTouch

ちなみに、

Page 44: 嗚呼、素晴らしき哉 MonoTouch

MonoTouchPersonal Edition

Page 45: 嗚呼、素晴らしき哉 MonoTouch

$399(1 年間のアップデート )

Page 46: 嗚呼、素晴らしき哉 MonoTouch

\33,750

Page 47: 嗚呼、素晴らしき哉 MonoTouch

相変わらずの

Page 48: 嗚呼、素晴らしき哉 MonoTouch

円高\ (^o^) /

Page 49: 嗚呼、素晴らしき哉 MonoTouch

追加投資だけど、

Page 50: 嗚呼、素晴らしき哉 MonoTouch

最大の武器は

Page 51: 嗚呼、素晴らしき哉 MonoTouch

開発スピード

Page 52: 嗚呼、素晴らしき哉 MonoTouch

おまえが 1 コのアプリを一生懸命作っている間に、おれはふたつリリースし

てやるッ!

Page 53: 嗚呼、素晴らしき哉 MonoTouch

元は取れます!

Page 54: 嗚呼、素晴らしき哉 MonoTouch

太鼓持ちばっかりじゃ能がないだろう

Page 55: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch のネガな部分を少しだけ ...

Page 56: 嗚呼、素晴らしき哉 MonoTouch

アプリサイズがちょっと大きい

Page 57: 嗚呼、素晴らしき哉 MonoTouch

空アプリで約 4.7MB

Page 58: 嗚呼、素晴らしき哉 MonoTouch

3G 回線で DL できるサイズの上限を緩和(2010 年 2 月 )

Page 59: 嗚呼、素晴らしき哉 MonoTouch

CPU ・メモリといったリソースを多めに消費

Page 60: 嗚呼、素晴らしき哉 MonoTouch

実用上十分なパフォーマンスを発揮

Page 61: 嗚呼、素晴らしき哉 MonoTouch

MonoDevelop に文字化け

Page 62: 嗚呼、素晴らしき哉 MonoTouch

最初の設定で対処可能

Page 63: 嗚呼、素晴らしき哉 MonoTouch

MonoDevelop で日本語入力不可

Page 64: 嗚呼、素晴らしき哉 MonoTouch

orz

orz

Page 65: 嗚呼、素晴らしき哉 MonoTouch

バージョンアップに期待

Page 66: 嗚呼、素晴らしき哉 MonoTouch

MonoTouchのいま

Page 67: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch のリリース以降、 Mono Framework とMonoDevelop のアップ

デートが盛んらしい

Page 68: 嗚呼、素晴らしき哉 MonoTouch

MonoDroid beta1 out

Page 69: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch に死角なし

Page 70: 嗚呼、素晴らしき哉 MonoTouch

しかし!

Page 71: 嗚呼、素晴らしき哉 MonoTouch

Apr. 8th, 2010

Page 72: 嗚呼、素晴らしき哉 MonoTouch

Applications may only use Documented APIs in themanner prescribed by Apple and must not use orcall any private APIs. Applications must be originallywritten in Objective-C, C, C++, or JavaScript asexecuted by the iPhone OS WebKit engine,and only code written in C, C++, and Objective-Cmay compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIsthrough an intermediary translation orcompatibility layer or tool are prohibited).

- iOS SDK Agreenment

Page 73: 嗚呼、素晴らしき哉 MonoTouch

Applications may only use Documented APIs in themanner prescribed by Apple and must not use orcall any private APIs. Applications must be originallywritten in Objective-C, C, C++, or JavaScript asexecuted by the iPhone OS WebKit engine,and only code written in C, C++, and Objective-Cmay compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIsthrough an intermediary translation orcompatibility layer or tool are prohibited).

- iOS SDK Agreenment

Page 74: 嗚呼、素晴らしき哉 MonoTouch

Flash 潰しのとばっちりだろう JK

Page 75: 嗚呼、素晴らしき哉 MonoTouch

ギギギ

Page 76: 嗚呼、素晴らしき哉 MonoTouch

公式リリース

Page 77: 嗚呼、素晴らしき哉 MonoTouch

意訳

Page 78: 嗚呼、素晴らしき哉 MonoTouch

でも MonoTouch は生きてるよ!

Page 79: 嗚呼、素晴らしき哉 MonoTouch

中西 孝之 @ アイジュピタ hIDDEN_xv ( なかにし )

iPhone アプリ ウィンドチャイム cornering force! i 花火

iPad アプリ けいさんカード ( 予 )

Page 80: 嗚呼、素晴らしき哉 MonoTouch

中西 孝之 @ アイジュピタ hIDDEN_xv ( なかにし )

iPhone アプリ ウィンドチャイム cornering force! i 花火

iPad アプリ けいさんカード ( 予 )

Page 81: 嗚呼、素晴らしき哉 MonoTouch

中西 孝之 @ アイジュピタ hIDDEN_xv ( なかにし )

iPhone アプリ ウィンドチャイム cornering force! i 花火

iPad アプリ けいさんカード ( 予 )

Page 82: 嗚呼、素晴らしき哉 MonoTouch

中西 孝之 @ アイジュピタ hIDDEN_xv ( なかにし )

iPhone アプリ ウィンドチャイム cornering force! i 花火

iPad アプリ けいさんカード ( 予 )

Page 83: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

3 月

Page 84: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

3 月4 月

Page 85: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

cornering force! 開発完了Ready for Sale!

3 月4 月

5 月

Page 86: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

cornering force! 開発完了Ready for Sale!

規約を Agree

3 月

5 月

4 月

Page 87: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

cornering force! 開発完了Ready for Sale!

規約を Agree

iPhone4 発売iOS4 Agreenment 発効

3 月

5 月

6 月

4 月

Page 88: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

cornering force! 開発完了Ready for Sale!

規約を Agree

iPhone4 発売iOS4 Agreenment 発効

i 花火 開発完了Ready for Sale!

3 月

5 月

7 月6 月

4 月

Page 89: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

cornering force! 開発完了Ready for Sale!

規約を Agree

iPhone4 発売iOS4 Agreenment 発効

i 花火 開発完了Ready for Sale!

アプリのアップロードAppLoader に限定

3 月

5 月

7 月

8 月

6 月

4 月

Page 90: 嗚呼、素晴らしき哉 MonoTouch

cornering force!ロジックの実装完了

Apr. 8th, 2010魔の規約変更

cornering force! 開発完了Ready for Sale!

規約を Agree

iPhone4 発売iOS4 Agreenment 発効

i 花火 開発完了Ready for Sale!

アプリのアップロードAppLoader に限定

i 花火 1.1 アップデート

Ready for Sale!

3 月

5 月

7 月

8 月

6 月

4 月

Page 91: 嗚呼、素晴らしき哉 MonoTouch

MonoTouch は生きてるよ!

Page 92: 嗚呼、素晴らしき哉 MonoTouch

しかしこれを頼むと次からApple にマークされるという危

険も伴う、諸刃の剣。 顧客にはお薦め出来ない。

Page 93: 嗚呼、素晴らしき哉 MonoTouch

それでも MonoTouch は生きてるよ!

Page 94: 嗚呼、素晴らしき哉 MonoTouch

Unity とかPhoneGap とかTitanium とか

Page 95: 嗚呼、素晴らしき哉 MonoTouch

Enterprise配布ならゴニョゴニョとか

Page 96: 嗚呼、素晴らしき哉 MonoTouch

戦いはまだまだ続くとか

Page 97: 嗚呼、素晴らしき哉 MonoTouch

Professional iPhone Programmingwith MonoTouch and .NET/C#

(Wrox Programmer to Programmer)

Page 98: 嗚呼、素晴らしき哉 MonoTouch

おまけ

Page 99: 嗚呼、素晴らしき哉 MonoTouch

iPhone界隈でのAR

Page 100: 嗚呼、素晴らしき哉 MonoTouch

ちょっとノウハウを貯めつつあるので、 AR の話をすこしだけ

Page 101: 嗚呼、素晴らしき哉 MonoTouch

AR:拡張現実感主に、カメラで撮影している映像に情報をオーバーレイさせる

Page 102: 嗚呼、素晴らしき哉 MonoTouch

マーカーなどを画像認識して、AR合成をするタイプの話です

Page 103: 嗚呼、素晴らしき哉 MonoTouch

ARToolKit

現在の AR の定番 2 次元バーコードのようなマーカー リアルタイムに向く情報量・処理コスト ラブプラス i IKEA もう枯れた技術

Page 104: 嗚呼、素晴らしき哉 MonoTouch

Haar検出@OpenCV

画像検出 お手本画像から、最初に学習 顔認識など 検出時間がちょっとかかる メモリはそれほど消費しない うまく学習データを作るのが難しい

Page 105: 嗚呼、素晴らしき哉 MonoTouch

Fern特徴点検出@OpenCV 画像検出 お手本画像から、最初に学習 特徴点を検出してマッピング 検出が早い

1 フレーム 100ms未満 メモリ馬鹿喰い 改良版を実装の予定

Page 106: 嗚呼、素晴らしき哉 MonoTouch

PTAM:マーカーレス AR

次世代 AR の大本命 リアルタイムに、映像から特徴を抽出 3D 的に空間認識を行う 平面や壁の認識 youtube のデモは必見

Page 107: 嗚呼、素晴らしき哉 MonoTouch

ご清聴ありがとうございました

Page 108: 嗚呼、素晴らしき哉 MonoTouch

ご清聴ありがとうございました

ご清聴ありがとうございました