2012年を振り返って

2013年も始まりました。
明けまして、おめでとうございます。



やっぱり、今年もいろいろありました。
iPhone 5Windows 8など、多くのデバイスと共にOSも増え、勉強する毎日でした。
仕事でも、少しずつですが結果を出せてきていると思います。


ただ、仕事で一番印象に残っているのは、数多くの仲間が次のステップへ行かれたことです。
私も、そろそろ新しい段階へと昇る必要があるかもしれません。


もちろん来年もスマートデバイスアプリケーションの開発者として、社内外で頑張っていきます。
ただし、自分は教育者としても頑張りたいと思っています。


今年は、自分の目標を両天秤から一本化したいと思います。
なにより、仕事勉強の毎日だったので、今年はプライベートも充実させていきたいですね。


2013年もSamrilをよろしくお願い致します。


2011年を振り返って - ggった結果

http://www.st-hatena.com/users/sa/samril/user_p.gifとりあえず彼女ほしいです

ドコモの新しいモバイルオペレーティングシステム Tizen について

NTTドコモは、韓国サムスン電子などと共同開発しているモバイルオペレーティングシステム Tizen を載せた新しいスマートフォンを、2013に発売する方針を決めた。


via Tizen Logo

モバイルオペレーティングシステムといえば、次の表にある4つが有名です。

名前
AppleiOS
GoogleAndroid OS
MicrosoftWindows Phone OS
RIMBlackBerry OS
ここに、新しく Tizen が参入してくるわけです。

まず、そもそも Tizen が参入してくる市場シェアはどうなっているのか。
少し古いですが、Net Applicationsから発表された2012年9月のモバイルOSシェアによると、iOS 63.48% Android 22.10% 、とすでに二極化されています。
(引用元)iOSが減少、Androidは成長を続ける- 9月モバイルOSシェア

このようなレッドオーシャンに、新しくOSを追加することはかなりの勝負だと思います。
けれども、日本国内最大手であるNTTドコモのシェアを考えると、モバイルアプリケーション開発者としはチェックせざる終えません。


そもそも Tizen とは、どのようなOSなのでしょうか。

Tizen とは... フリーソフトウェアオープンソースのモバイルオペレーティングシステム。Tizenは Linux Foundation による Linux に基づいていて、Tizen Association が開発している。タブレットネットブックスマートフォンスマートテレビや車載情報システムなどの利用を想定している。
(引用元)Wikipedia

開発元システム要件

  • Ubuntu〓 11.04 or 11.10 (32- or 64-bit), or Microsoft Windows〓 XP (32-bit) or Microsoft Windows〓 7 (32- or 64-bit)
  • At least dual-core 2 GHz of CPU
  • At least 2 GB of RAM memory
  • At least 3 GB of free disk space
  • OracleJava* v7 or later (do not use OpenJDK)
  • Local administrator authority
  • In Ubuntu〓, the following packages: procps, gettext, libdbus-1-3, libcurl3, expect, gtk2-engines-pixbuf, grep, zip, make, and qemu-user-static

エミュレータ要件

  • VTx supported by CPU (recommended)
  • At least 1280 x 1024 screen resolution
  • Latest vendor-provided version of the graphic card driver

WEBシミュレータにおいては Google Chrome browser が必要になります。

開発環境

開発言語

via Tizen SDK - https://developer.tizen.org/downloads/sdk


