WireframeSketcher でワイヤーフレームドキュメント作成

以前、サイトを眺めてすごいなぁと思っていたものの、有料($99)だったため試さなかった、WireframeSketcher を本日購入してみました。

用意された部品や操作系を元に、アプリケーション開発時のワイヤーフレームやモックアップなどのドキュメント作成を支援するソフトウェアです。 SI の世界だと、エクセル方眼紙でやっちゃうような、外設の画面設計書をつくるの、で通じるでしょうか(笑)

WireframeSketcher

WireframeSketcher is a wireframing tool that helps designers, developers and product managers quickly create wireframes, mockups and prototypes for desktop, web and mobile applications. It’s a desktop app and a plug-in for any Eclipse IDE.

デザイナー、開発者、プロダクトマネージャさん向け。

Eclipse GEF/EMF ベースでつくられており、Windows、Mac、Linux 対応。ダウンロードしすぐ実行できるオールインワンのスタンドアローン版の他、Eclipse プラグイン版も用意されています。

130422-0007

下のような、描くのも変更するのも大変そうなイラストが、

wp_tree_f

次のテキスト入力だけで作成できてしまう。。

wp-content
-plugins
--otenki
---otenki.php
-themes
--[v] twentyeleven
--[v] twentytwelve

[tegaki]なんてことだ…[/tegaki]

このことだけで、なんでもっと早く試さなかったのだろうと後悔です。。15日のお試し期間中の 1 日目で購入してしまいました。

以下、これまたどう考えても描くの面倒だろうJK、と言われそうな一覧表とフォームの組み合わせも、

130422-0019

こんな感じのテキストでサクッとつくることができます。

130422-0020

あっという間。。 🙂

試しに、このサイト hiromasa.another のモックアップを作成してみました。

130422-0011

出力を手書き風味にできるのがポイントで、(お客さんなどに)まだデザインとかはイメージですよ、というようなことを表現できるとのことです。

ちなみに Screen のプロパティーを Sketch から Clear に設定することで、びしっとすることもできます。

130422-0002

びし。まっすぐ。

130422-0010

WireframeSketcher の操作はパレットビューより部品を選択し、ぺたぺた貼り付け、それぞれの個別属性を指定していく感じです。

部品は PC 用、モバイル、Android、iOS、Web フォームなどなど沢山。 これらは一般的な .svg 形式で、フォーマットに従えば自分で描いた絵も部品に取り込むことができるようです。

130422-0021

ブログのコメントフォームを描いてみたの図。

130422-0022

ドローアプリとしての操作感は、利用開始当初、レイヤー機能がないため若干厳しい部分あるかなと思いましたが、アウトラインビューなどからのZオーダ設定、グルーピング系と、そのグループへの突入(?)、またプロパティーからの位置ロック操作をうまく使えば、問題なく描くことができると感じました。

130422-0023

画面上、オブジェクトの単一選択と矩形選択の切り替えの UI がぱっと分かりませんが、(Fn + ) F3/F4 でそれぞれに切り替わります。クリック to ドラッグの範囲選択において、カーソル位置のオブジェクトを引っ張りたくないケースでは F4 を押すといいと思います。

さて、WireframeSketcher の良いところのひとつは保存形式に XML のテキスト形式が用いられていることで、さらに画像となる .svg ベクターデータと、骨組みとなる .screen データは完全に分離されています。

このため、骨組みの .screen の変更履歴をみると、どの部分が修正されたかが分かります。

130422-0016

スクリーンショットは新旧ファイル差分を出した図。–File Three が増えてその下のアイテムの y 座標が増えたことが分かります。

このように、WireframeSketcher はテキストファイルベースのデータ形式を採っているため、ローカルヒストリーの利用や Subversion、Git などバージョン管理との統合も得意です。

Eclipse マーケットから EGit や Subclipse などを追加することで Git や SVN が使えるようになるハズです。(スタンドアローン版 は Eclipse Juno ベース。自分は Eclipse Juno for JavaEE に WireframeSketcher をプラグインの形で入れました)

さて、ぼくは普段からドキュメントの作成に Eclipse Mylyn の .textile サポートを使っていましたので、今回ワイヤーフレーム作成に WireframeSketche という心強い見方が統合されたことになります。

ワイヤーフレームはもちろん、ちょっと億劫だなと思っていた図形の描画もできるようになってとても嬉しいです。 🙂

130422-0018

ブログ”徹底解析”シリーズを Eclipse で書いているの図。

日本に一人しかいないんじゃないかと思うくらいの Eclipse の利用法ですが、ソースコード見ながら記事を書くことが多いので、この使い方はすごく便利です。(ちなみに 300ページの原稿に耐えてます)

上記スクリーンショット下部は、PlantUML。これもテキストベース図形描画 & Eclipse プラグインあり。 UML を描くツールですが、これがまた色々な用途に使えるのです。

