BT

Ready for InfoQ 3.0? Try the new design and let us know what you think!

UI 開発を簡略化する MonoTouch.SQLite

| 作者: Jonathan Allen フォローする 655 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2012年3月28日. 推定読書時間: 2 分 |

原文(投稿日:2012/03/27)へのリンク

MonoTouch と iOS で開発を行っていると,SQLite テーブルデータの表示が必要な場合がある。自分で UITableViewController を構築すればすぐに可能なことだが,相当量の定型コードの記述とかなりの作業時間が必要になる。Jeffrey Stedfast 氏は MonoTouch.SQLiteで,このような単純なテーブルのバインディングを事実上,単一のメソッドにまで簡略化する方法を考案した。

MonoTouchSQLite はテーブルデータの表示を容易にすべく設計された,データベース対応 UI ライブラリである。その基本になっているのが SQLiteTableModel モデルクラスだ。このモデルには,最初からソートやフィルタなど基本的なテーブルへのアクセスが実装されている。従って単純なデータを表示するだけであれば何もする必要はないが,複雑な SQL を使用する必要がある場合はサブクラス化して,SQL 生成メソッドをオーバーライドすればよい。

クラススタックでその上に位置するのがコントローラそのものだ。iOS 開発経験のない方のために説明すると,Apple の UI ライブラリでは,古典的な MVC パターンに厳密に準拠することが求められている。テーブル形式のビューであれは,これはフレームワークの UITableViewController クラスを継承することを意味する。MonoTouch.SQLite はそのサブクラスである SQLiteTableViewController を通じて,この詳細の大部分を処理してくれる。サンプルアプリケーション を見れば,実装が必要なのは GetCell メソッドだけであることが確認できる。

エンドユーザ検索

エンドユーザによる情報検索を容易にするために,MonoTouch.SQLite にはユーザが入力した文字列を SQL の where 句に変換する機能が用意されている。これを利用するには,データモデルプロパティに SQLLiteSearchAlias 属性を単にタグ付けすればよい。同じエイリアスを複数回使用することも可能だ。例えば FirstName と LastName を,どちらもエイリアス "name" でタグ付けするようなことができる。この場合ユーザが 'address:"Newton,MA" name:Jane' と入力すれば,address 列とどちらかの name 列の一致を検索する where 句が生成される。

このすべてが,前述の UITableViewController をラップした iOS の UISearchDisplayController で動作する。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT