ようへい

2012年4月27日金曜日

4/27 Android ニュースひとまとめ

Googleが提供する日本語IME、「Android版Google日本語入力」がアップデートされた。更新によりバージョンは「1.4.1019.3」となる。
辞書の更新や起動時間の短縮を含む、各種変更点は下記の通りとなっている。

 インストールサイズが 6.6 MB 減少しました(19.1 MB から 12.5 MB)。
 辞書を更新
 予測変換の候補の表示順を改善し、入力した読みに対応する候補が優先されない傾向を抑制
 起動時間を短縮
 ケータイ配列でひらがなを入力しているときに、そのキーに対応する数字も候補に表示するようにしました。例) 「あかあか」で「1212」が候補に表示
 ひらがなモード時にも半角スペースを入力することができるようになりました。
 フリック入力時にフリック操作で濁点、半濁点、小文字の入力ができるように
 Android2.1端末においてシステム設定経由で設定画面を開くことができなかった問題を修正
辞書の更新、起動時間の短縮など多数改善が含まれる「Android版Google 日本語入力」のアップデートが配信へ | APPGIGA!!(アプギガ)
http://plus.appgiga.jp/ky777/2012/04/26/19962/
まだベータ版ですが、なかなか使いやすい。
しかし、いいかげんユーザ辞書機能くらい搭載して欲しい・・・。
Google 日本語入力 - Google Play の Android アプリ
https://play.google.com/store/apps/details?id=com.google.android.inputmethod.japanese
 しかしながら、JXD社はボタンのデザインでトラブルに陥る可能性がある。コントローラーのアクションボタンに、三角、丸、バツ、四角のマークが用いられているが、このボタンはソニーの登録商標なのだ。

 さらにS5110は、『NINTENDO64』『ゲームボーイアドバンス』および『メガドライブ』のシミュレーターへの対応が売りになっている。『テトリス』や『ソニック・ザ・ヘッジホッグ』のROMから、『Google Play』で入手できる『Angry Birds』の正式版まで、S5110では幅広くプレイできるようだ。

 Androidは『Ice Cream Sandwich』で、ディスプレイは5インチで800×480の静電容量タッチ画面だ。HDMIポートを使って、ゲームやAndroidアプリを高精細テレビ(HDTV)の大画面に映し出すこともできる。プロセッサーは『Amlogic M3』で、512MBのDDR RAMを搭載する。0.3メガピクセルの背面カメラ、USB 2.0ポート、MicroSDスロット、音声用のミニジャックを備えている。Wi-Fi接続もあり、S5110はかなり素晴らしいゲーム機のようだ。

 残念ながら、JXD社のサイトにはS5110を購入できる方法が掲載されていない。WIREDでは、同社の中国オフィスとイラン・オフィスにメールを送ったが、これまでに返事は来ていない(ソニーにも問い合わせを出したが、まだ返答がない)。
PSPにそっくりなAndroidゲーム機『JXD』 - MSN産経ニュース
http://sankei.jp.msn.com/wired/news/120427/wir12042711580000-n1.htm
ゲームしやすそうだけどアウトでしょ。
エミュ対応を売りにしてるあたりも国内では物議をかもしそう。
何よりデザインをパクっちゃダメでしょ。
ソニーが4月下旬と予告していたソニータブレット S / P システムソフトウェアアップデートの延期を発表しました。理由は「ソフトウェアの開発に予定よりも時間を要することが判明したため」。新たな提供日は未定で、「鋭意開発を行っておりますので、詳細が確認でき次第、改めてご連絡をさせていただきます」。

