HMDT Blog | ページ 12

MOSAでSayoriレンダリングエンジンのセミナー、およびSayoriのオープンソース化予告


iPhone 5Sおよび5Cが発表されて、iOS 7 GMも配布されるというかしましい状況でありますが、MOSAでセミナーやります。

タイトルは、『オープンソース「Sayori」を事例とする、日本語XHTMLレンダリングエンジンの実装詳解』。長いぜ。レンダリングエンジンの作り方の話をします。

レンダリングエンジンとは、たとえばXHTMLが与えられたときに、それを解釈して、画面上に文字を描画するもの。それをイチから作るための解説をします。

「そんなもの、Web Kitを使えばいいじゃん」と、思われた方。確かに、アプリの一部にUIWebViewを組み込んで、HTMLのいいとこ取りをしたアプリ開発、というのがまことしやかに語られたりします。だけど、実際にやってみると、Web Kitぜんぜん役立たずな事は、皆さんご承知ですね。なんでかっていうと、でかいし、重いし、非同期だし、好きに制御できないし、内部にアクセスするにはJavaScriptだし。

もっと軽量で、Objective-Cファミリアで、ネイティブアプリから使いやすいレンダリングエンジンが欲しい、という事で作ったのが「Sayori」です。Sayoriは、私がアプリ開発をしながら、こんなレンダリングエンジンがあったらいいな、という事で作ったものです。もちろん、ルビや縦書きや縦中横といった、日本語特有の問題も解決しています。iOSアプリ『大辞泉』で使われています。これの使い方および開発時の話をします。

Sayoriの使い方の一例を紹介しますね。こんな感じで使います。

SYLabel* label;
label = [[SYLabel alloc] initWithFrame:CGRectZero];
label.html = @"<xhtml><body><h1><code>Hello Sayori</h1></body></xhtml>";
[label sizeToFit];
[self.view addSubview:label];

あと、セミナーのタイトルよく見ると、『オープンソース「Sayori」』って書いてあるでしょ。Sayoriはオープンソースになります。いま準備しています。セミナーまでには公開したいです。

一緒に開発してくれる方が登場してくれると嬉しいけど、オープンソースのコミュニティ作りはまた別の大変な仕事なので、様子を見ながらってとこでしょうね。

セミナーは、9/27(金)の18:30からです。興味ある方は、ぜひお越し下さい。

『大辞泉』for iOS 7準備中


daijisen_icon

来週Appleのイベントが予告されて、いよいよ新しいiPhoneが登場。それよりも開発者にとって大事なのは、おそらくiOS 7も同時期に公開になること。

手持ちのアプリのiOS 7対応を進めている。『大辞泉』は、こんな感じになっている。

daijisen_ios7

できるだけカスタムユーザインタフェースはやめて、標準の部品を多用するように方針を変更してみた。どうかなー。地味というか、派手さはないけど、それがiOS 7ユーザインタフェースのガイドラインだからね。「コンテンツに敬意を払え」。アプリの目的は、コンテンツを見る事であり、ユーザインタフェースの華美を競う事ではない。コンテンツに敬意を払えば、自然と邪魔にならないユーザインタフェースになる。

見た目は派手じゃないけど、動きは重要になる。これはビデオで見せないといけないね。それも用意しないと。

App Storeでの申請受付はいつになるのかねぇ。やっぱり、来週のイベントの直後かな。

『大辞泉』1.3登場!新語追加で26万4,800語に


daijisen_icon

iOSアプリ『大辞泉』ですが、バージョン1.3が登場しました!今回は、App Storeへの申請から通過まで、期間が短かったなあ。

バージョン1.3では、辞書データを更新して、新語がドドンと追加されました。2,300語を追加して、総項目数は26万4,800語に!さらに、『大辞泉プラス』にも6,000語追加。こちらは5万8,000語に。あわせると、何と32万6,400語!すごいですねー。

