AndroidのLoggerの調査

ある人が言うには某社では、Androidエンジニアが足りていないらしい。

あそこはサービスも多数やろうとしているから、Androidだけじゃなく他も足りていないんだろうし、 当然、(優秀な)が付くから尚更足りないんだろうなぁ。

最近、客先に常駐するようになってから自分のスキルのアップデートが遅れてる気がするので、 折角だから勉強も兼ねて久し振りにAndroidアプリを作ろうと思う。 (モバイルアプリをエンドポイントとして作っておくと、  クラウド側で何かを作るのもやりやすいと言う希望的観測もある。)

で、早速AndroidStudioを立ち上げて何かを作っても良いんだけど、 個人的に作ったあとで直すのが面倒なものにLoggerがある。

なので、今回はLoggerの調査から初めて見る。

  1. android/util/Log
  2. java/util/logging/Logger
  3. Timber
  4. orhanobut/logger
  5. slf4j/android/

Starの数だけ見ると orhanobut/logger (9820 2018/08/08 現在)も良いんだけど、更新状況と検索結果を見ると Timberの方が使われていそうな感じ。

今回は使い勝手よりも使われていそうなものを選びたいので、 Timber を使って見ることにする。

Cloud9でJava8環境を作るためのスクリプト

Cloud9にはJava開発用のTemplateが用意されていない。

普段はJavaで開発しないので、たまに準備しようとすると意外と手間取るのでshellを作った。

github.com

昔ながらのCloud9を使っているので、AWSのサービスとして提供されているやつでは試していない。

あと、Cloud9のTemplateはBlankを選んでいる。

何かの5sを買った時のトランザクション

何かの5sを去年買ったんですけど、それのトランザクションを一応公開しておきます。

ストアはoppo martで深圳から発送になってますね。

Paypalで支払いが完了した後に、oppo martのfacebookページを見ると、散々なコメントが書かれていて不安になったり、Paypalで円決済で割高になっちゃったなーなんて思っていたら、アメリカ大統領選挙後にドルの爆上げでかえってお得だったのは良い思い出です。

2016年11月4日 9:09 (現地時間)  SHIMOCHO.ISOGO-KU.YOKOHAMA    お荷物配達済み
2016年11月3日 10:48 (現地時間) TOKYO, KOTO-KU                配達業者へ引き渡し済み、翌営業日以降配達予定
2016年11月2日 12:06 (現地時間) TOKYO, KOTO-KU                お荷物が最終着地に到着
2016年11月2日 11:11 (現地時間) TOKYO NARITA AIRPORT          通関完了
2016年11月2日 10:53 (現地時間) TOKYO NARITA AIRPORT          お荷物が経由地に到着
2016年11月2日 1:08 (現地時間)  TOKYO NARITA AIRPORT          通関手続き中
2016年11月1日 23:59 (現地時間) TOKYO NARITA AIRPORT          お荷物到着前の事前申告準備中
2016年11月1日 19:53 (現地時間) HONG KONG                     発送手配中
2016年11月1日 16:51 (現地時間) HONG KONG                     経由地に到着
2016年11月1日 15:53 (現地時間) HONG KONG                     お荷物が経由地に到着
2016年11月1日 13:12 (現地時間) HONG KONG                     通関完了
2016年11月1日 12:47 (現地時間) SHENZHEN                      発送手配中
2016年11月1日 12:47 (現地時間) SHENZHEN                      お荷物が経由地に到着
2016年11月1日 11:58 (現地時間) SHENZHEN                      発送地より出荷
2016年11月1日 10:17 (現地時間) SHENZHEN                      発送手配中
2016年11月1日 10:14 (現地時間) SHENZHEN                      発送地でお荷物確認済み
2016年10月31日 18:49 (現地時間)SHENZHEN                      発送営業所にてお荷物受領確認済み
2016年10月31日 18:39 (現地時間)SHENZHEN                      発送地にて集荷
2016年10月31日 1:15 (現地時間) SHENZHEN                      経由地にてお荷物保管中

次に買うのは来年に台湾に行く予定があるので、その時現地でかな。

Cloud9でタブとスペースの見た目の幅が異なる(高解像度)

先日も同じタイトルで記事を書いたのだけど、Mackbook Proで試したら別な問題が出たのでもう一度書いておく。

tohosokawa.hatenablog.com

前の記事ではCloud9でFHD(1920 x 1080)以下の解像度で使うと、タブと文字の幅が異なるという問題があることが分かった。

その解決方法としてShow Invisible Character をOFFにする方法と、Font FamilyをCousineにすることだった。

これで、快適に使えると思っていたのだけど、昨日はMackbook Pro 15 (1920 x 1200) の環境では同じ問題が出ることが分かった。

これの解決方法はShow Invisible CharacterをOFFにすることだけだった。

Font FamilyはCousineは良い結果にはならなかった。

そのため、もしCloud9を使っていて、Tabの表示上の幅がおかしいなと思ったら、Show Invisible CharacterをOFFにするのをおすすめします。


6月8日追記

このことをCloud9 Community に再度報告したら、また対処方法を教えてくれました。

Font Family Settingを下記のようにすれば良いということです。

