SQLDelight 1.0 使い方 #1

バージョン1.0アナウンスされています。

Announcing SQLDelight 1.0 – Alec Strong – Medium

神も。


データベース周りにRoom他のライブラリをご利用の方も試してみてはどうでしょうか。

square/sqldelight: Generates typesafe Kotlin APIs from SQL

SQLDelight は、以下のようなSQLステートメントからデータベース、テーブル、タイプセーフなAPIを作成できます。

HockeyPlayer.sq


CREATE TABLE hockeyPlayer (
  player_number INTEGER NOT NULL,
  full_name TEXT NOT NULL
);

CREATE INDEX hockeyPlayer_full_name ON hockeyPlayer(full_name);

INSERT INTO hockeyPlayer (player_number, full_name)
VALUES (15, 'Ryan Getzlaf');

selectAll:
SELECT *
FROM hockeyPlayer;

insert:
INSERT INTO hockeyPlayer(player_number, full_name)
VALUES (?, ?);

定義したAPIは以下のように利用できます。



val driver = AndroidSqliteDriver(Database.Schema, this, "test.db")
val database = Database(driver)
val playerQueries = database.hockeyPlayerQueries

// selectAll
println(playerQueries.selectAll().executeAsList())
// Prints [HockeyPlayer.Impl(15, "Ryan Getzlaf")]

// insert
playerQueries.insert(player_number = 10, full_name = "Corey Perry")
playerQueries.insert(player_number = 999, full_name = "フグ田 サザエ")

// selectAll
println(playerQueries.selectAll().executeAsList())
// Prints [HockeyPlayer.Impl(15, "Ryan Getzlaf"), HockeyPlayer.Impl(10, "Corey Perry")]

利用前の build で build/generated/ 以下に書き出されますが、gradle のバージョンが限定されるように見えました。何か設定が足りないのかもしれません。

gradle-wrapper.properties


distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip

実際サンプルを動かす風景。



利用方法など今回バージョン1.0 で変わっているようなので、

数回に渡って実装に利用できるとこまでやってみたいと思います。

(つづく...)

SQDelight の データベースバージョン
Reddit: Announcing SQLDelight 1.0 – Alec Strong – Medium
SQLDelight 1.0 使い方 #2


Firebase In-App Messaging は実装不要。

言い換えると、「コードの記述」が不要。

できることは、Firebase 管理画面からアプリ上にプッシュしてダイアログを出せるというもの。

アプリのリソースでの作業は、 build.gradle の以下の記述追加のみ。


dependencies {
  // ...
  implementation 'com.google.firebase:firebase-inappmessaging-display:17.0.0'
  implementation 'com.google.firebase:firebase-core:16.0.1'
}

Firebase アプリ内メッセージングを使ってみる  |  Firebase

あとは、Firebase のコンソールで設定する。

表示させた各ダイアログ(ボタン)をタップしたときのアクションはURLでセットしておく。

あとは表示させるタイミングを設定画面からアレコレやってみるといい。

なんせ、2行の追加だけだもの。

これで撒いといてもいいんじゃね?

ベータだけど。


一目で分かる「Pay(ペイ)」の基本

細いイレギュラーはあるが、分かりやすくした。

おおまかに今現在の構成を俯瞰で捉えておくことは必要。

見えてくるのは、

「スマホ上でQRコード支払いは最も現金に近い。」

ということ。

👉「なんとか Pay」ってのややこしすぎないか?


「Files by Google」って「ファイル(マネージャ)」アプリと何が違うの?

Android にプレインストールされている

「ファイル」
( com.android.documentsui )

「Files by Google」
( com.google.android.apps.nbu.files )

て何が違うのか。機能的には同じ? という疑問から。

言語を英語に切り替えると同名でアイコンが表示されるし。

Files by Google

 

実際に確認してみる

どうやら、「Files by Google」 は、ストレージ容量の小さい端末に対して特に有効に働くよう、デバイスのストレージの「空き容量を増やすための機能」がいくつかプラスされています。

「削除すべきファイルを見つける → 削除する」という一連の操作が簡単にすばやくできそうです。

 

通知

削除すべきファイルを見つけて通知をくれます。

以下のように7種類の通知があります。

スマホでも、PCでもスペース確保のためファイルを削除するとき、これらの条件で検索したりしますよね。

Mac の 空き容量 がない場合

 

各アプリジャンクデータの削除

各アプリごとに不要なデータを削除できます。

一括もまとめてできるような。



しかし、「ジャンク」の基準は何なのか。

少し怖くないか。

 

各アプリのアンインストール

先ほどのアプリ別のポップアップメニューにあるようにアプリ自体のアンインストールもできます。

また、複数選択しての一括アンインストールもできます。

 

ファイルの転送(P2P)

ネット接続で遠くの人にもファイルを送信できますが、ネットが無くても、Wifiなどを利用して、ファイルの送受信ができます。

ファイルを共有する - Files by Google ヘルプ

まとめ

解凍もzipだけできるようです。

実際、ファイル情報による検索や選別は、画面の小さいスマホでは辛い部分があるので、楽ちんで良いです。

あとダウンロードしたファイルとか溜まっていくのとか、アンインストールしたアプリデータが残ってるのも嫌だったし。

Files by Google ヘルプ


Google Play ストア この半年で3割のアプリが消えた理由

App Store でのアプリ数減少に続き、

App Storeのアプリ数が3割減った理由 - ITmedia NEWS

App Storeのアプリ数、2017年で初の減少~その理由とは? - iPhone Mania

Google Play ストアでもこの半年で30%アプリ数が減少しているそうな。

Number of Android applications on the Google Play store | AppBrain

理由として以下のように書かれています。

なぜAndroidアプリの減少したのか

Googleでは、特定のデータが入力されていないアプリをストアから削除しています。たとえば、Googleがすべてのアプリに対して「子供向けのものであるかどうか」と入力項目を付け加えました。この項目が存在する前に、ストアにアプリを公開していた開発者に、Googleはこの項目を記入しなければならないという警告を出しました。アプリ公開後、放置したままの開発者は、(気づくことができずに、) この入力項目を埋めることができず、Googleはその後アプリを非公開にしました。

他にも、「SDKのバージョンアップ」や「ポリシーの変更」などで対応を警告していたように思います。

間違いなく公開されているアプリの品質は上がりますね。