目次
- ユーザインタフェースのプログラミング
- Twitter
- 情報源
- ユーザインタフェース部分
- インタフェース作成の面倒さ
- インタフェース作成の面倒さ (cont'd)
- リアルタイム性
- 様々な要素技術
- アプリケーション部とインタフェース部の交錯
- AppとI/Fの分離
- 分離の困難さ
- 並列処理
- 並列処理 (cont'd)
- 例外処理
- エラー処理記述の面倒さ
- 柔軟性/頑強性
- ユーザ補助機能
- 評価/再設計の繰り返し
- 関連技術
- 関連技術 (cont'd)
- 関連技術 (cont'd)
- 解決法1: UIMS
- UIMS = User Interface Management System
- Seeheimモデル
- UIMSの問題点
- 解決法2: UI記述言語
- Languages for Developing User Interfaces
- UI記述言語の問題点
- 解決法3: ツールキット
- 各種のグラフィックツールキット
- オブジェクト指向ツールキット
- 例: NeXTstepのプログラム
- UIツールキットの問題点
- UIツールキットの問題点 (cont'd)
- 解決策4: 状態遷移プログラミング
- 状態遷移機械の問題点
- 拡張状態遷移機械単純な状態遷移機械を拡張したモデル
- 状態遷移プログラミング
- 状態遷移プログラミング例
- 変換後のソース
- 解決策5: 並列プログラミング
- 並列処理はUIプログラミングに非常に重要
- ツールキットの並列動作
- 並列プログラミングの問題点
- 解決法6: インターフェースビルダ
- インターフェースビルダ
- NeXTのインタフェースビルダ
- Xcodeのインタフェースビルダ
- インターフェースビルダの問題点
- 解決法7: 制約プログラミング
- 参考: Cinderella
- Ivan SutherlandのSketchpad
- 制約システムの問題点
- 解決法8: 例示プログラミング
- Viscuit
- 例示システムの問題点
- どうするのがよいか?
- 工夫のいろいろ
- From scratch, 小規模システムの場合
- From scratch, 大規模システムの場合
- ウィンドウシステムの場合
- プロトタイプシステムをとりあえず動かす場合
- ツールの実例1: Flex
- Flex適用例
- C出力
- ツールの実例2: Linda
- Lindaモデル
- 8-Queen
- マウスクリックの度に解を表示するインタフェースを作りにくい
- Lindaによる解法
- 端末インタフェースをもつ8-Queenプログラム
- ウィンドウインタフェースをもつ8-Queenプログラム
- End