目次

  1. ユーザインタフェースのプログラミング
  2. Twitter
  3. 情報ショートカット
  4. ユーザインタフェース部分
  5. インタフェース作成の面倒さ
  6. インタフェース作成の面倒さ (cont'd)
  7. リアルタイム性
  8. 様々な要素技術
  9. アプリケーション部とインタフェース部の交錯
  10. AppとI/Fの分離
  11. 分離の困難さ
  12. 並列処理
  13. 並列処理 (cont'd)
  14. 例外処理
  15. エラー処理記述の面倒さ
  16. 柔軟性/頑強性
  17. ユーザ補助機能
  18. 評価/再設計の繰り返し
  19. 関連技術
  20. 関連技術 (cont'd)
  21. 関連技術 (cont'd)
  22. 解決法1: UIMS
  23. UIMS = User Interface Management System
  24. Seeheimモデル
  25. UIMSの問題点
  26. 解決法2: UI記述言語
  27. Languages for Developing User Interfaces
  28. UI記述言語の問題点
  29. 解決法3: ツールキット
  30. 各種のグラフィックツールキット
  31. オブジェクト指向ツールキット
  32. 例: NeXTstepのプログラム
  33. UIツールキットの問題点
  34. UIツールキットの問題点 (cont'd)
  35. 解決策4: 状態遷移プログラミング
  36. 状態遷移機械の問題点
  37. 拡張状態遷移機械単純な状態遷移機械を拡張したモデル
  38. 状態遷移プログラミング
  39. 状態遷移プログラミング例
  40. 変換後のソース
  41. 解決策5: 並列プログラミング
  42. 並列処理はUIプログラミングに非常に重要
  43. ツールキットの並列動作
  44. 並列プログラミングの問題点
  45. 解決法6: インターフェースビルダ
  46. インターフェースビルダ
  47. NeXTのインタフェースビルダ
  48. Xcodeのインタフェースビルダ
  49. インターフェースビルダの問題点
  50. 解決法7: 制約プログラミング
  51. 参考: Cinderella
  52. Ivan SutherlandのSketchpad
  53. 制約システムの問題点
  54. 解決法8: 例示プログラミング
  55. Viscuit
  56. 例示システムの問題点
  57. どうするのがよいか?
  58. 工夫のいろいろ
  59. From scratch, 小規模システムの場合
  60. From scratch, 大規模システムの場合
  61. ウィンドウシステムの場合
  62. プロトタイプシステムをとりあえず動かす場合
  63. ツールの実例1: Flex
  64. Flex適用例
  65. C出力
  66. ツールの実例2: Linda
  67. Lindaモデル
  68. 8-Queen
  69. マウスクリックの度に解を表示するインタフェースを作りにくい
  70. Lindaによる解法
  71. 端末インタフェースをもつ8-Queenプログラム
  72. ウィンドウインタフェースをもつ8-Queenプログラム
  73. End