SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング言語「Nu」入門

NuでMac GUIプログラミング
Twitterクライアントを作ってみよう


  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード NuTwitterClient.zip (40.0 KB)

Nuアプリの構造

 前回のNuプログラムのようなコンソールアプリであれば、1つまたは複数の .nu ファイルだけですが、今回のアプリは下のような構造をしています。NuTwitterClientが実行されるバイナリで、.nu がNuのソースコード、.nib がGUI定義ファイルです。

 Mac OS XのGUIアプリもアプリ名のディレクトリになっていて、その中にコードやGUI関連のリソース等も入っていますね。それと似たような形です。

NuTwitterClient.app/
`-- Contents
    |-- Info.plist
    |-- MacOS
    |   `-- NuTwitterClient
    |-- PkgInfo
    `-- Resources
        |-- English.lproj
        |   `-- MainMenu.nib
        |       |-- designable.nib
        |       `-- keyedobjects.nib
        |-- functions.nu
        |-- main.nu
        |-- nu.icns
        `-- twitter.nu

 Nuではこのような実行形式をNuのソースコードとGUI定義ファイルから nukeコマンドで簡単に組み立てられます。nukeが使うアプリの定義は下のようにNukefileに書きます。

(set @nu_files    (filelist "^nu/.*nu$"))

;; application description
(set @application              "NuTwitterClient")
(set @application_identifier   "com.ey_office.nu_twitter_client")
(set @nib_files                (filelist "^resources/.*\.lproj/[^/]*\.nib$"))

;; tasks
(application-tasks)
(task "default" => "application")

 開発環境には、NuのソースコードとGUI定義ファイルを nu/resources/ というディレクトリを作っておきます。

NuTwitterClient/
|-- Nukefile
|-- nu
|   |-- functions.nu
|   |-- main.nu
|   `-- twitter.nu
`-- resources
    `-- English.lproj
        `-- MainMenu.nib
            |-- designable.nib
            `-- keyedobjects.nib

 以下のようにアプリの構築は nukeコマンドで行い、アプリの実行は openコマンドで行います(もちろんファインダからダブルクリックでも実行可能です)。

% cd NuTwitterClient  
% nuke 
Using Nukefile with target default.
nuke: running in NuTwitterClient
nuke: mkdir 'NuTwitterClient.app'
nuke: mkdir 'NuTwitterClient.app/Contents'
 ...
nuke: mkdir 'NuTwitterClient.app/Contents/MacOS'
nuke: cp '/usr/local/bin/../bin/nush' 'NuTwitterClient.app/Contents/MacOS/NuTwitterClient'

% open NuTwitterClient.app 

GUIの構築

 GUIの構築は、GUIクラスの初期化・設定を行うコードを直接書いていくことでもできますが、Xcodeに含まれるInteface Builderを使うのがお手軽です。下の画像はこのアプリの画面をInteface Builderで開いているところです。Visual Studioなどと同様、簡単にGUIが作れます。

 GUIが構築できたら、Interface Builder Document(NIB 3.x)形式で開発環境の resources/English.lproj に格納します。GUIとやり取りするクラス(今回はApplicationDelegate)の情報も nibファイルに書かれるので、今回はXcodeを使ってObjective-Cでひな形を作っておきました。

次のページ
Twitterアクセス クラス

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
プログラミング言語「Nu」入門連載記事一覧

もっと読む

この記事の著者

吉田裕美(ヨシダユウミ)

有限会社 EY-Office 取締役CADのベンチャー企業でCADのコア部分や図面管理システムなどの開発に従事した後、独立しJava,Ruby,PerlでWebアプリを中心に開発してきた。現在は殆どの開発はRuby on Rails。ここ数年はソフトウェアエンジニアの教育に興味をもち、従来の知識偏重な教育ではなく現実の問題を解決できるエンジニアを育てる教育に注力している。またLisp等に関心...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4976 2010/04/19 19:50

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング