Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

アプリ(リリースビルド)のサイズを削減する #114

Closed
5 of 6 tasks
keiji opened this issue Apr 13, 2021 · 8 comments · Fixed by #979
Closed
5 of 6 tasks

アプリ(リリースビルド)のサイズを削減する #114

keiji opened this issue Apr 13, 2021 · 8 comments · Fixed by #979
Labels
confirmed 開発内部管理用 enhancement 新しい機能や改善のリクエスト

Comments

@keiji
Copy link
Collaborator

keiji commented Apr 13, 2021

その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?

#41 より。

機能に対してアプリケーションのサイズが大きいためインストールのハードルが上がっている。

解決策についてお書きください / Describe the solution you'd like

アプリ自体の容量を小さくする。

あなたが考える代替案についてご説明ください / Describe alternatives you've considered

オブファスケーターでさっくり容量削減できるとうれしい。

その他 / Additional context

(以前は、アプリが一定のサイズ以上になるとWi-Fi接続でしかインストール・アップデートできなかった記憶があるけど最近は違うのかな。すこしぐぐっても出てこなかった。


Internal Tracking ID: NFR 1691, NFR1788
Internal Tracking ID: FEATURE 1473
Internal Tracking ID: NFR 1505

@keiji keiji added the enhancement 新しい機能や改善のリクエスト label Apr 13, 2021
@keiji
Copy link
Collaborator Author

keiji commented Apr 13, 2021

@keiji
Copy link
Collaborator Author

keiji commented Apr 13, 2021

NotoSansCJKjp-*.otf のファイルがそれぞれ16MBずつある。
必要な文字だけサブセット化することで容量を削減できるか検討したい(ライセンス - SIL Open Font Licenseライセンスについては要確認 )。

日本語WebフォントにNoto Sans CJK JPを指定する時に気を付けたこと
https://b.0218.jp/20150620044014.html

@Takym
Copy link
Contributor

Takym commented Apr 13, 2021

言語リソース内にも必要無さそうなデータがあります。例えば #104 でも話した通り AppResources.NotifyOthersLearnMoreUrl は何故かマイクロソフトの公式サイトを指しており、一切参照されていません。

他にも日英中以外の言語は削除しても問題無さそうです(#111)。

@tmurakami
Copy link

How to reduce App Size in Xamarin Forms?
https://stackoverflow.com/questions/48786649/how-to-reduce-app-size-in-xamarin-forms

の Answer にもありますが、aab にすればさらにサイズを減らせるのではないかと思います。
https://devblogs.microsoft.com/xamarin/android-app-bundle/
https://dev.classmethod.jp/articles/xamarin-android-app-bundle-getting-started/

@Takym
Copy link
Contributor

Takym commented Apr 23, 2021

関数一つ一つを見直して短くできればかなりアプリ容量を削減できそうだと思いましたが、とても大変な作業になりそうですよね。ほぼ全ての関数を書き換える事により新たな不具合も発生しそうですね。もしかしたら、逆に全ての関数を見直す事により不具合が減り、より効率的に動く可能性も有り得ますね。

@keiji
Copy link
Collaborator Author

keiji commented May 10, 2021

フォントについて「カスタムフォント廃止 #132 」でまとまりました。

@i-maruyama
Copy link
Contributor

i-maruyama commented May 14, 2021

#160 (comment) から飛んできました。

Debug_Mock 用の時だけ使うファイルが存在すると思います。もしこれが Release バイナリに含まれるようでしたら、 #160 で議論されたアイデア(下記。私は詳しくありません)を用いて、 Release ビルドで無くすことをご検討いただけますか?

プロジェクトファイルの ItemGroup に条件を指定して Debug ビルド時にのみ取り込む様に設定する事はできます。

  1. 現存TestNativeImplementation.cs, HttpDataServiceMock.cs, StorageServiceMock.cs : このクラス HttpDataServiceMock, StorageServiceMockはApp.xaml.csで利用されますが、 #if USE_MOCK でしか使われませんので排除可能と思います。
  2. PR DebugPage の実装 #178 で追加予定の DebugPage.xaml, DebugPage.xaml.cs, DebugPageViewModel.cs : これも同様に、 #if DEBUG でしか使われませんので排除可能と思います。 Release 時には取り込まれないようになりました( PR DebugPage の実装 #178 051ab33)

もし私の勘違いで、そもそもコンパイル時に捨てられて、そもそも Release バイナリに含まれない可能性もあります。どなたか詳しい方、よろしくお願いします。

@keiji
Copy link
Collaborator Author

keiji commented Apr 19, 2022

AndroidはAABになって打ち止め感があります。

iOSはまだ(プロジェクトにフォントファイルが含まれていて)改善の余地がありそうなので、別途Issue化します。

This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
confirmed 開発内部管理用 enhancement 新しい機能や改善のリクエスト
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants