0

これは、少し複雑な私の最初の iOS アプリになります。試してみる前に、フィードバックを得るためにコンポーネントと構造の概要を説明したいと思います。

ユーザーの観点から見ると、アプリは地元の湖の水位を監視し、水位がユーザーが指定した量に変化したときにプッシュ通知を受け取ります。Parse を使用すると、ユーザー データを管理するのが最も簡単になると思います。また、Nodester で Node.js サーバー側コンポーネントを試してみます (基本的な JS をいくつか知っており、慣れるための優れた新進気鋭の言語であると考えています)。これが私がそれをどのように機能させているかです...

  • ユーザーはデバイスでアカウントを作成しlakeLevelChange、プッシュ通知を受け取る金額を指定します。ユーザーのデータは、Parse のデータ管理にプッシュされます。
  • サーバー側コンポーネントは、このプログラムを 1 日に 3 ~ 6 回実行します。
    • currentLakeLevelHTTP リクエストを介してプルします
    • Parse からユーザー データを取得します
    • currentLakeLevelをユーザーが指定したものと比較しますlakeLevelChange
    • 差が => の場合、lakeLevelChange指定された条件が満たされたユーザーごとに、プッシュ通知 HTTP Post リクエストが送信されます
  • Parse は POST リクエストを受け取り、プッシュ通知を APNS サーバーに送信します
  • クライアントがプッシュ通知を受け取る

実際にタイプアウトすると、それほど複雑に聞こえません。これは、この機能を構造化する適切な方法ですか? 何か不足していますか?提案は大歓迎です!

4

2 に答える 2

2

論理的な問題のビット:

サーバー側コンポーネントは、このプログラムを 1 日に 3 ~ 6 回実行
します。HTTP リクエストを介して currentLakeLevel を取得します。
Parse からユーザー データをプルします
currentLakeLevel をユーザー指定の lakeLevelChange と比較します
差が => lakeLevelChange の場合、指定された条件が満たされたユーザーごとにプッシュ通知 HTTP Post リクエストが送信されます

実際には、各ユーザーの最後のアラートのレベルも保存する必要があります。そうしないと、増分変更がユーザーのしきい値を超えてしまい、アラートがトリガーされない可能性があります。

レベルが 6 インチ変化したときにアラートを受け取りたいと言ったとします。次に、毎回レベルが 1 インチずつ上昇する 7 つのイベントを記録します。どの時点でも 6 インチ超える変化は見られませんでしたが、変化の合計は通知のしきい値を超えています。おそらく、そのことを通知していただくつもりでした。

そのため、アラートを発生させるときは、現在のレベルを保存する必要があり、変更イベントごとに、それを前回通知したレベルと比較します。

于 2012-04-03T20:39:27.610 に答える
1

あなたは不幸な道を逃しています。それは、プログラムが常に移動する一方で、プログラマーが移動することのない道です。計画通りには何も進まないので、失敗に備える必要があります。「サーバーがメンテナンスや停止のために電源を落とし、スケジュールされた 3 ~ 6 回の実行のうち 1 つまたはすべてを実行できなかった場合はどうなりますか?」などの質問を自問してください。「逃した実行をキューに入れ、逃した通知をたくさん送信する必要がありますか?」「ユーザーが lakeLevelChange として指定したものを変更したが、無線が切れているか、サーバー要求が完了できない場合はどうなりますか?」「Parse がガベージ データを取得したり、ガベージ データを生成したりするとどうなりますか?」これらのいくつかを尋ねるだけで、最適な設計に向けて進むことができます。

于 2012-04-03T20:36:00.677 に答える