hIDDEN bLOG » IT系

2010/9/9 木曜日

iPhoneアプリ開発勉強会 2010/9/3 in 福井高専

このエントリをはてなブックマークに追加
Filed under: .NET,iPhoneアプリ — @ 13:52:52

2010年9月3日、母校である福井高専の一室をお借りしてiPhoneアプリ開発勉強会が開催され、そこでMonoTouchのセッションを担当してきました。

主催者の@monobyteさん、ありがとうございました。

セッション内容

嗚呼、素晴らしき哉 MonoTouch<p><em>There is embedded content here that you cannot see. Please <a href="http://hidden.vis.ne.jp/blog/?p=569">open the post in a web browser</a> to see this.</em></p>
View more presentations from hIDDENxv.

発表したのはMonoTouchの紹介と簡単なデモ。それとC#ならではのおすすめポイントを数点。

参加者の中には割とVisualStudioやC#経験者がいらっしゃったので、C#の開発効率の良さがiPhoneでも発揮できる実感を得ていただけていれば嬉しいなと。

デモ

XcodeとMonoTouchで、ボタンを押した回数をカウントする簡単なアプリのデモを作成しました。
途中Interface Builderの操作で、画面解像度が低いがために見づらくなってしまったのが申し訳なかったです。

ポイントは、やはりInterfaceBuilderをつかった開発リズムがXcodeと比べて格段にいいこと。
ヘッダファイルなんて書きたくありません。

当日作ったデモアプリは、以下からダウンロードできます。
Xcode版のソース ダウンロード
MonoTouch版のソース ダウンロード

またMonoTouchのチュートリアルはこちらの記事でも紹介しているので、参考までにどうぞ。
手前味噌を重ねると、MonoTouchカテゴリの記事もよろしくです。

おまけ

最後におまけで紹介したAR関連、参考リンクをどうぞ。

ARToolKit

「攻殻機動隊」「電脳コイル」の世界を実現! – 工学ナビ
http://kougaku-navi.net/ARToolKit.html

ARToolKit
http://www.hitl.washington.edu/artoolkit//ARToolKit.html

Haar検出@OpenCV

OpenCVで学ぶ画像認識 – gihyo.jp
http://gihyo.jp/dev/feature/01/opencv/

OpenCV.jp
http://opencv.jp/

Fern特徴点検出検出@OpenCV

Fern-ベースの点分類器,平面物体検出器 – 毛の生えたようなもの
http://d.hatena.ne.jp/gomi-box/20100523/1274614584/

【AR】はちゅねにネギでたたいてもらった【MMD】‐ニコニコ動画
http://www.nicovideo.jp/watch/sm11781115/

PTAM:マーカーレスAR

あのマーカレスARの研究がついにソース公開!
http://kougaku.blog28.fc2.com/blog-entry-317.html

マーカーレスAR技術「PTAM」をDVカメラで動作させてみる
http://turi2.net/cont/program/ptam.html

PTAMソース
http://www.robots.ox.ac.uk/~gk/PTAM/

2010/8/25 水曜日

iPhoneマガジンVol.5にウィンドチャイムが掲載!

このエントリをはてなブックマークに追加
Filed under: iPhoneアプリ — @ 17:10:47

 現在最新刊発売中のiPhoneマガジンVol.5に、iPhoneアプリ「ウィンドチャイム」が掲載されてました。
img_0374.jpg

誌面なかほどの、楽器アプリ特集のひとつに取り上げてもらってました。
ほかにもiPhone4用ケース特集その他、なかなか興味深い記事が...

これで売上もテコ入れができるといいなあとか。
あと「i花火」、「cornering force!」もどうぞご贔屓に!

さらに...

先日はじめてお会いしたSeasonsさんの自作壁紙が、偶然にも同じ雑誌に掲載されていたことを発見。
なんという、
なんという。

2010/4/25 日曜日

Google Hackathon for Chrome Extension

このエントリをはてなブックマークに追加
Filed under: IT系 — @ 1:33:59

4月24日土曜日、jig.jpの一室を借りて開催された「Google Hackathon for Chrome Extension」に参加してきた。

