Java Kuche 参加メモ

id:mi-tyu から「はてなに記録を」との事からメモを以下に列挙してみます。

iPhone

  • スピーカ
  • iPhoneOS は Mac OS のサブセット
  • センサ付いてる
  • 提供パターン
    • app store
    • Ad hoc
      • 利用者限定 (ベータ試験)
      • ユーザに直接渡して云々
    • エンプラ
      • 社内用??
  • 開発環境
  • 手順
    • Xcode でプロジェクト作成
    • interface Builder で GUI 作成
    • Xcode でコード実装
    • iPhone sim で実行検証
    • 実機で検証
    • Apple にバイナリを送付
      • review 後、app store 登録
      • verUP でも review 必要
  • ハードル
    • Mac 必須
    • ライセンス購入 (実機への実装は購入必須)
    • iPhone 必要
  • 開発ライセンスについて
  • ライセンス (1 年毎) 組織単位
    • standard 10800
    • エンプラ 33800
      • アドホ ック、社内専用など
  • OSX 10.5 で Objective-C 2.0
    • garbage collection
    • 宣言プロパティ?
  • id 型
    • retain/release というメモリ管理
  • 参照カウンタ
    • 文字列は @ で開始
  • C と区別するため
    • [...]; というメッセージ式
  • メソドの書き方
    • 引数列挙ではなく?
  • パケジという概念ナシ
    • 基本フラット
  • クラス定義
    • header と実装ファイル
    • h
    • m
      • メソド実装の記述
@interface Person: NSOjbject {
  @private
  int age;
  NSString* name;
}

//宣言プロパティ (アクセサの記述が不要)
// nonatomic 非同期
// atomic sync される

@property (nonaomic, assign) int age;
@property (nonatomic, retain) NSString* name;

//メソド宣言
- (NSString*) introduceMyself;

@end
  • 留意点
    • iPhneOS で使えないクラスが一部存在
    • sim での動作確認では微妙
      • メモリの検証に実機必須
    • iPhoneOS 上で GC 使えない
      • retain/release によるメモリ管理のみ
  • デリゲートを用いた (移譲)
  • MVC らしい
  • UI とどうリンクしている?
    • lFile's Owner
      • Ctrl+drag
      • 宣言したプロパティと結びつく
  • ぶらうざ作る程度は簡単に実装できるとの事
    • 10行程度?
  • interface builder 微妙との事
    • インターフェースの縛り
    • 独自実装はハードル高い
  • gc に慣れてると開放忘れがち
  • C 的なソレとは遠い
  • 128K は実メモリ?
    • 128K までしか
    • heap + stack 合わせて
    • iPhone OS2.2 で若干改善?
      • safari オチなくなったらしい
  • 複数タスクの切り替えはない
  • single task
  • thread は?
    • 概念的にはあるが、アプリケーションレベルでは微妙
  • 割り込みとかは?
    • アプリ中の電話とか
    • 純正は電話になるがサードパーティーなソレは微妙
    • めそっどがあるはず
      • 実装してないと動作保証ナシ
  • 開発者のコミュニティ?
    • フォーラムは一応あるが質問ばかりの状態
  • NDA がややユルくなったらしい
    • リリースしたアプリは情報公開して良い?

android

  • スピーカ
    • 沖縄 H の鎌田さん
  • 実装機は国内におそらく年明けに入ってくる模様
  • android developer challenge ?
    • 去年の今ごろ?
  • agenda
    • Andoroidとは
    • 開発環境
    • アプリ
    • デモ
  • android
    • OS middle アプリ含む
    • java 使用
    • OpenHandsetAlliance ?
      • 携帯での共通ソフトウェア基盤の開発、普及云々
      • 日本の 3 キャリアもナニ
  • こんせぷと
    • open
    • 滑てのアプリが同等
    • 境界打破
      • アプリ間
    • 短期間の開発
  • 特徴
    • Dalvik virtual machine
      • 独自 VM (andoroid 向け)
    • WebKit ベースのブラザ
    • 最適化された graphic
    • SQLite 搭載
    • 主要なメディアフォーマットの support
  • 開発環境結構リッチ
  • 最新ニュース (12/19)
    • ぶらうざでのコピペ
    • x86 サポート
    • そふときーぼーど
    • ビデオ録画
    • いつ出るかは未定だが近い将来実装予定
  • ベースは Linux
    • おおまかには 4 層
      • application
      • app framework
      • lib + VM
      • kernel
  • Andoroid Market
    • 売り上げ 70%
    • 登録費用 $25
    • 今は無料ツールのみ、らしい
    • google は費用をもらわない、との事
    • 書籍はあるが SDK のバージョン微妙との事
  • バージョン
    • Eclipse3.3 or 3.4
    • JDK5 or JDK6
    • Ant 1.6.5<= (linux & mac)
    • Ant 1.7<= (win)
  • android debug bridge
    • $ adb shell
    • vm の中?
    • emulator の中らしい
  • 開発用のナニ (dev phone)
    • $399
    • G1 ベース
    • SIM & H/W ロックフリー
    • Android 開発登録必要
    • 人気あるんで一人一台
    • dev phone は USB 経由
  • アプリケーションの構成
    • activity
      • view, Intent, IntentFilter
      • resource file
    • Intent Receiver
    • Service
    • Content Provider
    • 上4つはコンポーネント
    • AndroidManifest.xml
      • アプリ定義
  • activity と manifest の理解でアプリ製造可能
  • activity
    • アプリの画面をさす
    • 最も使用されるコンポーネント
    • レイアウトは xml にて定義
    • 画面繊維スタック
      • Controller?
      • スタックで繊維を制御している模様
  • view
    • がめん を構成する部品
    • ViewGroup (container?)
      • レイアウトやパーツの管理
    • widget
      • インタラクティブなパーツ
  • Intent
    • アプリや activity 間のメセジ
    • explicit Intents と Implicit Intents
    • どの activity に送るか、指定しないか (framwork で判断)
    • Content URI
      • コンテンツを提供する場合 URI
  • IntentFIlter
    • ハンドル可能な Intent かどうかを判断
    • Activity 毎に定義
  • 状態
    • empty
    • foreground
    • background
    • visible
    • visible と fore の違い?
      • foreground で始めて画面表示
      • スタックに push されたら visible になる
  • Intent Receiver
    • intent 受取
      • 外部からのイベント受信
    • 画面を持たない
    • status bar でのお知らせ的なソレ
  • Service
    • background実行
      • サービス、daemon 的なナニ
    • 画面なし
    • 音楽 player
    • AIDL (A Interface Definition Language)
      • interface 公開の仕様
  • Content Provider
    • 他アプリにデータリソース公開
    • URI を通してアクセス
      • content://com.example.transportationprovider/trains/122
  • 今回は略
    • アダプタビュー
    • XML
    • テーマ
    • でーたすとれーじ (SQLite)
    • せきゅりてぃもでる
  • 動かす
    • annotation, Gnerics, Enum
  • Apache Http Component, JSON
  • JUNIT
  • 外部ライブラリ使用可能
    • binary 的にサイズは増える
  • java+event driven な知識で OK
  • build は eclipse が自動?
  • demo
    • tutorial にある NotePad
    • emu 日本語使えん
  • DDMS から emu なソレに電話かけたりできる模様
    • ポート番号が割り当てられてて、そこに
    • 電話は割り込みとして stack に push される
      • 復帰が可能
    • SMS メセジの送付も可能
  • emu は多重起動可能
    • 多重起動して別なナニに電話かけれるみたい
  • 資料は別途公開との事
    • チュートリアルで網羅されている
  • gps 情報を emu 方面にナニ
  • uri.parse してナニしてるのでuri ベースで最適化されたアプリ起動する模様
    • intent の仕組み強力