PlantUML についてはプログラマーズ雑記帳さんが非常に参考になります。(とても助かりました!)

PlantUML の使い方 | プログラマーズ雑記帳

テキストから UML を生成する PlantUML についての解説記事を書いてみました。

PlantUML の Eclipse プラグインについては、そのうちまた。 🙂

WordPress for Android 更新

WordPress for Android がアップデートしてバージョン 2.3 になっていましたので、アンドロイドタブレットと普通(?)のスマートフォンで試してみました。

今時はサイト更新をスマートフォンでやりたいという要件も増えている気もしますので、研究に触ってみるといいかもしれません。 🙂

ここで使っているのは ICONIA TAB A700 と Bluetooth 接続キーボード & GALAXY SII です。 ギャラクシーで撮影したので、自分自身の画像はなし。。

wpid-wp-1366332913417.jpg

今回のアップデートから上の写真のようにタブレットを横置きで実行した場合でも、画面スペースが有効活用されるようになり見やすくなっています。(サイドメニューがでるようになりました)

wpid-Screenshot_2013-04-19-13-15-21.png

新規投稿は右上の+ボタンです。投稿までの操作が少なく便利になりました。 🙂

普通のスマートフォンで縦画面表示だと次のような感じになります。 左から操作メニューがひょこっとでてきます。

SC20130419-161934

このようなブログ投稿アプリは、投稿にネットワークを使わないローカル編集ができるのが良いところのひとつ。WordPress for Android では編集画面の「状態」を「ローカル下書き」することで途中保存が可能です。

wpid-Screenshot_2013-04-19-13-41-38.png

ここの状態を「下書き」にするとサーバ側のいつもの下書きになりますので、途中から PC で引き続きといったこともできます。

画像を含めた投稿の編集については、「ローカル下書き」まではエディターに画像プレビューが表示され、「下書き」を含むサーバ保存後の再編集はイメージタグの状態となります。

ローカル編集中。

SC20130419-164342

サーバ保存後。

SC20130419-164600

普段 HTML を扱わない方にはやや分かりづらいですが、サーバ保存後に  wpautop 形式や HTML になったデータをプレビューしながら編集するのはかなり難しい処理ですので、ここはしょうがない仕様です。

Masayan「・・・」

画像に関しては残念ながら「本文に入れずに画像(メディア)だけアップロードする」処理はできません。これは、WordPress の Web 管理画面のようにメディアライブラリのみの登録を行う UI がないためです。

ただし、アイキャッチ画像の設定に関してはこの操作が可能で、挿入するしている画像の長押し操作からでてくる「画像の設定」画面で「アイキャッチ画像として使用」を設定した場合、「投稿本文中に画像を含める」の選択を使うことが出来ます。

SC20130419-171222

さて、WordPress デザインワークブックのサンプルサイトとなり、関係者一同、写真を見ておなかがすいてしまい制作が進まなかったことがあると噂の、札幌の nino クレープさんのブログも WordPress for Android で更新されております。 写真とコメント付きでクレープが載り、ついつい行きたくなりますゆえ。

スマートフォンは身近にあり気軽に使えますので、画像の扱いや操作系など研究の上、WordPress サイト更新の選択肢の一つとして検討してみると良いかもしれません。 iOS 版ももちろんあります。

これらの WordPress クライアントで使われている xmlrpc インターフェースは、自分でも利用することができます。 サイトに合わせた特別なアプリをつくるのも便利そうですね。 いつかやってみたいです。 🙂

WordPress 徹底解析(まとめ)

ブログにて 6日間に渡り、WordPress 拡張機能の実装例を紹介しながら、フックの動作や内部 API、そしてそれらを骨組みする方法を解説してきました。

このページは最後のまとめと目次となります。

連載はブログ記事としてひといきで書いたもので、本来であればここから沢山のリライトをしたいところですが、まずは一度パブリッシュしております。 書き足りない部分、不要なギャグ(!)、言葉やソースコードの揺れが見られますが、推敲は別な機会にということでどうかお許しください。


はじめに

WordPress を使ったサイト構築の手法の中で必要となってくる、フックや内部 API などを用いた機能の拡張方法と、そのプログラムの構成方法を解説します。

紹介しているサンプルソースコードは WordPress のプラグイン形式、もしくはテーマの functions.php の双方で使うことができます。つまり内容は、WordPress のプラグイン及びテーマ開発者にとって有効です。

記事には個別の実装法だけではなく、 サイト構築において一般的な拡張を行おうとした場合に取り得る WordPress の全体的な動作シーケンスの解説が含まれ、内容は汎用的に利用することができると考えています。

WordPress を使った開発で、この連載が少しでも役に立てば幸いです。


Otenki について

