2010年9月30日

ぐるぐるまわるボタン

GDD2010jpで見た、押すとぐるぐるまわるボタンが面白かったので実装してみました。

apkファイル。
http://greety.sakura.ne.jp/redo/apps/GuruguruButton.apk
Eclipseプロジェクトなソース。
http://greety.sakura.ne.jp/redo/apps/GuruguruButton.zip

negikegani1.png

続きを読む "ぐるぐるまわるボタン"

2010年9月26日

Styleを使おう

Androidでは大半のレイアウト、UI構造をXMLで記載しますが、きちんとStyleを使うとコードがすっきりする上に、同様の画面を複数つくった際の調整コストが大きく下がりますよ、と。

参考:
Android developers:Applying Styles and Themes
http://developer.android.com/guide/topics/ui/themes.html
mucchinのAndroid戦記:Androidアプリで使う文字列のスタイルを統一する方法
http://android.roof-balcony.com/resource/style/

以下の様な画面を「Styleなし」と「Styleあり」で作成した際にどうなるかを記します。

xml1.png

続きを読む "Styleを使おう"

2010年9月25日

#gdd2010jp の詳細予定を立てよう。

備忘録備忘録。

【関連URL一覧】
Googole Developer Day 2010
http://www.google.co.jp/events/developerday/2010/tokyo/
タイムテーブルはアジェンダがわかりやすい。
http://www.google.co.jp/events/developerday/2010/tokyo/agenda.html
GDDのLT演目
http://groups.google.com/group/tokyo-gtug/browse_thread/thread/e01e6da28c090bd7
Bootcamp 2010
http://sites.google.com/site/tokyogtugusersite/bootcamp-2010

【概要】
・2010.09.27 ボランティアで参加。
・2010.09.28 DevQuizはSH枠通過で通常参加。Androidメイン。

【詳細スケジュール】

○2010.09.27(月)
09:00 ボランティアスタッフ集合 D棟6F
09:00-11:00 リハ
13:00-14:00 1Fエレベータ前 誘導9
16:00-17:00 D5前 誘導9 ネームタグ回収

○2010.09.28(火)

09:00 開場
10:00-11:45 基調講演
12:00-17:00 デベロッパーサンドボックス
12:00-12:45 B5-1 Cool APIs 未来のソーシャルウェブを占う
13:00-13:45 B7-1 高性能な Android アプリを作るには
14:00-14:45 B7-1 マーケットライセンシングを使って Android アプリケーションを守るには
15:00-15:45 B7-1 クールな Android アプリを作るには
16:00-16:45 B7-1 Android でリアルタイムゲームを開発する方法: リベンジ
17:00-19:00 LT
19:00-21:00 GDD 2010 交流会
20:00-22:00 つ部迎撃

2010年9月17日

Maaaaaaaaps

MapViewというか、Androidアプリで地図を使ってみる。

Android Developers公式:Location and Maps
http://developer.android.com/guide/topics/location/

地図/位置情報/GPSを使うAndroidアプリを作るには
http://www.atmarkit.co.jp/fjava/rensai4/android16/android16_2.html

throw Life:AndroidでGoogle Mapsを使う最も簡単なサンプル
http://www.adamrocker.com/blog/230/android_maps_the_simplest_sample.html


==========!!ああっと!!==========
SDKをr07にバージョンアップしたらプチハマリしました。
SDK Setup.exeがなくなって、SDK Manager.exeになってます。

しかも単体で起動するとError。
(※Eclipseのメニューから実行する分には問題ない。)

Exception in thread "main" java.lang.NoSuchFieldError: marginWidth
at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.createContents(UpdaterWindowImpl.java:131)
at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.open(UpdaterWindowImpl.java:102)
at com.android.sdkuilib.repository.UpdaterWindow.open(UpdaterWindow.java:113)
at com.android.sdkmanager.Main.showMainWindow(Main.java:307)
at com.android.sdkmanager.Main.doAction(Main.java:259)
at com.android.sdkmanager.Main.run(Main.java:98)
at com.android.sdkmanager.Main.main(Main.java:87)

