フレームワーク
PySide6でデスクトップアプリを作る #6 スレッドとタイマー — 止まらないUI
ボタンに長い処理をつなぐとウィンドウ全体が応答を停止する理由をイベントループの構造から確認し、QThreadとWorkerパターンでUIを止めない定石コードを完成させます。周期処理を担うQTimerまで扱います。
PySide6でデスクトップアプリを作る #5 モデルとビュー — リスト・テーブルにデータをつなぐ
ウィジェットにデータを直接入れる方式の限界を押さえ、Qtのモデル/ビュー構造に進みます。QAbstractTableModelの継承実装、データ変更の通知、QSortFilterProxyModelの検索フィルター、選択処理までToDoテーブルで実習します。
PySide6でデスクトップアプリを作る #4 Qt DesignerとUIファイル — 画面を描いて読み込む
PySide6に同梱されるQt Designerで画面を描き、.uiファイルをpyside6-uicとQUiLoaderの2つの方式で読み込む方法を整理します。コードと画面を分離するワークフローをToDoアプリのフォームで実習します。
PySide6でデスクトップアプリを作る #3 シグナルとスロット — イベント処理の核心
Qtのイベント処理の中心であるシグナルとスロットのモデルを整理します。clicked.connectから引数つきシグナル、Signalで宣言するカスタムシグナルまで学び、ToDoアプリに実際の動作をつなぎます。
PySide6でデスクトップアプリを作る #2 ウィジェットとレイアウト — 画面を組み立てる
よく使うウィジェットをカタログとして整理し、QVBoxLayoutとQHBoxLayoutを入れ子にして実戦的な画面を組み立てます。シリーズを通して拡張していくToDoアプリの画面の骨組みを立てます。
PySide6でデスクトップアプリを作る #1 PySide6とは — QtとPythonでデスクトップアプリ
Pythonでデスクトップアプリを作る選択肢を比較し、Qt公式バインディングであるPySide6を選ぶ理由を整理します。インストールから最初のウィンドウを表示し、イベントループの意味を理解するところまで進めます。
Wails 実践講座 #10 仕上げと完成度 — 設定・ダークモード・データバックアップ
シリーズ最後の記事です。機能は揃いましたが、アプリをまた開きたくさせる仕上げの要素を埋めます。設定を保存して読み込む構造、システムに追従するダークモード、ウィンドウ状態の記憶、ユーザーデータを失わないためのバックアップ・エクスポート・インポート、そして 10 編全体を貫いた原則の振り返りを扱います。
Wails 実践講座 #9 自動更新の実装 — 新しいバージョンを安全に届ける
#6 で戦略だけ話した自動更新を実際に実装します。アプリにバージョンを埋め込み GitHub Releases から最新を照会する方法、通知型の更新を安全に作る実装、完全自動の置き換えがなぜ危険で何を守るべきか、そして署名・CI と食い違わないようにバージョンを流す流れを扱います。
Wails 実践講座 #8 テスト戦略 — サービスとリポジトリを検証する
#1 で層を分けたときに約束したテストを実際に書きます。Wails なしの純粋な Go でサービスロジックを検証する単体テスト、一時的な SQLite でリポジトリを検証する統合テスト、テーブル駆動テストで境界条件をなめる方法、そしてこのテストを #6 の CI に入れてリリース前に自動で走らせる方法を扱います。
Wails 実践講座 #7 ノートエディタの実践 — マークダウンプレビューと一覧の UX
第 2 部の最初の記事です。これまでバックエンドに偏っていたノートアプリの前側を実際に作ります。マークダウンを安全にレンダリングするプレビュー、タイピングが止まると保存するデバウンスの自動保存、編集が一覧の並びを揺らさないようにする方法、そしてキーボードでノートを行き来する一覧の UX を扱います。
Wails 実践講座 #6 CI/CD 自動リリース — GitHub Actions で 3 プラットフォーム配信
タグ一つで 3 プラットフォームのリリースが自動生成されるようにしてシリーズを締めます。macOS をクロスコンパイルできず、マトリックスビルドが必要な理由、GitHub Actions でプラットフォームごとのランナーでビルド・署名するワークフロー、純粋な Go の SQLite が CI を単純にする理由、自動更新の戦略、そして 6 編全体の要約を扱います。