インフルワクチン毎年打つけど、ここまで体調崩したのは初めてという位倦怠感が酷かった。ホントにかかったとまでは行かないまでも普通に朝起きるとぐったり。
谷田部にストラットのテストに行きたいけど、supergtのレースのためこの3連休は実車の充電と衣替えとプログラム。
![]() |
| Swift自体は別にいいんだよ。SwiftUIが曲者。 |
毎日ちまちまと組みながら引っかかってコピペサイトを調べて~を繰り返して。
めんどくさいのでGeminiに教えてもらう形に落ち着きましたw
で、結局何に躓いてるのかというと、結局のところ
- 事前に聞いていた話とは大分違う
- .netとはかなり考え方が違う
の2点。
Swift自体は普通のプログラム言語なので特に躓くこともなく組めるんだけど、問題はGUIのほう。ウインドウデザイン。
携帯なので画面の遷移を含めた画面デザイン全般を作るSwiftUIというフレームワークのひねくれっぷり。
![]() |
| コレがすべて |
最近のPGは昔と違って部品を作って最終的に組み立てるという事をするが、SwiftUIのエラーと(毎回毎回気がつくたびにげんなりさせられる)暗黙的なルールを組み合わせると、行き着くところは超蜜結合なプログラム。
「再利用?なにそれ?」
な感じにどうしてもなってしまう。超密接にくっついちゃう感じになっちゃうので聞いた結果が上記画像。
仕事で普通にPGを組んでる都合、SwiftUIに「コレダメ」って言われるとじゃぁこういう実装にするよね?と代替手段がすぐに思いつくけど、「そっちもダメ」。コレを繰り返していくと実装方法がかなり限定されてきてしまい、またオブジェクトの形で管理されてる値をわざわざ別にコピーして管理したりする必要があったりと、超蜜結合にしか見えなくなってくる。
さらに.netを使う機会が最近は多いため、どうしても考え方がそっちに引きずられる傾向がある…というか、関係の無い2つのオブジェクトを同一視して扱わざるを得ないときは無理矢理継承関係になんかにせずinterface実装にする(無理矢理継承関係にすると危険人物(クソコードサプライヤー)扱いされるし、する)けど、言語仕様上継承が強制されたり
![]() |
| 業務系アプリのentityはinterface実装になる事が多い |
さらにXCodeはイマイチという事が明言されたり
![]() |
| 代替手段≒主にprint() |
書いたとおりに動かない=最適化によりテスト用のコード全部無視したり
![]() |
| 最適化といえど完全無視は聞いたことねぇよ |
テストで書いたサンプルコードが動かない原因が最適化による無視だったり、エラー出さないけど実はダメだったりと、もう振り回されまくり。
1歩すすんで2歩下がる程度ならいいんだけど、2歩どころか3歩4歩前が「その方法じゃだめよー」みたいなことが普通に起るのがSwiftUI。
なかなか…
GIS(地理情報システム)のデータベースも結構頭ひねったけど久しぶりにパラダイムシフトを実感中。
一筋縄どころじゃない。





0 件のコメント:
コメントを投稿