本連載でサンプルとしている「Otenki」は、気象情報を提供する LWWSLivedoor Weather Web Service) API から、記事投稿当日のお天気情報の取得・出力を行う WordPress の拡張プログラムです。

大きく次の機能を持っています。

  • 投稿時のお天気情報の自動取得
  • 取得したお天気のテーマへの出力
  • 取得対象となる地域の管理画面からの指定

otenki_post

otenki_admin

含まれる実装的要素は以下のようになります。

  • アクションフック
  • 非同期スケジュール登録
  • 外部 API への http アクセス
  • 管理画面

解説は個々の機能だけではなく、WordPress において拡張の実装を行うためのプログラム構成例や考え方も同じくらいのボリュームでしています。その他の拡張機能やテーマの実装を行う場合においても、知識のひとつとして使えるはずです。


ソースコード

最終形のソースコードは次のリンクから閲覧することができ、実際に WordPress サイトで動作させることができます。

otenki.php

本ファイルの内容を otenki.php として保存し、プラグインディレクトリに格納した上で有効化することで動作します。また、ファイルからプラグインヘッダを除くソースコードをコピーし、テーマの functions.php に貼り付けることでも動作させることができます。

拡張の動作開始後、お天気情報を取得する地域を指定するため、「管理画面->投稿設定->お天気情報取得サービス」から地域IDを指定し「変更を保存」ボタンを押下してください。

お天気情報のテーマへの出力は、テンプレートファイルのループ内の任意の位置で次のように do_action(‘the_otenki’); をすることで行うことができます。

<?php while(have_posts()) : the_post(); ?>
    <?php the_title(); ?>
    <?php do_action('the_otenki'); ?>
    <?php the_content(); ?>
<?php endwhile; ?>

この後、記事の投稿を行うとお天気情報が取得され、指定した位置にお天気情報が出力されます。

なお、サンプルに下位互換の機能を追加した正式版の WordPressプラグインアーカイブは次から取得できます。

WordPress Plugins/JSeries » wp-otenki


目次

本連載はファイルがない状態からソースコードを実装していく方式を採っています。プログラムの構成法も含めて解説していますので、最初から読んでいくとより理解しやすいでしょう。

アクションフックのプラグインをつくる編
最初に、WordPress の拡張において重要なフックの考え方を、サンプルの動作のひとつである「記事公開時の処理追加」の実装を元に解説します。フックはこの後の画面出力、処理の非同期化や管理画面の付与でも使われていきます。
処理のクラス化
WordPress 拡張におけるモジュール設計として、PHP のクラスを用いた方法を紹介します。分かりやすく、他のモジュールとの競合を最小限に抑えられる手法です。
外部 API の呼び出し
LWWS などの REST API に対して WordPress からリクエストを送る解説です。また、ユーザによって設定が異なる値がある場合のモジュール構成も合わせて紹介します。
外部 API 呼び出しの非同期化
外的要因などで処理スピードの低下が懸念される場合の処理方法です。WP-Cron を用いたスケジュール化手法を解説しています。
テンプレートファイルからの情報出力
テンプレートファイルに処理を記述し出力する場合に、拡張モジュールと疎結合にする実装法を紹介します。アクションフックの活用例としても有効です。
管理画面をつける
管理画面に設定欄を設けユーザが拡張の機能をコントロールできるようにする手法の解説です。また、本連載中のソースコードに最終的なリファクタリングをかけ、他の開発者にこの拡張の意味を表現するプログラミングテクニックも解説します。
まとめ(この記事)
本連載の概要とまとめ、そして目次です。

まとめ

WordPress のサイト構築で必要となってくる知識は大きく3つあると考えます。

  1. WordPress API
  2. HTML/CSS や http・データベースなどシステムを構成する環境
  3. PHP プログラミング言語のボキャブラリ

この 3つの知識を揃えた時点でスタートラインとなるため、何も分からない状態であると取りかかるまでの時間が少しかかります。

本連載ではこれらをまんべんなく、既知であろう部分はギリギリまで省いて解説しました。恐らく最初に指針が欲しいのはソースコードの構成や動作シーケンスの組み立てだと考え、これらを中心において書き進めています。

Web を含むオープンシステムは、開発に必要とされる知識が広範囲にわたります。しかしながら WordPress 上での作業は、WordPress に備わる柔軟な API やフレームワーク的な動きが、多くの面倒な部分や難解な部分を隠してくれるため、集中して楽しむことができるのではないかと思っています。

ソフトウェアの開発は非常に面白いものです。WordPress を通じてプログラミングが初めての方が動く感動を知らせてくれた時は、自分のことのように嬉しいと感じます。実はそんな想いも込めて、共著しております「WordPress デザインワークブック」も書きました。もしこの連載がまだ少し難しいと感じた時は手に取ってみてください。

Code is Poetry.

WordPress の世界にようこそ。