OpenStepのアプリケーションのmain()関数はこんな形になっています。
これはInterface Builderで作成したNibにウィンドウやビューの構成が設定されているのを前提としてコードです。
void main(int argc, char *argv[]) {
NSApplication *app = [NSApplication sharedApplication];
[NSBundle loadNibNamed:@"myMain" owner:app];
[app run];
}
今日は、これと同じくらい簡単にアプリケーションのmainエントリを書けるようにしました。
だいたいこんな書き方をします。
import ZIKUU
let app = Application.shared
/// 使用するバックエンドやWindowスタイルの設定
/// ここでは
let profile = ApplicationProfile.desktop(
windowSystem: .auto,
decoration: .zikuu,
renderer: .cairo
)
app.configure(profile)
app.installDesktopBackend()
/// まだNibがないので、ウィンドウは自前で作る
let window = makeMainWindow()
window.makeKeyAndOrderFront(nil)
app.run()
/// ウィンドウを自前で作る関数
func makeMainWindow() -> Window {
let window = Window()
window.title = "Hello World"
window.initialSize = (width: 640, height: 480)
return window
}
コンパイルして実行するとこういうウィンドウが開きます。

冒頭のスクリーンショットは、
let profile = ApplicationProfile.desktop(
windowSystem: .auto,
decoration: .system,
renderer: .cairo
)
として実行した場合のものです。
OpenStep (NeXTSTEPなど) の場合は、ウィンドウシステムが固定なので、ApplicationProfileのようなものは必要ありません。その分、短くかけますが、このソースコードは一度書いたら触らないか、大抵の場合、決まり文句みたいな内容なので、開発作業への不可はほぼありません。
「Swiftフレームワーク – OpenStep風のmain」への1件のフィードバック