(Android)リアルタイム更新?気をつけて



今日、私は後輩と先輩の開発者に私の過程を残したいと思っています.彼らは私が2番目の自分になるかどうか分かりません.

どうして現場更新を書くのですか?


AppがMarketをパブリッシュしない場合は、理由は簡単です.
これは、権限が厳しいグーグルに対して絶対的な禁止行為をしたソフトや、政府機関が使用したソフトです.
うちの会社は後者です.
このアプリケーションはappmarketでは公開されないので、独自のリアルタイム更新を使用します.

どうやって生放送を更新しますか?🤨🤨


文字が苦手な友達のためにFlow Chartを描きました

このようにして実行し、リアルタイムで更新する会社も変わらないだろう.
また、この過程でエラーが発生する可能性があるのは
1.テキストファイルのダウンロードパス
2.全体式
3.APKダウンロードパス
.
エラー処理も完璧だと思います.(なぜエラー処理がこうなったのか分からないので、すぐに教えてあげたいと思います)

なぜユニットテストが必要ですか?



		var iServerVersion = 0.0
		var iLocalVersion = 0.0

                    try {
                    //패키지 이름을 가져온다.
                        val pInfo: PackageInfo = mContext.getPackageManager().getPackageInfo(Utils.FORESTVIEW_PACKAGE_NAME, PackageManager.GET_META_DATA)
                        val sLocalVersion: String = String.valueOf(pInfo.versionName)

                        iServerVersion = Double.parseDouble(ServerVersion)
                        iLocalVersion = Double.parseDouble(sLocalVersion)
                    } catch ( e : PackageManager.NameNotFoundException) {
                        e.printStackTrace();
                    }

    				//가져온 패키지의 버전이 높다면
                    if (iServerVersion <= iLocalVersion) {
                        FileDownLoad = "N"
                        break;
                    }
ここにExceptionができました
Exceptionが処理したので、アプリは死なないと思いますが、もっと大きな問題は:
		var iServerVersion = 0.0
		var iLocalVersion = 0.0
このような宣言によってExceptionに入ると、iServerVersion <= iLocalVersionは同じであるため、更新を実行しません.
その結果、アプリケーションの最新バージョンをダウンロードした人は、最新バージョンを更新できません.
ここで、開発者は常に疑いを抱くことを学んだ.
もしエラー処理中にこのようなエラーが発生したら?単位テストを行うべきです.

Xになったらどうする?



このソフトウェアは何万人もの人が使用していると思います.

メールを送ってAPKを再ダウンロードしようとしたら、誰がバージョンを更新したのか分からない.

では、数万人にメールを送るのではないでしょうか.

幸いなことに、当社のアプリケーションを使用する人が少ないため、「del」(ラッキーなのか悲しいのか)「del」の問題は小さいが、この問題を予防する方法を考えなければならない.


すぐに修復しなければならないもの



まず最初にexceptionの改良です.

		var iServerVersion = 0.1
		var iLocalVersion = 0.0

                    try {
                    //패키지 이름을 가져온다.
                        val pInfo: PackageInfo = mContext.getPackageManager().getPackageInfo(Utils.FORESTVIEW_PACKAGE_NAME, PackageManager.GET_META_DATA)
                        val sLocalVersion: String = String.valueOf(pInfo.versionName)

                        iServerVersion = Double.parseDouble(ServerVersion)
                        iLocalVersion = Double.parseDouble(sLocalVersion)
                    } catch ( e : PackageManager.NameNotFoundException) {
                        e.printStackTrace();
                        iServerVersion= 0.1
                    }

    				//가져온 패키지의 버전이 높다면
                    if (iServerVersion <= iLocalVersion) {
                        FileDownLoad = "N"
                        break;
                    }

0.0を0.1に変更し、Exceptionに移行したときに0.1と宣言した場合、この問題は発生しません.

しかし、他のコードではこのようなことが起こり得るため、(ココアではエラーも多い)

更新されたユーザだけが単独で抽出できるようになれば,より容易になる.br/>
そのため、個人情報WASを構築するコストが高すぎる.


これが問題なら...クラウドサーバーを使えばいいんじゃないですか?!


FireStoreの使用




考えてみれば、GoogleはFirebaseとFireStoreを発売しています.



FireStoreとは?


NoSQLクラウドデータベースを使用してデータを保存および同期できます.

すべてのクライアントは、アプリケーションがオフラインであってもデータをリアルタイムで同期できます.



<>認証もセキュリティもFireStoreが自分で管理するという選択肢はありますか?


すると、このデータベースで暗号化された携帯電話番号とアプリケーションのバージョンがcollectionになりました.



セキュリティ上の理由で表示することはできませんが、このように作成します.

結末はいつもすばらしい結末だ



これでまたトラブルを起こしました

あまり予防が悪くないので、悪くない経験だと思います.では.ここまで~!😘