CommentsAppStoreでアプリを公開するときにアプリのサイズが50MBを超えてしまうとWiFiでないとダウンロードできなくなってしまうので、開発者の皆さんはなるべく50MB以内に抑えるようにしてるはず。筆者も作ってたアプリのサイズが50MBに近づいてきたのでなんとかしようと考えたのが、アプリ内で持っているデータをZIPに圧縮しておいて、使うときに解凍しようということで、やってみました。アプリ内で用意していたデータが30Mほどあったので、ZIPに圧縮してみたら10MB程度に減りました。おお、これはいいぞということで、もともとアプリ内に格納していたデータを消して、かわりにZIPに固めたファイルを格納。アプリが起動されたときにZIPを解凍するようにしました。ssdkfkを参考に実装。意外と簡単にできました。解凍したデータの置き場所はどこがいいのかと悩みましたが、Appleが公開しているファイルシステムプログラミングガイドを読むと、アプリ毎のライブラリフォルダのうちアプリケーションサポートのディレクトリ内がよさそうです。この場所はiTunesのバックアップ対象にもなって、ユーザーからは見えず、アプリ固有のデータを格納するための場所という位置づけです。このパスは下の方法で取得できます。リストが返却されるので先頭のデータを取ってくればよいです。YES);上の方法で取得したパスのしたに直接解凍するよりは、ディレクトリを作って解凍した方がいいでしょうね。これで、配布するアプリのサイズがかなり小さくなるはず!と思ったらほとんど変わらなかった。アプリ自体のサイズは小さくなったんですが、AppStoreに並ぶときはアプリまるごと圧縮されたファイルが並ぶので、あらかじめ一部のファイルを圧縮しておいても最終的なダウンロードサイズは変わらないんですね。アプリ起動時に30MBのZIPを解凍する処理が入ってしまうので、起動が遅くなるという負のおまけ付き。アプリのサイズを小さくするために、データを圧縮しておくのは無駄ですよというお話でした。してもアプリのサイズを減らそうとするなら、アプリを立ち上げてから外部サイトからデータをダウンロードするとかしないと無理なのかな。そこまでするのは面倒なので、50MB超えない程度にちまちまと無駄を削減するか。Pingbacks最後の返信は2013年8月19日でした。店頭デモ用iPhoneアプリの作り方マインスイーパーQにちょっと関心した。