Cousine , Monaco, Menlo, Ubuntu Mono, Consolas, source-code-pro, monospace

CousineはChromebookのフォントで、私はこれしか設定していなかったためMacbook Proでは同様の問題が発生したとのことです。

なので、Mac用のフォントなどもCousineの後ろに設定すればInvisible Charactersを表示していてもTabの幅がずれなくなりました。

Cloud9でタブとスペースの見た目の幅が異なる

最近Cloud9でGo言語を書いていると、タブの見た目の幅が設定されている文字数とは異なるのが気になっていました。

下記の画像ではTabサイズを4にしているのですが、7文字分のインデントが入っているように見えます。

他の言語だったらTabをSpaceに変えれば良いような気もしますが、 Go言語の場合は標準のFormatterがTabを使用するようにしているのでそうもいきません。

この状態で修正したい文字にカーソルを合わせてしまうと、3文字前の部分が編集されてしまいます。

tab

f:id:tohosokawa:20170603221231p:plain

space

f:id:tohosokawa:20170603221254p:plain

ただ、この現象は低解像度のChromebookを使用しているときだけで、FHDの外部ディスプレイに接続したときには 正常に表示されていました。

フォントの設定などを試しても改善されず、ググってみても解決方法が見つからなかったため Cloud9 Community で聞いてみました。

community.c9.io

驚いたことに3時間もかからずに解決方法を教えて貰えました。

解決方法

教えて頂いた解決方法は下記です。

Show Invisible Character

下記のようにInvisible Characterの表示をOFFにします。

Preferences -> User Settings -> Code Editor (Ace) -> Show Invisible Characters : OFF

これだけで、TabとSpaceが同じ幅になります。

Font Family

下記のようにエディタのフォント設定を Cousine にします。

Preferences -> User Settings -> Code Editor (Ace) -> Font Family : Cousine

この方法ではInvisible Characterを表示したままでTabとSpaceが同じ幅になります。


何となく Cousine はデフォルトよりも癖のあるフォントに感じたので、Cousine が許容できるか次第で対応方法を決めれば良いのではないかと思います。

Cloud9のRAMとHDD

最近Cloud9の使用頻度が上がっていたんだけど、新しく作成したworkspaceのRAMとHDDのサイズが小さくなっていたことが気になってた。

RAM 1GB 512MB
HDD 5GB 2GB

ほぼ半減。

どうやら 2016年4月には既に小さくなっていたらしい。

community.c9.io

今のところ困っていないけど、更に小さくなるようだと困るな。

AWSに買収されたのが2016年7月だから、もうすぐ1周年。

あれから特に大きな変更は無いけど、何か発表されたりしないものだろうか。

何かの 5s を買った話

iPhoneにとても良く似たスマートフォンの5sを買いました。 とてもコスパが良くて気に入っています。(謎のVendor ROMが焼かれていたのが不安でOfficial ROMにはしました)

元々zenfone3を買おうと思っていたけど、フライングで発表された値段を見てやめたのですが、 いい買い物が出来たかなと思っています。

で、この5sは miui という独自のUIを持っているのですが、 iPhoneのようにアプリアイコンだらけになってしまうのでLauncherは Google Nowランチャーに変更して使っていました。

Wallpaper Carousel

このスマートフォンのロック画面はWallpaper Carouselというもので、 デフォルト設定では15分間隔で画像が変わっていきます。

この画像がどれも綺麗で大変気に入っていました。

MIUI 8.0.18.0

ところが、昨日OTAが降ってきたためにアップデートしたところ画像が変わらなくなりました。

8.0.10.0 -> 8.0.18.0 (こんな感じでバージョンが変わりました)

設定のWallpaperから変更しようとしても、何を選んでも "can't load image" と表示されるだけで変更も出来ません。

色々と調べたところ、下記のことが分かりました。

Google Now ランチャーとの相性

どうやら、Google Now ランチャーを使っていると、Wallpaper Carousel が使えなくなるようです。

そのため、System Launcherに戻して見たところ動くようになりました。

ただ、今度はGoogle Nowランチャーが設定できなくなりました。 いや、設定は出来るのですがホームボタンを押すと "wait a second" (こんなだった気がする)と一瞬表示されて、 System Launcher に戻ってしまいます。

Google Now ランチャーの設定

新しいバージョンで別のLauncherを使うには、下記の設定が必要らしいです。

1.Developer設定の有効化。

 設定 -> About phone -> MIUI version を10回タップ

2.MIUI最適化をOFF

 Additional settings -> Developer options -> Turn off MIUI optimization

これでGoogle Now ランチャーを使えるようになるのですが、 今度はWallpaper Carouselがまた動かなくなります。

結局どうしたの

Flashtoolで元のバージョンに戻してしまいました。不具合で困ることも無かったし。

今では綺麗な Wallpaper Carousel と Google Now ランチャーを同時に使えて満足です。

日本語化とかプラスエリア化とかは日本語のブログでもよく書かれているのですが、 この件についてはあまり見当たりませんでした。 みんなWallpaper Carousel使ってないんですかね?

もし困っている人がいたら、試してみてください。