バージョンアップはもちろん、新規インストールも無料ですので、ぜひダウンロードしてください。

iOS『大辞泉』のOS Xへの移植を試みる


世間様は夏休みだけど、変わらず仕事をしております。でも、なんか気分的に乗ってこないので、いままでやりたかったんだけど時間がなかったから保留してたものをやってみた。

それは、iOS『大辞泉』の、OS Xへの移植。iOSアプリもOS Xアプリも、プログラミング言語としてはObjective-C+C言語を使っている。さらにCore GraphicsやCore Textといった下位レイヤーのフレームワークは共通なので、移植のハードルは低い。大きな問題になるのは、ユーザインタフェース。UI KitとApp Kitというフレームワークの違いもさることながら、タッチ操作とマウス操作というデバイスの違いがあるので、そこは作り替える必要がある。大辞泉は、意識的にUI Kitにあまり依存しないようなユーザインタフェースにしておいた。

で、3日ほどコードをいじった結果、辞書の検索および検索結果の表示はできるようになった。

daijisen_osx

検索のためのソースコードは、ほぼiOSと同じ。表示に関わらない箇所は、ほとんど変更しないでいける。検索結果を描画するSayoriレンダリングエンジンも、5%程度の修正でいけた。まぁ、もともとクロスプラットフォームを見越して、機種依存部分を切り分けていたんだけど。

対応の手間が大きいのはコントローラ部分。iOSのUIViewControllerに、OS XのNSViewControllerを対応させているんだけど、両者の設計にはだいぶ差があるので、その吸収が腕の見せ所だね。

作業の結果、Xcodeのターゲット切り替えで、iOS版とOS X版のビルドを作れるようになった。

xcode_target

このOS X版をリリースするかどうかは、まだ不明。欲しいという声が多かったら、検討する。個人的にはいまの作業環境だと、辞書はiPhoneよりもMacで使うから、OS X版が欲しいなぁ。

あと、iOS版の大辞泉は、ただいまセール中。制限解除のアドオンが、2,000円→1,500円になっている。セールは明日までなので、よろしく。

大辞泉1.2を公開、および10万ダウンロード達成を記念して、セール開始!


daijisen_icon

iOSアプリ『大辞泉』、最新バージョンである1.2が公開されました!1.2では、検索一覧画面に画像サムネイルを表示したり、表組データの表示を実現したりと、さらに見た目にみがきをかけてきました。

daijisen_1307301

そして、ダウンロード数がついに10万を突破!公開日から3ヶ月弱での達成となりました。ダウンロードしていただいた方々、ありがとうございました。

そこで!1.2公開および10万ダウンロード数達成を記念して、初のセールを行います!フル機能とほぼ同じ意味である「利用回数の制限を解除」を、2,000円から1,500円に値下げしています!

セール期間は、来週16日までの一週間。もうすぐ夏休みに入る方も多いと思いますが、この機会に利用回数制限を解除して、ジックリと辞書をいじりたおしてみませんか。

ITメディアでインタビュー受けた


ITメディアでインタビュー受けたので、その記事が公開されております。

無課金でも機能制限なし──「大辞泉」アプリ無料化、“ソシャゲ風”課金モデルへの挑戦

大辞泉公開後の反応と、これからの戦略についてなどを話している。

あんまり人相のよろしくない写真が載っております。うーん、、、写真撮られるのは難しいね。

iPhone 5バッテリー膨張で交換


iPhone 5のバッテリーの持ちが、明らかに悪くなっていた。一晩充電したはずなのに、30分と持たずに切れて落ちてしまう。写真を撮るときは、一枚撮るとバッテリーが切れるので、最高の一枚だけを撮るようにする。これはこれで、アリのような。

