ラベル java の投稿を表示しています。 すべての投稿を表示
ラベル java の投稿を表示しています。 すべての投稿を表示

2013年10月31日木曜日

ぱすわ〜ど帳、ぱすわ〜ど帳SAアップデート!

今日の午前中になりますが、ぱすわ〜ど帳とぱすわ〜ど帳SAを
アップデートしました!

今回のアップデートは前回みなさんにご迷惑おかけしたので
ちょっと慎重にやりました;;;

ってちょっとこの前の経緯を説明しますね。

実は、デバッグ時やテスト時にはあの問題って出なかったのです。
ClassNotFoundエラーだったのです。

ある重要なモジュール(javaではクラスといいます)が、アプリの
パッケージの中に含まれなかったのです。

これって通常はあり得ないことで、javaのコンパイラ(パッケージング
するソフトと思ってください)がバグっていたということなのです><

とはいえ、実際にできたアプリを最終動作確認しなかった
わいわいのせいではあるのですが><

ということで、今回はきちんと最終動作もしました!

今回のアップデート内容は、
・パスワードデータの全削除機能の追加
が主です!

まぁ軽微なバグ対応も含まれていますが^^;;;


パスワードデータの全削除機能は以前からちょくちょくご要望を
いただいていたのですが、何しろユーザーのデータを削除する
機能なので、UIなどをどうするかずっと考えていた訳です。

そして、たどり着いたのが、設定画面に入れる!
というものでした!

ここでしたら安易に触ってしまい、データが飛んでしまう危険も
かなり少ないだろうと、敢えて設定画面に持っていきました!

これでデータ同期してインポートするときも、データが2重に
なったりせずに済むかと思います!

ますます便利になっていただけたらなと思っています。


そうそう!!!
ぱすわ〜ど帳ですが、iOS版を今作っています!

徐々にできつつありますので、iOSヘ移られた方も再度
ぱすわ〜ど帳を使っていただけたらうれしく思います!


2013年9月6日金曜日

【Androidシナリオテスト】Androidのテストを完全自動化する方法

AndroidをPCにつなぐ事で、シナリオテストが出来るようになります。

まずはその仕組みについて、調査してみましょう!
AndroidSDKをDLし、SDKにパスを通します!
そして、コマンドラインで

adb shell getevent

と打ってみましょう!
その動画がコレです。



ん?ちょっとわかり辛いですが、
タッチした瞬間、何か変化が現れて流れていきましたね!

それではコマンドラインのログを見てみましょう!














おお!
/dev/input/event0
のイベントが流れているのがわかります!

それでは、このイベントでフィルタリングしてみましょう!
単純にgrep でフィルタリングしてみます。

adb shell getevent | grep event0



おお!
タッチした瞬間に何かイベントが起きているという事がわかりますね!

実はAndroidは、タッチしたイベントをadb経由でこのように取得する事も
可能ですが、さらに送信する事も可能です!

ただし、送信イベントは先ほどみたログとはちょっと形式が違ってきます。
ログは、

/dev/input/event0: 0000 0000 00000000

という感じですが、Androidにタッチイベントを送信する場合、

adb shell sendevent /dev/input/event0 0 0 0

という風になります。
大雑把に言うと、


  1. 先頭に「adb shell sendevent」がくっついて、
  2. コロン「:」がなくなり、
  3. 3つの数字が16進が10進

の3点の違いがあります。

うーーーん、どうしようか???

ピコーーーーン!!!
そんなときの頼みの綱!!!
目の前にPCがあるではないか!!!

そうだ!!!
PCでフォーマット変換をしよう!!!

ということで、フォーマット変換のプログラムを作りました!

皆さんに使って欲しいのでオープンソースにしてあります!
ご自由にお使い頂いてどうぞ!


使い方は簡単!
/tmpにevent.txtというファイルをおきます!
そのファイルは、上のようなコマンドでとったイベントのログを
貼り付けます。
そして、上で取得したプロジェクトをビルドして、ソフトを起動します!
そうすると、/tmpにevent_c.txt
というファイルが出来上がります!

それを、

chmod +x /tmp/event_c.txt

として実行権限をつければOK!!!

後は、コマンドラインでSDK_ROOT/platform-toolsにディレクトリを移し、
/tmp/event_c.txtとコマンドラインで実行してください!

そうすれば、複数のアプリにまたがった、あるいは、複数のActivityに
またがった、トータルテストが出来るようになります!

