openFrameworksでやっておくとよいこと

仕事するたびに毎回忘れてしまった!って思ったりするのでまとめておく。

設計編

  • 全体の設計を考える
    • アプリを分けてOSCで連携する
      • 規模が大きい & 期間が長い場合はAPIを先に定義し、各々がモックで開発するべき
    • ofxStateMachineを使って各Stateごとの動作にする
    • そもそもoFを使わない(UI系はネイティブなども検討する)
  • クラスの設計
  • 設計と資料(全て手書きで良い)
    • クラスが10を超えるならクラス図を作る
    • 複雑な処理はシーケンス図を書いて把握する
    • 他のアプリやデバイスと連携が必要なときもシーケンス図で処理を把握する
    • 状態遷移が多いものは、画面遷移図か状態遷移図を用意する
  • 設計のためのデザインパターンを知っておく

プロジェクトの進め方編

  • 文と図
    • タスクはまず文にする
    • 文で把握出来ないタスク(=1次元で把握できない)は図に起こす(=2次元化する)
  • いきなり実装しようとしない
    • メソッド呼び出しだけで終わらないと思ったらシーケンス図を描く
      • コールバックは1回あるだけでも追いづらい(クロージャは別だと思う)
      • マルチスレッドなどの並行的な動作やShaderなどとの連携は慎重に扱う
    • 普通の処理もまずはやりたい処理を日本語で書いてタスク化すると迷わない
  • 大きめの検証は別アプリでやる
    • ある機能を加えたいが、その機能の検証が必要になったら別アプリで確認しその後本番の方に反映する

Tips編

  • ofxGUIを使いこなす
    • 全ての調整しうるパラメータはofxGUI経由で変更出来るようにする
      • ofParameterとofXmlSettingsを使ってファイルに保存、読込が出来るようにすると完璧
  • ハードとの連携
    • ofxGUIを使い、ハードからの値を表示
    • 上記をすることで、ソフト的にシミュレーションも可能になり開発スピードが上がる
  • git管理は必須
    • oFは設定が壊れやすいのでgitで管理する
    • どうやっても動かなくなったら、変更済みファイルを別に保存しrevertしよう
    • ルートに置くreadme.mdにプロジェクトの説明(バージョン情報と利用するデバイスの型番など)を書いとくと将来に便利

Beyond Interaction[改訂第2版] -クリエイティブ・コーディングのためのopenFrameworks実践ガイド

Beyond Interaction[改訂第2版] -クリエイティブ・コーディングのためのopenFrameworks実践ガイド