↓結局こうなって袋小路に入りました。
http://twitter.com/youten_redo/status/24677511046

android.batをいじってC:\Program Files\Java\jdk1.6.0_21\bin\java.exeを設定すると回避できました。
...マイPCのJDK環境が怪しいだけな気もします。

==========リセットして華麗に再開==========

○Maps API Key

・debug.keystoreからフィンガープリントを生成。
・パスワードは入力なしのEnterでokでした。

○@ITのサンプルを動かす。

・ソースをダウンロードしてインポート
・@Overrideまわりでエラーが出たのでソースを微修正。
・Xperiaで動かないと困るのでdefault.propertiesのtargetをGoogle Inc.:Google APIs:7からGoogle Inc.:Google APIs:4に修正。
・strings.xmlに格納されているAPI Keyを先ほど取得した自分のものに変更。

おk、問題なし。

○Trackingのサンプルを動かしたらGPSアイコンが点灯しっぱなしが気になった。

onPause()にMyLocationOverlay#disableMyLocationを、onResume()にMyLocationOverlay#enableMyLocationを追加するだけでした。


○参考になるページがいっぱい

橋本商会:
http://shokai.org/blog/archives/5180
http://shokai.org/blog/archives/5174

androside.com:
http://androside.com/android_contentlist.html

2010年9月12日

【中世箱庭MMORPG】PEO2.0 PvP(War Zone)実装されたよ【Pocket Empires Online】

というわけでPEOが2.0になって、PvP(War Zone)が導入されました。

ルールは複雑なんで公式を見てね★
Pocket Empires Online:War Zone
http://www.pocket-play.com/war-zone

今回はStrongHold見てきたよと、StateCapitalとってみたよ、編です。

続きを読む " 【中世箱庭MMORPG】PEO2.0 PvP(War Zone)実装されたよ【Pocket Empires Online】"

2010年9月10日

終電逃したのでネカフェ

実は人生初でした。

知・好・楽 新横浜店
http://chikouraku.jp/shinyoko/

【前提条件】
終電:00:25
終業:00:30
始発:約5:00
自宅往復にかかる時間:約45分
翌日始業:9:00

【メモ】
・ナイトパック6時間 シングルシート(寝っころがれる)1,500円
・7時まで寝てから出社予定だった。
・実際のところは始発前の4:45から散発的にまわりで目覚ましが鳴り続け、寝てられなくなって5:30ぐらいの電車で帰宅。

【感想】
・始発で起きて帰宅する前提の方がいい。
・1,000円切るとかシャワー代が含まれるならともかく、1,500円なら会社で寝て始発で帰る方が快適かも。
・目覚ましで起きない奴は目覚ましかけるな。

2010年9月 9日

「日経を読んでいる」と言うために

いろいろあって、日本経済新聞を読まないといけなくなりました。
普段新聞は読まないというか、「毎日読んで片付けるの面倒」「値段分の価値があるとは思ってない」「読みきれないのでさらに実効が低い」という感じの心境なので、少し悪あがきの意味で調べてみることに。

○調査

紙とか電子版とかWeb刊と呼ばれるいろいろな種類があるらしい。

日本経済新聞 電子版 利用ガイド
http://www.nikkei.com/guide/

・Web刊と電子版は同じものらしい
・特ダネ記事 20本/月(今はキャンペーンとかで40本/月)らしいがよくわからない。
・日経テレコン21というサービスがあって、こちらを無料で使う手段があるらしい。

クローズアップ株式
http://kabushiki-blog.com/article/31455788.html

日経テレコン21とは、日本経済新聞社が提供している会員制のオンライン情報サービスです。日経テレコンを使うと、下記の新聞の記事を読んだり検索したりすることができます。
日本経済新聞朝刊
日本経済新聞夕刊
日経産業新聞
日経MJ(日経流通新聞)
日経地方経済面
NIKKEIプラス1 (ニッケイ プラス ワン)

