カテゴリー : HMDT

朝4時に起きること


ここ10年近く、朝は4時に起きてます。そのまま仕事場行って、5時から6時には仕事開始です。終わるのは、18時。朝型かと言われれば、朝型ですね。

意識して朝型にしたということはないけれど、一人で静かに仕事できる時間を確保しよう、としたら、自然に早くなっていきました。今では目覚まし時計かけなくとも、だいたいその辺の時間に目が覚めます。便利だけど、正月でもその時間に起きるので、損した気分です。

朝型の方が良いとか悪いとか、そんな議論には興味ないんですけど、ひとつ確実に言えるのは、体調を崩しにくくなったこと。風邪ひかなくなったんですよ。もう10年くらい風邪らしい風邪ひいてない。これは朝早く起きることよりは、夜早く寝る事が効いているのかもしれない。夜は21時には寝ちゃいますからね。

独立して自分で会社始めるようになってから、体調管理には気を使うようになりました。だって、会社勤めしてたときは自分が休んだら他の人が仕事してくれたけど、独立したら自分しか仕事する人いないですから。体が資本という言葉は間違いなくほんとですね。いまの仕事に関して言えば、頭も資本です。体と頭が充分に活躍できるように、風邪をひかない一年を送ります。

ポップオーバー的な何か


「ポップオーバー」っていうユーザインタフェースあるじゃないですか。クラスで言うならUIPopoverControllerですね。今の画面の上にポンと表示できるので、ちょっとした設定画面などを表示するときに便利です。

popover_ipad

でもこれ、iPadでしか使えないんですよね。まぁ、がんばればiPhoneで使えたりするみたいなんですけど、OSのバージョンアップしたときの手間とか考えると、もうやめたい。なので、自力でゴリゴリと作って使っています。

popover_mine

なんでiPhoneでUIPopoverControllerが使えないんだろう?もっと正確に言えば、AppleはiPhoneでのポップオーバー的UIは良くないと考えているんだろうか?狭い画面でビューが多重になると、ゴチャゴチャした印象を与えるからかな。そんなことやるくらいならモーダルにしろよ、ってことでしょうか。

iOS 7では、UIの文法がガラッと変わりました。そのときに、depthって概念が導入されました。階層的にしろってことですね。その例として挙げられているのが、ノーティフィケーションセンターです。ポップオーバーよりも、こんな感じにした方がいいんですかね。

iOS 7のdepthで特徴的なのは、ノーティフィケーションセンターみたいな半透明の背景です。でもこれ、自前のアプリだと実現するの難しいんですよね。それ用のクラスが用意されていないし。自分で実装しようとすると、ぼかしは処理時間が大きすぎて、実用的な時間で動かないし。今のところ、UINavigationBarを引き延ばして無理矢理やってみていますが。でもこれだと、よく分からないタイミングで、いきなり半透明が解除されたりするんですよね。どうもうまいとこいかんです。

popover_navigation

FFXとDQ8


お正月なんでゲームでもやりたいなと思って、「FINAL FANTASY X HD Remaster」をやっとります。VITA版の方です。FF Xをリアルタイムでやったのは、25歳くらいでしょうか。自分がすっかりオッサン世代になったことを自覚させます。

内容はほとんど忘れているので、新鮮な気持ちでプレイできて楽しいです。FF Xでは、主人公がいきなり異世界に投げ込まれますが、記憶をなくした(というか混乱している)という設定で、説明的なセリフが違和感なくビシビシと発せられるので、無理なくストーリーに入り込む事ができます。この辺が上手ですよね。

ffx

HD化されたグラフィックも、とても奇麗です。今回はVITAでプレイしているのですが、このデバイスの画面の大きさと眼からの距離は適切で、情報量の多いHD画面もあいまってかなりの没入感があります。下手なモニタにつながったPS3よりも、こっちの方が好みですね。

同時期に、iOSおよびAndroid向けに、FFとならぶJRPGである「ドラゴンクエストVIII」も登場しました。もちろん、ドラクエ8もリアルタイムでプレイしていたクチなので、こちらも興味津々だったんですが、縦長化されたスクリーンショットを見ると、うーん、とうなってしまいます。

レビューを読むと色々と考えているのは分かるんだけど、やっぱり横画面でみたいですよね。天井と床ばっかり強調されても、困っちまいますな。実際にプレイしたらまた違う感想になるのかもしれないですけど、第一印象のガッカリ感はぬぐえません。

