スポンサーサイト

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

ブログランキング・にほんブログ村へ

--.--.-- | スポンサー広告

年末雑記:アプリ開発について

早いもので、2009年ももうすぐ終わりです。
当BLOGのメインコンテンツである自作アプリ達について振り返って書いてみようかと。


JStpWatch
 実は公開第一弾であるJNTrainよりも前に作っていたアプリ。
 WMプログラミングのネタとしてBLOG初期時にスクリーンショットだけ公開しています。

  技術要素
    ・ダイアログベースアプリ new
    ・タイマーによる画面描画更新 new
    ・ソフトキー操作 new

 基本のコード自体はかなり前に作成したもので「eMbedded Visual C++ 4.0」を使用して開発しています。(スクリーンショット公開時はVS2005でコンパイルしなおしています)
 X01Tを購入する遥か前に、CASSIOPEIA E700で動作させてました。

 まずは、一番簡単なダイアログベースのプログラム、ダイアログにボタン等を貼り付けてボタン押下イベントを適当にハンドリングするだけでできそうなアプリと言うことで、ストップウォッチアプリをチョイスしました。

 実際かなり簡単なプログラムで、各ボタンに対して時間計測に対するスタート・ストップ・リセットをするだけでよいので、さくっとできた覚えがあります。時間の測定は、GetTickCount()というOSの起動累計時間をミリ秒単位で取得するAPIがありますので、スタート時の時間と現在の時間の差分をタイマーにて描画することで時間計測表示を実現しています。

 後に、「WindowsMobileプログラミング徹底理解」の発行を機会に、ソフトキーの操作等を組み込んでいます。 ソースは残っているので、ちゃんと整備してあげれば人様の使用にも耐えるかもしれないけどこれといった売りも無いので放置。


JNTrain
 フリーソフトとして公開した記念すべき第一弾のアプリ。
 X01Tを購入したことで何かアプリを作りたかったのと、NextTrain for PocketPCがrealVGAに対応していなかったことがきっかけで作成することに。

  技術要素
    ・ダイアログベースアプリ
    ・ソフトキー操作
    ・時刻表の読み込み(ファイルアクセス) new
    ・文字コード変換(SJIS->EUC) new
    ・リストボックスのオーナードロー new
      (一日分のデータをリストボックスに格納するのは重いので)
    ・アラーム new

 今でこそ、本家にない要素をいろいろ追加していてプログラムとしては肥大していますが、初期バージョンは結構シンプルでした。 技術要因としてもWM特有の操作は無く、さくっと作ってBLOGのネタにしようと思ってました。 文才があるわけでもないので、こういう技術BLOGの路線でいこうと思っていたのを覚えてます。

 誰も見てないBLOGなのでそれほど使われることは無いだろう(本家のNextTrainはWMでも動作しますしわざわざリスクを犯してまで使われることはない)と思っていたのですが、公開後、徐々にコメントをいただけるようになり、幾度と無く更新を続けてバージョンアップし、今に至ります。

 備考欄のスクロール表示・プログレスバー表示・時計の表示部分のカスタマイズ機能など、本来の機能にあまり関係の無い「無駄」な追加機能が多々ある辺り、自分のアプリ開発への姿勢というか欲求が顕著に出ていますね。 仕事ではあまり「無駄」機能の作りこみはできないですからねぇ。


JNTrain for Today
 自作のTodayプラグイン第一弾。 ある意味、これがターニングポイントだったのかもしれない。
 それまでTodayプラグインは、「端末を不安定にさせるもの」・「CPUの負荷が高いもの」として認識していて個人的に否定的だったのですが、JNTrain for Todayの開発で払拭できました。 ある意味、これを開発していなかったら、JWezもJTdLnchも作ってなかったでしょう。

  技術要素
    ・Todayプラグイン new
    ・DCへの描画
    ・DIBSection(半透明処理に利用) new

 きっかけとしては、「JNTrainのTodayプラグインの開発予定は?」というコメント。 先ほど書きましたがTodayプラグインに対して否定的だったのもあり、「作成するための情報はあるので習作として手をつけてみるかぁ」としか思っていなかったのですが、作り出すとToday画面のカスタマイズが異様に楽しくていろいろエフェクト等を組み込んでいった記憶が。

 しかし開発自体は、初めてのTodayプラグインということでいろいろ戸惑ったことを覚えています。ただ、「Windows Mobileプログラミング徹底理解」にプラグインの情報がありましたのでかなり助かりました。 逆にこの本があったからこそ、Todayプラグインの開発が始められたと思います。

 自分はロジックをこね回しているよりは、画面表示などビジュアル的な部分のコーディングが好きなほうなので、見栄えにかかわる部分の処理をいろいろ試せたのは楽しかったかな。 ここら辺のコードの多くはJWez・JTdLnchへ流用されています。


