Monthly Archives: February 2013

iTunes Connect:リジェクト→アプリ再申請(3回目)

今回はリジェクトされたアプリをゼロから作り直し、先ほど再申請の手続きが完了した。 今回はリジェクトの連発により、開発当初のアプリのコンセプトが原型を留めていなかったので、新規にプロジェクトを作成することから始めた。 アプリの改善点 反省と問題点の抽出 前回のリジェクトの原因はUIに問題があったため、コーディングに入る前にUIデザインに十分時間をかけることにした。 すぐに作業には入らず、ノートに何案かアイデアを書き出し、また何日か後にそのノートを見ては問題点を書き出し…を1週間続けた。 そこで新しく導入したい機能のアイデアも出てきたので、機能の実装に必要なフレームワークや、ノウハウを調べ準備をする。ここでも、まだ実作業は始めなかった。アプリが動いている姿をイメージ出来ていないからだ。

iTunes Connect:アプリ再申請→リジェクト(3回目)

来ました。リジェクト3回目。。。 今回はレビューが開始されてから、6時間くらい経過してもリジェクト通知がなく(前回、前々回はレビュー後すぐリジェクトされていた)これはいけるかも?と思っていたのだが、またもや同じ項目でリジェクト。 単機能→リジェクト。機能追加→リジェクト。メイン機能変更→リジェクト。がこれまでの流れ。

Objective-C:NSDataDetector 文字列からURLや電話番号を取得する

正規表現から始めなくてもすむので助かる。ありがとうObjective-C。 文字列からURLや電話番号を抽出する クラス NSDataDetector メソッド dataDetectorWithTypes:(NSTextCheckingTypes)checkingTypes checkingTypesで指定した要素を文字列から抽出する。 よく使うと思われるcheckingTypesは以下の通り。 NSTextCheckingTypeDate 日時 NSTextCheckingTypeLink URLリンク NSTextCheckingTypePhoneNumber 電話番号 サンプルコード

Objective-C:アフィン変換の起点を変更する

オブジェクトのスケールや位置を変更し、アニメーションさせたりする場合にお世話になるアフィン変換をメモ。 アフィン変換の起点を変更する ObjectNameというオブジェクトの大きさを、アフィン変換メソッドCGAffineTransformを使って2倍にしたい場合は とすればいいが、この場合、変形の起点はオブジェクトの中心からとなる。 左端を起点としたい場合は、UIKitフレームワークをインポートし、アンカーポイントを定義することで、そのアンカーポイントを起点とした変形が実行される。 この場合は、左端から2倍に拡大される。

Xcode:ARCを無効/有効化する

ARC(Automatic Reference Counting)はiOS5.0からサポートされた、Objective-C版のガベージコレクションのような機能。 iOS5.0以降に新規参入した、プログラム経験の浅い開発者にはメモリの開放を気にすることなく、コーディングに専念できるので、とても重宝する機能だと思う。 ただ、ある程度Objective-Cの作法みたいなものが分かってくると、オープンソースのフレームワークやライブラリを導入し、実装していくことになるが、ARCには対応していないものも多い。 ARCに対応していないソースを使用する時のために、ARCを無効/有効化する方法をメモ。 ARCの無効/有効化の方法 ARCを開発途中で無効にしたい場合は、以下の項目のBool値(YESなら有効/NOなら無効)を変更する。 [Xcode] まとめ 個人的にメモリ関連のエラーが原因で参照したソースが実行出来ず、つまずくケースが多い。ARCはその最たるものだと思う。 Objective-Cというよりは、開発効率が上がるはずのXcodeやIBの理解にリソースを消費し、コーディングの時間を食われることが、iOS開発者のストレスの一番の原因ではないだろうか。少なくとも自分はそうである。

Objective-C:addSubViewしたSubviewを最前面・最背面に移動する

FrontとBackでのメソッド名の違いに注意。コード補完が出ないので3分ほどハマりました。 ソースコード 最前面に移動させる 最背面に移動させる

JavaScript:Date(日時)関数で今年の経過日数を求める

日付関連の関数で、自分が使用したものを少しずつメモ。 サンプルコード Dateオブジェクト生成 今年の経過日数を求める thisYearには三項演算子を使って、dateの取得した日時に対し柔軟に対応させているが、現時刻ベースのdateオブジェクトなら、date.getYear()で問題ない。 var date = new Date(); //今年の年数 var thisYear=(date.getYear()

Algorism:ランダム(Math.random)の汎用ループ

言語に関係なく、ランダム関数でよく使うパターンをJavaScriptでメモ。 アルゴリズムサンプル 0から9までのランダム整数を生成する まとめ この記事は随時追加していきます。

WordPress:カスタムループでquery_posts関数を使用後にクエリを初期化する

WordPressのループでページ判定ができなくて原因を調べていたら、カスタムループが原因だった。 コードサンプル ループ前にquery_posts関数を使用したら、ループを抜けたところでwp_reset_query();を実行してやらないと、ループ条件が以降のクエリに引き継がれる。 まとめ 解決すれば、まるで何事もなかったかのようにスキルとして吸収されてしまうが、ハマるときはこの手のものが多い。

JavaScript:要素のサイズoffset,client,scrollの違い

JavaScriptでのoffset,client,scrollの違いをメモ。 解説