ここで制作したのは、トイレ在室管理Extensionである「カワヤ」。
ネタ自体は、チームラボの山本氏が開発・LTされた「アクトトイレ」をMPM。実現方法として、アクトトイレとは別のアプローチを模索してみた。

プレゼン資料はこちら

この記事では、プレゼン中でフォローしきれなかった技術サイドのあたりを解説してみる。

iPhone@トイレ

このChrome Extension「カワヤ」はトイレにiPhoneを設置しておき、iPhoneのカメラで撮影した画像からトイレ内の人の有無を検出する。
具体的には、UIImagePickerによりカメラビューを画面に表示しておき、定期的(1秒おき)にスクリーンショットを取得、その画像を10ピクセルおきにスキャンして明るさ値の平均値を求める。その明るさが一定以上か以下か、つまり明るいか暗いかを人の有無とみなし、それを特定のサーバに送信する。
iphone.PNG

サーバ@クラウド

当初GAEで組めたらと思っていたが、とりあえずPHPで。iPhoneから通知されたON/OFF情報を蓄積し、Extensionからのリクエストに答えるだけの簡単なお仕事です。
cloud.PNG

Extension@Chrome

ブラウザアクションのポップアップで実装。
setIntervalでタイマー動作させた関数内で、XMLHttpRequestによりサーバから情報を取得する。
あとはこれに基づいて画像表示を差し替えるだけの簡単な(ry

さてこれだけだとつまらないので、画像表示にトランジションを適用しよう。
ちなみに画像表示は、せっかくなのでcanvasを使ってみた。

1
2
3
4
5
6
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var img = new Image();
img.src="KAWAYA.png"
ctx.globalAlpha = 0.2;
ctx.drawImage(img, 0, 0);

ctx.globalAlphaというプロパティに0.2という値を設定しているのだが、これにより画像を半透明で表示することができる。
ある画像が表示されている上に、新しい画像をAlpha値0.2で数回上書きしてやることで、フェードのアニメーションが簡単に実現できる。
これは、アレなときに視聴いただいた綺麗な画像のスライドに使用している。下はイメージ。f_transition.jpg

さらにこの綺麗な画像は、こちらのサンプルを参考にFlickrから取得している。

また、トイレットオープンの際のアニメーションも半透明描画を適用しており、残像のエフェクトでハッタリをカマすことに成功している。
t_transition.png

最後に

運営等にご尽力いただいた@shoitoさん、@shirokuro331さん、遠方よりはるばる参加してくださった京都GTUGのお二方、快く社屋を貸してくださったjig.jpのみなさん、ハッカソンに関わったすべてのみなさん、本当にお疲れ様でした。今回もまた得るものの多い一日でした。ありがとうございました。

2010/4/14 水曜日

MonoTouchでビューのアニメーション

このエントリをはてなブックマークに追加
Filed under: .NET,iPhoneアプリ,MonoTouch — @ 16:42:41

今回はUIViewのアニメーション機能を使ってみる。

前回のプロジェクトに、UIImageViewへのアウトレット接続と、アニメーションのトリガーを与えるためのボタン配置・アクションの記述までを行う。
アウトレット名をimageView、アクション名をAnimationTouchedとしておく。
mt04-01.png

mt04-02.png
mt04-03.png

続いてアニメーションのコードを記述。
AnimationTouchedメソッドを実装するのだが、ここはMonoDevelopのコード補完機能を使うのが吉。冒頭の「partial(スペース)」までをタイプした時点で候補がドロップダウン表示されるので、適切に選んでEnter。
mt04-04.png

1
2
3
4
5
6
7
8
9
10
11
using System.Drawing;       
 
partial void AnimationTouched( UIButton button ) 
{ 
    UIView.BeginAnimations( "" ); 
    UIView.SetAnimationDuration( 1 );               
 
    this.imageView.Frame = new RectangleF( 100, 400, 50, 30 );               
 
    UIView.CommitAnimations(); 
}

上記のコードをタイプして実行。
(RectangleFの名前空間が見えていない可能性があるので、その場合はソース冒頭にusingの追加を。)
ボタンをタップすると、画像がずわっと下のほうへ縮むはず。
mt04-05.png

UIView.BeginAnimations()からUIView.CommitAnimations()までに記述した内容を、アニメーションする。
内部で記述しているのはたった2項目。
UIView.SetAnimationDuration()でアニメーションを行う時間、この場合は1秒間に指定する。
動かしたい対象はimageView。それのFrame属性をコードの通り設定している。
これにより、imageViewは現在位置から指定された位置まで、1秒間かけてスムーズにアニメーションしてくれる。

非常に簡単にアニメーションできてしまった。

2010/4/11 日曜日

MonoTouchがんばれ

このエントリをはてなブックマークに追加
Filed under: MonoTouch — @ 13:27:22

iPhoneOS4.0にともなうライセンス条項改悪に伴って、MonoTouchの販売元であるNovellからリリースが発表されていた。
http://www.mono-project.com/newstouch/archive/2010/Apr-09.html

以下、意訳。

これは、NovellにおけるMonoTouchチームから、MonoTouchコミュニティへのアップデートです。

This is an update from the MonoTouch team at Novell to the MonoTouch community.

多くの方が、iPhone Developer Program規約の変更について、私たちにコンタクトをもってきました。私たちが秘密協定についてコメントできない間に、いくつかのポイントの解決について取り組みたいと思います。

Many have contacted us about reports on the changes in the iPhone Developer Program Agreement and while we can not comment on the specifics of a confidential agreement, we want to address some of the points that are being brought up.

私たちは、MonoTouchは感動的な価値をアップルのエコシステムにもたらすと信じています。

We believe that MonoTouch brings an impressive value to the Apple ecosystem.

MonoTouchのC言語によるランタイムは、ネイティブコードのパワーとアップルのiPhoneOS APIに、タイプセーフ、自動メモリ管理、そしてISO Common Language Infrastructureが長年もたらしたイノベーションであるさまざまな利益を統合します。

MonoTouch’s C-powered runtime blends the power of native code and Apple’s iPhoneOS APIs with type safety, automatic memory management, and other benefits that years of runtime innovation have delivered to the ISO Common Language Infrastructure.

私たちはアップルと連絡をとり、彼らの意思を明確にしようと試みています。4.0SDKの最終的なリリースの前に、多くの軌道修正の余地があると信じています。

We are reaching out to Apple for clarification on their intention, and believe there is plenty of room for course-correction prior to the final release of the 4.0 SDK.

MonoTouchのプログラミングモデルにより、C#開発者は、Objective-Cの開発者と同じコントロールとアクセス性でiPhonOS APIに触れる事ができます。

MonoTouch’s programming model exposes the iPhoneOS API to the C# language to give developers the same control and access that Objective-C developers get.

アップルの動機が技術的あるいはアップルツールチェインの使用を確実にすることを意図するなら、MonoTouchがSDKの条項を遵守するのにそれほど苦労はしません。MonoTouchはMac OS Xでのみ動作し、XCodeとiPhoneSDKにしっかりと統合します。MonoTouchによりビルドされたアプリケーションはネイティブアプリケーションであり、通常のネイティブアプリケーションからは見分けがつきません。またアップルの公式APIとのみリンクされ、厳密なテストスイートがiPhoneOSのABIとAPIに従っている事を保証しています。

If Apple’s motives are technical, or are intended to ensure the use of the Apple toolchain, MonoTouch should have little difficulty staying compliant with the terms of the SDK. MonoTouch runs only on Mac OS X, and integrates tightly with XCode and the iPhone SDK. Applications built with MonoTouch are native applications indistinguishable from native applications, only expose Apple’s documented APIs and uses a rigorous test suite to ensure that we conform to the iPhoneOS ABIs and APIs.

これらをふまえて、MonoTouchチームは、エンタープライズやAppStore配信のためiPhoneやiPad向けに開発されたアプリケーションに、いまでも興奮を覚えています。iPhoneOS 4.0をサポートするMonoTouchはまもなくです。

With this in mind, the MonoTouch team remains excited about the potential for Enterprise and AppStore-deployable applications developed for the iPhone and iPad. Support for iPhoneOS 4.0 on MonoTouch will be arriving soon.

MonoTouchチームがんばれ。Novell超がんばれ。

Pages: Prev 1 2 3 4 5 6 7 8 9 10 ...19 20 21 Next

HTML convert time: 1.030 sec. Powered by WordPress