Archive for 6月 25th, 2010

iPad 開発セミナー ~電子書籍アプリケーションを作る~ 参加メモ

MacやiPhone/iPadアプリの開発者が多く集まるmosa で、6/24に 電子書籍アプリケーションを作る開発者向けのセミナーが開催されました。 開発者として、現時点でどこまでできるのか気になったので、参加してきました。 iBooks ではなく、専用アプリとして電子書籍を作るには、 プログラム側ではどう実装するか?という内容で、技術者向けのセミナーでした。 http://www.mosa.gr.jp/?p=3395 【中級】iPad開発セミナー~電子書籍アプリケーションを作る~ MOSAでは、iPad向けアプリ開発をお考えの方を対象に、 電子書籍アプリのプログラミング方法を解説する中級セミナーを開催いたします。 以下は私の気になった点を中心にした参加メモです。 【アジェンダ】 ・概要 ・CoreTextによるページネーション。文字サイズとリフロー。 ・UIScrollViewによるページめくり。三面鏡。 ・OpenGLによるページめくり。iBooksみたいなめくり方にしたい! ・コンテンツ管理、セキュリティ。COmmonCryptライブラリとNSDataの新しいメソッド ・ストア。InAppPurchase それぞれサンプルコードあり。 【概要】 ・標準フォーマット vs 独自フォーマット ・作者の思い通りに何でもできる。動画、インタラクティブ、iPadで出来る事なら何でも。 ・将来も動作するという安心感を与えるべき(OSやハードウェアのバージョンアップに対応できるのか、などはあらかじめ検討しておく) ・電子書籍アプリの3大機能は、(1)ビューア、(2)コンテンツ管理(含セキュリティ)、(3)ストア(課金) 【CoreTextによるページネーション】 (1)タグ付きファイルから、NSXMLParserでテキストを取り出す (2)NSAttributedStringオブジェクトで、フォントや行間や左寄せや単語で改行を指定する (3)CTFrameで領域を決める (4)領域内に表示する文字の範囲を得る (5)DrawRect, (CTDrawRect?)で文字を描画する (Q&Aより) ・禁則処理はデフォルトでサポートしているが、カスタマイズはできないようだ。 ・ルビは自前で一行ずつ描画する。ルビ、本文、ルビ、本文、、、 ・縦書きは、仕組みはあるが実用的ではない。 ・・縦書き用のグリフに変換(カッコやアラビア数字など) ・・点の位置がおかしくなる(?)ので、範囲選択しようとするとおかしくなる。 ・CoreGraphicsを使って、自分で描画エンジンを作るという方法もある。 【OpenGLによるページめくり】 ・あるとないとでは、アプリの完成度が全く違う。 ・UIViewAnimationTransitionCurlUpもあるが、細かい制御ができない ・CALayerでアフィン(線系)変換して積み重ねてもいいが、細かい部分が美しくできない。 ・そこで、OpenGLで、描画領域全体を1つの画像にして、OpenGLのテクスチャとして扱い、ポリゴンとして(変形して見えるように)描画する。 ・めくれて見える変換アルゴリズムは色々。3Dグラフィックの本を参照。 ・ページの表面で円錐を転がす方法の解説。 【コンテンツのセキュリティ】 ・ダウンロード型でも、ディスク上にキャッシュしたい。 ・スクリーンショット撮影は禁止できない。 ・利便性とセキュリティ強度の兼ね合い。説明してお客様と調整。 ・Common Crypt ライブラリ。 [...]

ePublishingPort の第1回勉強会に参加しました。「EPUBフォーマットへの変換方法を知ろう!」

6/23に渋谷で行われた、 ePublishingPort 第1回勉強会「EPUBフォーマットへの変換方法を知ろう!」 http://www.epub-port.jp/%e5%8b%89%e5%bc%b7%e4%bc%9a/100/ に参加してきました。 講師の方の話を聞き、最後に質疑応答という流れでした。 講師は様々なセミナーなどで電子書籍に関してお話をされている 学校法人 阿佐ヶ谷学園 高度情報化研究所 所長 境祐司 氏(http://admn.air-nifty.com/about.html)です。 以下、内容のメモです。 電子書籍のフォーマットとその周辺の紹介。 ・Epub vs PDF。epubは読みやすさや速読を優先。PDFはレイアウト優先。 ・epub作成の商用ツールは、検証用でも80万円とかするらしい。 試しに紙で出す本をepub化してみた時の、作業の流れの話し。 ・InDesignで作ってepubファイルに書き出し、Sigilで調整した。 ・見映えの確認は、iPad, iPhone, Stanza で行った。 ・Safariで、開発メニューから、iPad用のレンダリング・エンジンを選べる(らしい)。xhtmlなので、WEBブラウザでもだいたいは確認できる。 Sigilでやったのは、主に以下の作業。 ・CSSに無駄が多く、クラス名が長い物があったので、スリム化。 ・章区切りを入れる。ファイルが分割される。必ず改ページされるので、推理小説のように「次ページではんにんが!」のような場合に便利。目次にも反映される(?) ・メタデータを入れる。 Title, Author, Language。 iBooks用に、Subjectタグも入れる。カテゴリの意味である。入れないと「未分類」にされてしまう。 ・Sigilで新規ファイルを作成して、それにはめ込む場合は、コードビューにして、bodyタグ?内をコピペで貼り付けて、Imageフォルダ内に画像を突っ込めばよい。 質問タイム。 ・StanzaとiPadで余白などの見映えが違う。両対応するためには、両者の中間の値を使った。ブラウザハック的な事はしなかった。今後は統合コンテンツ管理システムがうまく各ビューアむけの調整をしてくれる事を期待している。 ・iPadでは画像が大きい場合には、縮小して表示される。サイズは大きめにして、width 100% で指定するとよい。 ・DRMの話し。 ・InDesignでのepub出力について。 CS3はひどかったという印象。CS4で良くなって、CS5はCS4と同じぐらい。 ・iTunes経由でiBooksに入れた時の「本のフォーマットが違います」で読めない件。みた事は無い。手打ちで作らず、ツール(Sigil)を使っている。 (会場のフォロー) ・圧縮時のフォルダ階層に注意。 ・MacのZip圧縮はWindowsと違い、圧縮してそのまま拡張子をepub に変えてもダメな場合がある。 ・マジックワードを使った判定をするなら、頭の文字や、mimetypeを無圧縮で見えるように配置するなどが必要。 ・epubファイルのバリデータがあるので、確認するとよい。 http://threepress.org/document/epub-validate (コアの部分は BSDライセンス。ローカルに配置すれば、部外秘なepubを検証する時に便利) 最後の、ePubファイルのどこがおかしいかを教えてくれるバリデータのWEBサイトは、 英語表示なものの、ePubファイルを自分で作る人にとっては、とても役に立つサイトだと思います。