一時的な確認メッセージ(Androidではトーストと呼ばれます)を表示する必要があるiPhoneアプリを作成しています。たとえば、ユーザーがコメントを送信すると、「コメントを送信してくれてありがとう」というメッセージがポップアップ表示されます。その直後、メッセージは消えます。私のiPhoneアプリには、このような一時的なメッセージがたくさんあります。 Androidと2つの事前設定された時間-"short"と "long"ですが、完全に制御できるiPhoneで再作成しています。
私がやりたいのは、そのメッセージの文字数に基づいて、各メッセージを表示するのに最適な時間を計算することです。ユーザーがメッセージを快適に読むのに十分な時間が必要ですが、メッセージがアプリの使用を妨げるほど長くはありません。
X = number of characters.
F(X) = seconds to read entire sentence given X
線形ですか?つまり、「hello」を読み取るのに0.5秒かかる場合、「hello world」を読み取るのに1.0秒かかります。
F(X) = 0.1 * X
それは腐敗しますか?つまり、長い文章を読むと、読む速度が速くなりますか?
F(X) = 1 / X
それとも二次式ですか?つまり、追加の各文字は前の単語よりも多くの時間を広告しますか?
F(X) = X ^ 2
Wikipediaの speed reading エントリによると、200 wpmです。
私は科学がこの解決策の主な問題だとは本当に思っていません。実際の使用をテストして評価する必要があります。
これはかなり古い質問だと思いますが、Googleからここに来たので、おそらく他の人もそうでしょう。
同様の状況で、任意の数の単語を含む可能性のある通知をユーザー(デスクトップ上)に表示する必要があり、もちろんこの通知を適切な時間表示する必要がありました。
私は少し調査をして、 別の質問 からの回答を引き出しました、そしてこれは私が思いついたものです(Pythonで):
def getWaitTime(self, text):
''' Calculate the amount of time needed to read the notification '''
wpm = 180 # readable words per minute
Word_length = 5 # standardized number of chars in calculable Word
words = len(text)/Word_length
words_time = ((words/wpm)*60)*1000
delay = 1500 # milliseconds before user starts reading the notification
bonus = 1000 # extra time
return delay + words_time + bonus
Wikipediaの記事 で180ワード/分が推奨されています(紙ではなく)コンピューターで読む場合、おそらく少し遅いですが、通知にはあいまいなファイル名が含まれている可能性があります読むのに少し時間がかかります。これが、bonus
時間を含めた理由でもあります。
delay
時間は、ユーザーが右下の通知に気づき、それを読み始めたことを説明するためのものです。
同じWikipediaの記事では、「単語」は5文字ごとに数えられるため(スペースや句読点を含む)、1分あたりの単語数は技術的に正しくないと述べています。
たとえば、「I run」という語句は1つの単語としてカウントされますが、「rhinoceros」と「let's talk」はどちらも2つの単語としてカウントされます。
成人の読み書きのできる人は、文字で読まない。彼らは、その言語を学習する最初の段階の外国語に対してのみ、さらにはほとんどの場合、彼らが知っている言語とは非常に異なるスクリプトを使用する言語に対してさえ(英語を話す人はアラビア語ではそうですが、ドイツ語ではそうではありません)。それ以外の場合、Wordはほぼ全体として脳に登録されます。おそらく「百科事典」という言葉の方が「アリ」という言葉よりも時間がかかりますが、違いはせいぜいミリ秒単位であり、おそらくそれも違います。また、非常に主観的(その人がそのWordを使用する頻度に基づく)であり、測定が非常に困難です。
簡単に言うと、ユーザーテストを実行するだけです。数人のユーザーを取得し、フェードアウト時間の異なるメッセージをいくつか見せて、最も快適なものを確認します。または、すでにそれを実行しているいくつかのアプリ(できれば、これを調査した可能性のある開発者(Appleなど))をいじって、ソリューションをリバースエンジニアリングしてみてください。