いくらスマホが普及したといっても、コンソールのゲームはやっぱりコンソールでやりたいな、と思った正月でした。

でかいサイズのアプリをApp Storeにアップロード中…


正月の次の日ですが、朝もはよからアプリの申請作業を行っています。アップロードが時間かかる。

うちで作っているアプリはサイズがでかいものが多いです。辞書系だと、500MB超えはざらですね。サイズがでかいとき、ネットワークのアクセス速度を考えると、ユーザにダウンロードしてもらう下りの回線は、まぁ最近は充分に速いです。

問題は、上り。Appleのサーバにアップロードするのに、下手すると一時間以上かかります。放っておいてもいいんだけど、時々アップロードが終わった後に「Invalid Signature」とかエラーが出て、もう一回やり直しかよぉぉぉ、ってことがあるので、油断できないです。

アプリ本体のサイズを小さくして、App Storeから購入した後にダウンロードさせよう、という話もよく出てきます。それはそれで、またメリットとデメリットがあって、悩ましいところです。

ちなみに「大辞泉」の場合は、

・辞書データは、アプリ同梱
・画像データは、サムネイルはアプリ同梱で、高解像度はコンテンツサーバから逐次ダウンロード

というスタイルになってます。全部の画像突っ込むと、余裕で1GB超えますからね。「大辞泉」リリース直後は、サーバの管理会社の方から「アクセス量が急増して、このままだとアクセス制限します」と言われたけど、どうにか乗り切ったらしいです。

2014年の新年のごあいさつ


あけましておめでとうございます。今年もよろしくお願いします。

2013年は、HMDTの会社としては、なかなかに激動の年でした。ようやく体制も立て直しつつあるので、今年は新しいことを始めたいですね。そろそろ、新しいスタッフも募集したいし。まずはバイトからかな。

個人的には、今年はとうとう40歳になります。30の頃には40になる自分なんて想像できなかったけど、月日が経てばとうぜんそんな日が来る訳です。

いまの私の肩書きは、社長兼プログラマ、というよりは、プログラマ兼社長で、社長業よりもプログラマとしての仕事の方がメインですね。年齢とプログラミング能力の相関関係は昔から色々言われているけど(プログラマ35歳定年説とか)、個人的にはマダマダイケルゼ!というか、俺がエースプログラマだ、若い奴らはかかって来いや!という気概です。

年齢を重ねることは悪い事だけではなくて、積み上げてきた経験が色々と助けてくれます。ただ、やっぱり能力的に衰えるところはあるなー、と思っていて、それは集中力ですね。いま、一日に働く時間はだいたい12時間なんですけど、そのうち集中できているのは4時間くらいかな。それ以外は、ダラダラと、自分でも集中できないなー、と感じながらやってます。その辺の時間管理を変えていかないといけないですね。

では、今年もがんばっていきたいと思います。

MSMでiCloudとCore Dataのセッションやった


先週の土曜日、11/30に、MOSASoftware Meeting 2013で、セッションをやってきました。お題は、「iOS 7およびOS X MavericksにおけるiCloudとCore Data」。

ここ数年、MOSAでセミナーをやるときはCore DataかiCloudをテーマにしてくれと言われてまして、今回もその流れに沿ったものでした。

長年やってる話なんで、そろそろちょっと結論みたいなものを出しておこうかい、ということで、「iOSとOS XでiCloud同期する、Core Dataを使ったドキュメント・ベース・アプリケーション」の実例を紹介してきました。

これにたどり着くのが、色々な罠があって大変だったんですよ。結論から言うと、NSPersistentDocumentとUIManagedDocumentは、使いません。こいつらは捨てる!だって、保存ファイルに互換性がないんだもん。ふざけてんのかよ、Appleさんよ。だから自前のドキュメントクラスを作って、Core DataとiCloudのサポートを自前で書きましたよ。

OS XとiOSで同期すると、楽しいね。特に、OS Xは書類を扱う環境が整っているので、やっぱり便利。iPhoneでラフに書いて、Macで仕上げる、というアプリ環境が出来上がりつつあるね。

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からです。興味ある方は、ぜひお越し下さい。

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


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

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

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

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

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


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

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

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

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

AirPlayスピーカーが素敵


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

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

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

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

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

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

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