The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

2022-01-01から1年間の記事一覧

2022振り返り

2022年の振り返りです。 年末に下の子が胃腸炎になりその後家族全滅する事態となり正月過ぎての振り返りとなってしまいました・・ 仕事 今年もプレイングマネージャーとして一年過ごしました。 アウトプット 会社ブログ ちょっと油断していたところだいぶ世…

GitHub Actionsを自作している人はwarningに注意

GitHub Actionsは実行に成功していても、密かにwarningが出ていたりするので、GitHub Actionsを自作している人は気をつけましょう、将来的に急に動かなくなります。 わたしの自作のGitHub Actionsでは以下のようなwarningが出ていました。 The `set-output` …

Xcode Cloud所感

Xcode CloudがXcode 13.4.1から使えるようになったので試してみました。 Xcodeの左のナビゲーションの一番右の Report navigator もcloudタブからワークフローを作ることができるようになっています。 ここからXcode上でポチポチしていくだけで、ワークフロ…

leetcodeのeasyだけどeasyじゃなかった問題1

543. Diameter of Binary Tree 2分木の直径(左右ノードが最長となるときの長さ)を求める問題です。 この問題はノードの高さを求めるアルゴリズムを知ってる前提だと確かに簡単なのですが、知らないとそこから考えないといけないのでちょっと大変です。 前…

Swift Concurrencyのパフォーマンス

Swift Concurrencyは並列プログラミングの書きやすさや便利さがよくなっただけでなくパフォーマンスも改善されています。 これまでの問題 これまでのGCDを使った並列処理では、CPU Coreに対して一つスレッドを割り当てそれをスレッドプールにプールして再利…

UIViewRepresentableのCoordinatorはなぜ必要か

UIKitのViewをSwiftUIとして使うには、UIViewRepresentableを使います。 そしてUIKitのViewのdelegateやtarget actionをハンドリングしたい場合structではハンドリングできないので、Coordinatorという仕組みが用意されています。 makeCoordinator()がmakeUI…

Swift ConcurrencyのActor reentrancy

SwiftでActorsが導入され、actorを使えば簡単にスレッドセーフにすることができるようになりました。 ただこれでrace conditionやdead lockといった並行プログラミングにおける問題が解決されるわけではありません。 Actor reentrancy SwiftのActors(正確に…