遊びはともかく、仕事には使えないので、堪えかねて銀座のAppleストアへ。予約を入れておいたGENIUSバーでデバイスを見せると、一瞥しただけで、「バッテリーの膨張ですね」と。たしかに、膨らんでいるような気はしてたんだよ。ガラスが浮き上がって、押すとペコペコへこむし。そう言われりゃ、その通りだ。

その場で即デバイス交換という事になり、新しいのをもらってきた。無料。所要時間10分足らず。スムーズだった。素晴らしい。

現在、バックアップから復元中。これは時間がかかる。

『大辞泉』バージョン1.2審査提出


『大辞泉』バージョン1.2をApp Store審査に申請したので、ご報告。バイナリ自体はもっと前にでき上がっていたんだけど、Appleの開発者サイトへの侵入者による閉鎖のあおりをくらって、申請ができなかったのでした。いや、たしかにiTunes Connectは開いていたんだけど、プロビジョニングファイルを更新する必要がありまして。

バージョン1.2は、画像や地図を検索一覧画面に表示できるようになったのが、いちばんのウリかな。画像の標示は、こんな感じになった。

daijisen_1307301

daijisen_1307302

画像や地図のサムネイルがいっしょに表示されるので、その項目がどんな情報を持っているのか分かりやすくなったよ。もちろん、タップすれば直接画像の拡大表示ができる。

審査は、最近の状況だと一週間くらいかな。公開されたらよろしくお願いします。

 

 

AirPlayスピーカーが素敵


AirPlay対応をスピーカーを買った。PanasonicのSC-AP01というやつ。AirPlay専用のスピーカーで、ケーブルが電源しかない、という潔さが気に入っております。

大きさや重さもちょうど良く、本棚の上にちまっと鎮座させている。収まりよく、部屋にとけ込んでいる。

購入した目的は、iPhoneに入っている音楽を再生させるため。イヤホンで聴くときもあるけど、外部スピーカーで再生させたいなー、というときにサクッと無線でつないで音を出せるのでとても便利。音質も、私はオーディオの詳しい事は分かりませんが、十分満足。

そんな感じでAirPlay環境を楽しんでたんですが、こないだAppleTVを色々いじってたら、スピーカーっていう項目があって、そこにこの新しいAirPlayスピーカーが出てくるじゃないですか。AppleTVって、スピーカーだけAirPlayスピーカーにすることができるのか!

どういうことかというと、うちのAppleTVはHDMIケーブルでモニタにつないで映像を出している。音もそのモニタから出るんだけど、モニタ内蔵のスピーカーが貧弱で、音質は不満だったんですよ。それが、音だけAirPlayで飛ばして、ちゃんとしたスピーカーから出せると。おぉー、すげー。

ということで、まったく結線する事無く、あるときはiPhoneからの音楽を流して、あるときはAppleTVの映画の音を出すという、スピーカーができました。ボリュームの調整も、iPhoneからでもAppleTVからでも行える。快適すぎるよ、AirPlay!

こういう、つぶしの効く規格を作って、こうできたら便利だよねっていう機能を地味にきっちり実装してくるところが、Appleらしいな、と思う。これこそ垂直統合メーカーの強みだ。

東富坂から丸ノ内線後楽園駅


本郷のあたりは「本郷台地」って呼ばれて、ちょっとした高台になっている。本郷のところだけ飛び出した感じで、ぽこっと高くなっている。

いつぞやのブラタモリでも、本郷台地の特集やってたね。

この図から分かるように、東、南、西に行くと、坂道がたくさんある。しかもけっこう急なやつ。そこを歩くと、東京都心でもハッとするような風景に出くわす事が多い。

仕事の合間に散歩で後楽園の方に歩いていってみた。春日通りを西に行く。そうすると、東富坂という坂がある。このあたりは地下鉄丸ノ内線が通っているんだけど、後楽園駅に着く直前で地上に出てくる。東富坂の中腹から線路が出てくる感じ。

だから、坂の上から見ると、地下鉄の線路を上から眺める事ができてちょっと面白い。