2010年5月に、iOSデバイス用の
Pravo.ruリーガルリファレンスシステムの最初のモバイルクライアントをリリースしました。 当時、これは規制行為やロシア連邦のその他の公式文書へのアクセスを提供する最初のアプリケーションでした。 2010年12月、
iPad用のアプリケーション。 そのため、今日、iOS用のSPS Pravo.ruは、法的参照システムの中でインストール件数のリーダーです。
sofbixは、アプリケーションの作成のストーリー、発生した問題、およびそれらを解決する方法について説明しました。
開発
iOSにATP "Pravo.ru"を実装する過程で、いくつかの困難に直面しました。 1つ目は、PCAがドキュメントの大きなデータベースで表され、デバイスに保存するのが難しいことです。 デバイスに十分なスペースがない可能性があります。 同時に、オペレーティングシステムは、主にキャッシュをクリアすることにより、アプリケーションリソース(当社のものも含む)を解放します。 ただし、Webから更新されたドキュメントは、モバイルデバイスのメモリに保存する必要があります。 そして、そのようなドキュメントを開くのにキャッシュされたデータを使用する最適なソリューションを見つけましたが、Webからダウンロードしたドキュメントは、キャッシュをクリーニングする際に損失なくデバイスに保存されることが保証されます。
その秘密は何ですか? ドキュメントを失うことなくキャッシュを消去するにはどうすればよいですか? 答えはバックアップです。 実際、ドキュメントを更新するたびに、自動的にzipファイルに保存されます(テキストファイルは最大10回「圧縮」されます)。 Zipが保存され、キャッシュがクリアされ、ローカルに保存されたドキュメントが必要になると、ドキュメント回復メカニズムが起動します。 このような柔軟なシステムにより、デバイスのディスクを乱雑にすることなく、デバイス上のデータを安全に残すことができます。
zipでの保存を実装するために、さまざまなlibz.dylibラッパーが試されています。 主な欠点は、ストレージをストリーミングせずにメモリを操作することでした。 出力zipファイルのサイズが大きいため、それらは私たちには適していませんでした。 ATPは、記憶の急速な「消耗」のために低下しました。
ZipArchiveライブラリを取得し、ストリーミング保存を自分で実装する必要があり
ました 。 さらに、イベントの委任を通じて保存の進行状況の視覚化を追加しました。 コードは
ここで取得でき
ます 。
昨年まで、iOS用のSPSアプリはネットワークでゆっくりと動作していました。 これは、サーバーからドキュメントを開くとき、または更新をダウンロードするときに顕著でした。 速度を数回上げることができましたが、逆にメモリ要件は減少しました。 Webサービスを操作するためのプロトコルは変更されていません。JSONを使用していますが、解析のために別のライブラリに切り替えました。
すべての種類のライブラリを
ここで比較し
ます 。 開発者が設計パターンを使用していたため、新しい
JSONKitライブラリ
を実装して古い
SBJSON を置き換えるのは簡単
でした。 使用するライブラリからプログラムを独立させるために、プロキシデザインパターンを使用しました。 その目的は、Webサービスに関連するプロトコルからのデータ変換のロジックを一般的にカプセル化することです。 したがって、経済的な
Protobufに切り替えることができます。
ATPのスケーラビリティを提供する別の設計パターンは、コンポジターです。 それに基づいて、キャッシュメカニズムを作成しました。 さらに、抽象キャッシングクラスの継承者またはその相続人(現時点では8つの実装がある)をデータプロバイダーに提供することで、これまたはその効果を得ることができます。 たとえば、ドキュメントはストアのプリエンプティブキューに送信され、1日後に無効になります。 ただし、ユーザーが最新のデータを取得する機会がない場合(インターネット接続がない場合)、無効なキャッシュから安全に受信します。 したがって、開発者は、アプリケーション全体と個々の部分全体の両方のキャッシュの概念を変更できる柔軟なメカニズムを作成しました。
今日のアプリケーションの主な機能:
地域の法律

検索結果では、ドキュメントに関心のある地域を指定できます。
クイックナビゲーション

これで、検索結果をスワイプすると、検索クエリが見つかったドキュメントの部分がすぐに開きます。 この場合、アプリケーションは検索テキストを選択します。
法学

法の支配を示し、関連文書に行き、関心のある実例と裁判所に印を付けてください。
文書の改訂

アプリケーションを使用すると、既存のすべてのエディションをすぐに使用できます。 ドキュメントテキストを使用する場合は、エディションのリストを開き、必要なエディションを選択します。
ユーザーの要望やアドバイスを考慮して、アプリケーションのサポートと開発を続けています。 ご質問にお答えします!