マガジンのカバー画像

PythonとKivyでAndroidアプリ作成 (配布)

13
Pythonでスマホアプリが作れると聞いて挑戦した内容の記事です。 言語はPythonguiはkivyコンパイラはbuildozoer。 この記事ではAndroidアプリを作成し…
運営しているクリエイター

#Rcat999

PythonでAndroidアプリ作成してみる #13 Update#1 巨大ファイル対策 バージョン認証

こんにちは、Rcatです。 #13からはアップデートとなります。 本シリーズはこちら 作品の配布はこちら 巨大ファイル対処サーバー側 バックアップ中にサーバーが強制終了するなと思ったら、送付中のファイルサイズが16GBありました…。 現仕様では分割受信データをメモリに保持して最後に書き込みという仕様ですが、最後までメモリに保持するためメモリ使用率が大きくなってしまいます。その結果完全にサーバーのメモリオーバーで落ちてました。 ちなみにこの仕様は、当初wait()を使用

【配布】PythonでAndroidアプリ作成してみる #12 バックアップサーバーの構築と完成

こんにちは、Rcatです。 バックアップアプリもそろそろ大詰め!今回はサーバー側の話です。 前回まででアプリはほぼ完成しましたので、今までWindowsで動かしていたサーバーを予定通りLinuxの方に入れていきます。 また、今回からvenv仮想環境やrequirementsを用意するようにします。 それと一部クライアントの修正を行いました。UrlRequestの部分でwait()とコールバックについて再考しました。 本シリーズはこちら サーバについて概要 まずはサーバー

¥300

PythonでAndroidアプリ作成してみる #11 Android保存先と環境変数

こんにちは、Rcatです。 ずっと解説し忘れていたのですが、設定ファイルどこに保存する?という話です。 PCで使う分には同じフォルダにデータをただ保存するだけでいいんですが、Androidアプリの場合ってどうするんでしょうか? 昔からAndroidのフォルダに関しては直接見ることが多いので、アプリ個別のフォルダがあることは知っており、ではどうすればアクセスできるかということについて考えていこうと思います。 本シリーズはこちら 保存先フォルダと環境変数では、いきなりネタばら

PythonでAndroidアプリ作成してみる #10 コンパイル設定の変更 アプリアイコンなど

こんにちは、Rcatです。 今回はアプリのコンパイルに関する細かい設定を変更していきます。 具体的にはbuildozerのspecファイルを変更します。 何をやるかは目次をご覧ください。 本シリーズはこちら コンパイル設定の変更[app]セクション公式リファレンスを確認しながら進めていきます アイコンとスプラッシュの変更 まずはアプリの顔と言えるアイコンを設定します。 スプラッシュはアプリを起動した後、直後に表示される画面のことです。 アイコンに関する表記は以下 5

【データ配布】PythonでAndroidアプリ作成してみる #9 ログ画面の作成とアプリの完成

こんにちは、Rcatです。 さて、前回バックアップ機能のほとんどが完成しましたので、アプリ側の作り込みをやっていきたいと思います。 というのも前回バックアップしてる最中実はアプリが完全にフリーズするんですよね。 コンソール側の表示やサーバー側のログを見ればきちんと動作しているというのはわかるのですが、画面だけ見るとフリーズして何しているのかわからないという状態です。 というわけで、バックアップの進行状況がわかるように画面を追加していきましょう。 そして、今回の機能を組み込めば

PythonでAndroidアプリ作成してみる #8 バックアップ機能詳細

こんにちは、Rcatです。 前回やっとの思いでパソコンでもスマートフォンでもファイルの送信を行えるところまでやりました。 今回はバックアップということで、ファイルの送信方法や差分の検索方法などを考えていこうと思います。 本シリーズはこちら ファイルの存在チェックファイル情報のリストについて まずはバックアップを効率的に行うため、ファイルの存在チェックを行います。 具体的には、すでに同じファイルがあるかどうかを判定し、その次に更新日時が同じかどうかを確認します。 ファイル

PythonでAndroidアプリ作成してみる #7 クライアント認証 (CookieとKivy UrlRequest)

