ラベル bucho- の投稿を表示しています。 すべての投稿を表示
ラベル bucho- の投稿を表示しています。 すべての投稿を表示

2014年9月17日水曜日



週末に「普段使いのシンプル電卓 malc」 のバージョンアップ申請をしました。 iOS8対応、iPhone6対応を含む多くの機能強化、新しいiTunesConnect と 盛りだくさんのアップデートです。 (申請しちゃったら、あとは すんなりレビューを通ってくれることを祈るしかありません)

さて、今回は、キーボードの進化について


きっかけはACキーとBSキーの切り替える機会が多くて面倒だったこと。これを何とかできないかを考え始めました。

最初の思いつきでは、
  • ACキーとBSキーを縦に並べ、その代わりにカーソルキーとして使うキーを1つに減らす 
  • カーソルキーを長押ししたら、すぐ上に、4つのカーソルキーすべてが表示される
という仕様でした。これならACキーとBSキーはとても使いやすくなります。
ただ、色を変える上下キーは滅多に使わないけど、左右キーは良く使うし同時に使う事が多いので、切り替えは面倒そう。 ということでボツにしました。

さきほどのアイディアを改良して、OS標準の日本語入力キーボードのように、フリック入力する方法で解決しようと思いました。
  • 長押しで、キーの上下左右に、隠れていた上下左右のカーソルキーが表示される
  • 表示前でもフリックで入力できる
という仕様です。 ただ、カーソルキーを左端や右端に置けなくなるのでボツ。

ここでいったん検討のキッカケまで戻って、なぜACキーとBSキーを切り替える機会が多いのかを考えました。 
まず答えを求めた直後に、ACを使うことが多いのは想定どおり(ここはACが表示されているのでOK)。 問題は、答えの数字を再利用しないのに、続けて数字をまちがって打ってしまった場合にACを使うこと、しかもその頻度が多いことだと気が付きました(その場合は、BSキー表示から ACキー表示に手動で切り替えないとダメ)。
自動的に答えが再利用されるより、計算結果を使う場合にはメモリをタップして、直前の答えを入力してもらう方が自然のような気がします。 そこで次のような仕様にしました。
  • 「答えの再利用をするか? しないか?の仕様を選んでもらう。デフォルトは「再利用しない」
  • 再利用されない時の答えを、式入力の時より明るい色の表示色にする
2つ目の仕様は、よく見ると答えが再利用されるかが見た目で区別できるようにという目的です。
プログラム的には、UITextViewのtext色よりplacehold色を明るくしておきます。そして再利用されない場合は答えは placeholdに代入します。これでキーを打つと答えが消えるというのが自然に実現できます。

これでおしまいにしてもよかったのですが、Cキーを付けたかったこともあり、キーボードはやはり進化させることに。ACやCキーは、他のキーに比べて誤って押しづらい方がいいということもあり、結局ACキーを独立させました。 場所は、キーボードの領域内ではなく、この記事のトップ写真のように、主表示(物理的な電卓でいうとLCDの部分ですね)領域の左上端にキーを置くことにしました。

さらにさらに、キー配置のカスタマイズができるようにしました。
大昔にCASIOが決めたという電卓型レイアウトは、下から0,1,2,3 ...と配置されます。 一方、 電話型(もう誰もそんな言い方しないプッシュフォンですねw)レイアウトは、上から 0,1,2,3 ...と配置されます。どちらが良いかは人により違うかもしれません。 テンキー以外も、デフォルトでは 演算子が左端 カーソルや=が右端ですが、逆に配置したり、両方とも右側に集めるというレイアウトも選べるようにしました。
具体的には 次のようなプログラミングにしています。
  • ボタンの生成と、配置を同時に行うのをやめ、分割して行う。
  • ボタンを生成(フォントサイズの調整、イベント登録)し、キートップの文字列をkeyとするNSDictionaryに ボタンオブジェクトを格納しておく。
  • 配置パターンは、キートップの配列を複数パターン作っておいて、設定でそれを選択する。
  • 全体レイアウトとテンキーレイアウトが入れ子関係なので、上記配列も入れ子関係で表現しておくき、その2つでボタンを配置を行う。


