質問: ### 前提 Pythonの勉強とスマホアプリ作成の勉強を兼ねて Pythonでロジックを書いたandroidアプリの作成を行おうと考えています。 PythonでのネイティブアプリはKivyを利用すればよいのですが 今回は画面をkv言語ではなくhtmlで書きたいのと、 iOSとandroidに対応したハイブリッドアプリを作成したいので Ionic というWebアプリケーションフレームワークと Django REST framework を組み合わせて ガワ + Pythonのロジック でネイティブアプリを作成する算段です。 そもそもWebアプリケーションフレームワークを用いた オフラインのネイティブアプリというのが矛盾しており、 手段と目的が逆転している感は承知していますが 以下悩んでいるポイントについて 知識がある方、助言いただけると助かります。 ### 悩んでいるポイント IonicとDjangoRESTframeworkの連携についてです。 html + js の画面から カスタムURLスキームのような形で アプリ内のDjangoRESTframeworkで作成したAPIへリクエスト 返ってきたレスポンスを元に画面を再構築する といったクライアントとサーバのような関係を疑似的に同一アプリ内で 構築してやればWebアプリケーションフレームワークを用いた ネイティブアプリが作成できるのではないか と思っているのですが 上記のようなことは実現可能なのでしょうか...? 有識の方がいらっしゃいましたら助言のほど宜しくお願い致します。 ### 補足情報 **開発環境** ・Windows 10 ・Visual Studio Code **技術構成** ・Cordova ・Ionic ・Django ・Django REST framework
回答: 実践したことがないのですが、とてもむずかしいです。 Ionicを動かすためには、 Cordova や Capacitor のような Web View を表示するためのフレームワークが必要ですが、これらは HTML/CSS/JS を動かすもので、 Python(Django) を動かすことはできません。 そこで、 Kivy 上で Web View を表示してその中で Ionic を表示することになりますが、 Kivy には Web View と Native をブリッジさせるための機能がないので、そのまわりをすべて自作する必要がでてきます。 オフラインアプリということなので、個人的にはPythonを使わずにCordovaやCapacitorを利用するか、Ionicを利用せずKivyでアプリをつくることが一番近道だと思います。