macOS向けに通知機能を実現する時に見つけたmacOS向けの以下のリポジトリを深堀りしてみる。
pyobjusは、Objective-Cのランタイムリフレクションを利用して、Objective-CのクラスをPythonのクラスとしてアクセスするためのPythonモジュール。サンプルコードのコメントを翻訳しつつ以下に示します。
from pyobjus import autoclass, objc_str
from pyobjus.dylib_manager import load_framework, INCLUDE
# AppKitフレームワークをpyojbusにロード
load_framework(INCLUDE.AppKit)
# nsalert classを取得
NSAlert = autoclass('NSAlert')
# NSAlertオブジェクトを作成し表示
alert = NSAlert.alloc().init()
alert.setMessageText_(objc_str('Hello world!'))
alert.runModal()