おまけと言ってはなんですが、キータッチを改善するために、BSとAC/CはUIControlEventTouchUpInside、それ以外はUIControlEventTouchDownでイベント処理するようにしました。 UIControlEventTouchDownにできるのは、ボタンが大きいデザインならではの修正です(ボタンが小さいとミスタッチが増えでかえって使いづらいと思います)。 この修正で、式の入力などはボタンを押したタイミングで反応するので、即応性が高まりました。修正系は押し間違えを防ぐため、わざと即応性を落としボタンを離したタイミングで反応するようにしています。
標準アプリも含めて他のアプリではあまりされていないようなとても細かい修整ですが、キモチ良く使っていただけると嬉しいです。



photo by 

2014年9月13日土曜日

今回は、UIWebViewがロードに失敗する現象についてです。

iOS8 で事前に遊べるXcoce 6 GM seedで、いままで動作していた以下のコードがfailする
[myWebView loadRequest:[NSURLRequest requestWithURL:url      cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60]] ;

具体的には、iOS8環境では、1回目は上手く動いたあと、Xcodeで停止し 再度プログラムを起動すると
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

が呼び出されてしまいます。(他のOSバージョンならちゃんと動く)
エラー内容は code:-1100 The requested URL was not found on this server.

そんなアホな、そのURLってローカルリソースなのだけど。。。 (キャッシュがあればキャッシュを使ってね! っていうポリシーに関係してるのかな)

あっ、そういえば 以前 そんな経験が!(経験は積んでおくものですねw)  前回は、キャッシュが動かなかっただけだったけど、また原因は、iOSシミュレータのバグ? ですかねぇ。
実機にiOS8を入れたら動いてくれるといいのだけど。


2014年9月8日月曜日


普段使いのシンプル電卓 malcの今回のバージョンアップは盛り沢山になってしまいました。といってもまだアップルへの申請もしていません。まだ、テストやストア用の画像を作ったりしないといけません。
予告の意味を含め、ざっとリストアップしておきます。

◆ACキーを独立させました

当初思っていた以上にACキーとBSキーの切り替えをよく使うこと、そのせいで使いにくいことに気が付きました。 考えた末、最終的にはACキーを独立させています。

◆キー配置をカスタマイズできるようにしました

私にとっては自然なキー配置なのですが、他のアプリとキー配置が違うので、ユーザが既に慣れたキー配置があるのではないか?と思い6種類の配置から選択してもらえるようにしました。

◆C(Clear)機能を作りました

標準電卓でもAC(All Clear)機能の他にC(Clear)機能があります(これらは自動で切り替わるようになっていて、ACが式全体を Cが直前に入力した数字を消去します)。 同等の機能を提供します。

◆メモリーの消去

式や答えのメモリーを消去できるようにしました。

◆キータッチの修正

旧バージョンでは、キーから指を離したら入力されたことにしていましたが、指を置いたタイミングで入力されるようにしました。 細かいですが、応答性が良くなったと感じます。

◆答えの再利用

旧バージョンでは、=を押して出てきた「答え」が 必ず次の式の入力の歳にも残っていて、不要ならACキーで消してもらう仕様でした。 そのままの仕様も設定で選べますが、デフォルトでは、「答え」は次の式の入力を始めると消えるようにしました。

◆計算後アニメーション

電卓の利用目的である答えが出たところで、キモチ良さを演出できないか?と思い、軽めのアニメーションをつけてみました。

◆レビュー誘導

ストアでのレイティングやレビューが殆どないので、ジャマにならない誘導路をつけてみました。



photo by 


2014年9月6日土曜日

今回はいつもとまったく違う話

頸椎症という病気になりました。
首の骨が経年変化で変形して神経を圧迫して、痛みや痺れが出るという病気です。(整形外科だし、物理的な異常なので怪我っぽいキブンですが、とりあえず病気と言っておきます)

まず、整形外科に行きました

