AIRアプリでリリース前に考慮しなきゃいけないこと

表題の件、2号機からは使いまわすとして、1号機ではすごくめんどくさい。
今のところライブラリも落ちて無いから自分で実装してる。


・アプリケーション更新問題

僕のようにWeb族の人間が忘れがちのこと
Webアプリと違ってインストールアプリだから更新のことを最初に考えておく必要がある。
(リリースした後だと死亡確定)

方法としては、
1.サーバーに最新バージョンを聞く(僕は諸々XMLで管理しようかと・・・)
2.クライアントで自分のバージョン情報を持っておく
3.サーバーとクライアントのバージョンを比較して新しくなっていたら、
  最新のアプリをローカルにダウンロードする
4.更新には flash.desktop.Updaterを使う
  例えばFile.applicationStoreにversion2.0のhoge.airダウンロードした場合、


var updater:Updater = new Updater();
var airFile:File = File.applicationStore.resolvePath("hoge.air");
var version:String = "2.0";
updater.update(airFile, version);



・テーブルの変更問題

SQLiteを使用している場合、テーブルの変更の影響はWebアプリに比べて多岐にわたる

例えばSQL文の変更やテーブルの追加、ALTER TEBLEの実行などが特に影響がでかい。

これには、絶対にテーブル設計を変更しないと神に誓うか、O/Rマッパとは言わないまでも、
設定ファイルで普遍のパラメータとカラムのマッピングとか、
アプリケーション更新時にDBをチェックして、
自動的に「ALTER TEBLE」や「CREATE TABLE」を実行するような仕組みが必要だと思う。

特にDROP COLUMNとか、出来ないことも結構あるので最初の設計を誤ると死亡が確定する。


後はサーバーにデータをバックアップしておく必要もあると思う。


SQLの処理が意外とめんどくさい

とくに非同期(僕の感想)



・ファイルの管理問題

ユーザーがいじれるところにファイルを置くわけだから、
保存先ディレクトリの管理には非常に気を使う



・サーバーからの情報の送信

拡張の事を考えると、最初に無駄にサーバーと通信する機能を持っておくべきである。
上記の更新や、NEWS的なものをやり取りする機能


・暗号化の問題

AIRでアプリを作ると、せっかくだからネットに接続できなくてもアプリを使用可能にしておきたい。

そのためには最低限の情報をクライアント側で管理する必要がある。
となると、Air側で暗号化の処理も必要になってくるわけだが、これがなかなかめんどくさい。

だって、WinでもMacでも使えるライブラリが見つからないのよ・・・

以上のことに、今更気づいて一生懸命直してます