headerAd

2014年12月13日土曜日

未だにバグいね(多用途カメラの方)

たまにクラッシュレポートがGoogleを通して送られてくる。
原因がよくわからなかったが、広告関連の設定ミスだったようだ。
発生条件はタブを切り替えること。

当然毎回おこるわけではなく、100回切り替えても起きないこともあれば2~3回でクラッシュすることもある。
とりあえず対処版が完成し次第バージョンアップの申請をする予定。

2014年11月12日水曜日

Appのタイプによってダウンロード傾向が違うらしい

まあ、当たり前なんだけどね。

私の作ったアプリって海外でのダウンロードが結構あるんです。
カメラはアメリカ地域が全体の25~30%
ルーペはヨーロッパ地域が全体の40%弱

ルーペはリリースしてからまだ1週間しかたっていないですが、日本よりも海外からのダウンロードが圧倒的に多いです。
残りの60%、全部が日本ってわけじゃないですからね。

とりあえず、ローカライズは英語だけでいいのかな?
フランス語とかドイツ語とか無理です。一応ドイツ語は第二外国語でやったけれど…無理です。

(総ダウンロード数自体は少ないけれど)グローバルなアプリですよ!
などと言ってしまっても決して間違いではあるまい。

2014年10月28日火曜日

1年経過

今日でmac miniを購入してObjective-Cを勉強し始めて1年になる。
完成したアプリはまだ2本しかないが、色々挑戦してみようと思う。

来年の今頃には7~8本目くらいが出来上がっているといいなあ。
(現在開発中のもう一本のものはとりあえずレイアウトを考えている途中で、ある程度出来上がっている。)

2014年10月10日金曜日

iOS8 いいね!

というわけで、何がいいか?というと、メモリ管理が優秀になっています。こちらで気を付けないといけないだろ?っていう突込みは無しの方向で。

写真を撮影すると即クラッシュすることがあるバグ。これの原因は、メモリ管理の失敗によるものです。頑張って可能な限り消費メモリを抑えるように努力してきましたが限界があるようで、5枚撮影するとクラッシュしてしまうところを10枚にする程度のことしかできませんでした。これは撮影した際にメモリリーク(メモリのゴミ)が生じるためで、個人で作成したものであればある程度の対策はできるのですが、フレームワークやSDK(プログラムを構成する構築済みの材料みたいなもの)として提供されているものの場合には、こちらから手を出すことができない場合がほとんどです。つまり、今までは自前の部分をがんばって最適化していたわけですね。

どのOSに対しても言えることですが、昔と比べて最近のものはメモリの扱い方が上手になっています。使えるメモリは有限ですから、上手に扱わないとあっという間に空になってしまいます。そのための手続きがiOS7と比較してかなり上手になっているなと感じたわけです。
相変わらずLサイズ撮影に変更した際には警告文が出ますが、iOS8の環境で使用される場合にはLサイズ撮影も問題なく行うことができます。ためしに撮影したところ、20枚程度ではクラッシュする気配を感じられません。OSの性能に最初からいろいろ任せてしまうのはプログラマとして最悪ですが、できる限りのことをしてあとは天(OS)に任せる。これくらいのことはしてもいいんじゃないかなと思っています。

2014年10月5日日曜日

Colorエフェクトとか

基本的にトーンカーブを使う。
動的色域(ナイトビジョン)とかは、その名の通り周りの明るさからトーンカーブを導出する。

その他のエフェクトは、RGBを直接いじるエフェクトとかツールを使ってカーブを指定してやったりする。
GPUImageは簡単にトーンカーブを読み取ることができるので、便利である。以下の通り、

GPUImageToneCurveFilter *toneCurve = [[GPUImageToneCurveFilter alloc] initWithACV:@"hoge"];

ね、簡単でしょ?

ナイトビジョンの方は、明るすぎず暗すぎずを動的に導出する式を作るのが大変だったけどね。白飛び防止は暗視系の重要ファクターね。0.5秒おきにトーンカーブを変更するので瞬間的な明るさの変化には弱いんだけどね。
あと、露光ターゲットと同期させたりするのも、割と面倒だった。

このナイトビジョンの明るさ調節に用いられる値を導出したことによる副産物が静音時におけるフラッシュ。静音の設定にすると、簡単に言ってしまうとiOSの仕様上、非静音時と同じようにフラッシュを使うことができないんだ。ほかの人がどうやっているかはわからないけど、フラッシュ設定時にはトーチをつけっぱなしにする人もいるね。

2014年9月24日水曜日

どっちだろうね

iOS8の仕様変更が多いのか?私のコーディングが誤っているのにiOS7までは許容されていたのか?

はっきり言って後者のような気がしないでもない。

とりあえず、起動が完了するまではUITabbarControllerのタブをコードで切り替えちゃダメ。4秒ほど固まる。

2014年9月23日火曜日

返事がない、ただのiPhoneのようだ

設定して
Hey, Siri!
と言ってみたが
返事がない。言い方が悪いのだろうか?

2014年9月20日土曜日

ごらんの有様だよ!!!(iOS8的意味で)

いや、ぶっちゃけグーグルさんの方からもレポートをとるようになったんですわ。
これが便利で、クラッシュの原因の特定が捗るんですわ。
アップルの場合には1日に1回しかレスポンスがないけど、こっちの場合にはほぼリアルタイムで情報を取得できるので、作業のできる時には即座に対応することができる。新規の方とそうじゃない方、どこの国の人か、どのバージョンを使っているかくらいの情報はとることができるんですよ。まあ、それでもバグは日常茶飯事なんですけどね。

修正作業するので、もう少々お待ちを。今月中にiOS8対応バージョンを出せると思います。
正直なところ事前情報からiOS8にうまく対応させることができなかったことには問題があると思っています。これは謝るしかない。以前から使って下さっていた人や広告解除をしてくれた人には特に。できるだけ早くVerUpしますので本当に勘弁してください。



広告周りの挙動不審については、googleから最新のSDKをダウンロードして入れ直したら解決しました。UI周りに関しては、iOS8から内部的な変更があったようで現状では手の打ちようがなかったため、iOS8で動作するときに限りiOS7とは違う挙動をするように手直ししました。今後以前と同様の挙動に修正できる可能性はあります。

あと、iOS8で修復作業中に気が付いたのですが、メモリ管理が優秀になったのかメモリ不足でクラッシュすることが今のところない。上手くいくと安定するかもねぇ。

ちなみに、iOS7を継続して使用していて、未だにVer.2台を使っている人は早くアップデートすることをお勧めします。


取り下げろ?iOS7使っている人の方が圧倒的に多いんだからそういうわけにはいかないでしょ。上にも書いてあるけど、主にアップデート的な意味で。


2014年9月18日木曜日

なん…だと?

iOS8では私の開発したアプリが全く動かない。
どうやら、起動時にキャプチャサイズを取得するために使っていたメソッドの仕様変更でもあったのか、キャプチャ(カメラ)が完全に動作を始めるまで待ってくれなくなった。その所為で取得サイズにおかしな値が代入され、クラッシュする。そういうことらしい。

とりあえず、原因が判ったのでカメラが完全に動作を始めるまで待たせる処理を入れることで起動するところまでは修復できた。というか、機能不全に陥っていたところをほぼ修復完了した。が、何故かUIの表示が想定していたものと変わっている。主にテーブルバーの表示非表示切り替え。さらに言うと、広告周りが挙動不審になっている。週末でなんとか残りの部分を修復してしまいたいところ。レビューが滅茶苦茶混んでいるため、修正時間込みでは最速でも2週間かかってしまうかもしれない。



待たせる処理入れたせいで起動が若干遅くなってしまったな。

2014年9月14日日曜日

xcode6gmによる申請の途中経過

30時間ほど前に一応レビュー中のステータスにはなった。だけど、混んでいるようなので、なかなか進んでくれない。
現時点で気になるのは

・Submit後にSubmitマークがつかないこと
・TestFlight用ステータスが強制付加されること

この2つが特に気になっている。
今のまま通ってくれれば、この2点については何の問題もない、ということになるのだが。


2014.10/07
上の二つは特に問題なし。
今は混んでいるから仕方がない事とはいえ、とてつもなく時間がかかった。

2014年9月12日金曜日

うっかりってどうすればなくなるんだ?

悲しくなるくらいにうっかりである。
viewWillAppearの中でsuper classのviewDidApperを呼び出した。これがiOS8のシミュレータで動かない原因だったのだが、5か月間もこんな感じだったのか、これは酷い。
こういう、後々見やすくするためにコメントを書くとかそういう次元の手前で間違っていることが多い。
自分の環境ではなんら異常なく動いてしまうというのが怖すぎる。

これ(アプリ開発)に限らず、随分前からやっておかないと不味いことをすっかり忘れていた。
そっちのほうは問題が表出する前に手を打てた(?)から良かった…のか?

ヨカッタ、コレデ (タブン) カイケツデスネ。
ヨクナイワヨ!


2014年9月9日火曜日

iTunes Connectのメニュー画面が変わってしまったね

使いづらいって人もいるようだけど、私は使いやすくなったと思う。
尤も、再提出しまくる私にとってはアップデートするたびに内部バージョンを上げないといけないという仕様に変更されてしまったのは若干痛いのだが。

あと、新しくなったところと、古いままのところが混ざっているのが多少気に入らないのだが、そこんところどうなんだろうね?

アプリ管理のところは完全に変更になったのに、それ以外のところはメインメニューのアイコンだけ。もう少し何とかしてからアップデートしてもよかったんでないかなぁ。


どこかに追記予定)
ただいまxcode6gmからiOS8対応のやつを申請しています。
なんというか、スクリンショットも増えたし動画も載せられるようになったしで、いろいろできるのですが、xcode6からsubmitしても、submitマークがつかない。”穏やかじゃないですね”
これはなんか判ったら普段役に立つこと何も書かない私でも、さすがに書いたほうがいいな。

ただ、ほかの方が早く解決してしまう可能性が高いかな。
とっとと解決させて、”よかった、これで解決ですね”と言ってみたい。

2014年9月7日日曜日

一部環境の方へ、もう安定性を上げられないかもしれません

iPod Touch5
iPhone4 or 4s

多分これ以上、安定性を上げられないと思われます。
メモリを大量に使用する機能をオミットするようにはしていますが、それでもメモリが不足しています。画像処理用のフィルタを多重掛けする以上、ある程度のメモリ消費を抑えることはできません。
上記環境の場合、メインメモリの約5割を持っていくことになるかと思われます。
今後も対策を考えてみますが、劇的な改善は見込めないと思われます。
それでも使ってくださる方は、これからもよろしくお願いいたします。

その点iPadは比較的旧世代でもメモリが1GB搭載されていて扱いやすいね。CPUおよびGPUの性能上オミットしないといけない機能はがっつり削ってあるけど。

2014年8月21日木曜日

QRコード読み取り実験成功

とりあえず、読み取るところまでは行った。ルーペ画面にQRの項目が増えた。もちろん拡大して読み取ることができる。読み取ることができる。読み取ることはできる。
大事なことなので少し変えて何度も言った。

連絡先とかのフォーマットがわからない。
とりあえず、次のバージョンではURLを読み取った場合にはsafariを呼び出す実装にしよう。

気が向いたらコードを載せる。普通のAVFoundationの実装ならいっぱいあるが、GPUImage直結の実装には需要があるんじゃないか?

追記)
とりあえず、電話番号とメールアドレスとURLに関してはアクションビューから電話したりメールソフト立ち上げたりsafariと連携したりすることができるようになった。

さらに追記)
テーブルビューに読み取った情報そのものと、URL、メールアドレス、電話番号などのリンク系を個別にて表示、簡便なアクセスが可能に。がしかし、いまだに連絡先のアクセス方法がよくわからん。


さらに追記 2014.08.27)
連絡先の入力に対応する方法が判った。あとは微調整。

さらに追記 2014.08.29)
機種依存文字対策で手こずる。



かゆ・・・うま

2014年8月13日水曜日

AppBankにて広告掲載中

いろんなアプリの紹介があって良いですよね、AppBank。
そんなAppBankですが、ついに私もアプリを載せてもらうことになりました。

いや、レビューとかじゃなくてAppBankの広告を載せたらほぼ確実に乗っけてもらえるやつなんですけどね。5月くらいからその権利があったのですが、何せこのブログのタイトルみたいな感じでしたから。引き延ばして結局8月に入ってから申請。というか、Ver.2.2.2公開時に申請してしまったので、Ver.2.2.3の更新が間に合ってよかったです。レポートを見た感じ、比較的に安定していますから。

さて、どんな人がアプリをダウンロードしてくれるのか。楽しみです。

さっそく効果は表れているようですが、
はたして、ダウンロード比率 JPN : USA+α = 2 : 1の比率に変化は現れるのでしょうか?

2014年8月4日月曜日

早すぎたんだ、腐ってやがる。

多分そういうことだったんだろう。Ver.1.0.0を4月にリリースして今でもバグに悩まされるとはね。元々せっかちな性格なだけに、どこまで行ってもバグはついて回ると思うけど、使ってくださっているみなさん。これからもよろしくね!
やっぱりデバイス関連の扱いにはいまだに慣れない(ロジックの部分は4月の時点で完成形だったんだよ!! いや、本当に。)。

とりあえず、次のアプリはゲームです。

2014年7月25日金曜日

GPUImage周りの話

多用途カメラではGPUImageっていうSDKを使っている。

2014年7月24日木曜日

これは酷い。頭の中までバグっている。 Bug is daily...

なぜ”考えるな、感じろ”の引用元として燃えよドラゴンポリスストーリーとを勘違いしたんだ?
Oh, Why I was misunderstood movies of the quoted source of "Don't think, feel!"?
4日ほど前になんとなく引用元を書き込んだ時に間違えた。
Make a mistake when writing of the quoted source somehow about before the 4 days.
何かを考えているうちに色々混ざったようだ。
I was mixed in various ways while I think of something.


これは酷い。頭の中まできれいにバグっている。
This is terrible. My head has the bugs!
まさにバグは日常茶飯事
Exactly, Bug is daily occurrence!

2014年7月22日火曜日

ゼロ除算 & nil インスタンスの恐怖(ARM)

どうやらx86系と違ってARM系ではゼロ除算しても”よくわからない値”が入ってクラッシュしないらしい。いっそクラッシュしてくれた方が問題個所の特定ができて好ましいのだが。

ポインタなんかも”よくわからないアドレス”を参照しているのか、インスタンスを作成する前のクラス変数に対して値を入力してもクラッシュしない。

Objective-Cでは注意しないといけないポイントが増えたな。気を付けないと。

2014年7月13日日曜日

慌てるのは良くない

慌ててLarge解像度の警告文を考え、ろくに校正もせずに申請し、今になって見返してみると明らかに酷い文章だった。日本語もそうなのだが、英語が特に酷い。

一応、警告の仕様変更が決まったので、細かいバグ修正などと一緒に一週間後を目途にして再申請をします。

警告文の下には
Large解像度を使う。
Medium解像度を使う。
Small解像度を使う。
XSmall解像度を使う。
のように全部の解像度を出すようにしました。

2014年7月9日水曜日

Stuff