昼間から寝違えたような症状になったことと、仕事中は殆どPC操作をしていると言ったとたん、「レントゲンを撮りましょう」。 すぐに、ピンときたようです。
診断を受け、薬が出てオシマイ。
今すぐ何とかして欲しいレベルなのだが、まぁ薬飲みましょう。

薬飲んで、数日安静に

薬を飲んでも直ぐにラクになるわけではないようで、私は下を向くとツライので、家にあった一番低い枕に替えて、とにかくよく寝ました。薬のせいか、いくらでも寝れるかんじ。翌日会社に行ったらつらくて、翌々日からまた休暇。また寝ます。 
しばらくすると、薬のおかげで首の痛みはとれたのですが、腕のしびれには全く効果無し。ネットで調べるとそういうモノらしい。

首用のサポータを購入

ネットで頸椎固定カラーなるモノをされている方もいらっしゃる。整形外科でそんな話しは全くなかったなぁと思いつつ、Amazonで購入。この季節少し暑いw。他のと違って洗えるのがウレシイ。
出かける時に使ってます。効果はそこそこという気がするものの、人混みでも何となく安心!というのが大きいです。買ってよかった。 

他に使っているもの

しびれは日によってキツさが違うものの、夕方になるにつれて我慢できなくなるくらいきつくなることが多い。 薬は効かないので、緩和するものとして 美顔ローラを使ってます。 「こんなものが!」という感じですが、とても良い感じなのが面白い。

考えたこともありませんでしたが、下を向けないとエスカレータが怖い。真下は見えないので横目で黄色い枠を見ながら乗ると上手く乗れます。階段は手すりのカーブがかなり階段の始まり終わりの位置の手がかりになります。

妙齢のプログラマな方は、ぜひ作業中の姿勢にご注意下さい。 同じ病気の方にご参考になれば。

2014年5月24日土曜日

ハマったことシリーズ No12.

今回は、UIWebViewのキャッシュの話しです。

いままでUIImageなどで作っていた部品をクラウド上に置いておいて、自由に画像を差し替えられるようにしたい。 なので、UIWebViewのキャッシュを使う事を考えました。
いろいろググっていると、iOS5からUIWebViewのキャッシュはディスク上にも保存される という記事を見つけ、できることを確認し、コーディング。

[myWebView loadRequest:[NSURLRequest requestWithURL:url      cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60]] ;

という感じにしておけば、オフラインでも画像表示でき、オンライン状態であれば 画像の差し替えもできるはず。 さぁテスト!

ここでハマリました。

そう、ぜんぜんキャッシュされない。 
原因は、iOSシミュレータのバグ?でした。 iOS6.1のシミュレータだけキャッシュされない。実機(6.1.3)ではしっかりキャッシュが動いてくれました。

最初はシミュレータで!というのも凝り固まらないようにしないとですね。

2014年5月21日水曜日

ハマったことシリーズ No11.

今回は、「UIViewControllerは、まず消える!?」です。  プログラマ以外の方には、意味不明のお話です。

自分の画面のためのクラスは、UIViewControllerを継承して作るお作法ですよね?
その元のUIViewControllerの標準メソッドの (void)viewWillDisappear:(Bool)animated のお話。

これ、画面が表示されるときに viewDidLoadの後に呼ばれることがあるのです。 ていうか自分で呼んでましたww。当然、通常は呼ばれないようですが、拾ってきたカスタムセグウェイの中で、一度rootViewControllerに設定して回転方向の修正をし、再度独自トランジッションをかけていたのです。

これでハマリました。

viewDidLoadで、addObserver: forKeyPath: options: context でオブザーバ追加し、
viewWillDisappearで、removeObserver: forKeyPath:でオブザーバ削除をしていたのですが、
待てど暮らせど、observerValueForKeyPath: ofObject: change: context: が呼ばれない。

そりゃそうです。 追加した直後に削除してりゃ、呼ばれるわけない。
設定してないときに removeObserverすると例外で落ちるので、フラグを使って設定してなければremoveObserverを呼ばないようにしていたので発見が遅れました。

原因が分かれば対処は簡単。viewDidAppearで addObserverするように変更し一見落着です。

2014年1月8日水曜日

