• ベストアンサー

iPhoneアプリの開発についてです。

UIWebViewを使い記事を閲覧する機能を備えたアプリを作成中ですが、UIWebViewの表示速度をもっとはやくしたいと思います。 UIWebViewがsafariに比べて遅いことは理解しているのですが、他の方のアプリを使ってみるとずっとサクサク表示されるので不思議に思いました。 何かそういった表示をはやくするライブラリを実装しているのか、バックグラウンドでキャッシュを読み込んでいるのか・・・。 もし後者ならどうやって能動的にキャッシュを取得しているのか。 知っている方がいられたら、アドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> UIWebViewがsafariに比べて遅いことは理解しているのですが、他の方のアプリを使ってみるとずっとサクサク表示されるので不思議に思いました。 > 何かそういった表示をはやくするライブラリを実装しているのか、バックグラウンドでキャッシュを読み込んでいるのか・・・。 そのアプリは、本当にUIWebViewを使っているんでしょうか? 例えばFacebookアプリは、以前はUIWebViewを使っていましたが、 今は使わずに実装しているそうです。 (参考) http://d.hatena.ne.jp/naoya/20120629/1340940873 また、そのアプリとあなたのアプリで、同じ時刻に同じネット経由で Webサイトを表示してもやはり性能に差があるんでしょうか? また、Webページによって、画像の多いページとかJavaScriptが たくさん動いているページとかいろいろあると思いますが、 どんなページで性能劣化が見られるのか詳しく分析しているでしょうか? 性能が悪い原因をちゃんと調べないと、やみくもに直しても 見当違いで無駄な改造にしかならない可能性があります。 また、UIWebViewでなく、自分のコーディングが性能問題を 引き起こしている可能性はないのでしょうか? xcodeには、Instrumentsという性能分析ツールがありますので、 そういうのを使って自分のアプリの動きをしっかり分析した 方がよいと思います。 (参考) http://tech-gym.com/2012/04/ios/732.html なお、キャッシュについては、以前の質問 http://bekkoame.okwave.jp/qa8591946.html で取り上げられた http://qiita.com/EntreGulss/items/8da6847e4dae59bfb1eb の記事に書かれてあるものを使ってWebアクセスしてみて、 2回目のアクセス(キャッシュ済みデータ使用)でも性能に 満足が行かないなら、おそらくキャッシュでは改善しない 問題だと思います。

nylonraw999
質問者

お礼

丁寧な回答ありがとうございます。xcodeにそんな分析ツールがあるとは知りませんでした。UIWebViewの表示スピードに関してはhttp://qiita.com/EntreGulss/items/8da6847e4dae59bfb1ebのライブラリを使っていたことが要因だったようです。プロトコルのコードを消したら改善しました。

