うぇへへ
ボンクラプログラマー
頭とお腹が弱い。
最近は個人鯖の @shibafu528 がメインです。
⚠️ CW設定のない下品な発言が非常に多いです。これは仕様ですのでご了承下さい。
ℹ️ spam対策でフォロー承認制にしています。上の一文が構わないという方ならお気軽にどうぞ。
FINAL FANTASY XIV 関連の著作物は
(C) SQUARE ENIX CO., LTD. All Rights Reserved.
このアカウントは、notestockで公開設定になっていません。
protobufのSwift生成コードが_繋ぎなのまあまあダサいな、これ前にもいったな
NSWindowController.window.makeKeyAndOrderFrontがどうやっても動かねーなーと思ったらIBOutletに接続してなかった回
いまいちSwiftの引数ラベルの有無のパターンの気持ちが分からないな。FoundationとかAppKit由来のやつはまあObjCのシグネチャを先に見てるから分かるけど…
このアカウントは、notestockで公開設定になっていません。
これmikutter側にはほとんど手を入れてなくて、去年mikutter blogに上がっていたmRPCのプラグインにウィジェットツリーを要求するRPCを追加しただけなんだよね
ウィジェットツリーというかルートウィンドウのProxy objひとつだけを要求するRPC。これだけあれば子孫要素は既に実装されているコードでクエリできた。
あとはそれを使ってNSViewを組み立てる。
んで、メッセージをTLに挿入するイベントを購読するストリームを張ってあとはNSTableViewをいじり続けるだけ! おわり!
数時間前にSwiftUIの方が楽なんじゃねーのと言ってたのは、たぶんウィジェットツリーのデータ構造から宣言的にUIを起こせるんじゃないかなと思ったから。
かかった時間の大半はAppKitをしつけるのとSwiftが分からねぇって嘆いてる時間だった。
ほぼありもので結構作れてしまうのは実証できたから、工数割けば任意のフロントエンドでmikutter作れるな。
疲れたのでここまでのコードは置いときます
https://github.com/shibafu528/mshell
https://github.com/shibafu528/mikutter_shell
何のイベント処理を実装したらmikutterのGUIが構築できるのかは https://github.com/shibafu528/mikutter_qt5 を参考にした。
mshellみたいなものを作るとして結局何で作るのが良いか分からないんだよな。Webベースにするのは、今時誰でもできるからわざわざアンチの俺がやりたくないし…
あ〜でもこの調子で書けるなら https://mikutter.hatenablog.com/entry/mrpc に書いてある通りのでいいんじゃねえかなという気もする。
Flutter惜しいのは、クロプラの最大公約数を取ったら結局1ウィンドウの世界観なことか…
別にWebもモバイルもやってるからそれで設計はできるけど、もやもやした何かがある
このアカウントは、notestockで公開設定になっていません。
$s6mshell16MikutterTimelineC6remoteAcA12RemoteWidgetC_tcfcyAA10Mrpc_EventVcfU0_yAA0G6_ParamVXEfU_yycfU_ + 396
みたいなバックトレースを見て、ObjCで書いてる時と比べるとやっぱり違うな〜となった
break張ってlldbでbt叩いたときはそれなりに出るけど、AppKitとかが勝手にログに出してるやつはmangleされっぱなしなのかな
% swift demangle '$s6mshell16MikutterTimelineC6remoteAcA12RemoteWidgetC_tcfcyAA10Mrpc_EventVcfU0_yAA0G6_ParamVXEfU_yycfU_'
$s6mshell16MikutterTimelineC6remoteAcA12RemoteWidgetC_tcfcyAA10Mrpc_EventVcfU0_yAA0G6_ParamVXEfU_yycfU_ ---> closure #1 () -> () in closure #1 (mshell.Mrpc_Param) -> () in closure #2 (mshell.Mrpc_Event) -> () in mshell.MikutterTimeline.init(remote: mshell.RemoteWidget) -> mshell.MikutterTimeline
おおー
ん〜 マルチカラムみたいなのをやるならNSWindowのタブ機能使えないから自前でタブ作るしかないよな〜 NSTabView標準のあれは頼りにならなさそうだし…
iOS的にはアプリは一部であってWebブラウザを使うようなのは勝手サイト的なもんだから…
でもWebブラウザみたいなハックしたくなるブツ好きに入れさせるの許容したらそれこそそこから砂箱突破したくなる人しかこの世には存在しなさそうだな
mshell真面目に作ろうとしたらModelViewerとかダルそうだなと思って気分が落ちた
小さいピザを食べてもおなら出まくらないしトイレに10分籠ってない、これは勝ったか……!?