HTML5/CSS3とスマートフォン・アプリケーション

土曜日, 7月 31st, 2010

少し前から、HTML5/CSS3についていろいろと調べ物をしていまして、今のところ出た結論を書いていこうかと思います。ここでは、HTML5/CSS3をPC環境ではなく、スマートフォン環境で利用してもらうことを想定しています。

スマートフォンのHTML5/CSS3対応状況

ここでは、Appleから提供されているiPhoneとGoogleから提供されているAndroidについて見ていくことにします。iPhoneは現在のところ、HTML5/CSS3の多くの機能が既にSafariブラウザにて実装されているようです。またAndroidは、OS1.6は未対応ですが、OS2.1からはHTML5/CSS3への対応が進んでおり、多くの機能が使えるようです。日本で一番初めに発売されたAndroid端末であるDoCoMoのHT03-A機については、OSが1.6ということで、HTML5/CSS3が未対応なのが残念ですが、今後1~2年でHT03-Aを使うユーザも減ってきて、本格的にAndroidでもHTML5/CSS3に対応できるのではないでしょうか?

Windows Mobile機については調べてはいないのですが、PC版ではSafariやGoogle Chrome、OperaなどがHTML5/CSS3に対応しているので、それらのブラウザをインストールすればWindows Mobile機についてもiPhoneやAndroidと同様にHTML5/CSS3が使えるのではないでしょうか?

(続きを読む…)

Android アプリ開発時の汎用関数の紹介

日曜日, 5月 16th, 2010

自分がAndroid アプリの開発をやるようになって、これでもう1年は経過したのではないかと思っています。1年経った今でも、Androidアプリを開発するときは分からないことが多く、分からないことが出てくるたびにGoogle先生のお世話になったり、過去に自分が書いたコードを探して見てみる、などということをしてきました。そんな中で、自分がAndroid アプリを開発する際に比較的よく使う関数群を汎用関数として、Utilクラスとしてまとめてみましたのでその一部を紹介します。

バージョン情報の取得

Androidアプリケーションには、1つのアプリケーションにつき必ず1つのAndroidManifest.xmlというファイルが存在します。このAndroidManifest.xmlファイルには、アプリケーションの名前や使用するインテント名、サービス名、バージョン情報などなど多くの情報がXMLによって書かれています。このAndroidManifest.xmlファイルに書かれているバージョン情報を取得し、そのバージョンによって処理を変える場合があります。そこで、現在のアプリケーションのバージョンを知るための関数を2つ作成しました。

作成したバージョン情報取得関数

// バージョン情報の取得関連
public static int getVersionCode( Context context ) {
    int ver;
    try {
        ver = context.getPackageManager().getPackageInfo( context.getPackageName(), 1 ).versionCode;
    } catch (NameNotFoundException e) {
        ver = -1;
    }
    return ver;
}

public static String getVersionName( Context context ) {
    String ver;
    try {
        ver = context.getPackageManager().getPackageInfo( context.getPackageName(), 1 ).versionName;
    } catch (NameNotFoundException e) {
        ver = "";
    }
    return ver;
}

説明

Android のバージョンには2種類あり、1つ目は整数値で表現された番号。2つ目は1.3.12などのように詳細な情報が文字列として表現されているバージョン名です。今回作成した関数では前者をVersionCode、後者をVersionNameとして取得しています。なお、これらの情報はContextクラスから、PackageManagerクラスを取得し、そこからさらにPackageInfoを取得するとversionCodeとversionNameの情報が得られます。それらを単純にgetVersionCode, getVersionNameとした関数です。

(続きを読む…)

Android Marketに公開して3週間

土曜日, 5月 1st, 2010

先日、楽天のクレジットカードを契約しまして、無事にAndroid Marketに自分の開発したアプリケーションをアップロードすることができました。

今までは、クレジットカードを所有していないがために、Android Marketにアップロードすることができず、代わりにappli.jp(appli.jpトップページ / Androidアプリ ダウンロードマーケットappli.jp)というサイトにアプリケーションをアップロードして公開していました。実際に、Android Marketにアップロードして3週間経った感想としては、appli.jpと比べてやはり、認知度が違うなぁということを実感しています。appli.jpでは3ヶ月以上公開していても、総ダウンロード数が50件もいかなかったものが、Android Marketに公開したら、たった2週間ほどで1,000ダウンロードを突破するという状況です。さすが、Google の提供する公式マーケットだなぁという感じです。

