2011.10.13 Thursday
ガラケーサイトの絵文字をスマホ対応にするときのただ1つの方法
ガラケーサイトをiPhoneやAndroid向けのサイトにする時に、どうしても外せないのが絵文字の対応。
サイト側が一方的に発信する情報サイトなんかは絵文字をつかわないようにすればいいんだけど、ユーザー投稿があるコミュニティとかではそうはいかない。
なぜなら、ユーザー投稿の中の絵文字がなくなると意味が通じないものや相手を不快にさせるものがあるから。
docomo,au,SBの間でも絵文字のマッピングをして置き換えるけど、これをAndoroid、iPhoneに対応させるのに結構悩んだ。
<トライ1>iPhoneから先に対応させてみる
iPhoneではSoftBankの絵文字を表示することができる。これで解決。
Androidは表示できず。両方を一つの方法で対応させたかったので、断念。
<トライ2>Androidから先に対応させてみる
iPhoneがSBの絵文字を表示できたので、Androidもどれかの絵文字が表示できないかなと探してみたら、Googleのemoji4unicodeを使えそうなことがわかった。
IS03(Android2.1)で試してみると、おー!!表示された。
もちろん、iPhoneでは表示できないけど、iPhoneとAndroidの分岐をさせればいいだけじゃね!
解決!!
と思ったら、大変残念なお知らせが。
IS01(Android1.6)ではemoji4unicodeでも表示されず。□になってしまう…
じゃ、Android1.6だけを非対応ってことにすればいいかというと、わからない。
途中まですっかりわすれていたけど、Windows Phoneの存在もある。
ちなみにiPhone,IS01,IS03の全部で絵文字っぽいもので表示されたものが1つだけある。
それは特殊文字(♥とか)
本気で特殊文字に変換してしまおうか悩んだけど、対応しきれるほどの種類がない。
こうなると最終手段のあれしか残っていないわけです。
そう、画像に置き換え。
昔からガラケーサイトをPCで表示させた時とかにはやっていたことなんだけど、つくづくスマホはPCと割り切った方がいいんだなと。
絵文字に置換したら、まあ綺麗。どのブラウザでも当たり前だけどちゃんと見れる。すげー安心感。
絵文字を画像にするともちろん、通信頻度が上がる=表示が遅くなる。と思って、CSS spritesをして、全絵文字を1つのファイルにまとめてCSSで配置するようにしてみたらいまいち。メニューなんかと違って、文章の中にはいっているからかも。
表示速度が上がってる気も全くしない。全絵文字をまとめたファイルは50k程度に収まったから本来早くはなっているんだだろうけど、体感は全然変わらない。1ページにそれなりの数の絵文字があるとCSSの処理コストもあんまり無視できなくなるからかも。
あとは一文字づつの画像でもブラウザがキャッシュしてくれるのもあるんだろうと。
最終結果。絵文字は画像に置き換えるのが一番手軽で無難っぽい。
理想は、WindowsPhoneも含めて仕様を把握して、iPhone,Androidの絵文字対応しているものは絵文字を表示、どうしても絵文字に対応していないときだけ画像に置き換えるってのがいいんだろうけど、また別のOSが出てくると同じような事を考えなきゃならなくなるんじゃないかなというのが気になるので。
2011.10.04 Tuesday
iPhoneアプリ「WebFullCapture」はブログや資料作りに便利だよ
こちらも先日リリースした iPhoneアプリ「WebFullCapture」。

ウェブサイトのキャプチャが取れるアプリ。ちょっとすごいのが画面サイズとユーザーエージェントの指定ができることとブックマークレットに対応していること。まずは実際にキャプチャした画像がこれ。