あ!
ちなみに、これで作ったシナリオで私も「ぱすわ~ど帳(SA)」を
リリース時にテストしています!
そのときの動画がコレ!




ぱすわ〜ど帳はこういったテストを繰り返し1000回以上行って
リリースしています!


2013年8月13日火曜日

JavaからJS(JavaScript)を実行する方法

ども(^^)/ 結構久しぶりのブログになっちゃった;;;

いやー、仕事がなんだかんだで忙しくて;;;
今日は、その仕事から得られた知識として、JavaからJSをコールする方法について 書いて行きます!


Javaからスクリプト言語をコールする方法については、Java 1.6から導入されています!

具体的には、

ScriptEngineMangager
ScriptEngine

の二つのクラスを使います! 
ScriptEngineを使用するといとも簡単にJavaScriptをコールできます!
ではそのソースです!


はい!
コレだけです!

ちょっと説明を!

print('Hello')

わかり辛いですが、という部分がJavaScriptになります!

基本的には、

ScriptEngineManagerとScriptEngineのインスタンスを作って

ScriptEngine#eval

とすることでJavaScriptを実行できます!

他にも、引数等を渡す事も可能です!
まぁ、サーバー再度の話などになりますので、いろいろと制約は
ありますが;;;


とりあえずこれで、Javaからスクリプトをコールする事が出来るように
なります!

JavaとJSを混合なんて事も可能になりますね!
やったー!

2013年6月24日月曜日

検討している機能

様々な方から、要望があった機能を今検討しています!

その機能がコレです!
















はい、背景と文字色の色を変える機能を追加しようと思って、検討しています!
背景色と文字色は、こんな感じで、設定にて設定する事を想定しています!

















上の画像では、backgroundとなっているところで設定するのが、
背景色、fontとなっているところが文字色という感じです!

こんな極端な画面にする事も出来ます!
















今週にでもアップデートできたらいいな!

乞うご期待!!!

2013年5月19日日曜日

なかなかだね!

今、あるiOSアプリをAndroidに移植する作業を行っています。

開発する上で、iOSとAndroidでは大きな違いがあります!
(個人的には一番大きいかななんて思っています)

Objective-CとJava?

いあいあ、言語の違いなんてたいした事ないです!
慣れです!

framework?

いあいあ、それも慣れです!


実は大きな違いって、画面サイズなんじゃないかななんて
思ってます!

iOSでは丁度だったものがAndroidでは画面が広いので、
全体的にパラパラとしたUIの印象になってしまったり
します><

そして、一番大きいのが、画面サイズが多岐にわたる事です><


ここが一番大きい差かなぁなんて思います!


iOSはiPad,iPad mini,iPhone4系,iPhone5の4種類
ですから!




2013年5月8日水曜日

【iOS,Android】信じがたい! うっそ! ゼロ除算の考察の行方!

結論から言います!

ARMアーキテクチャでは、ゼロ割(0除算)のエラーはおきません!


事の発端は!

@hamakendevelopさんのこの発言!

コレを偶然みて、そんなバカなぁ!
なんて思ってサンプルを作ったのが発端です!




まず、サンプルをMac OS Xで作ってみました!

結果は予想通り、
c = a / b;
のところで、Exception発生!




やっぱそうだよなぁ・・・
なんて思いつつ、一応、iOSのサンプルも作ってみました!

コレをiOSシミュレータで起動!
結果は予想通り、
NSLog(@"%d", a/b);
のところで、Exception発生!


そりゃそうだ!
と思って、同じソースコードをiPhone5にて動作させてみました。

ほんまや!
(明石家さんまさん風)

結果は予想に反して、iPhone5で例外が発生しませんでした!

うげ!
まじか!!!
なんて思っていたところ、

@sakiraさんが参戦!!!





ちょっと調べたところで、





と言った返信をした訳です。
あ!ちなみに、
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0205hj/CJADECCJ.html

ここを添付しました。

この時点で、もう既に、かなりの時間になっていたので、一旦休憩(笑)

その次の日。

@sakiraさんから信じがたいツイートを頂いた訳です!










まじか!

AndroidでもJavaではなくて、Native C言語をコンパイルした
実行ファイルでは、エラーが発生せず、さらに、
iOSではsignal()でのハンドリングも効かないとのこと・・・