カラバリ

 後付でカラーバリエーションをつけることにしました。つまり、キーボード、メモリーの部分の色をいろいろ変えられるようにしようと。 

 パーツがいっぱいあるので、それぞれ色を変えるのは結構面倒です。 しかも実は、一色というわけにはいきません。メモリーは視認性が悪くならないように縞々にしています。
 その面倒を解決する工夫としては、キーボードと メモリーのパーツは 非常に透明度が高い白や黒で着色しています。 つまり、それらを通して一番裏のUIViewが見えているわけです。 なので、このUIView1つだけの色を変えればよいわけです。 (実際には、入力中の計算式の表示エリアの文字色も変えてます)

 5cのカラバリに合わせ、malcは Apple Storeの第一画面もカラバリです。 アイコンもカラバリを意識したデザインです。  そんな一押しのカラバリですが、こんなとても簡単なシカケでできています。



2013年12月28日土曜日

名前

 パートナーから名前の由来を聞かれました。
 Memory Calculatorの略称で、Mcalc、発音しずらいので、Malcにしました(テキトーw)。なんか「まるく」って音がかわいいかなと。 短いのも気に入ってます。
 ググっても、類似品はなさそうだし、英語での変な意味もなさそうなので Malcに決定しました。 

 もうひとつ、アプリの名前を考えます。ストア用の名前は別な名前が付けられ、アプリの特徴が分かり、検索を意識したものがいいということで、「普段使いのシンプル電卓」という修飾子を付けました。毎日のちょっとした計算に使ってもらいたいという気持ちから来ています。

 アイコンが円で構成されているのも、色の三原色の意味もあるのですけど、「丸く」からきているのではないかと勝手に思っていたり。 アイコンは、いつものようにパートナーがデザインしてくれているので、勝手に思っているだけですけどw。

2013年12月18日水曜日

コーディングスタート

 設計ができたので、そろそろコーディング開始です。
 まずは電卓なので、数式から答えを求める計算ロジックを作ります。 折角なのでw、ちゃんと優先順位つきのものが作りたい。1+3*3が先に足し算をして12になる電卓もあるけど、算数のルールどおりに掛け算を先に実行して10になってほしい。

 Rubyなら文字列で式を渡せば計算してくれたりしますが、どうやらそんな都合よいことはないので、自力で作ることになります。
 すぐに思いだしたのは、yacc, lex。大学の授業の課題で電卓作りました。 探せばソースもあるだろし、C言語なので使えると思うけど、コードが大きくなりそうな気がするのでボツに。
 次に思い出したのは、forthというか逆ポーランド計算(RPN)。懐かしいとか思いながら、これで作ることにしました。
通常の式からRPNに変換するために、2状態のオートマトンとスタック2つを使いました。 RPNになっちゃえば、計算は簡単。 演算子の計算に必要な個数の数字をスタックから取り出して計算するだけw。

といってもテストが煩雑なので、今回はじめてテストコードを書いてみました。 アタマでは分かっていてもやったことのないテストファースト。 なかなか面白いと思いましたが、この手のテストは教科書通りなので、簡単だったからかもしれません。 UIとか通信とか絡むと、難しいのかも。

2013年12月15日日曜日

広告

 普段使いのシンプル電卓malcの開発日記のづづき です。

 広告を入れたいと思いました。 理由は、使ってもらえているのが分かるから。 ダウンロード数だと、どのくらいの頻度で使ってくれているかまでは分かりません。落としただけで使ってないかもしれないし、もしかしたら毎日使ってくれてるかもしれない。 でも、広告をいれると、そこまで分かるというのがモチベーションになります。
(実際、収入という意味では、あまり意味のある数字にはなりません、いまのところw。) 

 そういう理由ということもあり、広告は出すが、操作の邪魔はできるだけしたくない。 他の方の作品のレビューで、「起動時に広告読み込みがあるせいでサッと使い始められない」というのがあって、気になったのです。

 というわけで、広告の表示タイミングを工夫してみました。 起動直後は、広告は表示されません。 計算が終わったら、つまりイコールを押して計算結果が出てから広告を表示します。また、メモリーの領域を縮めて表示するので、メモリーを操作したら消えるようにしました。

 実際に使ってみて、邪魔になってない気がしています。自己満足な感覚でないといいのですが。

