WordPress for Android のビルド

突然ですが WordPress の Android スマートフォン投稿アプリ「WordPress for Android」のビルドの仕方です。

事の発端は、スマートフォンを Galaxy SII から S4 に変えたこと…。なんと S4 は写真の画素を VGA に落とせず、サーバのメモリ不足にて WordPress の写真ブログに投稿できないという衝撃の事実。(←時代についていっていないひろましゃくん…

まぁ、ついでに好きなように WordPress for Android のソースコードを修正できたら面白いのではないかと始めたのでした。

wp-android10

どうやら次世代 WordPress には、JSON ベースの REST API も付きそうな雰囲気ですので、こういった WordPress が備える Web 管理画面外からの投稿アプリの研究をしておくのも良いかもしれませんね。 🙂

てなわけで、自分でも忘れそうなのでビルド方法を記しておきます。

Android SDK や ADT はインストール済みとします。 画面は Ubuntu の 英語版 Eclipse より。 他の環境の方は適宜読み替えください。

依存ライブラリのセットアップ

WordPress for Android をビルドするには 、ActionBarSherlockandroid-menudrawer ライブラリが必要です。 何気に pom.xml とかがないので dependency がよく分からないのですが、、とりあえずそれぞれの master ブランチを使っています。

両ライブラリともに github で公開されていますのでクローンします。

ActionBarSherlock
android-menudrawer

Eclipse に EGit が入っていると思いますので、Git Repository ビューより。

wp-android01

2つのライブラリがクローンできたら双方とも Eclipse のワークスペースに持ってきます。

File -> New -> Other -> Android Existing Code

wp-android02

Next ボタン押下後にパスの指定がでますので、さきほどクローンした 2ライブラリを追加します。

ActionBarSherlock はリポジトリに複数のプロジェクトが含まれていますが、「actionbarsherlock」ディレクトリを指定します。通常は次のパスになるでしょう。

~/git/ActionBarSherlock/actionbarsherlock
~/git/git/android-menudrawer

ワークスペースにプロジェクトが持ってこれたら、それぞれに API レベルとライブラリ利用の指定をします。

プロジェクト名右クリック -> Properties -> Android

android-menudrawer のマスターブランチは、Jerry Beans でないとコンパイルが通らないようだったので、双方とも 4.2.2 (API 17) に設定しました。 また、Library の「Is Library」のチェックを忘れずにつけます。

wp-android03

以上で依存関係の操作は終わりです。

WordPress for Android コアのビルド

WordPress for Android は SVN でソースが公開されていますので、いつも通り Eclipse の SVN ビューからチェックアウトし、ワークスペースにのせます。

http://android.svn.wordpress.org/

次に先ほど入れた依存ライブラリのパスを設定していきます。

wp-android プロジェクト右クリック -> Properties -> Android

チェックアウト後は、Library がパス切れ(バッテン)していると思いますので、一度 Remove して先ほどワークスペースに追加したふたつのライブラリを Add し直します。

wp-android04

wp-android05

次にデプロイ時に含むライブラリを選択します。

wp-android プロジェクト右クリック -> Properties -> Other and Export

SDK(Android 4.2.2) と Android Private Libraries と Android Dependencies にチェックがついていることを確認してください。(指定できていないと ClassNotFound Exception します)

wp-android07

ここでいよいよ、ライブラリも含めてビルド(クリーン)します。

Project -> Clean

3つのプロジェクトを選択して OK を押します。

wp-android08

ビルド通りましたか? 😀

ビルドパスにライブラリの jar が追加されていることを確認します。

wp-android プロジェクト右クリック -> Properties -> Java Build Path

wp-android06

では、アプリを実行してみます。

wp-android 右クリック -> Run as -> Android Application

wp-android09

おめでとうございます。 WordPress for Android はあなたの手の中に 😀

wp-android11

動かない場合は、おそらく依存関係の欠如だと思いますので Marker ビューで追っていけばなんとかなると思います。

ビルドができれば、あとは知恵と勇気でなんとかなるですね。これくらいの大きさの実装だと Android アプリ作成の勉強にもちょうど良いです。

これよりソースをいじってみたいと思います。 🙂

WordPress10周年記念! SaCSS WordPress 特集2013

札幌のウェブデザイナー・コーダーのためのセミナー・勉強会 SaCSS(sapporo.css)にて、5/24 に催されました「WordPress10周年記念! SaCSS WordPress特集2013」に行ってまいりました。

WordPress10周年記念! SaCSS WordPress特集2013

@hiromasa :「WordPress10周年記念でひろましゃが語る!WordPress の新機能と最新動向」
@se_ino :「WordPress を初めて使って」
@komomoaichi :「WordPressで覚えるPHP入門」
@h2ham :「Webデザイナーの仕事におけるWordPressとテンプレート」

WordPress 日本語化チーム、Multibyte Patch Plugin でおなじみの倉石さんも来られまして、札幌からも 10周年おめでとうのメッセージを送ることができて良かったです!

パチリ。:)

DSC00399

SaCSS にて自分の方は、次期バージョンになります WordPress 3.6 の新機能などについてをお話させてもらいました。

スライドに動画を使ってしまっていたので、ここではダイジェストのスクリーンショットを掲載することにします。(以下開発中の WordPress 3.6 trunk の画面です)

オーディオ・ビデオサポート