そんな・・・そんな・・・バカな・・・なんて調べ、
いろいろと議論したところ、以下のサイトに行き着きました!

http://blog.kmckk.com/archives/4047024.html

うっそ!!!
libgccでの事だったんだ!!!

Xcodeも元々はgccが発祥なので、可能性は多いにあるとの結論に
なりました!


サイトを参照するに、

・ARMには除算命令がない

ために、libgccで除算をするしかなく、libgcc内で除算を行っている。

とのことでした!!!

とりとめのない書き方になりましたが、結論通り、

ARMアーキテクチャは除算命令がないために、libgccで除算を
行っており、libgcc内で、raise()を行っていないため、
Exceptionが発生せず、そこでCPUがストップするため、
除算結果の変数を参照すると、不定になる!

と言った事がわかりました!
(推測も入ってますが^^;;;)

最後に、@sakiraさんの言葉がカッコいい!!!










2013年4月22日月曜日

Javaの関数の引数について ーJavaの値渡しと参照渡しの誤解ー

昨日Twitterで宣言しましたが、Javaの引数について書きたいと思います。

Javaの引数は基本的に、

プリミティブ型=Call By Value = 値渡し
オブジェクト型=Call By Reference = 参照渡し

になります。

で、Call By Referenceの説明で
String型を使って以下の説明をしているのが多くあります。

さあ、ここで問題です!
出力は何になるでしょうか?

答えは、
”before method call”
です。

当たり前です(^^)/

C言語で書くと、


こうやってるのと同等です。

それ、C言語で言うと、ポインタのポインタを使わないと
出来ませんよ^^;;;

あと、



これも同じです!
これも同じC言語のポインタのポインタ使わないと^^;;;

Call By Referenceの説明で、上の例を使って、Call By Referenceだけど・・・
なんて説明しているのは間違いです!

C言語でいう、ポインタの概念をちゃんと理解しないと実は
この辺りって理解が難しいかもですね!

あ!
constじゃないととか、そういうツッコミはなしね^^
あくまで例なので!

2013年4月21日日曜日

Javaのデストラクタ?


メモリリークはいつ直すの?
今でしょ!!!



よくJavaにはデストラクタがないと言われます。

確かに、Javaは明示的なメモリ解放がないため、
デストラクタが必要ないとまことしやかに噂されています。

でもね!
メモリ解放はJavaの

System.gc();

をコールすれば明示的に解放できるんです。
ただ、メモリ解放は時間的コストが高いってのはあると思います。


デストラクタという意味ではないですが、Javaでも似た様な
機構が備わっているのはご存知でしょうか?

それは、


protected void finalize() throws Throwable {};

です!

このメソッドをオーバーライドしてあげれば、そのオブジェクトの
ファイナライズ(解放処理)を実装できます!

例えば、

protected void finalize() throws Throwable {
    super.finalize();
    myMember = null;
}

なんてやってあげれば良い訳です!

これで、メモリリークともおさらばですね!
(あれ?大げさ過ぎかな?)

2013年3月26日火曜日

お勉強ちぅ

今、seasar2ってのを勉強しています!
これjavaのフレームワークなのですが、いろいろと面白い
機能があったりで結構便利そうだなぁなんて思ってます!


あとは、Tomcatとかサーバー系の勉強に手を付けています(笑)


アプリ関連で、幸いな事に、こんな私にこういったものが欲しいなど
アプリ等を依頼頂く事があります!

ただ、やはりというかなんて言うか、外部サーバーとの連携であったり
というのが普通になっていますので、ここはやっぱり技術者としては
サーバー周りも得意分野にしていきたいところだななんて思っています!

最近凄く思うのが、新しい分野や技術を勉強するとき、
頭が混乱しますよね?

混乱していろいろ調べたり方向を見失ったりするのですが、
その頭が混乱している感じが自分でとても好きなんです!!!

なんていうかな、新しい技術や分野を身につける上でとても
重要で、その通り道として混乱があるという事がわかっている
からかもしれないですね!

混乱を乗り越えた先に、自分の知識や経験として
頭に入る瞬間がとても気持ちよく、ワクワクしてくるんです!

混乱最中は、もちろんイライラしたり、余裕がなくなったり
するのですが、その先にある理解する瞬間がとても楽しみ
なんです!!!

私って変でしょうか?

変態なわいわいが近況をお伝えしました(笑)

2013年2月27日水曜日