ソニータブレットのシステムソフトウェアアップデートは、Androidプラットフォームが 4.0.3 に更新されるほか、3種の「スモールアプリ」など独自のアップデートも含む内容がアナウンスされていました。日本と同時期の4月下旬が予告されていた米国および海外の一部地域ではすでにアップデートの提供が始まっています。
ソニータブレットのAndroid 4.0アップデート延期、提供日未定へ - Engadget Japanese
http://japanese.engadget.com/2012/04/27/s-p-android-4-0/
こんなことやってたら、2011年にソニエリから販売されたスマフォのICS対応なんて程遠いな・・・。
対応してくれないよりは良いんだけどさ。
関連記事

2012年4月26日木曜日

[Android アプリレビュー] タワーディフェンス: Lost Earth

情報
タワーディフェンス: Lost Earth
タワーディフェンス: Lost Earth
6種類のユニットを選択
タワーディフェンス: Lost Earth
ハードクリアは課金前提
タワーディフェンス: Lost Earth
ストーリーあり
タワーディフェンスゲーム。
無料ながら、非常に良くできている。
何種類かのユニットから、マップ毎に6種類のユニットを選択して攻略していく。
後半は課金して強化しないと攻略が困難というのがネック。
基本、フィールド内でのユニット強化は可能だが、Robo Defense等のゲームに見られるマップを攻略したポイントでユニットの基礎能力を上げたりという要素は無い。
その代わり、ユニットの基礎能力を上げたりする効果を持つアイテムを攻略した際等に得られるポイントを消費して使用する事が可能。
しかし、1マップでしか効果が無く、マップを攻略できたかどうかにかかわらず、効果は消える。
これにより、後半はポイントを貯めるためのマゾゲーと化す。
課金前提でないゲームレベルにしてほしかった。
やり込み要素は少なめ。
攻略
どのタワーディフェンスゲームでもそうだが、序盤はレーザーを置けばなんとか凌げる。
しかし、中盤以降は、レーザーでは殆ど敵の体力を削る事が出来なくなってくる。
こうなったら、レーザーは破棄して、より強力なユニットに置き換える必要がある。
マップをプレイする前に、そのマップにどの敵が出るのか確認できる。
1種類だが、タワーが自動でターゲッティングしてくれない敵がおり、敵をタップしてターゲットを捕捉する必要がある。
この敵が出てきたときは、一時停止しながら進めれば問題なく撃破できる。
倍速にして放置したりしないように。
タワーディフェンス: Lost Earth
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

Hello, L10N

Hello, L10N | Android Developers
http://developer.android.com/intl/ja/resources/tutorials/localization/index.html ローカライズ(多言語対応)のチュートリアルです。
HelloL10Nというプロジェクトを作成します。
res/layout/main.xmlを開き、以下のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="@string/text_a"
    />
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="@string/text_b"
    />
<Button
    android:id="@+id/flag_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    />
</LinearLayout>
res/values/strings.xmlを開き、以下のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, HelloL10NActivity!</string>
    <string name="app_name">HelloL10N</string>
    <string name="text_a">Shall I compare thee to a summer"'"s day?</string>
    <string name="text_b">Thou art more lovely and more temperate.</string>
    <string name="dialog_title">No Localisation</string>
    <string name="dialog_text">This dialog box"'"s strings are not localised. For every locale, the text here will come from values/strings.xml.</string>

</resources>
チュートリアルページからflag.pngをダウンロードし、res/drawable/flag.pngとして保存します。
HelloL10NActivity.javaを開き、以下のように変更します。
package jp.blogspot.logroid.helloL10N;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class HelloL10NActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // assign flag.png to the button, loading correct flag image for current locale
        Button b;
        (b = (Button)findViewById(R.id.flag_button)).setBackgroundDrawable(this.getResources().getDrawable(R.drawable.flag));

        // build dialog box to display when user clicks the flag
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(R.string.dialog_text)
            .setCancelable(false)
            .setTitle(R.string.dialog_title)
            .setPositiveButton("Done", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                dialog.dismiss();
                }
            });
        final AlertDialog alert = builder.create();

        // set click listener on the flag to show the dialog box
        b.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                alert.show();
            }
            });
    }
}
実行します。
この時点では、ローカライズされていない状態です。
ここからローカライズを行います。
res/values/を右クリックし、Android XMLファイルを追加します。
ファイル名をstrings.xmlとして、次へをクリックします。
Available QualifiersからLanguageを選択し、->ボタンをクリックします。
言語にdeを入力し、完了をクリックします。
同様に、fr、jaのstrings.xmlを作成します。
それぞれのファイル内容は以下の通り設定します。
res/values-de/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Hallo, Lokalisierung</string>
    <string name="text_a">Soll ich dich einem Sommertag vergleichen,</string>
    <string name="text_b">Der du viel lieblicher und sanfter bist?</string>
