情報弱者(俺)向けのITの道 -2ページ目

lion

旬を逃した感じですがmac book airをlionにしてみました

最近研究室のimacばかり使っていたのでairのcpuの弱さが気になる……
xcodeもver4に更新しました!

いやぁ、lionだと無料で使えるんですね
嬉しいけどui変わりすぎててなんか……わからない、操作がw
でも一番困るのはTrackpadのジェスチャーが地味に買わていることでしょうね
ストレスがマッハです


さて、PhoneGapって実はxcode4ではまだサポートされていないのです
そうですプロジェクトが上手く動かないのです

しかし!
githubかな? 
誰かがプロジェクトを生成するコードを作ってくれていたので、簡単に移植できました
ホントオープンソースさまさまです


しかし最近外にパソコン持ち歩くはいいけどずっと研究室にいるからair全然使ってない
もったいない

PhoneGapの罠

xcode3.2.6で開発をしてた僕ですが
実機に移そうと思って先輩のに入れさせてもらおうとしたのです、テストとして


そして先輩のxcodeは4.x
そうです
3で開発したものは4では動かないのです
最悪ですわ~


まぁたぶんwwwフォルダをどこか所定の位置にぶち込めば動くと思うのだけど……

はぁ……

PhoneGap, jquery mobile実験アプリ、一先ず完成


↓動作の動画キャプチャ
http://dl.dropbox.com/u/8610894/2011-08-25_0931.swf


一先ず完成!
まぁストアに上げるにはお粗末なクオリティですので上げませんが、とりあえず作ったという成果を公開。
というか、純粋にうれしい!w

わ~い
疲れたw
いや、しかし、PhoneGapはみんなわかってる通り、元々ウェブをスマフォ対応したページをアプリ化するフレームワークですね

最初から無いものをPhoneGapで作る意味は果てしてあるのか?
と言われたら、今の時点では全くないです
大人しくネイティブでやれって感じです
僕はそう思いました。

でもデザイナーさんは別ですよ
デザイナーさんはそもそもネイティブで作るのが辛い可能性が高いですからね
学習コストとか考えると
そういう方には慣れた技術で弄れるので良いとは思います。



しかしなんでhtmlとかでレイアウト作ったりjsで動くのだろう?
と考えてみました

単純な答えです
簡単に言うと、ブラウザ用のiphone, ipadで言うところのUIWebViewを使って描画してるだけなんですよね
そういう落ちです。
つまりローカルにあるウェブサイトを開いてるだけなんでしょうね

という予想です

いや~、しかしデザインセンスなくて死にたくなったwwww
難しいね
やっぱデザイナーさんはすげぇや


一先ず1週間くらいで作れたのかな?
早いのか遅いのか微妙っすね。
遅い気がします

大人しくネイティブ勉強しまつ……

PhoneGap, jquery mobile実験アプリ、一先ず完成

http://dl.dropbox.com/u/8610894/2011-08-25_0931.swf

一先ず完成!
まぁストアに上げるにはお粗末なクオリティですので上げませんが、とりあえず作ったという成果を公開。
というか、純粋にうれしい!w

わ~い
疲れたw
いや、しかし、PhoneGapはみんなわかってる通り、元々ウェブをスマフォ対応したページをアプリ化するフレームワークですね

最初から無いものをPhoneGapで作る意味は果てしてあるのか?
と言われたら、今の時点では全くないです
大人しくネイティブでやれって感じです
僕はそう思いました。

でもデザイナーさんは別ですよ
デザイナーさんはそもそもネイティブで作るのが辛い可能性が高いですからね
学習コストとか考えると
そういう方には慣れた技術で弄れるので良いとは思います。



しかしなんでhtmlとかでレイアウト作ったりjsで動くのだろう?
と考えてみました

単純な答えです
簡単に言うと、ブラウザ用のiphone, ipadで言うところのUIWebViewを使って描画してるだけなんですよね
そういう落ちです。
つまりローカルにあるウェブサイトを開いてるだけなんでしょうね

という予想です

いや~、しかしデザインセンスなくて死にたくなったwwww
難しいね
やっぱデザイナーさんはすげぇや

PhoneGap DataBase

PhoneGapでデータベースを使ってみました

PhoneGapでデータベースといいつつも、実際にはWeb SQL DataBaseというhtml5にあるものを使っているようです

ちなみにこれは既に仕様策定を断念されているもので、ぶっちゃけこれ使うのはどうなんだよ、と思います
html, javascript上からsqlを叩くので、sqlが見えちゃうんですよね
はい、それ不味いと思うんだけどね、どうなんですかね


僕の中でどんどんPhoneGapの評価が下がるこのごろです


さてさてちなみにどうやって処理を行うのかです
おおまかにはググレばたくさんあるので割愛します

僕がこれを使っていて非常に不便だと感じたことは、僕が知識不足とセンス不足なのかもしれませんが、returnで戻り値が取得できないことです

まず処理の流れが


var db = window.openDatabase('DB_name', '1.0', 'DB', 1000000);
db.transaction(getMaxQuestionsId, errorCallBack, successCallBack);

こんな感じ

まずdb.transactionからgetMaxQuestionsId関数を呼び出します
この関数の中がこうです

tx.executeSql('SELECT id FROM テーブル名;', [], setQuestionId, errorCallBack);

ここで処理が成功するとsqlの実行結果がsetQuestionId関数に渡されます

そしてsetQuestionId関数が

QUESTIONS_NUMBER = result.rows.length;


こうです
まず、これは見るとわかるんですが簡単に言うと
select max(id)がしたいんです

最初僕はそうしていたのですが、resultから値を取り出すときに
result.rows.item(0).カラム名
という取り出し方をするんです

……ん? max関数ってどうやって取り出すんだ?
となりました
item(0)でobjectが取れたのでtoSourceしてみましたが、処理が落ちました
なんでだろう?
というながれで、大人しくlengthで取りました
後日調査したいところ……


んで、本当はQUESTIONS_NUMBERをconstにしたかったのです
が、constのスコープはvarつけなかったとしても関数の中のみなのです。
困っちゃいましたね

ならグローバルな場所に宣言した初期化前のconstに入れてやろうと思いました

んでreturnしようとしたんですが
うん、どうやって?
グローバルな、とこまでどうやったらこれ持っていけるのでしょうか?
わかりませんでした。というか疲れていてもう今日はいいや、ってなりました

実はtx.executeSql('SELECT id FROM テーブル名;', [], 変数 = setQuestionId, errorCallBack);
return 変数

みたいにできるんでしょうかねぇ?

もうよくわからん

とりあえずすっげぇ参考にならない書き方ですが
こんな感じです

やっぱ大人しく標準のネイティブなの使った方がいいよ
PhoneGapはまだちょっとキツい。
DBまわりはヤバいと思う正直

あとobjective-cとかjava使うよりもセキュリティが難しいと思うの
ajaxをよく使うのと、staticやらprivateなものが作りづらいところが
スキルが高い人ならいいのでしょうが、そうでないと辛いです
僕は辛いです。まぁ勉強の機会にはいいのかもしれませんがw