Xperia Z(SO-02E)でのぱすわ〜ど帳使用方法!

レビューにて、Xperiaユーザーの方に、ID,パスワード流し込みが出来ない
というレビューをいただきました。

結論としては、「できます」!!!
ということになります!!!

おそらく、Xperiaに搭載されている、POBox(日本語入力キーボード)の
使用方法がわからなかったものと思われましたので、実際に操作した
画像を掲載しつつ、Xperiaにてぱすわ〜ど帳を使用する方法を
今日は書きたいと思います!!!

まずはこれ!!!
はい!
Googleのログイン画面ですね(笑)

まずは、ユーザーIDの貼り付けを行います。
ユーザー名という欄をタップします。
そうすると、キーボードが下からニョキっと
出てきます!









上の画像では、英語配列キーボードになっていますが、基本どれでも同じです!
そのキーボードの左下にある、「あ A」となっているキーを長押しします。
画像では、赤い枠をつけてあります。

そうすると、ジャジャーン!!!

こうなります!!!
画面左部分にある、赤い枠のパズルの様な部分を
タップします。












そうすると、マッシュルーム対応のぱすわ〜ど帳を
起動できるようになります!

で、パズルをタップすると!!!
ジャジャーーン!!!
マッシュルーム対応のアプリが羅列されます!!!

ここで、赤い枠をつけてありますが、
「ぱすわ〜ど帳」のアイコンをタップします!!!











後は、パスワードリストから、該当のIDをロングタップして、「ユーザーIDのコピー」
を選択すれば、ユーザー名欄にIDを流し込みます!!!

パスワードも同様に、パスワード欄を選択タップしてIDと同じ操作を行い、最後のロングタップしてからの選択にて、「パスワードをコピー」を選択すればOK!!!


これでXperiaユーザーも困らずにID,パスワードの流し込みを出来るのでは
ないかと思います^^

わからない事があればメールにて質問等を受け付けていますので、
気軽に問い合わせお願いします〜〜〜^^

2013年2月21日木曜日

Eclipse JUNOのフリーズ復帰方法

私は、AndroidとiPhoneの両方のアプリを開発しているので、
もっぱらAndroidの開発はMacで行います!

MacでのAndroidの開発環境の構築は至って簡単!!!

http://developer.android.com/sdk/index.html

ここからAndroid SDKを含んだ形のEclipseという統合開発環境
ソフトウェアをDLします。

DLしたファイルはzip形式で圧縮されています。
DLしたファイルをだぶるクリックすると出てくるフォルダを
適当な場所(例えば/Application)等にコピーします!

以上です!!!
え?
スマフォ用のドライバ???

そんなのいりません!
MacやLinuxではドライバは必要ないんです!!!
というか、Windowsがドライバ必要とするだけです^^;;;

少々脱線しましたが、EclipseはJUNOという名前のついた
バージョンが上でコピーされるのですが、このJUNOに
SVN連携プラグインを入れると、とたんに動きが怪しくなります><

それは、起動時にフリーズして、起動できなくなってしまったり
するんです><
もちろん最初は、なんでフリーズするのかさっぱり見当がつかず、
SVN連携プラグインとの相性も思いつきませんでした;;;

これでは困ったと、調べていたら、こんなのが出てきました!!!

http://d.hatena.ne.jp/Kazzz/20130207/p1

フムフム!
Eclipse.app/Contents/MacOS/eclipse.ini



-Djava.awt.headless=true


の一行を加えるんだぁ!
なるほど、どれどれ・・・

ビンゴぉ!!!

なんと、フリーズがなおっているじゃないですか!!!

うわぁ、よかった!!!
workspace消すとなおるのはわかっていたのですが、これだと毎回
フリーズのたびに、プロジェクトインポートしなおし・・・

なんて煩わしさから解放されました!!!
よかった!!!

Mac + JUNO + SVN

でのフリーズでお悩みの方!
是非上の対処を!!!


2013年2月19日火曜日

ぱすわ〜ど帳(SA)アップデート!

ぱすわ〜ど帳とぱすわ〜ど帳SAの両アプリを今日アップデートしました!

今回のアップデート内容は

・マスターパスワードのセキュリティ向上

です!

あるところで昨日、指摘を頂きましたので、セキュリティ向上はこのアプリに
とって、とても大事なので、早々に対応させて頂いた次第です!


マスターパスワード機能をご使用いただいていない方は、
影響はありません。


皆様に指摘やご要望を頂けるのがとても嬉しく思います!
それだけ、皆様にご使用いただいているという事ですから!


こんな機能があったらいいな等のご要望があれば、随時受け付けて
いますので、メールを頂ければと思います!


上の話とは、ぜんぜん関係ないですが、EclipseのJUNO君が起動時に
フリーズする現象に悩まされていました><
JUNO君機嫌悪かったのでしょうか?

ちょっと調査したら、解決方法がのっていたので、それを実行したら
JUNO君とっても機嫌がよくなりました^^

JUNO君の機嫌を直す方法についても、明日にでもブログで
書ければと思っています!

2013年2月17日日曜日

ぱすわ〜ど帳(SA)アップデート!

今日、ぱすわ〜ど帳とぱすわ〜ど帳SAをアップデートしました!

今回の内容は、

・パスワード生成桁数の指定機能の追加

が主となります。

ぶっちゃけて言いますと、
ぱすわ〜ど帳については、ず〜〜〜〜っと先延ばししていた、
広告ライブラリのアップデートという内容も含まれています;;;

突然、ある広告の提供社から、2/28で使えなくなるからアップデート
してね〜〜〜なんてメールが来たんですよ><
もうちょっと余裕もって対応して欲しいななんて思ってます・・・

まぁ、そう言った機会がなければ、ライブラリのアップデートの
機会はないので、よしとするかといったところですかね;;;

最近、いろんな形態の広告が現れてきました!
例えば、カットインと呼ばれている、アプリ終了時に出てくる
広告とか、アイコン羅列形式とか!

広告も趣向を凝らして、だんだんと進化していくんだなぁと
思った出来事です!


今日はこんなところです!

あ!
そうそう!
Twitterでも書いたのですが、Mac + Eclipse(JUNO)にはずっと
起動時にフリーズするということで悩まされていたのですが、
ようやく悩みが解決しました!

明日にでも、その記事書きます!

2013年2月12日火曜日

ぱすわ〜ど帳(SA)データ同期アップデート

今日のアップデートは、ぱすわ〜ど帳(SA)データ同期です!


今日は、機能としてはなにもないのですが、英語バージョンを
入れ子んでリリースした感じです!


最近ぱすわ〜ど帳が、外国の方からもインストールされている
みたいですので、その関連したデータ同期も英語出さないと
いかん!ということでだしました!

英語翻訳に携わってくれたかた、本当にありがとうございます!
ぶじ立派な英語バージョンをリリースできました!

あ!
もちろん、Amazonにも申請済みです!

あなたのスマホライフを、便利に快適に!!!
この標榜を実現する為の1歩です!


どんな反応があるかなぁ?

2013年1月8日火曜日

Kindle fire HD

最近何かと話題のKindleですが、実はぱすわ〜ど帳SAはKindleの
マーケットにも出しています!

Kindle Storeでも何人かのユーザーさんにご購入いただいています。
とても嬉しい事です!


さて、わいわいもKindle fire HDを入手して、早速動かしてみました!
ぱすわ〜ど帳SAが実際に動いている画面です!

ほら!
ちゃんと動くでしょ!













テストの為の画面キャプチャなので、パスワード名称がテストとなっていますが^^;;;

でも実際にこうやって動作する事は確認済みですので、
安心してお使いくださいね^^


2013年1月6日日曜日

ぱすわ〜ど帳SAのアップデート予定

いま、ぱすわ〜ど帳SAを改造しています!

主な改造点は

・検索機能の実装
・パスワード生成ロジックの変更
・カテゴリロック機能
・2パスワード機能

の4つになります。

実際のところはほぼ実装済みになるのですが、テスト等の関係で、
まず最初にアップデートにて実装になるのが、


・パスワード生成ロジックの変更

となります。

その後に順次テストを実行してアップデートしていきます!

と言ったところで、明日からまた通常通りの仕事ですね!
退院したばかりのわいわいで、体力にいささか不安がありますが、
また新年から頑張っていきます!!!



2012年11月30日金曜日

【Android】WebViewに手書き線を書く一つの方法

WebBrowserに手書きしたいなぁなんて思っている人も多いのではないかと思います。 

昨日はその方法をiPhoneにて実現する方法を書きましたが、
今日はAndroid編です!

 まず、Androidのサンプルに、FingerPaintというものがあります。
 このサンプルは、指でなぞった軌跡を表示するというサンプルです。