こんにちは、Rcatです。 今回はクライアントの認証をやっていきます。 バックアップサーバーは1つの端末だけでなく、複数の端末を接続できることを想定しているので、端末を見分ける必要があります。 また、既存のデータに他の端末が上書きしてしまわないようにログインのように認証する必要があります。 今回はhttpを使っているので、その辺は普通のログイン画面と同じような仕組みでやっていけると思います。 ただし、今回使っているライブラリが普通のrequestライブラリではなく、kivyの

PythonでAndroidアプリ作成してみる #6 kivy UrlRequestでファイルアップロードをする

こんにちはRcatです。 前回はアプリとサーバーでのデータやり取りの部分を検討/構築しました。 しかし、PCでは上手く行ったもののAndroidでは即落ちする問題が発生してしまいました。 ということで今回はその辺解決できるのかどうか試していきます。 本シリーズはこちら 悪あがき1 threadingまずは既存の知識で悪あがきしていました。 書かなくてもいいようなことですが、試したことは書きたいので書きます。 適当に調べたところ、requestsが応答待ちの間イベントが止

PythonでAndroidアプリ作成してみる #5 サーバーと通信方式

こんにちは、Rcatです。 前回無事にスマホ内のファイルを検索できたところで、そろそろ本題に入っていきたいと思います。やっとです。 今回はネットワークを通じたバックアップの方法と具体的な処理内容の検討になります。 本シリーズはこちら バックアップ方法の検討構想 さて、バックアップの方法についてですが、httpを使おうと考えています。 もっと簡単に言えば、ウェブページのフォームでよくあるファイルを選択してアップロードするやつです。 あれを使ってファイル名や作成日時、更新日

PythonでAndroidアプリ作成してみる #4 Android 権限とファイル探索

こんにちはRcatです。 前回はアプリのguiの作り込みを行いました。 今回から機能面に入っていきたいのですが、フォルダ選択をしていて気になったことがあります。 それがフォルダが表示されるのにそこにあるはずのファイルが出てこなかったことです。 どういうことか確認してみましょう。 本シリーズはこちら 現状ファイルが表示されない まず現状ですが、フォルダ選択をしようとした時に以下のような画面になっていました。 ぱっと見問題なさそうに見えるんですが、ここファイルがあるはずなん

PythonでAndroidアプリ作成してみる #3 Kivy GUI深堀

こんにちは、Rcatです。 前回は任意レイアウトでのGUIをスマホにもっていくところまでを行いました。 ここからは今回の目的であるバックアップアプリを作っていきます。 まず、最初にguiレイアウトの方を深掘りして作ってしまいましょう。 本シリーズはこちら はじめにGUIレイアウトの検討 まずはパワーポイントでどういう感じのguiにしようか考えてみました。 それぞれの要素の説明 ボックスレイアウトを四角い図形を並べて表しています。 大体こんな感じのレイアウトで作成でき

PythonでAndroidアプリ作成してみる #2 kivyのGUIテスト

前回はアプリと言えないレベルでの動作確認まで行いました。 今回は操作の要となるGUIの部分を確認していきます。 本シリーズはこちら はじめに調べるとkivyでのGUI作成にはいくつか方法があるようですが、今回はGUIだけ別の"kv"ファイルを作成していく分離方法を取ります。 理由としてはリアルタイムビューアーが使えるからです。 ※少し進んだ後追記。クラスから操作できるような書き方をするとプレビューできなくなります。 また、書き方については公式を日本語訳した下記サイトを参

PythonでAndroidアプリ作成してみる #1 環境構築とテスト

今回はPythonでスマホアプリの開発をやっていきます。 昔にCordovaでJavaScript+HTMLでアプリを作ったことはありますが、やはりPythonの方がやりやすいのでないかなと何となくAIに質問したところkivy&buildozerという環境があり、Android / IOS / Windowsで使えるというマルチプラットフォーム環境のようです。 具体的には、Pythonでアプリ作成、ライブラリのkivyでGUI(画面)作成、buildozerでアプリ化という流