スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iPhoneリモートはじめました。

iPhone用リモートアプリはじめました。
おもにTwitterで開発記を書いてましたが、せっかくなんでブログでもいろいろ書いてみたいと思います。

完成予定のリモートアプリの概要をまず。

■表面的な概要
・独自方式のリモートデスクトップアプリ(VNCやRDPとは互換性なし)
・Mac、Windows両対応
・部分最大30fpsの高速画面更新
・44.1kHzステレオの高音質低遅延な音声転送
・AES128bitの暗号化通信
・マルチディスプレイ環境への対応
・画面上でカーソルを動かすトラックパッドモード、Safariのようにタップした場所でクリックされるタッチスクリーンモードの2通りの操作方法
・iPhoneのIMEを使って文字を入力する方法、キーボードの入力をそのままPCに伝える方法の2通りの入力方法
・shift、alt、controlといった代表的な修飾キーや、F1~F12、tab、esc、半角キーなどの特殊キーが入力可能

といった具合になっています。
基本的にRDPアプリにありがちな機能をほぼ網羅しているはずです。

■技術的な細かいこと
・画面キャプチャーはWindowsではBitBlt、MacではCGDisplayを使用しています。
 ・Windowsはすべてのレイヤーをキャプチャーするので、高速キャプチャー時、PC側のカーソルが点滅します。
 ・MacはOpenGLによるキャプチャーの方が数段高速に動作しますが、OSX Lionで使用できなくなりました。
・3G、WiFi両対応ですが、回線の応答速度の都合上3Gでは部分最大7fps程度が限度です。
・部分最大30fpsは画面全体が30fpsでキャプチャーできる性能があること、iPhoneとPC双方で30fpsで処理しきれる範囲である必要があります。(PCとiPhoneのハード性能の向上で30fpsがでやすくなります。)
・画像形式にはjpegを利用しています。(内部にはRGB565のオプションが残っていますが。。。)
 ・サーバー側ではlibjpeg-turboを、クライアント側ではARM NEONを使用できるように独自に改造したlibjpegを使用しています。
 ・画質は4段階用意しています。(画質20~80)
 ・グレースケールはありません。
 ・動画性能の向上のために、動きの強い部分は解像度を半減させています。負荷低減により、ウィンドウのドラッグなどもスムーズに表示されます。
 ・広範囲の30fpsはこの機能によるところが大きいですが、オフにすることもできます。性能によりますが、オフの場合でも20fps程度はだすことができます。
・音声はiRemoteで使った携帯電話用ADPCMコーデックをそのまま利用しています。
 ・AACより独自でADPCMをエンコード、デコードした方が低遅延で動作するようです。
 ・内部ではPCMをストリーミング再生しています。
 ・モノラル、ステレオはもちろん、音質も11kHz、22kHz、44kHzと変更できます。
・タッチスクリーンモードはiPhoneでよくみるUIScrollViewとほぼ同様の挙動をします。
 ・UIScrollViewは動作重かったので、OpenGLを使い挙動を極力似せた独自のViewを使用しています。
・トラックパッドモードではカーソルがPC側カーソルと同じ画像がiPhone側でも表示されます。
 ・カーソルの動作は指の動く速度により加速度がかかったような動きをします。
・操作方法によらず、タップでクリック、ダブルタップでダブルクリック、ロングタップで右クリック、タップからのパン操作でドラッグ、ピンチアウトで拡大、ピンチインで縮小です。
・ホイールの動作は2本指パンでは動作しません。
 ・ツールバーのホイールボタンを押すことでホイール専用の操作モードになります。
 ・ホイールモード中は指の移動量がそのままホイール回転量になります。(指にスクロールが追従します。)

いろいろ書きましたが、独自満載でえらいことになってます。
ただし、操作方法、表示はiPhoneらしさということを最重要に考えて作っているので、いうほど独自性は感じ無いはずです。ツールバーもオーソドックスに下部配置でボタンも5つしかありません。ごちゃごちゃとボタンだらけだったり、iPhoneでは見慣れないような仕組みを使ってツールバーを出し入れしたり、複雑なジェスチャーをつけたりはしないようにしています。

そんなこんなで目指すところは、最高にオーソドックスでありながらあらゆることが簡単にできる。です。

進捗状況は現在70%程度で、完成は11月下旬、公開は12月程度を予定しています。
今後はちょくちょくブログで各機能について書いていきますんで、どうぞよろしくお願いします~。

コメントの投稿

非公開コメント

Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
metal_tsun@yahoo.co.jp

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。