これをベースにして、そのサンプルとWebViewを融合させます!

 では、まず画像!!!


















昨日とあまり代わり映えしないじゃんかぁ!!!
そりゃそうです^^;;;

iPhoneと同じ機能をAndroidで実現する訳ですから^^
こんな感じで、Webブラウザに手書きが出来てしまいます!!!

このマップ等で、この手書きが役にたちそうですね!
マップ等で場所を○て囲んで、そのスクリーンショットを送るとか!
いろんな使い方が出来るんじゃないでしょうかね?

今回はとっても簡単です!
Androidの場合は、WebViewを拡張すればすぐにできるのです!

ではソースです!
今回はポイントは特にないですかねぇ;;;
onTouchEventにてタッチイベントを取得して、そのイベントに応じて
線を書いていくだけの処理になります!



 
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.webkit.WebView;


public class WritableWebView extends WebView {

 private Path _writedPath = null;
 private Paint _paint = null;
 
 public WritableWebView(Context context) {
  super(context);
  
  _writedPath = new Path();
  _paint = new Paint(Paint.DITHER_FLAG);
  _paint.setAntiAlias(true);
  _paint.setDither(true);
  _paint.setColor(0xFFFF0000);
  _paint.setStyle(Paint.Style.STROKE);
  _paint.setStrokeJoin(Paint.Join.ROUND);
  _paint.setStrokeCap(Paint.Cap.ROUND);
  _paint.setStrokeWidth(12);
 }
 
 public WritableWebView(Context context, AttributeSet attrs) {
  super(context, attrs);
  
  _writedPath = new Path();
  _paint = new Paint(Paint.DITHER_FLAG);
  _paint.setAntiAlias(true);
  _paint.setDither(true);
  _paint.setColor(0xFFFF0000);
  _paint.setStyle(Paint.Style.STROKE);
  _paint.setStrokeJoin(Paint.Join.ROUND);
  _paint.setStrokeCap(Paint.Cap.ROUND);
  _paint.setStrokeWidth(12);
 }
 
 public WritableWebView(Context context, AttributeSet attrs, int defStyle) {
  super(context, attrs, defStyle);
  
  _writedPath = new Path();
  _paint = new Paint(Paint.DITHER_FLAG);
  _paint.setAntiAlias(true);
  _paint.setDither(true);
  _paint.setColor(0xFFFF0000);
  _paint.setStyle(Paint.Style.STROKE);
  _paint.setStrokeJoin(Paint.Join.ROUND);
  _paint.setStrokeCap(Paint.Cap.ROUND);
  _paint.setStrokeWidth(12);
 }
 
 
 @Override
 protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  super.onSizeChanged(w, h, oldw, oldh);
 }
 
 @Override
 protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  
  canvas.drawPath(_writedPath, _paint);
 }
 
 private float mX, mY;
 private static final float TOUCH_TOLERANCE = 4;
 
 private void touch_start(float x, float y) {
  _writedPath.reset();
  _writedPath.moveTo(x, y);
  mX = x;
  mY = y;
 }

 private void touch_move(float x, float y) {
  float dx = Math.abs(x - mX);
  float dy = Math.abs(y - mY);

  if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
   _writedPath.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
   mX = x;
   mY = y;
  }
 }

 private void touch_up() {
  _writedPath.lineTo(mX, mY);
 }
 
 @Override
 public boolean onTouchEvent(MotionEvent event) {
  if (_writable == true) {
   float x = event.getX();
   float y = event.getY();
   
   switch (event.getAction()) {
   case MotionEvent.ACTION_DOWN:
    touch_start(x, y);
    invalidate();
    break;
   case MotionEvent.ACTION_MOVE:
    touch_move(x, y);
    invalidate();
    break;
   case MotionEvent.ACTION_UP:
    touch_up();
    invalidate();
    break;
   }
   return true;
  }
  else {
   return super.onTouchEvent(event);
  }
 }
}


こんな感じです!
あとは、このViewに対して、HTMLを読み込むようにすれば良いだけです!

こんな感じ


 
  WritableWebView webview = (WritableWebView)findViewById(R.id.webview);
  webview.getSettings().setJavaScriptEnabled(true);
  webview.loadUrl("http://developerwaiwai.blogspot.jp/");


どうです?
簡単でしょ?

画像に落としたい場合には、DrawCacheを取得して、保存すればOK!