今回は、iPadのプログラマーな方むけのとっても技術的なハナシです

iPadのUIPopoverを できるだけStoryboardを有効活用して作る場合のお話です。
(なお、Storyboardを使わないパターンは UIPopoverControllerチュートリアル その2 などが参考になりました。)


以下が最善の策かは分かりませんが、とりあえず動いているし、いろいろググって調べたものと比較しても簡単です。



■StoryboardでUIPopoverを設定する
SegueにIdをつけて、StyelはPopoverを選びます。これで接続されたUIViewController(destinationViewController)が Popoverで開きます。

でも、これだけだと

  • 自分自身の多重起動も含め、同時に二つ以上のPopoverが表示されます。
  • 閉じるボタンを作れない

という問題があります。


■Popoverを呼び出す UIViewControllerで解決する
呼び出し元のUIViewControllerに -(void)prepareForSegue: sender:を追加し、その中で

  1. staticなUIPopoverController変数を定義し、Popoverの二重起動を防ぐ
  2. Popoverで開かれるUIViewControllerにPopoverControllerを通知しておく
  3. 上記2つの処理はsegueがUIStoryboardPopoverSegueクラスの時に実施する

を行います。 あとは、呼び出されるUIViewControllerから PopoverControllerが参照されるので、 [self.popc dismissPopoverAnimated:YES] ; とすれば消すこともできます。


ソースも付けておきます。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    static UIPopoverController* popoc = nil;
   
    if ([[segue identifier] isEqualToString:@"SplitViewFlip"]) {
        MasterViewController* mvc = [((UISplitViewController*)
                                 [segue destinationViewController]).viewControllers objectAtIndex:0] ;
        // mvc関連のデータ受け渡しをする
    }
    else if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]]) {
        if ( popoc )
            [popoc dismissPopoverAnimated:NO] ;
        popoc = ((UIStoryboardPopoverSegue*)segue).popoverController ;
        if ( [segue.identifier isEqualToString:@"PlanPopover"]) {
            PlanViewController* pvc =(PlanViewController*)[segue destinationViewController] ;
            pvc.popc = popoc ;
        }
    }
}


2013年10月29日火曜日

コンセプト


 メモリー機能を特徴に決めたところで、次はコンセプトづくりになります。
 関数電卓を使う、理系なヒト・理系な利用場面なら、普通のメモリー機能でもいい気がします。逆に言うと、使ってほしい人や場面として、普通の人用、普段使い用、と絞込みました。 ステレオタイプ的に言うならば、OLさんをイメージしてみました。

 絞り込んだターゲットに合わせると、多機能路線ではなく、感覚的な面に訴えるべきということで、シンプルなGUI、流行のフラットデザイン、カラバリという路線が浮かびます。


 後付ですが、5cのカラバリに合わせると見栄えがいい・・・ ということで、のちのちカラバリは重要度が上がっていきます。 ストアの第一画面も、カラバリが一押しです。 アイコンもカラバリを意識したデザインに変わっていきました。カラバリの変更も画面切り替えしないようにしてます。


 そのようなコンセプトの電卓について、ストアに上がっている他の方の作品も調べてみました。同系アプリの中では、メモリー機能の工夫が味付けとしてちょうどいい気もします。 綺麗系楽しい系から、楽しく使える系に位置づけを少しだけフルというか。。。

 シンプルなGUIにするために、基本的に画面切り替えをしないことにしました。普段使いを考えて、計算機能を四則演算とパーセント演算だけに絞り、代わりに標準のテンキーに比べても、キーを大きくしました。 この大きなキーとフラットデザインが合いそう。
 入力中は式の入力に集中できるように、計算途中結果の表示は端折ることにしました。これで、イコールを押すまでは、エディターのような使い勝手になります。そして、バックスペースとカーソル移動をつけて、式を編集できるようにして、打ち間違えを直したり、式を再利用するときにも便利なようにしました。 

 たかが電卓ですが、決めるべきオプションは結構沢山あるものです。