関連するQ&A

  • iPhoneアプリの開発についてです。

    今RSSリーダーのようなiPhoneアプリを開発中です。 TableViewのセルをタップすることで目的の記事をUIWebViewに表示させるといったNavigationControllerを使ったシンプルなものですが、直前に表示した記事を左スワイプすることでスクロール位置などそのままの状態でもう一度表示させるといった機能を実装したいと考えています。 例えると、Safariでスワイプして戻ったり進んだりする感じです。 WebViewからTableViewに戻ると、当然WebViewを表示していたインスタンスは破棄されますのでその直前にインスタンスをコピーすればいいのではなど色々試行錯誤してはいますが行き詰っています。 コピーできたとしてもそれを復元するといった形で再び再描画する方法もわかりませんし、そもそもインスタンス、つまりはViewをコピーするといったやり方にもピンときません。 どうすればいいでしょうか?わかる方がいればぜひ教えてほしいです。

  • iPhone Safariのキャッシュ有効期間

    お世話になります。 ホームページを更新してもiPhoneのSafariで閲覧したとき、キャッシュが残っていると古いページが表示されます。自分のサイトであれば更新したことを知っていますのでキャッシュを消去すれば良いのですが、他の人が閲覧する場合にはキャッシュを消去することなく閲覧するのが普通だと思います。それらの人たち(手動でキャッシュを消去しない人たち)に新しいサイトが表示されるのは、いつになるのでしょうか? Safariのキャッシュには有効期限があって、何日経てば新規読込される等、何か決まりがあるのでしょうか?

  • iアプリ開発 スピード(時速)計測コード

    お世話になっております。 xCodeで、速度を計測しデジタルで速度を表示するという動きを アプリの一部に実装したいと考えております。 ウェブサイトを探してみたのですが、サンプルとして使えそうなサイトを 発見することができませんでした。 参考になりそうなサイトを教えて頂けますと助かります。

  • iPhoneのアプリの通信量について

    iPhone5sを使い始めたのですが、公式のgmailやmixiやTwitterやFacebook,YouTubeのアプリを使うよりも、ブラウザアプリを使った方が、パケット通信量は抑えられますか? Safari,chome,mercury,skyfire,OperaMiniのどれがいいですか? mercuryだと圧縮を有効にするという設定があるので一番抑えられますか? Twitterのアプリは、ついっぷる、ecofon,soicha,hootsuiteとかありますが、どれが通信量抑えられますか? モバイル通信量抑えられるなら、速度低下してもOKなので、教えてください! 宜しくお願いします。

  • iPhoneのメールについてとおすすめのブラウザを

    教えてください。 かなり前今年7月ごろにiPhone5を買ってずっと今まで使っています。 最近になって「もしかしたらメールアプリってバッテリーの容量食うし、バックグラウンドでも実は働くアプリなのかな?」という懸念が生まれてきました。 実際どうなのでしょうか?私は今までネットを使い、iPhoneのバッテリーの減りを改善する方法という内容で調べてきたことがあります。 そこで書かれていた内容としては、「VoIPアプリや音楽アプリはたとえマルチタスクで閉じていても、裏で働いている(CPUを使っている)」という内容でした。 最近になってやけにバックグラウンドでメールアプリを閉じているときだけ気持ちバッテリーのヘリが速いかな?とおもうようになっています。 実際どうなのでしょうか?メールアプリはバッテリーを多く消費するアプリで、バックグランドでも働いているアプリなのでしょうか? _____ それに関連した質問をもう1つさせていただきます。 iPhone5のオススメのブラウザを教えてください。最近Wikipediaや長い文章の記事をSafariやChrome、Mercuryで観ることがよくあります。 電車にいるときはじっと画面をその調べもので凝視している状態です。 もちろんですが、ブラウザアプリを開いているとCPUを使うので、バッテリーの減りもそれなりに早くなります。 そこでオススメの(条件がバッテリーの減りがそこまで気にならない)iPhone用のブラウザを教えてください。Wikipediaや文字中心の記事が見られたら十分です。 _____

  • iPhone Safari Google について

    iPhone6sを利用しています。 ブラウザはSafariを利用しています。 Safariを起動して、Googleで検索しようとすると画面下に、 「Googleをアプリで体験」と頻繁に表示されます。 この表示を非表示にする方法はありますか? ちなみに、Googleアプリはダウンロードしていますが、Safariの方が使い慣れて おりSafariしか利用していません。 以上、ご回答よろしくお願い致します。

  • xアプリとxアプリforLISMOのライブラリは別々のものでしょうか?

    xアプリとxアプリforLISMOのライブラリは別々のものでしょうか? xアプリforLISMOをDLしたら、弟の利用しているxアプリと同じライブラリが表示されました。 xアプリforLISMOでそれらの音楽を削除した場合、xアプリの方でも削除されたとみなされ、ライブラリから消えてしまうのでしょうか? また、曲を追加した場合も、2つに追加されてしまうのでしょうか?? 別々に管理したいと思っております。 どなたかお詳しい方、お教えていただけないでしょうか??><

    • ベストアンサー
    • au
  • EXCEL表示、編集可能なiPhoneアプリ

    iPhone用アプリ(4S)で、表示と簡単な編集(行や列の挿入など)ができるアプリはいろいろとありますが、PCからEXCELファイルを送り、それをアプリで開き閲覧、編集でき、ずっとアプリの中に保持しておけるもの(すぐにぱっと開けるもの・EXCELで単語帳として利用したいため)がなかなか見つかりません。アプリでシートを新規作成をするものがほとんどで、PCでEメール添付などで送られてきたEXCELファイルを編集したり閲覧するアプリがないようです。現在Sheet2を使用していますが、これも新規作成する必要があるみたいです。 私の希望に沿うアプリをご存知のかた、どうか教えて下さい。

  • iOS開発:撮影後の写真を写真アプリで開く

    iOS開発初心者です。現在、Objective-Cでカメラアプリを開発しています。 iOS 8標準のカメラアプリでは、撮影後、画面の左下にサムネイルが表示され、 そのサムネイルをタップすると、カメラロールに保存された写真を、標準の写真アプリで開けます。 このような機能を、自分のアプリにも実装したいと考えているのですが、上手くいきません。 AlAssetsLibraryを使用してカメラロールに保存はできました。 UIDocumentInteractionControllerに、保存時に取得したassetURLを使用して、写真アプリを起動しようとしたのですが、UIDocumentInteractionControllerではassetURLでは開けないようです。FileURLでないと駄目なようです。 iOS標準のカメラアプリでは、どのようなアプローチで、サムネイルをクリックして写真アプリを起動しているのでしょうか? どなたか、ご存知のかた、または推測できるかた、ご教授ください。 また、同等の機能を実装する方法をご存知でしたら、教えてください。 ちなみに、撮影した写真をアプリで加工し、EXIF情報を追加する必要があるので、AlAssetsLibraryは必須です。 よろしくお願いします。

  • UIWebViewに関する質問です

    iPhoneアプリの開発でUIWebViewを使用しています。 UIWebViewでサイトなどを表示すると一気にメモリを食われ困っていました。 なので、以下の様な記述を通信が終わった後に実行させる様にしました。 [_webView loadHTMLString:@"" baseURL:nil]; _webView.delegate = nil; _webView = nil; [_webView removeFromSuperview]; 実際に_webViewはnilにはなり、いくらかメモリも解放できるのですがそれでも残っているメモリがかなりあります。 [[NSURLCache sharedURLCache] removeAllCachedResponses]; _webView.dataDetectorTypes = UIDataDetectorTypeNone; [[NSURLCache sharedURLCache] setMemoryCapacity:0]; 上記の様なキャッシュをためない様な記述も試しましたが効果が薄いです。 UIWebViewで使用したメモリをまっさらにするにはどうしたらよいでしょうか?

専門家に質問してみよう