Hatena::Groupchris4403

rm -Rf

 | 

2010-03-11

Google DevFest 2010

| 08:59 | Google DevFest 2010 - rm -Rf を含むブックマーク はてなブックマーク - Google DevFest 2010 - rm -Rf

Google DevFest 2010@京都会場のメモエントリです。

基調講演

  • 10:00~10:45
  • ジョセフ・ターナスキ,及川卓也,石原直樹
ジョセフさん
  • Google Apps Marketplaceの話
  • Google JapanのEngineer Teamが増えてきている
  • devfest.Printf(speakers) / devfest = new Volunteer(); www
  • 京都会場は東京会場の雰囲気が伝わりにくいなぁ。
及川さん

石原さん
  • 東京会場で300人超えるくらいが参加している(立ち見も出てるらしい)
  • GoogleのDeveloper Events
  • 外部の開発者コミュニティとの成功例
  • イベントの音楽、ナレーションとかもGoogleの社員がやっているらしい
    • 暖かい、血の入ったイベント
  • 地方にもイベントを提供したい
  • DevQuiz
    • 導入したいきさつ
      • イベントの来場者が先着順で良いのかという疑問があった
      • より熱狂的、熱心な人に楽しく参加して欲しかった
      • 1週間2113人 参加461
      • 36.6 - 22 / 46 点数の幅
    • 11問目
      • Google DevFest 2010 Japanを採点してください
      • 22点を超えた場合はクイズを次回も導入します

たのしい Android: カスタム UIAndroid アプリにワクワク感を加えよう

  • 11:00~11:45
  • 矢野りん (日本 Android の会),adamrocker (日本 Android の会)
矢野さん, adamrockerさん
  • なんか変なかぶりものしている
  • shimejiは変なIMEらしい(だからきのこのかぶりものか)
  • 矢野さんはデザイン,adamrockerさんはソースの解説
  • インタラクションの肝"easing"
  • "easing"をDialogにとりれよう
  • "easing"つき横スクロール
    • HorizontalScrollView
      • smoothScrollBy
    • reflectionで適用する
      • テクい(もしくはキモい)
    • + インタラクション + グラフィック
      • テーマを作るときの手順
        • 利用者とかを仮設定
  • こだわりのスクロールアニメーション
    • 移動幅に応じてテンションの値/アニメーション時間を変更
    • DEFAULT_DURATIONをreflectionしようとしたけどfinalでした
      • extendしてコピペ拡張(どうなんだろうなー)
    • 女性の手の大きさを考えて、タブを下に持ってきた
    • 移動量が大きいと、普通にしているとOvershootが大きくなりすぎる
質疑応答
  • プログラマとデザイナの共存方法は?
    • デザインツールはない
    • XML化するのはプログラマの仕事
    • 動き的な部分のデザイナとプログラマの分担って微妙なところだなぁ
    • 品質責任者が自分でコントロールできる何かがあるといいなぁ
      • SIer的な発想ですね
  • タブを下に
    • 上と下、どっちでしょう?
    • 個人的には「下」だと思います
  • Google Mapでピンを落とすアニメーションの難易度は?
    • そんなに難しくはなさそう
  • Activityをアニメーション

