Delphi XE6で作成したBluetoothを使用するAndroidアプリケーションをDelphi XE7に移行したときの話

やったこと

先日、Delphi XE6で作成したBluetoothを使用するAndroidアプリケーションをDelphi XE7から導入されたBluetooth APIを使用するように修正しました。
そのときに感じたことを書きます。
(BluetoothはBluetooth LEではなく、クラシックBluetoothです。)

修正前のアプリケーション

  • 開発環境…Delphi XE6
  • Bluetooth…AndroidのBluetooth API

修正後のアプリケーション

  • 開発環境…Delphi XE7
  • Bluetooth…DelphiのBluetooth API

DelphiのBluetooth APIはAndroidのBluetooth APIに似ている

DelphiのBluetooth APIはAndroidのBluetooth APIに似ていると感じました。
AndroidのBluetooth APIを参考にして、DelphiのBluetooth APIを設計したのかもしれません。

知っているAPIによく似ていたので、DelphiのBluetooth APIの使い方はすぐにわかりました。
学習コストは低いと思いました。

DelphiのBluetooth APIに書き換えてソースコードが見やすくなった

AndroidのAPIを使用するときは、Delphiのデータ型とJavaのデータ型を変換する処理が必要になります。

Delphiのデータ型からJavaのデータ型に変換してAndroid APIに引数として渡します。
Android APIの返値はJavaのデータ型ですから、Delphiのデータ型に戻します。
このような変換作業が何度もソースコード上に現れます。

DelphiのBluetooth APIに書き換えることによって、Javaのデータ型とDelphiのデータ型を変換する必要がなくなりました。
ソースコードはずっと見やすくなりました。

足りない機能はAndroid APIを呼び出す

DelphiのBluetooth APIはAndroidのBluetooth APIのすべての機能をサポートしているわけではありません。
実装されていない機能もありました。
たとえば、デバイスがBluetoothを使用できるかを調べたり、Bluetoothが有効になっているかを取得する機能はDelpphiのBluetooth APIにはありませんでした。

DelphiのBluetooth APIに実装されていない機能は、AndroidのBluetooth APIを呼び出すことで対応しました。
ネイティブのAPIを簡単に呼び出せるので、DelphiのAPIがサポートしていなくても大きな問題にはなりませんでした。

Windowsでも動く

DelphiのBluetooth APIに変更する作業が終わった後、試しにターゲットデバイスをWindowsにして実行してみたところ、アプリケーションがそのまま動作しました。
これには驚きました。

開発中はAndroidデバイスにアプリケーションを転送して動作を確認していましたが、転送には時間がかかります。
はじめからWindows上で動作を確認していれば、もっと早く開発できたと思います。

まとめ

特に大きな問題もなく、AndroidのBluetooth APIからDelphiのBluetooth APIに移行することができました。

WindowsでもBluetoothが使えることにもっと早く気がついていれば、開発がもっとスムーズにできたと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください