Skip to content

YouseiSakusen/WpfMvvmLabo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WpfMvvmLabo

現在このリポジトリではフリーソフト:ImaZipper のプロトタイプを作成しています。

ImaZipper とは

自炊したマンガを iPhone の SideBook で読むために巻ごとに分かれているアーカイブファイルを 1 つの zip ファイルにするためのアプリです。

ImaZipper の要求仕様

  • 複数のアーカイブファイルを指定可能。(ドラッグ&ドロップはサポート?)
  • 複数のフォルダを選択して指定可能。(ドラッグ&ドロップはサポート?)
  • 展開対応アーカイブファイルは zip、rar。
  • 最終的な出力は zip のみ。
  • アーカイブファイルは 2GB ごとに分割して出力する。
  • アーカイブファイルに含まれる画像ファイルの内、対応予定フォーマットは jpg、png、bmp。
  • 展開先に指定したフォルダにアーカイブファイル単位のフォルダを作成してアーカイブファイルに含まれていた画像ファイルを展開する。
  • 展開先に作られるフォルダは『nnn巻』固定。(桁数は指定したアーカイブファイルから推測)
  • 展開先フォルダに展開する画像ファイル名を『ファイル名 + 連番.拡張子』のようなファイル名で展開する。
  • 展開先フォルダに展開する画像ファイルの属性を指定可能にする。
  • 展開先フォルダに展開する画像ファイルが横長(width の方が長い画像)であれば中央で分割して展開する。(ImageSplitter と同じ)
    • ファイル名の昇順で並び替えた前から 5 個、後ろから 5 個以内のファイルは分割対象外とする。(カバーは分割したくない)
      • 但し、横長ファイルが全ファイル数の 90% を超えている場合は上記の条件にはあてはめない。
  • 出力先に指定したフォルダへ出力する zip ファイル名の指定を可能にする。
  • 処理実行時にアプリで判断できない場合は出力処理を中止してエラー内容を確認できるようにする。
  • このアプリから出力した設定内容を覚えておき、次回作成時(新刊が発売された等)の操作を簡単にする。
  • 複数の出力を指定して自動処理できるようにする。

とりあえず上記が現時点で妖精作戦が想定している仕様ですが当然変更も発生しますし、プロトタイプを作成するための実験室なので名前空間等もいい加減ですし突然 UI が大幅に変わる可能性もあるのでご了承ください。

開発 BLOG

このプロトタイプアプリの実装内容をブログで紹介しています。

2019/12/25 公開
新シリーズの第 1 回目なのでプロトタイプアプリの紹介を兼ねて長い前置きを書いたエントリ。
技術的な紹介としては MahApps.Metro に含まれるコントロールの内、TransitioningContentControl や TextBoxHelper 等他ではあまり紹介されていない機能を紹介しています。

2020/1/12 公開
.NET Core で作成した WPF アプリからコモンダイアログを表示する方法と FolderBrowserDialog の .NET Core 対応状況を紹介しています。 加えて、MVVM パターンで実装する場合に注意すべき点や重要なポイントも紹介しています。

2020/1/25 公開
いつもとは少し毛色の違うエントリで、.NET Core で SQLite を使用する方法とその周辺で使用するツールを紹介するエントリ。

2020/2/15 公開
プロトタイプアプリから DB にアクセスするための 3 階層アーキテクチャと使用する DB をアプリケーション層から隠蔽するための AbstractFactory パターンを紹介しているエントリ。

2020/3/21 公開
3 階層アーキテクチャのデータ層で Micro-O/R マッパーの Dapper を使用して SQLite からデータを読み書きする方法を紹介しています。
DB から取得したデータを Dapper からクラスへマッピングする方法や、Select SQL 発行時のバインド変数にマッピングする方を主に紹介しています。

ブログのエントリは #5 を最後に一時休止中です。