デスクリムゾンの”上からくるぞ気をつけろ””狂って即死する”に匹敵するくらい有名なアレ

”Staff”のスペルミス。

いや、本当に、これと同じようなスペルミスしまくっているわ。
middle→midleとかね。ほかのことも直さなきゃいけないけど、明らかに色々酷いね。
まあ、このミスの場合には、結局単語自体が変更になってmediumになるんですけどね。

あれ?”Flont”Cameraってなんだ?

これはひどい。

2014年7月2日水曜日

iPhone4s > iPhone5

iPhone4sでは動いているのに、おそらくiPhone5と思われる機種でクラッシュしていると読み取ることのできるレポートが謎である。本当に謎である。

勿論真っ当に動いているiPhone5もあるでしょう。多分。

だから、どう解決しろと…

2014年6月14日土曜日

わからない・・・わからないな・・・

クラッシュレポートからiOS6.x台で問題が起こる事は分かった。残念だけど原因が特定できないので、サポートを打ち切る事にした。

しかし、”ごく一部ながらiOS7.1.1でクラッシュしている”人がいるようだ。”大多数の人に問題が無い”ので、何らかのバグが潜在しているのか、よほど”メモリ不足な状態”で無茶な使い方をしているのか・・・特定できない。

わからない・・・わからないな・・・

2014年5月29日木曜日

グローバリゼーション

グローバリゼーションといっても、英語説明文や日本語以外の環境では英語のオプション画面が出るようにしただけなんだけど、やった甲斐があった。

元々3分の1は国外のダウンロードだったけど、昨日今日は特に多い。
やっぱり、やれるだけはやっておくべきものなんだな。

英語苦手、なんて言っている場合ではないわけだ。

2014年5月28日水曜日

多用途カメラ使い方 1

とりあえず、起動するといきなり広告が出てくるので邪魔ですね?まずはこれを消す。

以降すべてホームボタンが下の場合を前提として説明します。

2014年5月27日火曜日

矛盾

この間確認したところ、インタースティシャル(全画面)広告のクリック単価が約30円だった。
で、広告解除が100円。内手元に入ってくるのが70円。そう考えると、たくさん広告を踏んでもらったほうが(こちらにとって)お得であるという。そんな矛盾があるのだけれど、まぁ、自己満足ということで。

バナー広告は誤クリックしないような配置にしてあるけど、全画面広告はウザいうえに表示のタイミングが一拍遅れていたりするのでry

2014年5月26日月曜日

検索ワードについて

最近気がついたのだが、どうやら複数言語で説明書をかいてあると、全ての言語のキーワードに対する検索結果が適用されるようだ。これって当たり前のことだったかな?

つまりだ、キーワードの設定は...これ以上言う必要はないな?

2014年5月25日日曜日

”多用途カメラ”今後の予定

先ほど新バージョンの申請が通りました。 
バグはアプリのレビューにも管理者のメールアドレスにも連絡がないので多分ないと判断します。 Ver1.2.0これにて週刊アップデート終了とします。あとはちまちまと実装して月一くらいでアップデートします。 

これからは、ちょっとしたゲームでも作ろうと思います。 いや、本当に楽ですね。ライブラリが優秀で、2Dものであれば本気でやれば1週間くらいで1本作れるのではないでしょうか? あたり判定とか、移動の演算とか、昔DirectXでもゲームを作っていたので、その辺は慣れています。来月上旬をめどに1本行ってみたいです。だけど絵がかけねぇ…その辺で少し時間を食うかも。
諸事情により少し遅れるかな。
(2014/5.29 追記)
多用途カメラ中に今まで気が付かなかった誤字誤訳を発見。レビュー機能と一緒にVer1.2.1として近日中に公開予定。

2014年5月21日水曜日

お買い上げ、ありがとうございます。

先ほどダウンロード数を確認していたところ、お買い上げ記録が! 初の広告削除のお買い上げです。 日本の人だということはわかるのですが、当然どこの方かはわかりません。 とにかくありがとうございます。今後一層の精進をしていきたいと思います。

2014年5月14日水曜日

原因の特定

iPhone5s以外でフリーズする現象の原因としては、カメラモードでのハードウエア的な最大フレーム数にあると考えられます。これに関して、実は自分の所持するiPad Airでも同様の現象が起き、”iPadで動作したとき”にはフレーム数を落とす設定にしてありました。
で、まさかiPhoneでも同様の現象が起こるとは思っていなかったわけで、デフォルトで30fpsの設定にしていました。どうやら、iPadおよびiPhone5以前(iPhone5c含)では24fpsが限界のようです。
ビデオモードでは30fps以上でも問題の無いようで、iPhone5およびiPhone5cでは60fpsまで使用できるように設定してあります。

主な原因はこれであると考えています。

2014年5月12日月曜日

ついてこれる奴だけ(ry ッ!!

先日久々に会った友人に多用途カメラを評価してもらったところ、厳密には違いますがタイトルっぽい回答が返ってきました。

一歩間違えると、使ってもらうどころか”ムラハチ”にされかねないのでもうちょっと単純でいいのではないかという話です。よって、以降のバージョンアップのどこかで単純に扱えるイージーモードとフルに扱えるアドバンスドモードをスイッチで切り替えられるようにしたいと思います。

更新できるネタが増えました。ありがとうございます。

でもその前に、5s以外でも使えるようにしないとならんね。
あらかたコーディングは終わったけど、テストしてもらわんといけない。

2014年5月11日日曜日

レビューありがとうございます。感謝の気持ちを忘れません。

別にどこかの会長みたいに正拳突き何万回とかしませんが

レビューしてくださった方本当にありがとうございます!!

自分の開発環境であるiPhone5s以外では動かないってことを今まで知らなかった(概念自体がなかった)ので、それを知ることができたのはとても大きな一歩です。昔の哲学者も言っていましたが、知らないってことを知ることはとても大切なことです。
昨日久しぶりに会った友人の5cにインストールしてもらっても動かなかったので、まともに動くのはやはり5sだけのようですね。はい、笑えません。

とりあえず、脳内に記憶してあるコードを確認してみたところ怪しいところが3か所(イニシャライズの一部トリッキーな部分、スプラッシュ全画面広告の停止時の復帰処理、広告終了時のフレーム/秒)見当たったので、今晩自宅に帰り次第さっそく修正作業に入ろうと思います。
公開は審査の関係上、週末になると思います。

例によって説明文の頭に深刻なエラーについて一文添えてありますので、

m9(^Д^)プギャー


するなり好きにしてやってください。


どうも4sの筐体判別とは別問題のようですので、筐体判別周りを修正しても結局は動かなかったということです。前の記事のやっちまったZE!は別にやっちまっていたわけではなかったようです。


しかし、修正はちょっと骨かもしれん…なんせ、実機がないから"待った!"みたいに揺さぶる感じでしかアップデートできん 。
AdHocで友人に頼むか。



2014/05.11 15:30追記

怪しいところ其之四 AdMobのSDKが古かった

(つい最近新バージョンを公開したらしい)

こういうのもよく見ておかないといけませんね。本当にすみません。

2014年5月10日土曜日

やっちまったZE!


昨日、出先でAppStoreでのダウンロード実験をしたところ、何故かVer.1.0.2がダウンロードされ、広告フリーズが生じました。自分は旧バージョンがダウンロードされていることに気が付かず、ヤバい、新規に申請したやつやVer.1.0.3でも落ちるのではないか?と思い、Ver.1.0.3の差し止め及びVer.1.1.0のデベロッパーリジェクトを行いました。

しかし、よくよく見てみると何故 かVer1.0.2がダウンロードされており、それを削除したうえでダウンロードしなおすとVer1.0.3をインストールすることができました。よっ て、Ver.1.0.3の差し止め解除をすることはできましたが、デベロッパリジェクトに関してはどうすることもできず、用件を済ませて帰宅できる日曜の夜までは何もできません。初のマイナーアップデートでいきなり失敗。これはひどい。

2014年5月3日土曜日

本番環境でのテストの仕方

いろいろ調べてみてようやく分かった。

とりあえず、個人開発用。

どうやら、まずは普通にSubmitする時のように"Product -> Archive"でコンパイルして、"OrgnizerでSubmitと同様にDistributeを選択"し、さらに"Save for Enterprise or Ad Hoc Deployment"を選択する。それから本番用に用いるプロファイルを選択してお好みの場所へ保存。

「あとはiTunesへとぶっこんでドロップしてそこからインストール」

例のインスタンスハラキリバグが再現できました。
ついでに言うと、今回は大丈夫であるということもわかりました。
ということで、今後はこうやってテストができるということで、一安心です。

2014年4月30日水曜日

インスタンスが自害した・・・

させたのは私のプログラムミスですけどね
忍殺(ニンジャスレイヤー)的に言うとデリゲート=サンとインスタンス=サン、ハラキリバクハツシサン

というわけで、ツイッターのほうでもつぶやきましたが、おそらく全画面広告終了後にアプリが落ちる原因はデリゲートメソッド内で自分自身にnilを渡すという意図・意味不明なコードのせいであると思われます。

2014年4月24日木曜日

バグ手直しが多過ぎてコードについて書けない

もうね、完全に自業自得なんですが、多機能カメラの公開を一時停止いたしました。
ていうか、せざるを得ませんよね、こんなのじゃ。

全画面広告をキャンセルすると落ちるという現象、シミュレータや実機テストでは全く出ませんでした。原因はなんとなくわかったので、1.0.2で多分直っていると思います。

2014年4月18日金曜日

アプリを作るうえでの姿勢、昔を思い出す

大学時代に所属していたプログラミングサークルの先輩が語った、ソフトウエアを作るうえでの姿勢。シェアウエアとして存在するソフトウエアに対してフリーウエアでそれらを上回るものを作り駆逐していくという、かなりチャレンジャーな姿勢だったりする。

まあ、広告出したり、解除用の内部課金とか実装している時点で、ある意味シェアウエアと大して変わらないけど、基本無料でよいものと評価してもらいたいものを作っていく。それが現状の姿勢かな。

2014年4月11日金曜日

バグ多し常に改善の余地あり(Ver. 1.0.1 概要等)

以前の投稿で「バグは極力減らす」
なんて言っていたけれど、無理でした。

結局のところ、広告関連に酷いバグを残してしまい、特に起動時の全画面広告をあきらめることになりました。ユーザー様方にとっては有益だとは思いますけどね。広告主と私にとっては最悪です。
プロフィール通り私は道民なのですが、”北海道銀行の全画面広告でアプリが落ちる”のは何かのいじめですか?

今後修正しだい復活させようと思います。不満もあるかもしれませんが、そもそも広告を載せるという時点で商売っ気ありということで。

広告解除は100円なのでお手軽です。これに関してはバグで広告が消えないなんてことはありません。
金払って広告が消えないとか、普通に考えてありえないので、1か月以上かけてチェックしましたから。あと、一度端末からアプリを削除してからも、リストア可能であることは特に厳重にチェックしています。また、これらに関しては実際に自分でこのアプリを買って確認しています。

現在Ver.1.0.1を申請中です。とりあえず追加機能としては
-64bit対応
-手振れ補正(動画撮影時)追加.
-写真&動画解像度変更"XSmall"を追加
-URL Schemeを追加

2014年3月29日土曜日

一応Appleの審査に提出しました

前の投稿から、またひと月が経過しました。
デバッグ関係に、ひと月かかりました。

画面をダブルタップするとボタン類が消えて全画面の確認ができるとかいろいろ追加したのですが、
駄目ですね、欲をかいて機能を追加しようとすると…
最初の設計がよくないのか、新機能が割り込む所為でなんでもないところの挙動がおかしくなります。

尤も、画面が回転した際に表示が挙動不審だったり、フォーカス関係が挙動不審だったり、
テスト広告ではなく実際の広告を表示した際に挙動不審だったり…
後から見てみると、あらゆる機能が挙動不審で、ひたすらデバッグしていた。

とりあえず目立つバグをつぶし終え、レビューに出すことができましたが、
おそらく最低1回はリジェクトがあるのではないかと思います。

というわけで、正式に登録され次第、はまりポイントの解説?みたいなものを始めようかと思います。

とりあえず、実際の広告を表示したときに3回ほど間違えてクリックしてしまったのですが…
BANされませんよね?されないように祈ります。

2014年2月21日金曜日

目途

一通りの機能を実装し、現在申請方法についての勉強中です。
最初の記事から随分と時間が経ってしまいました。

iPhoneアプリの開発には本名プレイが必須でして、途中で開発者名を変更できないのです。ゆえに、いきなりバグだらけのアプリをリリースしたら、開発者として将来までバグマイスターの称号を引きずることになります。

一応できる限りのバグ取りを行ってはいますが、結局のところ一度リリースして皆様方の報告を受ける形で再度調節する必要があるのかなぁ、などと考えています。

無事リリースしてその他でも余裕が出てきたならば、今回"はまった"内容についてコードを例示しつつ解説していこうと思います。

2014年1月9日木曜日

何をどのように作っていくのか

今現在、私が作成しているアプリは最も基本的且つありふれたアプリともいえるiPhone内蔵のカメラを用いるアプリである。
アプリのシーンを大きく分けると以下のようになる。
・通常のカメラ及びビデオカメラ
・各種設定と状態表示・拡大鏡(ルーペ)

カメラ機能に対してフィルタはリアルタイムに適用され、撮影結果及び録画結果はフィルタ適用済みとなる。
フィルタにはOpenGLをベースとしたGPGPUライブラリGPUImageを用い、高速なリアルタイム処理が可能である。
本アプリにおける売りの機能としては
・リアルタイム動的色域
 カメラ・ビデオともに適用される明度調整
・ビデオにもリアルタイムでフィルタが適用される
・静穏シャッター
 バイブレーションを動作させているが審査ではねられる可能性あり
・フレーム/秒の制限を設けることによる省電力機能
 ルーペの使用可能時間が延長される
・ルーペにおけるフォーカスロック
 ロック前に使いやすいところでフォーカスを合わせることにより本物のルーペのように扱える
また、一つのアプリにまとめて使えると便利かもしれない機能としては
・電灯(iOS6以降で4段階程度の照度の変更ができる)
・CPUおよびメモリの消費状態の表示
上記の中でも特にリアルタイム動的色域とは機能の一つとしてナイトビュー(風味)の機能を持ち、夜間でも星明りによりある程度の撮影が可能となる。しかし、明度は自動制御されるものの白飛びする可能性があるためスライドバーによる限界値調節が可能なかたちとした。また、この処理を応用することにより露出の違う画像を仮想的に作り出し、それらを合成することによりHDR(風味)の画像を作り出すことができる。これはカメラだけではなくビデオに対してもリアルタイムに適用させることが可能である。

しかしながら、旧機種(iPhone4s以前および、それの性能に相当するもの)ではメモリの不足およびGPU性能の不足から
・撮影時の解像度を抑える
・オプション画面の透過処理を止める
・明度を抑える(撮影セッションをPhotoではなくVideoの設定にする)
など、一部の機能をオミットする必要がある。

手元にはiPhone5s及びiPad Airしかないため、iPhone5以前の実機におけるテストは行えないが、可能な限り使用メモリを削減する作業を行っている。