</resources>
res/values-fr/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Bonjour, Localisation</string>
    <string name="text_a">Irai-je te comparer au jour d\'été?</string>
    <string name="text_b">Tu es plus tendre et bien plus tempéré.</string>
</resources>
res/values-ja/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="text_a">あなたをなにかにたとえるとしたら夏の一日でしょうか?</string>
    <string name="text_b">だがあなたはもっと美しく、もっとおだやかです。</string>
</resources>
チュートリアルのページから画像をダウンロードし、各フォルダに保存します。
実行します。
一旦ホームに戻り、アプリ一覧からCustom Localeをタップします。
セットしたいロケールをロングタップし、言語を設定します。
HelloL10Nを起動し、セットした言語で表示されることを確認します。
関連記事

2012年4月25日水曜日

4/25 Android ニュースひとまとめ

Dropbox や マイクロソフト SkyDrive が慌ただしく機能追加やリニューアルをしていた理由のひとつ、Google 版 クラウドストレージ Google Drive がついに正式発表を迎えました。Google ドライブは、従来の Google Docs を大幅に拡大・リニューアルしたサービス。Google ドキュメントの作成・ブラウザ上編集・共有といった機能を含み、なおかつ:

・無料で5GB の容量 (旧 Google Docs では自前アップロードファイル1GBまで)
・月2.49ドルで+25GB、最大16TBまでの追加容量プラン。
・1ファイルの最大サイズは10GB。
・Windows / Mac 用クライアントアプリでローカルフォルダと同期。
・Android アプリでオフラインアクセス、アップロード。iOS版は近日公開。
・高度な Google 検索統合。
・SDK公開。サードパーティーアプリへの統合をサポート。
Google Drive 正式発表:無料5GB、デスクトップ同期、画像認識やOCR検索 - Engadget Japanese
http://japanese.engadget.com/2012/04/24/google-drive-5gb-ocr/
Googleからやっとクラウドストレージが発表となりました。
GoogleということでAndroidと親和性が良いのは間違いないですね。
こちらからインストールしておきましょう。
Google ドライブ - Google Play の Android アプリ
https://play.google.com/store/apps/details?id=com.google.android.apps.docs 気になる他のクラウドストレージサービスとの比較はこちら
Google Drive 対 Dropbox、SkyDrive、iCloud 詳細比較チャート - Engadget Japanese
http://japanese.engadget.com/2012/04/24/google-drive-dropbox-skydrive-icloud/
関連記事

Hello, Views (Web View編)

Web View | Android Developers
http://developer.android.com/intl/ja/resources/tutorials/views/hello-webview.html Webブラウザのチュートリアルです。
HelloWebViewというプロジェクトを作成します。
res/layout/main.xmlを開き、以下のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
/>
AndroidManifest.xmlを開き、以下のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jp.blogspot.logroid.helloWebView"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".HelloWebViewActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
実行します。
URLも何も指定していないので空ページが表示されます
HelloWebViewActivity.javaを開き、以下のように変更します。
package jp.blogspot.logroid.helloWebView;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class HelloWebViewActivity extends Activity {
    WebView mWebView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.com");
        mWebView.setWebViewClient(new HelloWebViewClient());
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

}
実行します。
関連記事