WordPress 3.6 より audio、video ショートコードが追加になり、youtube などに頼らずに自前でメディア再生ができるようになります。

video01

音声は、’mp3′, ‘ogg’, ‘wma’, ‘m4a’, ‘wav’、動画は、’mp4’, ‘m4v’, ‘webm’, ‘ogv’, ‘wmv’, ‘flv’に対応しています。プレイヤーには html5、フラッシュ、マイクロソフト系は Silverlight が選択されるようです。

ちなみにメディア系のファイルは大きいですので、ファイルアップロードの際に PHP のサイズ制限にかかるかもしれません。そのような場合は、php.ini で次の設定をすると良いと思います。

upload_max_filesize = 100M
max_post_size = 100M

記事リビジョン(履歴)操作の UI のアップグレード

記事間の diff 操作や、リビジョンを戻す操作も直感的になってとても使いやすくなります。

revision

なお、リビジョン数はデフォルト無制限です。履歴数に制限をかけたい場合は、wp-config.php で次のように WP_POST_REVISIONS 定数で設定してください。

define('WP_POST_REVISIONS', 20);

投稿ロック

編集中の記事がロック状態に遷移し、複数人の編集争いで内容の破壊が防がれるようになります。

lock01

他の人が編集中を表す「鍵マーク」の記事を開いたときの図。「編集を引き継ぐ」でロックを解除することもできます。

lock02

自分が編集中の記事が他の人に引き継がれた場合は、ほぼリアルタイムで下の画面がポップアップしてきてリビジョンに保存されます。すごい。

lock03

投稿フォーマット

カスタム分類「投稿フォーマット」とカスタムフィールドを使った、投稿管理画面の入力項目変更 UI が搭載されます。(テーマで投稿フォーマットをサポートをした時のみ機能が現れます)

format01 format02

投稿フォーマット名や入力項目など、管理画面がまだカスタマイズできないため、クライアントさんに入れるような WordPress では採用しにくいところもありますが、将来的には面白い機能になるのではないかと思います。

以上、WordPress 3.6 にはローカルストレージへの記事保存などまだまだ新機能あるとおもいますが、SaCSS で紹介させていただいた内容でした。 🙂

WordPress 10周年、おめでとうございます!

DSC00369

(…ひろまさ老けたんじゃないか?と言っているのは誰ですか…)

Ubuntu 13.04 リリース!

半年に一度のお楽しみ、Unbutu の 13.04 がリリースされました。 😀

日本語 Remix を待ちきれずに、早速愛機 ThinkPad T420s にインストールしてみました。 もともと Ubuntu 12.10 がのっていた機械ですが、アップグレードせずに、クリーンインストールしております。

インストールプロセスでは特に困ったこともなく、いつも通りそのままブートされ、無線LAN などやトラックポインタなどのデバイスもそのまま使えるようになりました。

ubuntu1304-01

利用を開始して最初に気がついたのが、Super(Win) + S のワークスペーススイッチャーが効かないこと。

どうやらデフォルトで仮想デスクトップが無効になったようです。システム設定->外観から「ワークスペースを有効にする」にチェックをつけてあげます。

ubuntu1304-02

とりゃ。でてきよった。 🙂

ubuntu1304-03

ワークスペース切り替え Win + S と Alt + Tab のタスクスイッチャーの切り替えはいつもながらかなり強力です。 🙂

ちなみに、このようなショートカットは Super(Win) キー長押しで知ることができます。(これは前のバージョンからの機能)

ubuntu1304-04

便利すなぁ。

デフォルトインストールから追加したのは、次の開発系と flash などのサードパーティー製品です。

sudo apt-get install build-essential
sudo apt-get install ubuntu-restricted-extras
sudo apt-get install openjdk-7-jdk

最近は、Oracle のではなく OpenJDK7 を利用中。 Eclipse や JVM 系開発用。

で、その Eclipse でちょっと困ったのが、Internal Browser が使えなかったこと。

ubuntu1304-05

この画面は既に設定済みなので、Use Internal web Browser(内部ブラウザを使う)が有効になっていますが、デフォルトインストール直後は非活性でした。

この事象、いつもだったか、 Ubuntu を設定しているうちにそのうち入って動いていたのか、いままで気にしたことがなかったのですが、理由は Eclipse の SWT が webkit の 1系を要求するためで、入ってないと enable にできません。 13.04 のデフォルト webkit は 3系でした。

てなわけで、1 系をインストールすれば使えるようになります。

sudo apt-get install libwebkitgtk-1.0-0

これにより、いつも使っている Eclipse Mylyn Doc textile 編集でプレビューができるようになりました。(下のプレビュータグがでてきます)

ubuntu1304-06

さて、WebKit 関係ありませんが、先日購入しました WireframeSketcher もうまく動作しました。

SWT Spy 恐るべしの図(既存の SWT 画面を吸い取ってスケッチ化できるっ)

ubuntu1304-07

やはり Linux はソフトウェアをつくる環境として便利で、ほとんど何もしなくても好みの動きをしてくれるのが良いところです。

インターネットの場合、開発時の接続先のサーバも Linux であることが多いので、ワークステーションとの親和性の高さもポイントですね。 🙂

OS の群雄割拠を見るような自分の机。 Linux 勢優勢。

20130425_215355

てなわけで、奥のディスプレイはこの部屋に新星のように現れた Windows 8。 ようやく入れましたぞ!

(次のブログは Windows 8 ネタという前フリらしい)