万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

masuidriveと学ぶ「60分で覚えるAndroidアプリの作り方」

2011/01/17 19:30 to 21:30
http://atnd.org/events/11344



IS03すぐ電池がなくなる。

■masuidrive
Platform evangelist
PhotoShare

今日の目標
家に帰ってHello worldやってみよう

・60分では覚えられません。

覚えなければならないことが多い。本も厚く心理的にもバリアが大きい。
本を読みつつ試すときに詰まる部分を中心に解説。

Androidとは
ちょっと変わったJavaの実行環境

・4つの特徴
ブラウザなどを自分で差し替えられる iPhoneとの違い

・特徴的な機能

ブラウザだけで開発→googleがリリース

・UI
シングルウィンドウベース
キーボードがあったりなかったりの違いを持っている。
ネクサスSだけSuicaとの連携ができる
ホーム画面にWidgetがおける
顔認識が標準のAPI
電話とPCとの間をサポート

・メーカー独自API

・Intent インテント
OpenURLをTwitterAPIなどから呼び出せる

・セキュリティ
アプリケーションごとに設定可能

iPhoneとの違い
画面の大きさがまちまち
JRubyScalaでもできる。
AppStoreはオブジェクトスキャナでのチェックがある
広さ

・個人的な感覚
アプリケーションを手軽にインストール
iPhoneはアプリケーションを使いたくて買う人が多い
アプリケーションを普及させる違いが大きい

・開発者から見たAndroid
→機種差
機種、画面サイズが違う・・悪夢
機種によって300倍も実行速度が違うときもある
少し前のだとメソッドが使えない
ボタンの配列
グラフィックがそれぞれチップが違って性能が違う
→主に2系統なので大きな問題にならない

春モデルはガンガン増える
海外のは手元に持ってくるのが大変
Tmobileがスポンサーのイベント
 機種を持ち寄って、自社のはすべて置いてある他社の持ち合う
 1,2ヶ月に1度
 日本にもあるらしい

・一番の違いは画面サイズ
グラフィカルなアプリケーションをつくらない限り苦労しない
CPU400MHz〜1.2GHz
スレッドのタイミングが違う
3G、Wi-FiがありWi-Fiは問題がある。Freeはできるけど外に行けない。
通信には気を使ってDebug
iPhoneスターバックスFREESPOTで試したり

OSのバージョンはAPIでのバージョン
使いたいバージョン
1.6のアニメーションは自信がない

C2DM→Client2DirectMessage
OSの見た目がいろいろ変わっている

・業務端末でのAndroid
どういったものができるのか?

・開発環境
90%はEclipse

src -> layout -> main.xml

他のアプリケーションのメッセージにすれば
インテントの機能2種類
・暗黙のインテント
 どんなTwitterクライアントが入っているかわからない時は選ばせられる。
・明示的なインテント

Masturd・・・Twitterのクライアント

Service2つ
Activity:UIを持っている
Service:UIを持っていない

iPhone:background バックグラウンドで動かせる
Unix:daemon 常駐プロセス

android.app.Service

Toast

何時何分になれば呼ばれるAlermService

スレッドを使わないメリット
→途中で外からメソッドを発行したり、リモートインテントは、いろんなアプリケーションからいろいろできる

・TitaniumMobile
OpenGLやグラフィックは弱い
そのうちMovieを作る

・サンプルのアプリケーションから

オープンソースのアプリケーションのリスト化
List OpenSource applications
http://bit.ly/androidos

Eclipseの標準GUI
AndroidSDK
Graphical 〜〜

MacEclipseで困ったこと
コマンドラインEmacsなのであまりない

・LT
NoSQL
・山本祐介 @yusukey

Twitter4J
Java用TwitterAPIライブラリ
GoogleAppEngine

Base64Encoderが使えない
BASIC認証

・使えない
sun.misc.*
com.sun.*

XMLの問題
DOMのStringをテキストにする
XSLTというのが使えない
→Transformerを使わない。

XMLの日本語が使えない
XMLパーサが使いものにならない
XML使わない

xml, JSON, atom, rssをサポート

JSONの問題

クラスが見つからない
→VerifyError

ヒサモト(株)竹内