○まとめ

【1】紙で買う
全日版:3,568円
朝・夕刊セット:4,383円

【2】電子版を読む
電子版only:4,000円
全日版+電子版:3,568円+1,000円
朝・夕刊セット電子版:4,383円+1,000円

【3】無料部分を読む
「特ダネ記事」の詳細が不明。

【4】他
調査中。

○他

最初斜め上に考えて「iPadで電子版(epubみたいなのがあると信じていた)」を読めばいいんじゃ!
と思ったが調べた結果は以下の通りでした。

価格.com - 『日経電子版が読めない』 APPLE iPad Wi-Fiモデル 64GB MB294J/A のクチコミ掲示板
http://bbs.kakaku.com/bbs/K0000084168/SortID=11422881/

日経新聞 電子版のみを1週間使ってみて分かったこと
http://memo.noaruseikatu.jp/20100328_222405_383/

2010年9月 8日

SyntaxHighlighterでXML表示イクナイ

昨日書いたXMLなDrawableを使ってみようで気づいたのですが、SyntaxHighlighterのXML(brush:xml)はバグがあって微妙です。

【現象】
・タグが小文字になってしまう。
・閉じタグなし(Empty Closed Element)の解釈がおかしくて、変なところに勝手に閉じタグが入ってしまう。

同じことで困ってる人はいっぱい居る様です。
http://bitbucket.org/alexg/syntaxhighlighter/issues?q=xml

ソースをざっと見た限りでは(中途半端な)xhtml最適化であって、xml向けbrushでは決してなさそうです。

Javascript code prettifier
http://google-code-prettify.googlecode.com/svn/trunk/README.html

に乗り換えてみる。

...ダメでした。orz

2010.09.25追記:SyntaxHighlighter+&lt;&gt;等のエスケープを丁寧にしてやって、タグの<と>を消すのが妥当な様です。横着はいけませんということで。

2010年9月 7日

XMLなDrawableを使ってみよう

AndroidのDrawableにはPNGとかJPGとか直接放り込んだり、あるいは押したり離したり選択されたりとか言った、状態付きButtonをXMLで...ぐらいがよく使われるトコロですが、意外なモノがDrawableの範疇にあったりします。

Drawable Resources
http://developer.android.com/guide/topics/resources/drawable-resource.html

で、このうち最後のShape Drawableというものが、塗りとか線とかがかけます。

shapeとかgradientとかみてもさっぱりだと思うので、実例を以下に。

たとえば、グラデーション背景+小物みたいな以下の画像があったとします。

car.png

これを普通にImageViewではっつけると、こうなります。

car_cap1.png

で、背景部分だけサイズ可変にしたいとか、そもそも画面解像度が上がってくると、この様な単純なグラデーションPNGやJPGでも、ファイルサイズが意外とバカにできません。

そんな際には、XMLでDrawableを書いてしまいます。

drawable/blueback.xml


<?xml version="1.0" encoding="utf-8"?>
<!-- blue-naname-grade -->
<shape
	xmlns:android="http://schemas.android.com/apk/res/android">
	<gradient
			android:startColor="#55AAFF"
			android:endColor="#0022FF"
			android:angle="135"
	/>
</shape>

layout/main.xml


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:background="@drawable/blueback">
	<LinearLayout
		android:orientation="horizontal"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:background="@drawable/pat_tiled">

		<ImageView
			android:src="@drawable/car1"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_gravity="center"
			android:layout_weight="1"
			android:scaleType="center" />
		<ImageView
			android:src="@drawable/car2"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_gravity="center"
			android:layout_weight="1"
			android:scaleType="center" />
	</LinearLayout>
</FrameLayout>

背景を除いた小物部分は別途ちまちまと張ってください。

car_cap2.png

するとこうなります。

drawableはどこまでも可変ですから、横にしてもグラデーションは問題ありません。