Android Marketへの公開で困ったこと

Android Marketに公開して困ったことが1つあります。最初に公開したアプリで発覚したことなのですが、アプリをリリースする際に用いたkeystoreファイルを削除してしまうと、アプリケーションをアップデートすることができない、ということです。これには、アプリケーションの公開手順を説明する必要があるので、公開手順を簡単に説明します。

アプリケーションの公開手順

まず、EclipseなどのSDKを用いてAndroid アプリケーションを開発します。開発し終わったら、それをUnsignedのapkファイルとして書き出します。次にコマンドプロンプトなどを用いて、キーストア・ファイルを生成し、そのキーストア・ファイルをUnsignedのapkファイルを1つにまとめ上げて、署名付きのapkファイルを生成し、このapkファイルをマーケットにアップロードすることでAndroid アプリケーションを公開することができます。

(続きを読む…)

[Androidアプリ] EStrong Exploler

火曜日, 12月 22nd, 2009

Androidで自分が使っているファイラーアプリ(EStrong Exploler)に先日バージョンアップがあり、とても便利な機能が付いたのでブログに書いてみようと思います。ファイラーといえば、Astroあたりが人気のようだが、自分は、EStrong Explolerを使っている。というのも、このアプリは、Android端末のSDカード以外にも実はSambaサーバーのフォルダも参照できるようになっている。これは、自宅などでSambaサーバーを運用している人にとっては重宝する機能だと思う。自分自身、自宅内のみのローカルサーバーではあるが、Linux(CentOS)にSambaを起動させて運用している。そして、自宅内では無線LAN(Wi-Fi)も運用しているので、自宅にいるときにはHT03-AにてCentOSの共有フォルダ内を自由に参照することができるのだ。この機能が以前から重要だと考えていたので、EStrong Explolerを使い続けてきた。

最近の新機能

上で書いたSambaサーバーを利用できるだけでもよかったのだが、さらに今回新機能がついた。それは、FTPサーバー内のフォルダを閲覧できるようになった。残念ながらファイルの閲覧・編集は現在は無理(?)のようだが、これは時期にバージョンアップにより可能になるだろう。とはいえ、FTPサーバー内のファイルをコピーして自端末内やSambaサーバー上に複製したり、自端末やSambaサーバー上からファイルをアップロードすることも可能である。Web運営を行っている人にとっては、ここまで便利なアプリはなかなかないだろう。実は昨日、AndFTPというアプリを見てインストールしてみたのだが、これはFTPサーバーとの接続がメインであって、自端末やSambaサーバーとのアップロード・ダウンロードについては考慮されていない気がする。

(続きを読む…)

Androidでタグクラウドを実装する(ソースコード付き)

日曜日, 12月 13th, 2009

Android開発を行っていて、意外にもライブラリなどが存在しなかったのがタグクラウドです。まぁ、見つからないなら自分で作ってしまえ、という考えで下の画像のようなタグクラウドをちょっと実装してみました。なので、そのTagCroudクラスとそれを利用するために必要なTagクラスの2つをここに公開します。自分自身Javaにはあまり強くないことと、Androidアプリ開発を始めてまだ間もないということからおかしな実装をしている部分もあるかと思いますが、その場合にはコメントにてお知らせいただくか、twitter(@1987yama3)までご連絡ください。

tagCroud

Tagクラス

タグクラスはタグ(語句とその出現数)を格納することが主な役割です。また、これに加えてタグクラウド上でタグをクリック(タップ)した際の挙動をここに記述できるようにしています。具体的には、クリック時には、タグクラス内のIntent型のメンバ変数intentを引数としてインテントを発行します。タグクラスのメンバ変数(語句、出現数、インテント)はSetメソッドによりセットすることができます。

(続きを読む…)

Get Adobe Flash playerPlugin by wpburn.com wordpress themes