1. mono0926

    No comment

    mono0926
Changes in body
Source | HTML | Preview
@@ -28,10 +28,11 @@
これを元に、以下が良さそうと思い実装したら、Gif動画のようになかなか良い感じになりました。
- ネットワーク状態が悪いときでも、90%程度まで10秒程度かけて進捗が進むようにする
- 進捗の進む間隔・進む割合を、ランダムに1秒前後開けつつ、10%前後進めるようにする
- ランダムにすることでフェイクっぽさが消える
+ - 10秒程度経つと、90%で止まってしまうのは許容
- ネットワークが良い状態では、進捗が半分弱くらいで実際の処理が終わってしまうが、そのタイミングで一気に100%まで進めて小気味良くフィニッシュした感じにしてごまかす
- Gif動画はこのパスです
この実装後は、特にこれに関してマイナス意見聞くことが無くなったので、なかなか良い塩梅で実装出来たのでは、と思っています。
僕自身、開発中に「あれ、止まった?」と思うことが無くなりました。
@@ -66,11 +67,11 @@
}
private var progressCompleted = false
/** これがフェイク進捗の肝のメソッド */
-func increaseProgress(progress: Float, message: String?, until: Float = 1) {
+func increaseProgress(progress: Float, message: String?, until: Float = 0.9) {
if progressCompleted {
return
}
SVProgressHUD.showProgress(min(progress, until), status: message, maskType: .Gradient)
// 進捗がuntilで設定した最大値を超えたらそれ以上進捗を増やさずに待機
@@ -87,11 +88,11 @@
}
/** サインアップ処理 */
private func signUpImpl() {
progressCompleted = false
- increaseProgress(0.05, message: message, until: 0.9)
+ increaseProgress(0.05, message: message)
// 実際のログイン処理を呼ぶ
// ...
// 終わったら100%に進める
progressCompleted = true