いじょ、Android版のWebブラウザ手書き機能についてでした!






2012年11月27日火曜日

AndroidやiPhoneでWordPressを自在に操る1つの方法

CMSとして、ブログツールとして人気を博しているWordPressですが、
AndroidやiPhoneでみると、レイアウトが崩れたり、プラグインを導入
しても、思った通りのデザインにならなかったりしますよね!

かといって、RSS配信をしていても、RSS配信の個数制限があったりで、
なかなか全部のWordPressの情報を引き出せなかったり。。。

そんなのとおさらばする方法があるんです!

ズバリ!!!

XML-RPC

という技術です!

RPC(Remote Procedure Call)という名がついている通りリモート呼び出しです!

つまり、クライアントから、サーバーの機能を呼び出せちゃう訳です!
この技術を使うと、なんとAndroidやiPhoneからサーバーの機能を
直呼びして、より高度な事が出来るようになります!

例えば、

モバイル端末である数値を入力し、複雑な演算を行って、結果を表示する
というアプリがあったとして、複雑な演算が端末では重すぎるなんて時
の状況を考えてみましょう!

端末で入力した数値を、サーバーに送って、その数値の演算をサーバーに
行ってもらい、結果だけを表示できるなんて事が出来たら、高速演算などにも
役に立ちますよね!

そんな時は、XML-RPC等を使えば良いのです!

詳しくは、
http://ja.wikipedia.org/wiki/XML-RPC

と、それじゃぁ、Androidとサーバーでのやり取りをXML-RPCで
行うにはどうすればいいんだ?
そういった時は、以下のライブラリを使います!

http://code.google.com/p/android-xmlrpc/


使い方は簡単!
ソースを、自分のプロジェクトにコピーするだけ!

後は、例にも書いてありますが、

XMLRPCClient client = new XMLRPCClient("http://example.com");
int result = client.call("add", 2, 4);


これだけです!
どう簡単でしょ?

実は、WordPressにはXML-RPC機能が既に備わっています。
APIも公開されています!

http://codex.wordpress.org/XML-RPC_WordPress_API

ほら!
もう出来たも同然!!!


これで、もう、モバイル端末での表示に困る事はないですね!

Let's try!!!



2012年8月16日木曜日

見てますよ!

ども(^^)/
今週はお盆休みだったのに、Macが手放せなかった
わいわいです^^

いや〜、お盆があっという間にすぎていきます!
お盆休みは、アプリ作れるし遊べるしなんて
ウキウキだったのですが、実際過ごしてみると、
時間が足りない><

まだあと3日ある!


ぱすわ〜ど帳のレビューへの回答です!

画面を横にすると書いてたものが全部消える…でもとに戻すとまた全部消える…見やすくて使いやすいけど、消えるのがね…修正してくれるといいんだけど。

追加画面でしょうか?
承知しました!
今週中に修正します!!!


入れ子O.K.のフォルダ管理と、任意の並び順を 出来るようにしていただけたらとりあえず神。

フォルダ管理は有料版で実現しています。
ただ、入れ子OKではないので、入れ子OKな様に出来るよう考えてみます。
自由並び替えは、具現化案が浮かんでいない状況ですので、具現化案を
考えます!


そうそう!
今日「なんでもらんちゃ〜」の有料版「なんでもらんちゃ〜SA」をリリース
しました!!!
現状は広告なしバージョンということだけですが、有料版だけの機能なんかも
追加していきたいと思っています!
是非ともご要望を!!!



2012年7月21日土曜日

Galaxy S3のデスクトップを公開!!!

じゃじゃーん!!!
私のGalaxy S3のデスクトップを公開します!

iコンシェルの羊が浴衣来ていてかわいい!


















初期状態ではデスクトップにいろんなアプリのアイコンやらウィジットが
い〜〜〜っぱい貼付けてありました><


もう邪魔!!!
デスクトップきれい派のわいわいには耐えられない!


もちろん「なんでもらんちゃ〜」を入れて、デスクトップのアイコンをすべて
削除しました!!!

そして、「なんでもらんちゃ〜」のアイコンをドック(?)に入れ、いつでも
すぐに起動できるようにしました!

ふぅ!!!
すっきり!!!

やっぱりデスクトップはシンプルにこうでないと!!!

なんでもらんちゃ〜のDLはこちらから!!!


なんでもらんちゃ〜のDL