このように、WEBアプリケーションとしては HTML5 (W3C) と JavaScript がサポートされているには、最近のスマートフォンの基本ですね。
ネイティブは C / C++ と、iOS (Objective-c) や Android (Java) 、 Windows Phone (C#) のように、まったく別の言語になっております。

それと、新しい 2.0 SDKWindows 8 で開発できるのでしょうか?
また、Tizen Associationには韓国サムスン電子の他に、NECも含まれていますので、国内端末もでるのではないでしょうか?

今後は、色々と試してみますので、お楽しみに...


Tizen - https://www.tizen.org/

http://www.st-hatena.com/users/sa/samril/user_p.gifTizen AssociationにDocomoがいたのを見てから、嫌な予感はしていたんだよ

ThinkPad X1 Carbon 20th Anniversary Edition 開封の儀に参加してきた

[twitter:@oota_ken] さんが購入された ThinkPad X1 Carbon 20th Anniversary Edition の開封イベントに参加させてもらいました。

当日は [twitter:@tezawaly] さんが購入された通常の X1 Carbon (米国版) の未開封品も持ち込みもあり、比較しながら進んでいきました。

ThinkPad X1 Carbon 20th Anniversary Edition
http://www.lenovo.com/jp/thinkpad20/x1carbon_anniversary.html


外箱比較

大きいほうが 20th です。

20th Anniversary Edition にだけ付属してくる特典

商品説明のパンフレット、ケース、風呂敷、箸

箸にはトラックポインタのデザインが活かされている

青黒檀という木らしい

専用ケース

本革などをあしらったもの

専用ケース拡大図

20th Anniversary Edition のロゴもありました

通常版と 20th を比較

見た目は変わりませんが、壁紙やスクリーンセーバなどに違いが出ております


Ultrabook のため Macbook Air に近づけたタイプですが、カーボンを利用しているため、とても軽くいい感じ仕上がっております。
もっと詳細なレポートは [twitter:@oota_ken] さん、 [twitter:@tezawaly] さん のレポートを参考に...

http://www.st-hatena.com/users/sa/samril/user_p.gif粋でした

Android OS4.1 4.2でCheckedTextViewのisCheckedメソッドの初期値が変わった? ときの代替方法

Android で ListView と CheckedTextView を使うことで、複数行のリストチェックボックスをつくることができます。

// xmlからListViewを取得
ListView listView = (ListView) findViewById(R.id.list);

_arrayAdapter = new testArrayAdapter ... // ArrayAdapterクラスを継承したアダプタークラス

listView.setAdapter(_arrayAdapter);
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setOnItemClickListener( new CheckedItemOnclick() );

複数行を選択するために ListView.setChoiceMode()メソッド に ListView.CHOICE_MODE_MULTIPLE をセットしています。
選択した行のイベントリスナーとして ListView.setOnItemClickListener()メソッド に OnItemClickListenerインターフェース を実装したクラスをセットしています。

private class CheckedItemOnclick implements OnItemClickListener {
    @Override
    public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) {
        final CheckedTextView checkedTextView = (CheckedTextView) view;

        boolean isChecked = checkedTextView.isChecked();

}

ここで、今回の問題である ListView.isChecked()メソッド の初期値が、Android 0S 4.0以下と4.1以上で変わっていると思われます。


デバックモードで値を確認したところ
Android OS 2.2 => ListView.isChecked() = false
Android OS 2.3 => ListView.isChecked() = false
Android OS 4.0 => ListView.isChecked() = false
Android OS 4.1 => ListView.isChecked() = true
Android OS 4.2 => ListView.isChecked() = true


となっており、なんとか解決できないかと次の2つを試してみました。

1.LayoutInflaterでxmlをインフレートする前に ListView.isChecked() に false を指定する

public class testArrayAdapter<T> extends ArrayAdapter<T> {
    /** 
      :
    **/
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        CheckedTextView view = (CheckedTextView) convertView;
        if (convertView == null) {
            view = _layoutInflater.inflate(_rowResouceId, null);
        }
        view.setChecked( false );
        return view;
    }
}

この方法でも、結果は同じでダメでした。


2.上記でインフレートするxmlにある CheckedTextView のxml属性にある android:checked に false を指定する

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:gravity="left"
    android:checked="false" />

この方法でも、結果は同じでダメでした。


どうしても CheckedTextView の値を直せないので、 ListView の行ごとに isSelected変数 を持たせるようする方法しか考えつきませんでした...orz
さて、どうしたものか。


===== 2012/12/20 18:58 追記 =====

[twitter:@mryo0826]さんに、対応方法を教えていただきました!

内容は、こちら

つまり、ListView.getCheckedItemPositions()メソッドからリストのboolean配列( SparseBooleanArray )を取得し、対応するポジションのチェック判定を取得する方法です。

