2015年1月22日木曜日

AQUOS K SHF31 を触ってきた

au から久々にアツいガジェットが発表された。

その名は AQUOS K SHF31 !!(ここで効果音)




一見普通のガラケーなのだが、OS に Android 4.4.4 を搭載し、LTEにも対応しているという変わり種端末である。

シャープのテンキー付きスマートフォンといえば今まで各キャリアで何度か発表されていたが、大体が小型の端末から申し訳程度のテンキーがスライドしてくるという物か、それ以外はシンプルなストレート形状の物であった。それらは方向キーが無かったり本体幅が広く打ちづらかったりと、お世辞にも「ガラケーの代用」にはなりづらい物であった。
スライドでキーボードが出てくる IS11SH


何故方向キーを削ったのかと問い詰めたくなるINFOBAR C01


そんな中で唯一 007SH (SoftBank)はかなりガラケー化への道を攻めていた端末である。従来より親しまれてきた2軸ヒンジを搭載し、本体幅もコンパクトで握りやすい。物理キーも一通り搭載している。一方でバッテリー容量に目を向けてみると、僅か 820mAh と何もそんな所までガラケーを真似んでもと言いたくなる渋い仕様となっている。
攻めすぎた端末 007SH


しかし今度の端末は一味違う。ガラケーのプラットフォームを Android へと切り替えようとするアプローチへと転換したのである。
今までのスマケー(命名:SoftBank)はあくまでテンキーを搭載した Android であり、Android のホーム画面に Google Play から入手したアプリが並んでいるスタイルは通常の Android スマートフォンと何ら変わりはない。しかし、今回のガラホ(命名:KDDI)は、メニュー画面やメールの受信フォルダや設定画面などの作りが、かつて慣れ親しんできたガラケー、具体的にはKCP+搭載機種のそれにかなり似せてきているのである。面倒くせえから呼称統一してくれ。

さて、そんな新しいタイプの「ガラケー」である AQUOS K を早速 au SHINJUKU で触ってきたので、簡単ではあるが以下にレポートさせて頂きたい。


見ての通り普通の携帯電話にしか見えないが、壁紙が Android 2.1 より続く水面ライブ壁紙になっておりちょっとニヤッとした。




設定画面より端末情報を覗き見ることができる。見ての通り Android 4.4.4 を搭載した立派な「ガラケー」である。
ちなみにこれを連打してもネスレの某チョコレート菓子風味な Android ロゴは見れなかった。




このブログを見る方なら気になるであろう「USBデバッグ」はしっかりと有効に出来る。
$ adb install Hogehoge.apk でバンバン流し込んでいこう(もちろん実機では試していない)




AQUOS K には、シャープの一部ガラケーに搭載されていた「タッチクルーザー」が進化した「タッチクルーザーEX」という機能が搭載されている。
この端末はガラケー化を追求するあまりタッチパネル非搭載という Android 端末にあるまじき暴挙を冒したのだが、このタッチクルーザーEXにより画面にマウスポインタが出現し、ユーザーは十字キーを指でなぞるだけで画面上の任意の箇所を操作することができる。もっと言うと十字キーだけでなくテンキーもタッチパッドになっているため結構面白い。





ところが、全ての場面においてタッチクルーザーEXが使えるかというとそうではない。この機能は一部のプリインストールアプリにおいてのみ利用が可能である。その他のアプリでマウスカーソルを出そうとしても対応していないぞボケと通知領域に2行に渡り表示されるだけである。すなわち、サードパーティーアプリがタッチクルーザーEXを利用しようとしても、シャープが API を公開しない限り利用することはできない。そもそも Google Play 非対応なのでタッチクルーザー云々以前の問題ではあるのだが。

2/4 訂正:
apk の転送によってインストールされたアプリでは、タッチクルーザーEXを使うことが出来るらしい。
auのガラホ『AQUOS K』にAPK直でAndroidアプリが入るか:週間リスキー - 週アスPLUS
ただ、動かないアプリもある&シャープの想定外の使い方なのでここいらは自己責任で。



