質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

3250閲覧

iPhoneアプリ完成後にするべきこと

mym

総合スコア12

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

1クリップ

投稿2017/07/13 07:57

プログラムを始めて2ヵ月の初心者ですが、作っていたiPhoneアプリが一応完成しました。と言っても、作った機能が動き、レイアウトも崩れない、というだけで、リリースするには問題が多々あります。

例えば読み込みに時間がかかったり、実機本体が熱くなったりすることです。それを解消するための方法や、アプリを軽快に動かすためにできることなど教えてください。

また、ライブラリを複数使っており、ファイル数が数百あります。使わないファイルは削除しても良いのでしょうか?

知り合いにGitHubにアップするようにアドバイスされましたが、なんのためにするのかよくわかっていません。また、コミットしようとすると数百のファイルを全てアップしようとするので、困っています。その後確実に不要なファイルを消したところ、Missing Filesのエラーが数百出て、どうしようもなくなり、とりあえずgitをターミナルから削除しました。

ご教示いただけたら助かります。よろしくお願いします。

umeruma👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

やることをあげるとキリがないので、まずは優先順位をつけて対応されたほうが良いかと思います。
具体的なアプリ内容や開発環境が不明なので、ざっと気づいた点のみ挙げていきます。

実際にアプリを操作する上で致命的となるものを上げていき(遅い、カクつく、操作出来なくなる等)、1つずつ潰して行った方が良いと思います。
潰して行く中で単に「遅い」と思っていたものが、実は特定の環境や設定で遅い場合などが出てくるので丁寧に1つずつ対応して、まずはノウハウを蓄積していくのが先かと思います。

遅い場合 :ライブラリーのバージョンが古かったり、処理に無駄があったり。後は本体性能が足りていない場合など
ライブラリ同士の連携がボトルネックだったり、ハイブリットアプリの場合はそもそも早くないのでネイティブ言語を使うなど。
熱くなる場合:CPUを使っていることで熱くなる場合や、GPUを使って熱くなる場合を考えて、それぞれに見合った対処を行う
処理の効率化や、より効率的なライブラリに変えたり、ライブラリの数を減らすなど

ライブラリについては、本当に使用されていない場合は削除しても問題ないですが、依存関係にある場合などは削除すると動かなくなる場合があります。
その辺りが分からない場合は無理に削除しない方が良いと思いますが、削除しても問題ないかどうかは1つずつ丁寧にライブラリを見ていく必要がある場合があります。

gitへのアップですが、他の方に見て貰ったりしたいのであればアップしても良いと思いますが、そうでなければ現時点では特に必須な状況ではないと思います。
まずは現時点の問題点の洗い出しをして、優先度の高いものから丁寧に対応していくのか良いでしょう。

投稿2017/07/13 08:38

zeijaku.net

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mym

2017/07/13 09:48

すぐに回答いただき本当にありがとうございました! ライブラリの数を減らすことはできるかもしれないと思いました。検索してコピペしたコードのままで、現時点の仕様では必要なさそうに思えるRelmとの連携を削除できるかもしれないです。ただ、これまではどうしても上手くいかないところはプログラマーの友人(SwiftやiPhoneアプリには詳しくない)や勉強会の先生に聞いたりして解決してこれたのですが、ここから先は未知の世界で、藁をも掴みたい状況です。お忙しい中大変恐れ入りますが、githubのコードをご覧いただいてアドバイスしていただけませんでしょうか? https://github.com/mymyshs/ubiquitous-spoon/blob/newbranch/PressureMeter/ViewController.swift です。何卒よろしくお願いいたします。ライブラリ削除の方法を自分でも調べてやってみます。
zeijaku.net

2017/07/13 11:30

中身を理解せずにコピペしているということでしょうか? まずはどういった時に遅いのか?遅い時に使用されている部分はどこか? を確認すれば良いと思います。 藁を掴む必要はなくひとつずつ確認し原因を想定して、プログラムを修正するの繰り返しで良いと思います。
mym

2017/07/14 04:50

とりあえずできることから、まずはRealmとの連携をやめる修正を始めました。アドバイスありがとうございました。
guest

0

ベストアンサー

まず、どのようなソースを書いているのかがこちらにはわからないのでなんともいえませんが、

「読み込みに時間がかかる」に関しては
・無駄な処理がある
例えばfor文の中にfor文を置いてさらにその中にデータベースとやりとりしている
・無駄なSQL文を書いており、何度もデータベースとやりとりをしている
・SQLでサブクエリを使いすぎて検索が遅い
・膨大なレコード数のテーブルにインデックスを張っておらず検索に時間がかかっている
など挙げ始めるときりがありません。

「実機本体が熱くなる」に関しては
CPU稼働が高く排熱が追い付いていないので、CPUの稼働を低くできるようにするべきだと思われます。
どのようなアプリを作ったのかはわかりませんが、
たとえばこれまで開いてきた画面がすべてバックグラウンドで処理を継続しているなどです。
無駄なものは終了させ、不要なリソースを解放させるとよいと思われます。

gitについてですが、バージョン管理はとても便利ですが何のために使うのかわからないまま使うのは愚策です。
まずはgitで何ができるかを調べてみてはいかがでしょうか。
使わないファイルはもちろん削除したほうが良いですが、ライブラリのファイルはライブラリの仕組みを理解していないうちに消すと問題が起こります。

投稿2017/07/13 08:32

s.t.

総合スコア2021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mym

2017/07/13 09:43

すぐに回答いただき本当にありがとうございました! for文の中のfor文、確かにあります。これまでは検索してコピペしたり、どうしても上手くいかないところはプログラマーの友人(SwiftやiPhoneアプリには詳しくない)や勉強会の先生に聞いたりして解決してこれたのですが、ここから先は未知の世界で、藁をも掴みたい状況です。お忙しい中大変恐れ入りますが、githubのコードをご覧いただいてアドバイスしていただけませんでしょうか? https://github.com/mymyshs/ubiquitous-spoon/blob/newbranch/PressureMeter/ViewController.swift です。何卒よろしくお願いいたします。
s.t.

2017/07/13 12:41

では、ヒントだけ・・・ どこの処理が重たいのかを、計測してみるとよいでしょう。 例えば、この関数にはどのくらい時間がかかっているか、 このループにはどのくらい時間がかかっているか、 などを調べるときの手段として、 その処理に入る前、終わったあとにタイムスタンプを埋め込みます。 終わったあとのタイプスタンプのすぐ後ろにタイムスタンプの差分を出力すれば、かかった時間がわかるはずです。 ここは何ミリ秒だった、ここは何ミリ秒だったと、1個ずつ計測してみてどこが重たい処理なのかを理解してみてください。
mym

2017/07/14 04:55

for文でイメージを表示する判定をしているので、やはりそこの修正が必要のようです。タイムスタンプを埋め込む方法も探してみます。具体的な方法を教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問