やさしい Android: ユーザフレンドリかつデベロッパーフレンドリーな Android アプリケーション開発手法

  • 12:00~12:45
  • 宮川 大輔
  • みやかわさん
  • 2007年新卒入社
  • Androidの日本語化
    • 連絡帳
      • 「indexer」を「あ」「か」・・・
      • 日本の電話番号が入った時の -
      • vCardサポート
      • 絵文字サポート
      • git logでチェック
    • やさしい は Friendly (not Easy)
  • やさしい
    • ユーザにとって
      • クラッシュしない
      • 期待通りに動作
    • 開発者
      • wherever
      • バグを容易に発見
  • 互換性
    • 変化するプラットフォームにどう対応するか
    • Andoroid Market
    • 公開APIを使う(SDK
      • 公開SDKにないpublicメソッドは非公開→非推奨
        • さっきの話とは真逆だな
      • targetSDK ->4 /minSDK ->3
    • 複数解像度対応
      • 解像度ごとにディレクトリをつくりデータを管理
        • drawable-XXX drawable-ldpi
        • supports-screens
    • XMLレイアウトする
  • i18n
    • 本質的には非常に難しい
      • 右から左に書く言語
      • 10 out of 1000
        • 10件中の1000件目?
    • 世界の多くのユーザに使ってもらうのが目的
    • 英語圏を意識してください
    • Javaに文字列を直接書かない
    • 絵文字の話
      • Unicode Emojiに画像をかぶせてみる
      • Spannable
  • バグ
    • ユニットテスト
    • Log.d (printf => Log)
    • テスト用の別プロジェクトを作成して、親プロジェクトを参照させる
    • Loggingでバグ検出が便利
    • adb logcat
      • adb logcat "*:e" "Hello-World:d"
  • ユーザビリティ
    • バグのように見えたら、それはバグです
      • ユーザが「あれ?」と思うところがあれば、まだ改善の余地がある
      • 次の動作を表示する
        • メニューをおしてください
        • 新規文書の作成
      • とりあえず試してもらう
        • 操作方法に気づくまで何十秒もかかる
          • UIが不親切
      • 続きはOffice Hourで。
  • Being friendly is not easy , but it is worth striving for.

モバイルマッピング: Google Maps を利用した様々なモバイルマッピングの手法

  • 13:00~13:45
  • マノ・マークス
  • Mobile Mapping
  • やはりmobileとはスマートフォンのことか
  • GeoLocation,Cumpas, Camera, mapと機能がつまったスマートフォン
  • Map
  • mobile development diffrent
    • スクリーンサイズ
    • Latency
    • User interface and interaction
    • Speed
    • Location Based Services
  • latency
    • ページのロード(つかえるようになるまで)
    • User perceived (ユーザに表示されるまで)
  • Causes of Latency
  • Browser Advantages
  • Native API Advantages
    • Native UI
    • One language to learn, per device
    • Easy integration with your app
    • App store discoverability
    • Lower latency
  • やっぱレイテンシが重要だよなぁ
  • Start
    • Static : JSが使えないところでstatic map
    • Native : iphone / Androidどちらかでのみ開発するとき
    • Browser only V3 app : スマートフォンだけでなくブラウザ展開もしたいとき
    • Hybrid : V3mapをnative appへロードして使う
  • Static Map API
    • Version2
      • polyline / mobile tiles / custom icons
    • No slippy-ness
  • Native API
  • Browser Only
  • Hybrid Native + JavaScript
    • User WebView and UIWebView to load V3 page
    • これがいいらしい
  • Google Maps API V3
    • Reducing JS page load latency
      • Compile/obfuscale code
      • delay load code until required
      • Model-View-Controller architecture
    • Combine image fetches using sprites
    • Reducing JS pereceived latency
      • まずはStatic MapをロードしてからJS
    • verion2 では190KBだったのが、version3では35KBの基本を落として表示
    • MVC Architecture
  • V3でできること
    • ここでAndroidのデモ
    • コードの解説が入るけど、文字が潰れて見えず…残念。
    • No Keys Required!
      • これいいね!

プログラミング言語 Go

(昼食のため離席)

  • 最後の方だけちょろっと
  • DevQuizの解答例をGoを使ってどうやって解くかを解説
    • goroutineはpatchwork問題には適さない

Google Wave API による Google Waveの拡張 

Task QueueはMapReduceの夢を見るか?

  • 16:00~16:45
  • 佐藤 一憲 (有限会社スティルハウス)
  • Task Queueの話
  • MapReduceのような並列処理をGAEのTask Queueを動かす
  • GAEでは30sec以内に処理が終わる必要がある
    • Task Queueの登場
  • Web Hook の形でWebHook
  • 複数のサーバタスクが処理されるので、同一の処理が2回行われる可能性を考慮しておく
  • TaskQueue Limitationがあるが、超える場合はGoogleに要相談
  • Demo
    • Google Talksからメッセージを入力してGAEで受け取ってTaskQueueが動いて、メッセージを返す
  • コードを画面に映す系のセッションはちょっとつらいなぁ
  • 普通にタスクを突っ込んで、タスクが終わったこともちゃんとチェック
  • AppServerの台数をカウント
  • プレゼンツールがおもろい
  • 30の同時リクエスト制限はGoogleに申請すると外してもらえることがあるらしい
  • Spin Up
    • 新しいApp Server Instanceが起動する
  • 仕組み的にmap reduceに似ている
  • 最後の方はかなりテクい話になってきた
 |