private class CheckedItemOnclick implements OnItemClickListener {
    @Override
    public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) {

        final SparseBooleanArray checkedList = _listView.getCheckedItemPositions();
        boolean isChecked = ! checkedList.valueAt(position);

}

ここで注意点が1つ、それぞれのOSごとの checkedList.valueAt(position) の出力結果は...

Android OSisChecked()checkedList.valueAt(position)
2.2falsetrue
2.3falsetrue
4.0falsetrue
4.1truetrue
4.2truetrue
すべて true になっています

なので、Android 4.0以下で行っていた判定をそのまま使いたい場合は、 ! (否定) を忘れずに。

http://www.st-hatena.com/users/sa/samril/user_p.gif@mryo0826さん、大変助かりました(_ _)

Nexus 7がやってきた

Nexus 7
http://www.google.co.jp/nexus/


Nexus 7がついに日本でも2012/10/2発売が開始されました。

わたしは、Google Playから注文したので、1日早めにGETできました。

さっそく箱をあけて、各デバイスで大きさの比較


(左から iPad 3, Nexus 7, Galaxy S3, iPhone 4S

各デバイスの画面サイズは次の通りです

画面サイズ
iPad 3 9.7インチ
Nexus 7 7インチ
Galaxy S3 4.8インチ
iPhone 4S 3.5インチ


Android OSは、4.1.1(Jelly Bean)

Jelly Beanについては、こちらの記事を参考にすれば、ok
Android 新OS発表!Android 4.1 Jelly Bean はここが違う! via Androck


また、Google Play にクレジットカードを登録すると2000円分のクーポンとプリインストールが貰えます


プリインストールとして、次の4つが入っていました

...トランスフォーマーは、正直嬉しかったけど、本が(´・ω・`)ショボーン

http://www.st-hatena.com/users/sa/samril/user_p.gifAmazon Kidleも買うよ!

kobo Touch買ったのでセットアップしてみた

楽天が2012/7/19から読書リーダーである「kobo Touch」の発売を開始しました。

私もためしに買ってみましたー




ハードボックスでなかなかキレイ

フタを開けた

ピッシリ入ってる

大きさ

800よりは大きい。携帯サイズのブックリーダー。

端末右上にある電源ボタン

なんか安っぽくて「カチッ」ってやって電源オン

初回起動

とりあえず日本語

USBケーブルに指してを言われた

指した


まずはセットアップをするために http://rakuten.kobosetup.com/ へ

今回は Windows を選択

次のexeファイルをダウンロードする

そしてインストール

インストールが完了すると次のアイコンがデスクトップにできる

アイコンの他にも、次のウィンドウが起動する

これが kobo Touch のアプリケーションらしい

楽天IDの入力をする

サーバーと更新中

(ここはカナダのサーバなのかな?)

7冊ほど、書籍が自動的に同期される

完了するとFacebook連携しないかと聞かれる

とりあえず了承することに...

パーミッション

(一番下が気になる)

そのままいくと、セットアップ完了!

すでにバージョン3

書籍の購入画面

現在kobo Touchに入っている書籍一覧

kobo TouchのアカウントやPCと同期を切る場合のボタン

ついにで、セットアップ時に同期された7冊


PCから外すと、端末でのアップデートが行われる

リリースノートがあり...

晴れてkobo Touchとご対面!

とりあえず1冊開いてみることに

タップのレスポンスは、そこまで早くはない

猫である!

でっかい猫である!!


■使用感
見た目の割には、すこし安っぽい。(金額が安いものあると思う)
次ページの情報が多いと、レスポンスが鈍る。(まぁあんまり気にはならない...と思う)

とても軽い。(185g)
電池長持ち...らしい(最長1ヶ月程度?)
画面はちょうどいいサイズ(6インチと、文庫くらい)

まぁ、金額にあった端末だと言える。(私はポイント払いなので0円)
今後の電子書籍は、販売される書籍数&レパートリーで勝負が決まる!と言っても過言ではない。

販売書籍サイト
http://rakuten.kobobooks.com/


今度は自分で pdf を入れてみるので、またレビューを待っててぷりーず

http://www.st-hatena.com/users/sa/samril/user_p.gifとりあえず書籍のレパートリーを良くして!