Paging3 ライブラリ

👉 Paging 3 library overview  |  Android デベロッパー  |  Android Developers 

「ページングライブラリ」は、ローカルストレージやネットワーク経由のより大きなデータセットを読み込みページを表示する処理に使います。これを使うことで、ネットワーク帯域幅とシステムのリソースを効果的に使うことができます。Android app architecture にフィットするように設計されており、他の JetPack コンポーネントとも綺麗に統合することができます。

メリット

ページングライブラリには以下の機能があります。

- ページ分けされたデータのメモリーキャッシュ化。システムリソースを効果的に使います、
- 重複リクエストの排除。ネットワーク帯域とシステムリソースを効果的に使います。
- 設定可能な指導リクエスト付き RecyclerView Adapter。ロード済みデータとスクロールを考慮。
- Kotlin coroutine と Flow を最優先。LiveData や RxJava のように利用可能。
- リフレッシュやリトライを含んだエラーハンドリング。

👉 componentid:413106 status:open - Issue Tracker 

設定

build.gradle に以下のようにして dependencies に追加します。


dependencies {
  def paging_version = "3.0.0-alpha01"

  implementation "androidx.paging:paging-runtime:$paging_version"

  // alternatively - without Android dependencies for tests
  testImplementation "androidx.paging:paging-common:$paging_version"

  // optional - RxJava2 support
  implementation "androidx.paging:paging-rxjava2:$paging_version"

  // optional - Guava ListenableFuture support
  implementation "androidx.paging:paging-guava:$paging_version"
}

構成

Paging ライブラリは、推奨されている Android app architecture に直接統合できます。ライブラリコンポーネンツはアプリの中で3つのレイヤーを持っています。

- Repository レイヤー
- ViewModel レイヤー
- UI レイヤー

ここでは、Pagingライブラリコンポーネントがそれぞれのレイヤーでどのように組み合わせてく使われ、データ読み込みからページを表示するまでを説明します。

Repository レイヤー

Repository レイヤーで、主要な Pagingライブラリコンポーネントとなるのが PagingSource です。それぞれの PagingSource オブジェクトはデータソースとそれをどう走査するかを定義します。PagingSource オブジェクトは、ネットワークやローカルデータベースなど一つのソースからデータをロードします。

もうひとつは、RemoteMediator です。 これは、ネットワークデータソースとローカルデータキャッシュのようなレイヤー分けされたデータからのページングを管理します。

ViewModel レイヤー

Pager コンポーネントは、PagingSource や PagingConfig オブジェクトから PagingData インスタンスを作成するためのパブリックなAPIを提供します。

ViewModelレイヤーとUIを接続するコンポーネントは、PagingData です。PagingData オブジェクトは、ページ付けされたスナップショットのコンテナです。PagingSourceオブジェクトに問い合わせし、その結果を保持します。

UI レイヤー

UIレイヤーで主要ページングライブラリコンポーネントは、PagingDataAdapterです。RecyclerView のアダプターでページ付けされたデータを取り扱います。

代替として、 独自のカスタムアダプターを作るのに AsyncPagingDataDiffer コンポーネントを使うこともできます。

その他

ページングライブラリについてもっと学ぶために、以下のリソースも参照してください。

👉 Android Paging 
👉 architecture-components-samples/PagingSample at paging3 · android/architecture-components-samples 
👉 architecture-components-samples/PagingWithNetworkSample at paging3 · android/architecture-components-samples 


10万円 特別定額給付金 - オンラインで申請する【スマホの場合】

利用者が混乱するのは間違いない。

👉 総務省|特別定額給付金|オンラインで申請する 

私なりにまとめてみよう。

おおまかな流れを知っておくとうまくいくと思います。

 

■ 準備したもの

マイナンバーカード
- 2種類のパスワード付きで発行したもの
- 4桁パスワード - 自動入力用
- 6-16桁パスワード(必須) - 個人署名送信用

スマホ Android Pixel3
- Playストアから「マイナポータルAP」をインストールする

振込口座の分かる写真(スマホ内に保存)

 

■ 申請方法の注意点

パソコンは利用せず。スマホのみで申請を行う。

アプリ「マイナポータルAP」から起動するが、

実際は「マイナポータルサイト」内の「ぴったりサービス」で行うことになります。

その途中で、

スマホアプリとマイナンカードをかざすことが必要のなるのは、以下2つ部分。

1. 申請者情報の自動入力
→ アプリがカードから読み取ってブラウザ経由で入力している。
→ パスワード4桁が必要。マイナンカードなしなら手入力でも可能。