2013年10月25日金曜日


先日、 iPhonePLUSにも載ってウキウキですw
今回は、crenieqの新アプリ誕生!malc(マルク)でもご紹介した「シンプル電卓 malc」の開発日記的なものを書きたいと思います。




はじまり


 なぜ電卓を作り始めようと思ったか。。。 なんでだっけ?w (オイ!)

 作りかけがいくつかあって、それぞれそれなりに進んでるけど未完成。 達成感を味わってモチベーションを維持したい! と考えて、簡単に完成しそうなネタとして選んだのがはじまりでしょうか。。。

 といっても、たとえ小さくても、新しいアイディアがなければ作る意味がない! 第一楽しく作れない!ということで、メモリー機能を簡単な概念にする方法を思いついたからかもしれません。

電卓によくあるメモリー機能。M+とかM-とか、分かりにくい機能という気がしませんか? エンジニア視点からすると 理解はできるですが、あらためて利用者視点で見ると「よく観るけど、何でこうなの?」という気がします。
 メモリー機能は、要は「値が再利用したい!」ということだと解釈しました。
だったら、履歴に残しておいてワンタップで再利用できるようにするのが自然な気がして、GUIをイメージしました。

 同じネタのものがあっては意味がないので、ストアに上がっている他の方の作品も調べてみました。  履歴が閲覧できるものもありました。 Kalc というアイコンに数字の5が入っているのが印象的なアプリや、アニメーションが美しいLluminoなどが見つかりました。 この2つには後々まで、かなり影響を受けたかもしれません。

両方とも素晴らしい!でも、自分がイメージしたものと少し違う。 
小さな違いですが、別画面で履歴閲覧できるタイプは他のアプリにもいろいろありましたが、沢山一覧できるというメリットはあるものの、一瞬ですが記憶に頼る点が気になりました。 普段、繰り返し使う電卓としては、「あれ?何計算しようと思ったんだっけか?」という一瞬にこだわりたいなと。 
Kalcは、同一画面で履歴閲覧できるけど、再利用がワンタップでできないコピペタイプでした。 これとも些細だけれど、差がある気がして、これを新しいアイディアということで作り始めました。

2013年10月20日日曜日

ハマったことシリーズ No10.

今回は、「アプリ名を間違えて申請した」です。


ストア用のアプリの名前は「普段使いのシンプル電卓 malc」とするつもりでした。どんなアプリか名前だけでも分かるようにと考えました。
(iOSアプリの名前はいくつかあって混乱します。 iPhone上で表示される名前は、単に「malc」です)

ところが、ケアレスミスでアプリ名は「malc」としてしまって、「普段使いのシンプル電卓 malc」の方は説明文に書いていました。

しかも、間の悪いことに、名前は検索対象というのを どこかのサイトで教えてもらっていたので、検索キーワードに「電卓」と入れてませんでした。
結果、最重要キーワード「電卓」での検索が出来ないことに。(トホホ)

キーワードも名前もレビュー開始後は変更できません。
慌てて、次の版を申請することに。あららららw  

ということで、近々 version1.1が出ます、そして、ストア上での名前が変わります。

2013年10月19日土曜日

新しいアプリで、また新たにハマったので記録しておきます。ハマったことシリーズNo9。

今回は、「iAdが表示されない」です。

デバッグしているときには、Test adは表示されていました。 レビュー前に、iAdを使う設定もできて、iTunesConectのステータスもlive adsになりました。 なのにiAdが表示されない! なんでfillrateがゼロなの?

ググっても事例出てこないし、焦りました。
(実は、広告表示の部分、少し変わったことをしていて、appleからNGと言われるのではないかという心配もあったのです。 これについては、また今度書きます。)

仕方がないので、contact usから問い合わせました。 (日本語でオッケーだった事例もあるようですが、メールが来て英語で!と言われてしまいました(苦笑)) 

結論は、申請に通過したばかりの時は、a few days待ったら出るとのこと。

