2025-01-01から1年間の記事一覧
この記事はSwiftアドベントカレンダー7日目に向けたものです。 昨日は @yamakentoc さんで Swift SDK for Androidを完全に理解する でした! さて、Kotlin 2.2.20にてSwift ExportがExperimentalとなり今後の発展が期待されています。 この記事ではSwift Exp…
今年も残り2ヶ月となりました。 11月に入ったので、先月のふりかえりをします。 ふりかえり さて、10月の目標は「ブログ10本投稿」でしたがなんとか達成しました。 extension DC 2025 に参加・登壇しました - pihero's blog 9月のふりかえり - pihero's blog…
最近 Android 開発で知ったことの走り書きです。 エミュレータでネットワークに接続できない問題 以下の方法で回避できたが、Android Studio からエミュレータを起動したい… cd ~/Library/Android/sdk/emulator ./emulator -list-avds ./emulator -avd <avd> -dns</avd>…
五反田.mobile に参加してきました。 会場は五反田にあるウェルスナビさんのオフィスでした。 駅から会場までの間に美味しそうなご飯屋さんが多かったり、オフィスビルの中にサウナがあるみたいで(看板が出ていた)良いなーと思ったりしながら向かいました…
KMP (Kotlin Multiplatform) を利用している場合、Kotlin で共通部分を実装し KMP で Apple Framework を生成して Swift から呼び出す形になります。 このとき Xcode の補完の調子が悪かったり、Kotlin で定義した I/F のシンボルが Swift (via Objective-C)…
Kotlin Multiplatform (KMP) では、suspend function を Swift 側から呼び出す際に Task のキャンセルが効かないという問題があります。 SKIE の Suspend Functions 機能を使うと、Task のキャンセルと連動させてキャンセルできるようになります。 SKIE とそ…
コンテキストスイッチとの付き合い方について思っていることです。 仕事をしているとやらなければならないことは沢山積まれていきます。 複数のタスクを持っているとコンテキストスイッチ、つまりは着手するタスクの切り替えが発生します。対応するためには…
Apple Platform で KMP を利用する場合、KMP から生成される Apple Framework のヘッダーファイルは Objective-C であり、そのままだと Swift から使いづらい点があります。 例えば enum class の網羅性が失われたり、suspend function が cancellable でな…
特定のディレクトリに含まれるファイルサイズの合計値を確認する方法のメモです。 du コマンドで確認することができます。 du -hs /path/to/directory 私は普段 ls の代わりに Rust で実装された eza を利用していますが、eza にも --total-size オプション…
Swift export についてキャッチアップする際に参考にした情報について、この間の登壇では触れられなかったのでブログに残しておきます。 登壇内容については、以下を参照ください。 pihero.hatenadiary.jp ロードマップ Kotlin Multiplatform Development Ro…
早いことで10月になり、今年も残り3ヶ月となりましたね。 今回は9月をふりかえります。 8月の終わりに以下の記事を書き、アウトプットを増やそうとブログ投稿を再開しました。 9月の目標は10本書くことでした。結果は半分の5本です。 pihero.hatenadiary.jp …
extension DC 2025 の2, 3日目に参加してきました。 2025年上半期に発表・注目されたトピックを振り返るイベントでした。iOSDC で聞けなかった話を聞きたいよねというモチベーションもあったみたいです。 extension DC 2025 Day2 @Sansan - connpass extensi…
今週末はいよいよ iOSDC Japan 2025 ですね! https://fortee.jp/iosdc-japan-2025 毎年会場に行ってからどのセッションに行くか決めてバタバタするので、今年は事前にタイムテーブルを予習することにしました。 とはいえ、当日の雰囲気や知人と相談してその…
What’s Next for Kotlin Multiplatform and Compose Multiplatform – August 2025 Update 8/26 に JetBrains から Kotlin Multiplatform の今後半年~1年間のロードマップが公開されました。 モバイルアプリに関連する箇所をピックアップしています。 Swift E…
朝いつものようにアプリをビルドしようとしたら 'github.com_realm_swiftlint': Invalid manifest ... というエラーと共に Build Phase で実行していた SwiftLint が動かなくなっていました。 設定していた Script は以下です。mint を使っています。 export…
SwiftUI の View で非同期処理を開始した際、View が非表示になったタイミングで不要になった処理はキャンセルしておきたいです。 @State で保持した Class の deinit を活用してキャンセル漏れを防げないか検討したのですが、これは避けた方が良さそうとい…
わいわいswiftc #44 に参加してきました。初参加でした。 今回は @kateinoigakukun さんによる WasmKit の紹介でした。 難しい内容だったんですが、前方に座ってらした方たちが頻繁に質問されていてそれに対して深掘りながら90分ぐらい掛けて話してくださっ…
今年の初めにブログを開設しました。 最近あまり書けていませんでしたが、再開しようと思います。再開と言っても数本しか書いてませんでしたが。 最初の記事でも書いたように、気軽に備忘録的にアウトプットする場として設けています。気軽に備忘録的にアウ…
ChatGPT には Advanced Voice Mode があり、リアルタイムで AI と音声会話ができる Voice mode FAQ | OpenAI Help Center 基本的にテキストベースで会話していたが、調べものや学習をする際に結構便利なのでは?と思い試してみた。 あまり詳しくないドメイン…
dotfiles の管理に最近 chezmoi を使うようになった。dotfile 以外にも、macOS の user defaults を設定するスクリプトなどもマシン間で共有できるようにしておきたい。今まではセットアップや設定を変更した際にスクリプトを実行していたが、chezmoi は run…
WebAssembly では、すべての整数が LEB128 方式でエンコードされる。エンコードは符号あり/ なしでアルゴリズムが異なる。これを理解していないとデコードしたときに期待する値を得られない。 符号なし 624,485 は、以下のプロセスで 0xE5 0x8E 0x26 にエン…
技術的な内容を備忘録的にどこかに言語化して残しておきたい。Qiita や Zenn だと、ある程度のボリュームが必要とか、構成がどうとか、本来の目的とは別のところが気になってしまう。必要以上に時間も掛かるので、もう少し気楽に書ける場所を用意しようと思…