我輩はブロガーではない。ネタもまだない

SASとかDelphiあたりの人様の役に立たないネタを提供します

XPTViewer更新(Androidに対応)

XPTViewerを更新しました。

  • Androidに対応しました
  • 最後のobsにゴミデータが表示される不具合を修正しました。


バージョンは0.5.0.0です。
こちらからどうぞ
https://bitbucket.org/t_kawakami/xptviewer-for-public/src/main/

これでフォーマット以外のバグはほぼほぼ取れたんじゃないでしょうか。


XPTVierwerもとうとう3プラットフォーム目、Androidまで対応しました。
検証済み端末については、バージョンが7のタブレット(32bit)、スマホ(64bit)、OSが11のタブレット(64bit)、スマホ(64bit)で動作を確認しています。
12は間もなくです。まぁ間の8と9も大丈夫でしょう。
必要な権限は最小限、外部ストレージの読み取り権限だけです。
インターネット接続もしませんし、広告もありません。(その代わり署名がありませんけど)



Android対応はmacと違って、かなり手間がかかりました。

1. ファイルを開くためのダイアログがないこと
Androidでは、インテントというものを使って、他のアプリに処理を任せる、という仕組みがあります。
ファイルを開くのにも同じで、インテントを使って、ファイラ(エクスプローラーのようなもの)でファイルを指定して、指定したファイルをインテントの結果から取り出して‥ということをしなければならず、独自のコードが必要でした。
さらには近年のセキュリティレベルの向上のため、アクセス権限も厳しくなっており、実装がなかなか大変でした。
とはいえ、かなり具体的な記述、コードが本家Android Developerにあるのでとても参考になります。


2. メニューバーがないこと
スマホタブレットの多くはメニューをハンバーガーメニューで実現しています。
ハンバーガーメニューとは、左上や右上にある「三」マークでスライドしてくるメニューのことです。)

一方、windowsmacではメニューバーが必ずあります。

このアプリもwindowsでの開発がスタートなので、メニューバーで実装していたのですが、メニューが使えないため、
メニューバーの中身をハンバーガーメニューで実現するようにしました。
起動時にメニューをツリービューにコピーしているだけなのですが、選択項目のチェックがなかったり(チェックボックスの画像で対応)、xpt読み込み後のエントリ一覧更新等、ちょっと面倒な処理がありました。

とはいえ、基本部分の処理はやっぱり全く(バグ修正以外)いじっていません。


メインのロジックは全くいじらず、環境毎のお作法に則った動作機序さえ押さえていればそのまま1ソースでマルチプラットフォーム対応できるDelphiはやっぱり楽ちんですねぇ。


さて、残りはiOS対応ですが、それ以外にも各Storeへの登録手順もそろそろ確認しておきたいと考えています。