car_cap3.png

※小物が変なのは突っ込んじゃいけません><

XMLなdrawableと、tiledなXML drawableを組み合わせると...。

pat1.png

car_cap4.png

こんなことにもなります。

どこまで実画像でやって、どこまでXMLでやって、どこまでコードでやるかはセンスの問題だと思いますが、個人的には慣れれば慣れるほど小物XMLがdrawable、include、inflate用に増えていく気がします。広義のオブジェクト指向というか...。

P.S. SyntaxHighlighterがおかしいらしく、XMLが変です。自己閉じ型が勝手に変な変換される...。

2010年9月 6日

Android Hacks買った。


ah01.jpg

分厚いです。
ちまちま読んでます。

そういえば表紙のスケボーですが。

droid.gif

多分これです。

ご存知ボリュームダウンキーを押しながら電源を入れる人とちょっと仲良しのドロイド君です。


初級は流し読みするか...と思ったけどエミュレータ関連で知らないことばっかりでした。ちゃんと読もう。

SMS送受信とか通話とか、そもそもエミュレータを2台同時に起動したことがミス以外でないと言う...。

2010年9月 5日

さくらのVPSを試してみて、そして俺には早かった。

さくらのVPS
http://vps.sakura.ad.jp/

申し込んですぐコントロールパネルに触れます。
が、「[さくらのVPS] 仮登録完了のお知らせ」というメールが数分後に届き、ここに初期rootパスワードが載ってます。落ち着け>俺
さくらのVPSにUbuntu 10.04 LTSをインストールしてみた
http://d.hatena.ne.jp/rsky/20100805/1280997774

を参考に、Ubuntu10.04 LTSをインスコ。

※1 netboot.tar.gzのファイル構成が変わっているらしく
/ubuntu-netboot/ubuntu-installer/
でなくて
/ubuntu-netboot/ubuntu-installer/amd64/
とかそんな感じでした。/boot配下見て書き換えてください。

・ネットワーク関連で手動入力を求められたのは
 ・IPアドレス
 ・サブネットマスク
 ・デフォルトゲートウェイ
 ・DNSサーバアドレス

でした。

他はJapanかYesかEnter連打でだいたいなんとかなった感じです。

OpenSSH Serverを入れておけば設定したアカウントですぐにSSHアクセスが可能です。

sudo apt-get install language-pack-ja

Nexus One用にfroyoソースをビルド (on ubuntu10.04)
http://www.ekesete.net/log/?p=1658
公式:Getting the Source
http://source.android.com/source/download.html

そういえば64bitだな。

vi /etc/apt/sources.list
下記2行を追加。
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl sun-java5-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev

sudo update-java-alternatives -s java-1.5.0-sun
↑エラーが出ているがおそらく設定済みで不要。
sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.s

こっからはいつものな感じ。

curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo

~/binにはPATHを通しておく。

repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
repo sync

source build/envsetup.sh
time make -j2

T7700 2コアなVPSなのでもふもふな感じ。

real 159m47.657s
user 75m10.530s
sys 55m58.050s

○で、どうしよう

単にAndroidビルド用のLinux PC欲しいなーと考えていたところにVPSだったんですが、やっぱりサーバ用PCというかVPSをビルド用PCにするにはいろいろ無理があるのかな、と思ってきました。(./extract-files.shとか面倒ですし。)

(Ubuntu 9.10) vncserver
http://netlog.jpn.org/r271-635/2010/02/ubuntu_910_vncserver.html
Ubuntu 10.04 に xinetd + vncserverを入れる
http://d.hatena.ne.jp/mikenekoDX/20100524/1274713361

sudo apt-get install vnc4server
vncpasswd
sudo apt-get install xinetd
sudo apt-get install gdm

ごにょごにょ

あれ、そもそもsystem.imgができてないぞ...orz

...おわり!

結論:俺にはVPSはまだ早い。GAEでもう少し遊ぼう。