見出し画像

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

こんにちは、Rcatです。
今回はアプリのコンパイルに関する細かい設定を変更していきます。
具体的にはbuildozerのspecファイルを変更します。
何をやるかは目次をご覧ください。

本シリーズはこちら


コンパイル設定の変更[app]セクション

公式リファレンスを確認しながら進めていきます

アイコンとスプラッシュの変更

まずはアプリの顔と言えるアイコンを設定します。
スプラッシュはアプリを起動した後、直後に表示される画面のことです。

アイコンに関する表記は以下
512x512のpngファイルを用意しろとのこと

アイコンはフリー素材を適当にパワポで組み合わせました
こちらを512x512にして入れてみます

記述箇所はこちら
上側がスプラッシュイメージで下側がアプリアイコンです。
今回は両方とも同じデータを使用しています。

# (str) Presplash of the application
presplash.filename = %(source.dir)s/data/backup_512.png

# (str) Icon of the application
icon.filename = %(source.dir)s/data/backup_512.png

ディレクトリ状態
"data"の中に画像を入れています

パッケージ名など

設定ファイルを一番上に名前に関するいくつか設定がありましたね。
これに関してはすでに設定済みですが、一応解説します。
一番上はアプリのタイトル。名前順に並べた時、一番上に来るように0から始まるという名前にしてます。
次がパッケージ名。調べたところ、ドレインを逆にする使い方をするみたいです。厳密な決まりはないみたいなので、一番後ろにアプリの名前もつけておきます。
最後にドメイン。セキュリティの都合上、個人のddnsのドメインを書くわけにはいかないので架空のドメインを書きます。
一応、本当に使われていないか逆引きしましたが、誰も使っていないみたいなので私はこれで行きます。まぁストアに公開するわけでもないので、別にかぶってても問題ないですが。

# (str) Title of your application
title = 0RcatBackUPApp

# (str) Package name
package.name = jp.rcat999.rcatbk

# (str) Package domain (needed for android/ios packaging)
package.domain = rcat999.jp

ドメインの使用状況は下記サイトで調べました。
誰かしらが使っていれば紐付けられたIPアドレスが返却されるサイトです。
ちゃんとボート開放できてるかとかでもよくお世話になってますね。
https://www.cman.jp/network/support/ip.html

バージョン

バージョンの設定方法には2種類あるみたいです。
1つ目は直接バージョンを記述する方法。上半分の設定ですね。
バージョンが上がるたび、このファイルを書き換えることで、バージョンの変更を行うということですね。
もう一つが正規表現を使ってスクリプトから検索する方法。下半分の設定ですね。とりあえずコメントを外した状態でこちらを使用しようと思います。

# (str) Application versioning (method 1)
#version = 0.1

# (str) Application versioning (method 2)
version.regex = __version__ = ['"](.*)['"]
version.filename = %(source.dir)s/main.py

ソースファイルから検索するためのバージョン記述を行います。
メインファイルの一番上に下記のようにバージョンの追記を行いました。

ライブラリのインポート

標準ライブラリー以外は自動でimportされないようなので、ここで記述する必要があります。
今回は下記のようになっています。
パスワードをハッシュ化するために使っている暗号化ライブラリが追記要素です。
現時点ではわざわざcryptographyは必要ないのかもしれませんが、今後暗号化してからアップロードなども考えているので、このライブラリは入れておきます。

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy,cryptography

Android固有セクション

権限の設定

下記の記事でも紹介していますが、アプリの実行内容によって権限が必要です。
今回はストレージの管理と写真とメディア及びインターネットアクセスの権限を追加しています

# (list) Permissions
# (See https://python-for-android.readthedocs.io/en/latest/buildoptions/#build-options-1 for all the supported syntaxes and properties)
android.permissions = android.permission.MANAGE_EXTERNAL_STORAGE, android.permission.MANAGE_MEDIA, android.permission.READ_EXTERNAL_STORAGE, android.permission.WRITE_EXTERNAL_STORAGE,android.permission.INTERNET

最終結果

アプリアイコン

インストールしようとした時点でアイコンが出てきています。

インストール後、下記のような状態になりました。
うまく設定されているようです。名前もゼロから始まるので一番上にいます。

スプラッシュイメージ

アプリ起動直後、下記のような全画面が表示されました。
きちんと置き換えに成功したようです。

バージョンと権限

アプリの詳細情報を確認すると以下のようになっています。
上から見ていくと、まず必要な権限が付与されているのがわかります。
また、バージョンが1.0.0になっており、最後のパッケージ名も今回設定したものが入っていることがわかります。

まとめ

今回はコンパイルに対する細かい設定を詰めていきました。
これでやっとちゃんとしたアプリっぽくなってきましたね。
次回は、実は説明していなかった設定データどうやって保存しているのかについて触れた後、今後の追加機能やサーバー側の本格運用についてやっていこうと思います。
それではまたお会いしましょう。


情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。