ユーザーエージェント:標準/サイズ:320px
ユーザーエージェント:パソコン/サイズ:1024px
ユーザーエージェント:モバイル/サイズ:240px
とこんな風に画面サイズとユーザーエージェントを変えてウェブサイトのキャプチャを取ることができるんです。
※ユーザーエージェントを変更してのキャプチャはページの文字コードがUTF-8のページしか対応していません。
ちなみにログインが必要なサイトもユーザーエージェントを標準にすればキャプチャすることができます。
自分の資料用にGREEやモバゲーのソーシャルゲームの画面全体をキャプチャするのにも激しく使ってます。すごい便利。
2chみたいな縦に激しく長いページでも画面サイズを320にしておけば結構取れます。320×3万pxくらいのキャプチャもとれたりします。
さらにさらに、「キャプチャとろう」と思っている時はこのアプリを最初から起動して使えばいいのですが、Safariでウェブサイトを見えている時に「このページをキャプりたいな〜」ってことってあるよね。そんな時のために、ブックマークレットにも対応しています。
アプリの設定ページからリンクを貼ってるのでとっても簡単。
我ながら結構便利なアプリですので、気になる!っという方は是非!
AppStore「WebFullCapture」
2011.10.04 Tuesday
iPhoneアプリ「Map2Pic」は楽しいよ
先日リリースしたiPhoneアプリ「Map2Pic」が楽しいぞという紹介です。実際にアプリを使って保存した画像はこちら。クリックするとオリジナルファイルを見ることができます。24インチモニタのフル画面でも表示できないサイズの画像をiPhoneで保存できるってすごいな。
このアプリはGoogleMapを画像として保存するアプリです。
保存したい場所を選んで、サイズを選択して、ボタンを押したらGoogleMapが画像として保存される、それだけのアプリです。
が、単にこれだけのアプリなんですが、純粋に楽しい。もともと公開するつもりはなかったんですが、自分でいじっていて十分楽しい。だから出してしまおうと。
たぶん、楽しいのほとんどは「GoogleMapスゲー!!!!!!!!」ってだけなんだけど、単機能アプリとしてはそれで十分じゃないかと。
最初は、ローカルに保存して地図として使えば便利かなとかごちゃごちゃ考えたけど、実用性なら他のローカル対応の地図の方がずっとずっと優っていると思う。このアプリは「GoogleMapが画像で保存できる→楽しー」だけのアプリ。
当初、このサイズの2.5倍くらい大きい画像が保存できるように作ったんだけど、iPhoneのメモリが足りなくて極稀にしか画像の保存に成功できなくて、さすがにまずいかなと思って、最大サイズを今のサイズにしたのでした。iPhone5に大量にメモリが載ったらそのサイズを登場させるかも。
AppStore「Map2Pic」
2011.09.26 Monday
iPhoneアプリ、4,5本目を申請
既に公開しているアプリの機能追加や修正、別の案件で手間取って、アプリ申請の予定がだいぶずれてしまったが、なんとか今、4本目と5本目を申請。
今回は、2本とも最初から英語でも申請をしてみた。
英語で書くとなるとできるだけ説明文はシンプルにしたくなる。
先日参加した、サイバーエージェントベンチャーのStartUP 2011 autumnで孫泰蔵さんが言っていた、
「英語版を最初に作れ→文章や説明をできるだけシンプルにしようとする→結果として、シンプルでわかりやすいいいものができる」
という話があったけど、本当にそうだと思う。
その時も、その考えはすごい参考になるなと思ったけど、実際に英語版としてリリースしようとすると、なおさら納得。
その考えに照らし合わせると、ひとつのアプリは英語では説明不足が心配になる部分もあり、シンプルさにかけているんだろうなと実感。もう一つの方はある程度シンプルにはできたかなと思う。
今後の開発の際には最初からそのことを考えたら、もっと磨かれたものになれる気がする。
2011.09.24 Saturday
BigPhotoツール英語版を検討
先日リリースしたiphoneアプリ「BigPhotoツール」の英語版について。
このアプリは作りがシンプルで、英語対応させる初めての機会としてはちょうどいいとリリース前から思っていたのですが、リリースして以外にも日本語のままでも多少売れてる。
そもそも売れてる本数が少ないので、参考にもならないかもしれないけど、4分の1くらいが海外。
アプリ内の日本語は本当に少ないし、説明すべき内容もあまりないので説明文の英語化もそれほど難しくはなさそう。
今作っている2つのアプリも日本語があんまりないので、少しずつ英語化のテストをしてみよう。
2011.09.17 Saturday
SafariでGoogle検索ワードを遷移先のページ内でハイライトするブックマークレット
SafariにFirefox等のGoogleツールバーみたいに検索結果から飛んできた時にページ内の該当部分をハイライトする機能がなかったので、ブックマークレットを作った。
javascript:str=decodeURI(document.referrer);str=str.split("&q=");str=str[1].split("&");str = str[0].replace(" ","+");str = str.split("+");col=['FFFF00','FF00FF','00FFFF','FF0000','00FF00','0000FF'];for(i=0;i<str.length;i++){document.body.innerHTML=document.body.innerHTML.split(str[i]).join("<span style='background:#"+ col [i]+";font-weight: bold;'>"+str[i]+"</span>");};
Googleの検索結果がリファラに入っているときにクエリを取り出して、検索ワードを単語ごとに分けて、色をつけている。
複數キーワード対応。
Firefoxとかでも動くだろうと思うけど、Googleツールバーを使ったほうがいいと思う。
Safariでも同じ機能のGoogleツールバーがあればそれの方がいいな。
2011.09.15 Thursday
申請中の3本目のiPhone リジェクト!
申請中の3本目のアプリのリジェクトの連絡が着た。
今回はリジェクトの連絡が来るまで10日くらいかかったな。
今回のアプリは大きな写真を見たり、縮小できるアプリなんだけど、
アプリの説明写真にGoogleMapが写っているんだけど、ロゴが見えない
というのがリジェクトの理由。
迂闊だったな。
利用目的に大きな地図画像や路線図画像を見ることを想定していたからそうしていたんだけど、まずかったな。
とりあえずはGoogleMapでなくて写真を表示するようにして再申請をしよう。
このアプリは他のアプリで作った大きな画像を自分で確認するためにはじめ用意したんだけど、
結構汎用的に使えるので、アプリとして申請するようにしたもの。
先週末くらいに申請したかったアプリがまだバグの修正が完了していなくて申請できていないから、ちょっと焦るな。
2011.09.12 Monday
iPhoneアプリの改修版の申請
先月末と先週、iPhoneアプリをリリースした。
1本目の「WM3500R WiFiメーター」は10日ほど前に改修版の申請を出して、数日前に公開された。
2本目の「名前書き取りプリントをつくろう」の改修版を申請した。
いざリリースしたら、バグがあればもちろんすぐに対応しなければならない。
1本目の時は、バグの改修がすぐに終わっても、アップルの審査が入るので、公開されるまで1週間くらいかかった。
アプリの説明文は比較的にすぐに反映されるので、アプリの改修版が公開されるまでは、「ここにバグがある」「こういうようにすればとりあえず使える」という情報があれば迅速に書き換えて置いたほうがいいかなと。
せっかく、アプリが出たばっかりで評価もついていないうちに購入してくれたユーザーに対して感謝に気持ちを忘れずに、できるだけ早く対応していきたい。
2011.09.10 Saturday
Titaniumメモ:言語設定
Titanium Mobileで開発して、申請中のアプリの使い勝手が気になって修正したものを再アップしようと思って、iTunes ConnectでBinary Detailを見てみると、Localization:Englishとなっていた。
確かに、アプリ内から写真を開く時とか、メールを開く時にボタンやタイトルが英語になっていたなとは気づいていたけど、どうやらアプリの設定で英語になっていたっぽい。
修正したソースをアップする前に、info.plistに言語設定があるかなと思ってみてみたら、
1番上の項目にあった。
ここでJapanを選択してパブリッシュしてみたら、先程まで英語だった部分がちゃんと日本語に変わってた。
ってことは、先にリリースした2つもそのまま変更していなかったから英語になってしまったな。
ちょうど両方ともちょっと修正したアップデートをかける予定なので、その時に合わせて治そう。
2011.09.10 Saturday
Titaniumメモ:setIntervalで処理のタイミングをずらす
完全にバッドノウハウなんだとは思うけど、
Titanium Mobileでちゃんとオブジェクトを作って、このタイミングであるはずなのに値が取れないなんてことがよくある。
そんな時は、setIntervalしてみるとたいていうまくいく。
特に引っかかったのが、アプリ起動時に設定画面を開くようなアプリ。
初期起動時は設定画面を開く前に、メインの部品を全部配置してから設定画面を開くようにしているのに、メインの画面の部品が設定画面から呼び出せない。
setIntervalでぐるぐる回して値を見てみると、確かにある。
参照がまちがっていたのかとかいろいろ悩んだけど、
結局設定画面を開くタイミングが早すぎて、メインの部品を起き切っていないうちに動いてしまってるっぽかった。
var s = setInterval(function(){
if(オブジェクト){
処理する;
clearInterval(s);
}
},100);
としておけば、0.1秒待ってから処理されるし、仮にその瞬間でも終わってなくても0.1秒ごと確認するからセットされた時点で次の処理に行く。
古いFlashではよくあるバグというか潜在的な問題で、全く同じ対処をしていたけど、
Titanium Mobileもまだ怖い部分が多いな。
そういうのは、ガチガチのプログラマは許せないんだろうな。
| 1/5 pages | >>








