2025/4/6(日)

Firefox Nightlyで日本語入力がまともにできない、詳しく言うと片っ端から確定されるのでひらがなしか打てないという症状が続いて直る様子が無いので、一旦FireFoxを使うことにした。


BrightCppのiOS対応を考え、iOS開発の基本を学んだ。C++でiOS開発する環境を整えるのが目的なのでそれに絞った調べものをしたいのだが、中々ドンピシャな回答が出てこない。結局ChatGPTに頼りまくった。キーワードとキーワード同士の関係自体を把握していない、体系自体が未知の段階で調べものをするにはかなり便利だ。情報が必ずしも正しくないという話はあるが、それは公式ドキュメント以外の(時には公式ドキュメントも含む)大抵の資料もそうではあるし、体系の雑な認識という点で全く外しているということは少ないと考えている。

UIフレームワークとか同士の関係。

  • Cocoa
    • MacOS用の低レイヤフレームワーク。
  • Cocoa Touch
    • iOS用の低レイヤフレームワーク。
  • AppKit
    • Cocoaの一部であり、より高級な機能を提供している。
  • UIKit
    • Cocoa Touchの一部であり、より高級な機能を提供している。
  • SwiftUI
    • AppKitとUIKitの違いを意識せず開発できるより上位の存在らしい。

主たるファイルやクラスなどの構成。

  • main関数
    • Objective-CでもC/C++でも問題はなさそう
  • AppDelegate
    • アプリのライフサイクル系イベント処理っぽいことをやる?
    • 必須っぽい
  • SceneDelegate
    • 複数ウィンドウのアプリを作成する場合のみ必須
  • StoryBoard
    • 単にGUIでUIが作れるだけなので非必須
  • Info.plist
    • いわゆるマニフェストファイル
    • 必須
    • CMakeはこいつも生成してくれる

クラスの関係。

  • UIApplication
    • アプリケーションに1つ
  • UIWindow
    • アプリケーションに1つ以上
  • UIView
    • UIWindowの下で階層構造を形成する
  • UIViewController
    • UIViewのイベントとかを管理する?

Vulkan×MoltenVKの情報も探している。とりあえずSurfaceが取れなければ話にならないのでそこを調べた。

https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#platformCreateSurface_ios

とりあえずUIViewの情報さえあれば良さそう。

MoltenVK自体はframeworkとして追加してあげる必要があるようだ。

https://tatsy.github.io/blog/applications/graphics/1609


iOSアプリをCMakeで開発するための実験を色々した。とりあえずソースとCMakeListsだけからXCodeプロジェクトを生成すること、それをXCodeでビルドして実機にインストールすることまで行けた。さすがに実機インストールまでXCode抜きはすぐさま求めまい。

以下ハマったこと。

  • CMake変数CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAMには開発チームIDを指定する。本式のそれはAppleに$99払わないと貰えないらしいが、1週間のみ有効なものなら無料でどうにかなるらしい。
    • XCodeにアップルアカウントを登録し、証明書を生成する必要がある。
  • ターゲットプロパティとしてMACOSX_BUNDLE_BUNDLE_NAMEが必須
  • CMake上でUIKitをリンクしてあげる必要がある。target_link_libraries(app "-framework UIKit")とかする。
  • 実機デバッグの際は、デベロッパモードをONにした上で開発者を信頼するよう求められる。

まともな服を買えと言われたのでとりあえずズボンを一足買った。ズボン高い。

パンツと呼ぶ呼び方は気持ち悪いとずっと思っているので死ぬまでズボンと呼び続けようと思う。

Categories: