Android Code Style で インデントはスペース何個?

Android Studioデフォルトのスペース4個ではなんとなく不自由に思えてきた,インデント.

今どきは何個なのか.

Google の Code Style としては「2個」.

Android のコーディング時にAndroidStudioにセットしておくといい2つのXMLファイル

その他どんな雰囲気なのか.

square も「2個」.

java-code-styles_Square_xml_at_master_·_square_java-code-styles

java-code-styles/Square.xml at master · square/java-code-styles

XMLもスペース2個ででいいように思えるのだが.

CodeStyle__Java_·_ogaclejapan_android-code-styles_Wiki

CodeStyle: Java · ogaclejapan/android-code-styles Wiki

CodeStyle__XML_·_ogaclejapan_android-code-styles_Wiki

CodeStyle: XML · ogaclejapan/android-code-styles Wiki

いまや, コードもXMLも2個か.

square のスタイルにしとこうかな.

Installation

- Run the install.sh script.
- Restart IntelliJ if it's running.
- Open IntelliJ Project Settings -> Code Styles, change the code style for the project to the one you want.

Preferences

sh 1個叩くだけで設定に追加してくれます.

square/java-code-styles


man は長すぎるので「tldr」

たとえば,

curl で JSON を POST したいとき,

オプション記述を覚えてないので man.

man_curl_—_80×24

長すぎて探すのが面倒で結局ぐぐってしまう.

ssh でポートフォワードしたいとき,

man_ssh_—_80×24

結局これもぐぐってしまう.

TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。

そんな名前のすばやく調べるコマンドがありますよ.

bash_—_80×26

bash_—_81×28

分かりやすくうざくない長さで説明してくれます.

screenshot

tldr-pages/tldr

ちなみに「tldr」で「tldr」は以下.

tldr




Retrofit 2.0-beta で ログを吐かせる

Retrofit

Okhttp 2.6.0+ では HTTPリクエスト/レスポンスのログ出力が可能なのだが,

New Logging Interceptor. The logging-interceptor subproject offers simple request and response logging. It may be configured to log headers and bodies for debugging. It requires this Maven dependency:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(Level.BASIC);
client.networkInterceptors().add(logging);

okhttp/CHANGELOG.md at master · square/okhttp

残念なことに retrofit 2.0.0-beta2 での同梱は 2.5.0 .

<!-- Dependencies -->
<android.version>4.1.1.4</android.version>
<android.platform>16</android.platform>
<okhttp.version>2.5.0</okhttp.version>
<animal.sniffer.version>1.14</animal.sniffer.version>

retrofit/pom.xml at master · square/retrofit

なので logging-interceptor 2.6.0 で.

    <dependency>
      <groupId>com.squareup.okhttp</groupId>
      <artifactId>okhttp</artifactId>
      <version>${project.version}</version>
    </dependency>

okhttp/okhttp-logging-interceptor at master · square/okhttp

compile 'com.squareup.okhttp:logging-interceptor:2.6.0' 
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();  
logging.setLevel(Level.BASIC);
OkHttpClient client = new OkHttpClient();  
httpClient.interceptors().add(logging);
Retrofit retrofit = new Retrofit.Builder()  
   .baseUrl(API_BASE_URL)
   .addConverterFactory(GsonConverterFactory.create())
   .client(httpClient)
   .build();

出力.

...
11:33:04.547 17090-17108 D/OkHttp: <-- HTTP/1.1 200 OK (469ms, 259-byte body)
11:33:04.550 17090-17296 D/OkHttp: --> GET /v5/item/1072964 HTTP/1.1
11:33:04.563 17090-17263 D/OkHttp: <-- HTTP/1.1 200 OK (250ms, 244-byte body)
11:33:04.566 17090-17108 D/OkHttp: --> GET /v5/item/1073510 HTTP/1.1
11:33:04.606 17090-17265 D/OkHttp: <-- HTTP/1.1 200 OK (252ms, 228-byte body)
11:33:04.609 17090-17263 D/OkHttp: --> GET /v5/item/1072585 HTTP/1.1
11:33:04.794 17090-17296 D/OkHttp: <-- HTTP/1.1 200 OK (244ms, 183-byte body)
11:33:04.796 17090-17265 D/OkHttp: --> GET /v5/item/1073275 HTTP/1.1

stable で対応するのかな.