2. 個人の電子署名の送信(必須)
→ アプリがカードから読み取って保存サーバへポストしている。
→ パスワード6-16桁が必要。

ブラウザとアプリによってデータを入力、取り込みしていくので
遷移時に分かりづらくなるはずと予想。

 

■ 申請の流れ

このレビューを見ていたのでだいぶ助かりました。

【特別定額給付金を、マイナンバーカードで申請しようとしているかたへ】
最後に壮大な(ある意味予想通りの)オチが待っています。私の残した足跡(キャプチャ写真)を順にご覧ください…。

step1 連絡先入力

step2 申請者情報入力
※ マイナンバーカードによる自動入力 (暗証番号4桁)

step3 申請情報入力

step4 入力内容確認

step5 添付書類登録

step6 書類確認

step7 電子署名付与
※ マイナンバーカードによる電子署名の送信 (暗証番号6~16桁)

最終的には、「連絡先入力時」に入力したメールアドレスに控え一式zipがメールで送られてくる。

- 説明 PDFx1
- 控え PDFx2
- 入力データ CSVx1

 

■ まとめ

口座情報写真添付でマイナンカードかざして送信で終わり。

とはいかないものなの? 無理か。

カメラでない「NFCによるデータ読み取り」機能を初めて使う人は、読み取りの操作や雰囲気を以下のアプリで前もってやっておくといいと思います。

👉 マイナンバーカードのパスワードを覚えてますか。 
👉 マイナンバーカードの暗証番号入力間違い回数の確認やリセットする方法 


新型コロナ関連アプリを作っても公開停止だろ?

👉 AppleとGoogleが共同開発のコロナの接触者追跡アプリのインターフェースが公開 - iPhone Mania 

公開されてます。Javaライブラリとして。

👉 google/exposure-notifications-android: Exposure Notifications Android Reference Design 

よおし!

これを利用してアプリ作っちゃうか!

 

新型コロナアプリは勝手に公開できない

2020年4月に、「10万円給付」の前に「30万円給付」という話がありました。

このときに、30万円給付に該当するか確認するアプリを作って公開しようとPlayストアにアップしたのですが、

即停止されました。

その時のメール。

アプリのステータス: Life support temporary benefit (reference) ポリシー違反により   Google Play での公開停止中

審査の結果、お客様のアプリは配慮が求められる事象に関するポリシーに違反していることが判明いたしました。自然災害、残虐行為、紛争、死、その他の悲劇的な事象に対する妥当な配慮を欠く、またはそのような事象を利用するという違反が含まれております。詳しくは、配慮が求められる事象のページをご参照ください。
たとえば、お客様のアプリには現在、正当な情報源なしに、コロナウイルス(COVID-19)への参照が含まれています。

以下のいずれかに該当する場合は、その旨が確認できる書類をご提出ください。

1. アプリの製作者が政府または公的医療機関である場合。
2. アプリの製作者が政府または公的医療機関にアプリ制作依頼を受けている場合(例:WHO、赤十字社、その他の医療機関等にアプリ制作依頼を受けている)。
3. アプリが政府または公的医療機関の承認を得て作成されている場合。

販売 / 配布停止の対象になりますと、Google Play デベロッパー アカウントの状態が良好ではなくなりますので、ご注意ください。違反の繰り返しがあったアプリが否承認となったり削除されたりする場合と同様、著しいポリシー違反や複数のポリシー違反があったアプリは停止となることがございます。

また、文中内「配慮が求められる事象」。

自然災害、残虐行為、紛争、死、その他の悲劇的な事象に対する妥当な配慮を欠く、またはそのような事象を利用するアプリは認められません。
以下に一般的な違反の例を示します。

• 自殺、薬物の過剰摂取、自然死などによる人間の死への配慮が欠けている。
• 大規模な悲劇的事象を否定する。
• 悲劇的な事象から利益を得ているように見える(被害者に恩恵が届いているのか明確でない)。

👉 不適切なコンテンツ | 制限されているコンテンツ - Developer Policy Center 

「corona」でストアを検索すると結構ある。

開発元、パッケージドメインからみるに、政府や公的機関な雰囲気。

👉 corona - Google Play の Android アプリ 

「covid-19」で検索すると、WHOのものしかない。

👉 covid-19 - Google Play の Android アプリ 

 

まとめ

政府や公的医療機関の依頼がない限り、Playストアから公開は無理なのでしょう。

👉 マイナンバーカードの暗証番号入力間違い回数の確認やリセットする方法 
👉 Google | Exposure Notifications API 
👉 Google COVID-19 Exposure Notications Service Additional Terms