なお、ガラケーとしての機能を追求したためか、Google アカウントとの連携は行うことができない。アドレス帳が Google と同期するだけでも嬉しいのだが、コンセプトとの兼ね合いとはいえここはやや惜しい点ではある。



このように「ガラケーでの操作に親しみすぎてスマホへの移行が難しい」「ガラケーは手放せないが通信速度の遅さに悩まされている」といった層の救済には大いになりうる仕上がりとなっている。
その一方で、料金プランは LTE スマートフォンのそれなので「メールだけ出来ればよい」「ガラケーの料金体系に魅力を感じる」という層には訴えかけることが出来ない。どうせ動画アプリもゲームアプリも落とせない訳なので、端末としてだけでなく料金プランもガラケーに歩み寄って欲しかったというのが正直な感想ではある。
今までとは一味違う端末なだけに、今後どのような普及を見せて行くのかが楽しみである。



あと早く QWERTY 端末出してくれ。



2015年1月11日日曜日

VivoTab Note 8 で遊ぶ - Windows 10 インストール


前回 VivoTab Note 8 に ArchLinux をインストールしたのだが、ハードウェアへの対応不足ゆえにさっぱり使えない状態でとても悲しくなってきたので Windows 10 Developer Preview を入れた。



2015年1月9日金曜日

VivoTab Note 8 で遊ぶ - ArchLinux インストール


先日、VivoTab Note 8 の OS 無しを手に入れたので、とりあえず ArchLinux を突っ込んだ。



結論から言うと、本当に起動するだけで残念ながら常用からは程遠い。

起動
グラフィック
サウンド×
タッチパネル×
Wacom デジタイザ×
WiFi×
Bluetooth×
電池残量表示×


2014年11月20日木曜日

IntelliJ IDEA で LG の QSlide アプリをコンパイルする

Qスライドのアプリ開発を行うにあたって Eclipse でのコンパイル方法は LG Developer に載っているのだが、開発環境が IntelliJ IDEA なので、Gradle ベースのプロジェクトだとどうコンパイルすれば良いのかと言う所でつまづいたのでメモ。

( この記事の内容は Android Studio においても同様に適用可能です )

1. Android SDK Manager を開き、Tools → Manage Add-on Sites を選択する。


2. User Defined Sites タブの New を選択し、
http://developer.lge.com/sdk/android/repository.xml
 を追加する。



3. SDK Manager の Packages → Reload より再読み込みする。


4. Android 4.2.2 (API 17) より、SDK Platform と LG QSlide SDK をインストールする。


5. New Project より新規プロジェクトを作成する。この時、

  • Minimum required SDK: API 17: Android 4.2 (Jelly Bean)
  • Target SDK: API 17: Android 4.2 (Jelly Bean)
  • Compile with: QSlide Add-On (LGE) (API 17)

を選択する。


6. File → Project Structure → Modules を開き、
app → Dependencies タブの Module SDK を Android 4.2.2 QSlide Add-On に変更する。


7. build.gradle を開き、
compileSdkVersion 'LGE:QSlide Add-On:17'
に書き換える。


8. サンプルが (Android SDK)/add-ons/addon-qslidesdk-lg-17/samples に格納されているので、それらを参考にコーディングを行う。

2014年11月17日月曜日

Java対策 Java用語と継承編

同級生の皆様向けにJavaの解説を、と思って書きました。
単位獲得の手助けになれば幸いです。
間違っている事も結構書くと思うのでその際はご指摘をお願いします。

---

Java対策 Java用語と継承編


ここでは「犬」を例えに使用する。

クラス


いくつかの変数、メソッドをひとまとめにして書いたもの
ここでは犬のDNAに例える

記述:
class クラス名
例:
public class Dog

インスタンス化


