Hex NFC 1.0.2 リリース:パスポートと DESFire への対応を強化
Hex NFC の近況と今後の予定をお伝えします。近く登場する Android 版のお知らせもあります。

App Store から Hex NFC を無料でダウンロードしてください! ずっと無料で、透明性があり、第三者の広告は入れません。
Hex NFC のリリースから 3 週間ほどがたちましたが、大きな励みになる成功を収めています。皆さんに本当に楽しんで使っていただいていて、これほど競合のひしめく市場の NFC アプリとしては、毎日まずまずの数のダウンロードがあります。
何人かの熱心なユーザーの方から非常に役立つフィードバックをいただき、珍しい NFC チップの数々もアプリで試していただいた結果、いくつかの部分で不備が見つかりました。
その話を続ける前に、開発費用に 5 豪ドルを寄付してくださったユーザーの方にお礼を申し上げたいと思います。アプリを開発していたときに開発費用を載せたのは、どちらかといえば、本気で手間をかけて作ったこと、そして AI にノリで書かせてさっと仕上げただけのお手軽なものではないことを示すためでした。当時、婚約者はかなり懐疑的で、「無料のアプリにお金を払う人なんている?」という空気でした。正直に言えば、私も半信半疑でした。だからこそ、遠く離れた国のどなたかが私たちの仕事をそこまで評価し、金額の大小にかかわらずお金を出してくださったことは、最高の褒め言葉なのです。私たちはうれしくて、家じゅうを踊り回りました。というわけで、私と Hex Pro から、大きな「ありがとう」をお送りします。
何人かのユーザーの方が、かなり珍しい渡航文書をスキャンすると何が表示されるのか、熱心に試してくださいました。幸運にもその結果を教えていただけたので、アプリに加えられる改善点をいくつも見つけることができました。
ご存じない方のために説明すると、ePassport(ISO/IEC 14443)は、パスポート番号、生年月日、有効期限を必要とする暗号化の仕組みを使っています。外国を旅行しているときに、通りすがりの詐欺師にパスポートの身元情報をスキミングされるという問題への、当然ともいえる解決策です。
Hex NFC は、シンプルなテキストと日付の入力欄を備えた形で開発しました。Hex Pro の基本理念の一つは、ユーザーのプライバシーと消費者の権利です。私は、本当に必要な権限しか求めないこと、そして解析やトラッキングは控えめにすること(たとえば、Google Analytics ではなくセルフホストの Umami を選ぶこと)を心がけています。そのため、当初はカメラの権限をアプリに入れていませんでした。ところが、カメラでパスポートの情報を読み取って復号の手順を楽にしてほしいという要望が、ユーザーの方々から強く寄せられました。そこで、できるだけ早く実装に取りかかったのですが、本当にそうしてよかったと思っています。高速で信頼性も抜群なので、ぜひパスポートをスキャンして試してみてください!
やり取りしたユーザーの方々は、特に興味深い文書を持ち込んでくださいました。1 つ目は中国のパスポート、2 つ目は台湾の「渡航文書」で、これは普通のパスポートとまったく同じ技術と構成を持っているそうです(不思議なものです)。そして、その次の数点は、マカオと香港の間を移動するのに使われる通行証でした。
中国のパスポートは、何の問題もなくすんなりスキャンできました。台湾の渡航文書には、データのオフセットに小さな問題があり、違う項目のデータがほかの項目にはみ出していましたが、これは簡単に直せました。
とても興味深い結果をもたらしたのは、3 つ目のグループでした。実を言うと、通行証はパスポートとしてスキャンされたものの、出てきたのはちんぷんかんぷんな文字の羅列でした。それでも、私と頼れる相棒のコーディングエージェントが解析の方法を突き止めるには、申し分のないデータになりました。
これがきっかけで、標準から外れた渡航文書を持つ国々という沼にはまり込みました。調べてみると、奇妙な例外のほとんどは欧州連合に集まっていることが分かりました。具体的にはベルギー、ポルトガル、そしておそらくスペインで、一部の番号が標準の 9 文字ではなく最大 12 文字になっています。
1.0.0 に入っていなかった機能が、NDEF アプリケーションのセットアップとNDEF アプリケーションの削除です。この機能がなければ、メーカーから直接届いた DESFire チップには、アプリケーションの Capability Container が入っていないままです。要するに、NTAG213 のようなもっと一般的な NFC チップとは違い、そのまま使えるようにはフォーマットされていないのです。
Hex NFC で、NDEF アプリケーションのセットアップと、その削除ができるようになりました。特に便利で、ほかではあまり見かけないのが、後者の機能です。これを使えば DESFire を工場出荷時の状態に戻せるので、あとで必要に応じて自由に別の用途に使えます。DESFire をかざしたら、「操作」を開き、「危険な操作」までスクロールして、「フォーマット」をタップするだけです。詳しくはドキュメントをご覧ください。
ローカライズを全面的に見直し、言葉の選び方を改善したほか、まだ英語だけだった箇所もいくつか翻訳しました。アプリは現在、Hex Pro が対応している次の言語にローカライズされています。
ドキュメントもすべて翻訳を終え、ウェブサイトからこれらすべての言語で読めます。画像やスクリーンショットも残らず含めてです(実に時間のかかる作業でした)。
ドラムロールをお願いします! そうです、Hex NFC が Android にやってきます。いつかって? 近日公開™です。性能もメーカーも異なる Android 端末を 3 台購入したので、かなり幅広い端末をカバーできるはずです。開発はすでに本格的に進んでいて、iOS 版のバージョン 1.0.3 にも影響する、かなり大きな変更をいくつも加えています。
大きなニュースは、クロスプラットフォーム開発をしやすくするために、シミュレーターを Rust に移植していることです。NFC シミュレーターは、実物の NFC チップの振る舞いを再現するように作られています。これを使えば、Hex NFC のアプリのコードを、対応するすべてのチップのロジックに照らして素早くテストできます。シミュレーターは、まずネットで公開されているデータシートをもとに開発し、その後、実機を使った厳密なベンチテストで仕上げます。後者によってシリコンの実際の振る舞いを詰めていき、Hex NFC があらゆる状況を正確に扱えるようにしています。
シミュレーターを完全に Rust へ移植すれば、バックエンドが大きく異なることになる iOS 版と Android 版のアプリのコードの両方に対して、同じシミュレーターを使えます。プラットフォームをまたいで振る舞いの一貫性が保たれ、今後の変更によるリグレッションも起きにくくなります。
Rust への移行とあわせて、iOS は対応していないものの Android は対応しているチップをシミュレーターに加えて対象を広げつつ、既存のシミュレーターの肉付けと改善もさらに進めています。そのために、テスト用の新しいタグをいろいろと購入し、合計で約 160 豪ドルになりました。アプリのウェブサイトにある開発費用のページも更新しました。この取り組みを評価してくださる方には、ぜひ寄付で開発を支えていただくとともに、App Store で星 5 つの評価とレビューをお願いしたいと心から思っています。
私たちは、作れる限り最高品質のソフトウェアをお届けしようと、懸命に取り組んでいます。これからが楽しみですし、今月中のリリースを予定している Sol と Nepali Companion をはじめ、今後のアプリもぜひご検討いただければうれしいです。
新しいタブで開きます