広告なしアプリと思ってたのに…と言われそうで怖いですが仕方ない。 待っている間に、何度もググって事例も見つけました。 

10/16 早朝5時に通過して、待つこと3日。 10/19の9時くらいから、広告が出始めました。 一安心です。

2012年10月13日土曜日


サポータルは、デザイナーさんが作ってくれた、とても綺麗なアイコンや背景、カスタムボタン、応援メッセージなどが一つのウリです。(連載している使い方解説を見てみて下さい。)

それらを沢山配置するのに、作ってもらったpngファイルのリソースファイルを使うわけですが、実機だけ表示できない という現象が起きました。
シミュレータではちゃんと表示されていたのに。。。。 転送ミスを疑い、cleanして再度ビルドしてもダメ。。。  というわけで、これもハマりました。

結論から言うと、「シミュレータはリソースファイル名の大文字小文字を区別しない」

実機はファイル名の大文字小文字を区別するのに、シミュレータはしない。 そこも、ちゃんとシミュレーションしてよー(笑) というわけで、コード上の参照ファイル名の記載ミスでした。


2012年10月6日土曜日


本稿は簡単に。
バージョン番号でハマリました。

1.0 → 1.01 → 1.1と進めようとしていたのですが、ダメなのですね。
1.01と1.1で版数が上がっていないと怒られました。

1.0.1としておくべきでした。 しかたないので、1.2にしました。

と、いっていたら、1.4も申請済みというところまで来てしまったのですけどねw



2012年8月10日金曜日


中の人1号 (グラフィックデザイナーさん)が云っていたように、9月の試合に対応した版をアップルに申請しました。
iTunes用のアイコンサイズが512pxスクウェアから1024pxスクウェアに変わったのですね。。。
急に怒られて、ビックリしましたよ(苦笑)。

無事 waiting for reviewになったのは良いのですが、よく見ると気になることが。
先ほどビックリさせられたアイコン、iTunes Connect上で見ると、gloss effectがかかっているのがとても気になります。
iphone用のアイコンは gloss effectナシなのだけど。。。
気になる気になる

2012/8/11追記
朝起きたらgloss effectは取れていました。安心

2012年7月28日土曜日


公開になり、さっそくバグ修正のバージョンアップ…

まぁ、軽微といえば軽微なバグですが、まさにハマリました(苦笑)

  • 時差を考慮していなくて、試合のカレンダ登録がズレる
  • FIFAランキングが日本は23位から20位。ベネズエラは40位から47位に変わってました。
  • iphoneだと twitter.com/#!/search/realtime/#supportalとかやっても、一日前のが表示される。リアルタイム表示じゃないにしても、試合の応援中に見るには古すぎる。 これを直すために、Yahooさんのリアルタイム検索に変更しました。



Realy for saleになった数時間後に改版申請してるし、アップルの人も呆れるかなぁ…

バージョンアップの作業はここを参考にさせてもらいました。

2012年7月24日火曜日




今回はカレンダーへの登録のお話。
Supportalは、試合の日程をカレンダーに登録することができます。

このあたりを参考にさせていただいて、登録UIを出すことができました。
具体的には、EKEvent, EKEventStore, EKEventEditViewController, NSDateの4つのクラスを使って作ります。

そのNSDateで、ちょびっとハマリました。

特定の日時(2012-08-15 19:30)を、NSDataクラスのデータを作るには、日時を表わす文字列と、その文字列の書式(yyyy-MM-dd HH:mm)と から作るのだと理解しました。

そこで、表現形式の文字列がマッチしていないと、てっきり生成されないのかと思っていたのです。 ところが、大昔の日時がセットされるのですね。

思いこみに気をつけねばという小話 でした(笑)

あと、これ(ロケール)も気をつけねば

--- 
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm"];// 文字列の書式設定


[ NSTimeZone setDefaultTimeZone: [[ NSTimeZone alloc ] initWithName: @"Asia/Tokyo" ] ]; // このアプリ内のTimeZoneを日本に設定


NSDate* date = [formatter dateFromString:@"2021-08-15 19:30"]; // ちゃん
と書式と合ってないと。。。