クラスはDNAみたいなものでそのままではほぼ何も出来ないので、DNAから生命を生み出す作業が必要になる。

(DNAに対して「お手!」は出来ないが、DNAから誕生した犬に「お手!」は可能と言った感じ)

生み出された生命体はJavaではインスタンスと呼ばれる

記述:
クラス名 変数名 = new クラス名();

例:
Dog pochi = new Dog();


メソッド


命令。C言語だと関数と呼ばれていたもの

記述:
void メソッド名(引数)
例:
public void cry() {
    System.out.println("ワンワン!");
}


コンストラクタ


インスタンス化(DNAから生命を生み出す瞬間)の時のみ呼び出される特別な命令

以下の2つの条件

  • クラス名と全く同じメソッド名を付ける
  • 返り値(voidやint)を書かない
を満たすとコンストラクタになる

変数の初期化に使うと吉

記述:
public クラス名()

例:
public Dog() {
    age=4;
}


クラス変数


普通変数をいじるにはインスタンス化が必要だが、staticで宣言したクラス変数という物は、インスタンス化が不要でいつでもどこからでも値を変えることが出来る

DNAの例えで言うと、生命体を生み出す前にDNAのパラメータを直接操作できてしまうようなもの
そしてDNAを操作すると生み出される/生み出された生命体全てに影響が及ぶ

DNAの例えを聞くと危険なように聞こえるが実際かなり危険である

記述:
public static void String type = "柴犬"

補足:
普通の変数は
Dog pochi = new Dog();
pochi.type="ブルドッグ"
という感じで変数をいじるが、クラス変数は
Dog.type="ブルドッグ"
というように変更できてしまう
これを行うと生み出された後の犬を含め全ての犬がブルドッグに強制変更となる


継承


例えば、犬だけでなく猫と鳥のクラスを作りたくなったとしよう。
それぞれのクラスには年齢や名前などの情報、鳴いたりご飯を食べたりといった動作を付けたい。
しかし
class Dog {
 〜いろいろ〜
}
class Cat {
 〜いろいろ〜
}
class Bird {
 〜いろいろ〜
}
と別々に書くのは効率が悪い。

そこで、共通点を見つけまとめられないかを検討する。

犬、猫、鳥は動物である。

つまりAnimalというクラスを作れば共通化出来そうである。
動物は共通してギャッと鳴けると思うので、仮に「全ての動物はギャッと鳴く」とする。

class Animal {
 public void cry() {
        System.out.println("ギャッ")
    }
}

では、犬は動物であるという関係を実装する。
class Dog extends Animal {
}
この場合のAnimalを親クラス、Dogを子クラスと呼ぶ。

つまり
class 子クラス extends 親クラス
と書けばクラスの継承ができる。

また、「犬は動物である」といった関係を「is-a関係」と呼ぶ。
(Dog is a Animal.)

ちなみに、この状態でDogに対してcryを呼ぶと
ギャッ
と表示されるというなんとも痛々しい実行結果になる。
そこで、鳴くという処理だけ上書きをしてしまいたい。
その場合に使用するのが「オーバーライド」である。

class Dog extends Animal {
    @Override
    public void cry() {
        System.out.println("ワンワン!");
    }
}

このように、親クラスと全く同じ名前のメソッドを作ると、処理を上書きすることが出来る。
(ちなみに@Overrideは無くても動くが、あったほうがエラーがあった時に教えてもらえやすくなる)

この状態でDogに対してcryを呼ぶと
ワンワン!
と元気よく鳴いてくれるのである。



また、上書きではなく親クラスのメソッドに書き足しを行いたい場合は、
super()
を使用する。
これを書くことで、親クラスのメソッドの内容を呼び出すことが出来る。

class Dog extends Animal {
    @Override
    public void cry() {
        super();
        System.out.println("ワンワン!");
    }
}

このcryメソッドを実行すると以下のように表示される。
ギャッ
ワンワン!


〜 まだ書き途中です 〜