2010-04-13
iPhoneってアレだよね
ということで、5日くらい使ってみた感想。
なんでiPhoneなの?
最近、携帯ゲーム機のソフトに魅力を感じないなーということでケータイからネットをみてたりしてたんだけど、パケット量を気にしながらっていうのも現代的じゃないし、端末の機能はプアだし、電話ほとんどしないかつ、パケット上限まで使う条件であればiPhoneでもそんなに月額料金変わらないんじゃないの、ということでまあまあ納得できる条件だったので。
ワンセグ、フェリカ等々の機能はいらなかったのでスマートフォンなのはもちろんとして、他の選択肢としてWindowsMobileやらBlackBerry、Androidもあるけど、BlackBerryは端末かっちょわりーので却下、WindowsMobileはいいイメージが全くないのでこれまた却下、AndroidでもよかったけどDoCoMoは高いしSoftbankはタイミング的にびみょー(といってもあとちょっと待てばよかったんだけど)ということでiPhoneにした。流行りものだしね。
あと、いま使っているiPodがちょっと調子悪いというのも少しだけ。
いいところ
実のところ、仕事関係で何台かのスマートフォンは実際に触っていて、処理速度に問題がないのはわかっていて、iPhoneも同じレベルでの話なんだけど、サクサク動く。というかKCP+(auの共通プラットフォーム)がモッサリすぎるという噂もあるけど。
もちろん、アプリも充実しているし、個人的にはiPodとケータイの機能を一台にまとめられ、持ち歩く端末が減ったのもうれしい。
悪いところ
これは処理速度との兼ね合いの問題もあるけど、電池の持ちは悪い。平日1日使用してバッテリの表示が2/3になる程度。毎日充電するし、会社にもUSBケーブルがあるので問題ないんだけど。
あと、デフォルトでインストールされているアプリで不要なものを見せないようにできないのも感じが悪い。
入れたアプリ
入れてすぐ消したのも含めると30個ぐらい?ここでは常用しているもののみ列挙してみる。順番に意味はない。
- TweetDeck
- Twitterクライアント。他にもTwitter用のクライアントはいくつかあるけど、これを入れたのはなんとなく。
- AeroReader
- livedoor Reader用のクライアント。RSSを読んで必要だったらピンを立てて後からPCで読む。
- Google Mobile App
- GoogleのMobile向けフロントエンド。色んな機能があるけど、現状は検索のみに使用している。
- そら案内
- 天気予報。複数の地点を登録できるのがよい。
- 乗換案内
- そのまま。Jorudan提供のもの。
- Stanza
- 汎用のブックリーダー。PC版もインストールすれば青空文庫とか読める。
- QRdeCODE
- QRコードの読み書きアプリ。もっと安いのもあったんだけど、使用に関してフリーにしているデンソーに敬意を表して。
2016-04-13
Javaで記述されているAndroidアプリをKotlinに置き換えてみた
そろそろJava面倒だよね…。ってなっていたので、Kotlinのバージョンが1.0.0になったときに試しに自作のアプリをKotlinに置き換えてみようと試行錯誤したのだけど、JavaとKotlinのコードが混在している状態ではAndroid Studioでのビルドが遅く、ストレスフルだったのでそのまま放置していた。Android Studio 2.0が正式にリリースされたタイミングで再度試してみたところ、混在状態でも現実的な時間でビルドしてくれるようになったので、再チャレンジしてみた。
基本的にはAndroid Studioのメニューから[Code]-[Convert Java File to Kotlin File]を選択し、 .javaのコードを.ktに変換、一部手動で修正して動作確認というのを繰り返した。元のコードでは、RetroLambda、RxJava、RxAndroidを導入していて、ラムダ式による記述があるのだけど、これは一旦無名関数による記述に直して*1から変換すると、かなりの精度でKotlinのコードを生成してくれる。
その他気になったのは、以下の点
- Activityやカスタムビューを変換した場合は、再ビルドが必要
- なにか変だなと思ったら再ビルドすると解決することが多い
- パブリックなクラス変数はcompanion objectになるけど、Javaでの参照元は連動して修正されない
- HogeClass.Companion.getXXXX()みたいな感じにする必要がある
- Javaからの変換では、nullableな変数はとにかく!!演算子によるアクセスになるので、コードの意味を考えて?に置き換えたりする必要がある
Android Studioによるコード変換が優秀なので、それほど手間をかけずに変換はできた。コード量としては、行数換算で約15%減少、文字数でいえばもっと少なくなっていると思う。
$ git diff --shortstat master
66 files changed, 2229 insertions(+), 2624 deletions(-)
今回は新規のコードを書いていないのでアレだけど、変換されたコードを眺めた感じではシンプルに記述できそうな気はするので、既存のコードの置き換えはコスト見合いとしても、新規のコードはKotlinで書いていくというのはありだと思う。
- whenベンリ
- if から書き換えるとすっきりするパターンがある
- ?: や if文の戻り値など、ベンリ文法がいっぱい
*1 Android Studioの機能で自動変換できる