JWezWM
 JNTrain for TodayでTodayカスタマイズに目覚め、何かグラフィックを表示するようなプラグインを作りたくて作ったのがJWezです。(JNTrain for Todayは文字表示が主体だったので)
 せっかくネットにつながる端末なのでネットから情報を取得するということをしたかったというのもあります。 ネットで情報取得+それを表示という要素で、ちょうど天気アプリが簡単そうでした。(自分好みのフリーの天気アプリが無かったというのもあります)

  技術要素
    ・Todayプラグイン
    ・通信によるデータの取得 new
    ・xmlの読み込み new
    ・bmpファイルの表示(後に透過PNGへ対応)

 やはり肝は、HTTPによる通信での情報取得でしょうか。 これさえクリアすればほかの技術要素はJNTrainのものがほとんど流用できましたので。 とはいっても、MFCにはOpenURLという便利なAPIが用意されていたため、HTTPのプロトコル等の知識を必要することもなく通信できちゃいましたが。 xmlも同様にMSXMLというパーサが用意されていますので、これらを応用する知識があればそれなりにアプリが組めてしまいますね。

 通信時にハングする原因不明の不具合に悩まされましたが、開発->公開までの時間はそれほどかからず、開発スピードはえらく速かった(自分としては)覚えがあります。

 ちなみに開発当時、すまべん(スマートフォン勉強会)の前段階の懇親会があったのですが、そのときにTodayプラグイン部分が間に合わなかったのはちょっと残念でした。(次の日に完成しました) アピール下手なのもあり、ちゃんとお披露目できなかったのも残念。

 JNTrainに比べ導入が簡単なアプリのためか、反響がそれなりにあってうれしかったですね。 「窓の杜」等の大手サイトに紹介されたり、通勤中の電車内でJWezをToday画面に表示させている人を見かけたり、書籍掲載されたり…、結構うれしいサプライズが多かったですね。


JTdLnch/JTskLnch
 JWezを作っていて、Today画面の表示内容に統一感がほしいなぁとおもうようになり、開発を開始したTodayプラグインの第三弾。 当時、PocketDigitalClockとJNTrain for Today、JWezぐらいしかプラグインを入れていなかったので、アキ部分を埋めるためもありました。

  技術要素
    ・Todayプラグイン
    ・bmpファイルの表示(後に透過PNGへ対応) new
    ・タスクリストの作成 new

 意外と新規の技術要素は無いですね。 これが本来の自分の開発スタイルだったり。 自分の持ち合わせている技術を組み合わせて作る、レゴブロックのような作り方が結構好きだったり。(変な部分で開発が停滞することもないし)

 技術的には枯れていますが、アプリとしては、テキスト主体のJNTrain for Today、グラフィック表示のJWez、動きが主体のJTdLNchと徐々にエンターテイメント的に進化していってますね。 そういや元々はゲームプログラマーでしたっけ、自分。

 半ばネタで作り始めたものの、意外と評価してくれる人もいたりして、ちょっとびっくり。 更に海外サイトのXDA-developersでも紹介されたりと、驚きの連続です。 実はJNTrain、JWezよりも設計に時間をかけたりと一番手がかかっているので評価してもらえるのはうれしい限りですね。


MarketPlaceについて

 デベロッパー登録費用のキャッシュバックキャンペーンと、今ならばアプリ登録が5つまで(厳密には登録審査)無料というのにつられて、申し込んじゃってます。 なんとか年内の登録に間に合い(店長イトーさんありがとうございました)、現在JWezが公開中です。

 年会費が実質無料になるのは初年度のみなので、アカウントを維持させるためには年間約1万円が必要となります。 そういうわけなので、最低限年会費が稼げる程度に有料アプリを登録したいなぁとか思ってます。 もともと、シェアウェアには興味があったわけでJTdLnchをテストケースにしようと思ってましたし。(JTdLnchはそれほどユーザがつかないだろうと思ってましたので、ユーザ数が少なければ多少面倒な課金管理を個人でしても大丈夫かなと思ってました。)



来年に向けて

 まずは、JTdLnch/JTskLnchを完成系に向けて開発してかないとなぁ。特に新しいアプリのネタもないし。JTdLnchは当初から考えているプラグインによる追加機能構想もあるし、しばらくはこれにかかりっきりかも。

テーマ:フリーソフト - ジャンル:コンピュータ

ブログランキング・にほんブログ村へ

2009.12.31 | Comments(0) | Trackback(0) | 自作ソフト

コメント

コメントの投稿


秘密にする

«  | HOME |  »

FC2Ad

09 | 2017/10 [GO]| 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

最近の記事一覧 カテゴリ一覧 コメント一覧 トラックバック一覧 プロフィール リンク一覧
[カテゴリ]
WEBコンサルティング・ホームページ制作のバンブーウエイブ

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

カスタム検索

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