API-19 と 20+ 間を Material Design でどう跨いでいけばいいのか

Introduction_-_Material_design_-_Google_design_guidelines

とりあえず公式をみてみる.

* テーマの設定

1. Holoのようなこれまでのテーマを継承して定義する
res/values/style.xml

2. 同じ名前でテーマをMaterialテーマを継承して定義する.
res/values-v21/style.xml

3. これらのテーマを AndroidManifest.xmlでアプリに設定する.

* レイアウトの設定

21+向けのディレクトリをそれぞれ準備する
res/layout-v21/
res/values-v21/

API-21+ に対しては, 各リソースファイルを「*-v21」として新規に作成するという考え方.

これまでのUIデザインを変化させずに, 新しく OS 5.0+ の端末に対してのみマテリアルなデザインを表示させる.

その後にこう書いてる.

* サポートライブラリをセット

Theme.AppCompat を使えば いくつかのウィジェットは MaterialDesign のものを使える.

dependencies {
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:cardview-v7:21.0.+'
compile 'com.android.support:recyclerview-v7:21.0.+'
}

EditText
Spinner
CheckBox
RadioButton
SwitchCompat
CheckedTextView
RecyclerView
CardView
Palette

完全ではないもののいくつかのウィジェットは appcompat-v7 で対応できる.

Lollipopを載せた端末の拡散具合や人気を考えると, OS4.x系端末でのマテリアルデザイン表示をしないと「マテリアルデザインに対応します(しました)」とうたいづらい.

よほどUIが凝ったアプリで無い限り, この appcompat-v7 ウィジェットを使って, これまで(API-19まで)のテーマに適用する, まずは.

/res/values/styles.xml

...
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...

とこれまでのテーマの親にもつ.

このあと, 微調整を行い, API-19までのUIをマテリアルなかんじに仕上げていき, そのあと *-v21 のリソースを触りながら, 気にせず Lollipop端末に向けてのマテリアル化を進めていく.

と, そんな順序が王道ではないかな...

Maintaining Compatibility | Android Developers


Nexus6 を購入して数週間後の私のエンドレスな新春ループ

すっかり自宅常駐になった私のNexus6.

理由は「でかい」から.

常にリビングテーブルの上にいます.

外出さえしなければ 「でかさ」は気にならないはずです.

と思いきや, こんなループがっ.

手に持つ

重い

テーブルに置く

グラグラする

(手に持つ に戻る)

気のせいかな, と思いつつ重さ.

Nexus_6_-_Google

重量は『Nexus 5』の130gに対し『Nexus 6』は184gと差は54g

「54g」とか大したことなさげだが,

でかいとこれがバランスが悪くて持ってるのがなんとなく.

しかも画面のでかさで両手操作となるので,

テーブルに置いて操作しようとする.

すると, これ, グラグラしてこれまたバランス悪く入力しづらい.

この背面の形状なあ...

nexus6_-_Google

イラッとしながら,

また手に取って操作すると(以下ループ).

となんとなくいまいち仲良くなれていませんがー.

よく回ります.

 

てか, 今年もよろしくおねがいします.

わたしの Nexus6 を購入しての失敗

Nexus 6 - Google


顔文字パレット - 保存している文字の編集 / 移動

保存している文字を長押しすると, 編集 / 移動 の画面が表示されます.

20150902-111951

自由に編集してみてください.

20150902-112359

20150902-112444

20150902-112618

タブの移動も長押しから簡単にできます.

20150902-112909

20150902-113121

同様に, 削除やスタンプ送信もこの画面から行うことができます.