2014年8月17日日曜日

【開発】スマートフラグをgithubに公開しました!

いつも使っているgithubですが、
いつもcloneするばかりで
何気に自分のレポジトリをアップしたことがありませんでした。

一度もレポジトリを作ったことがないってのもなんので、
スマートフラグのソースコードをgithubに公開してみようと思います。

git@github.com:leegun/smartflag.git

アプリをダウンロードして、コードがどうなっているのか気になる方はクローンしてみてください。
何か指摘などありましたら、コメント下さい。m(__)m
まだまだ未熟者ですがアドバイス頂ければ幸いです。

【ハマリポイント】
pushしましたが、下記エラーで蹴られました。

ERROR: Permission to leegun/smartflag.git denied to leegun.

fatal: Could not read from remote repository.

自分の場合公開鍵がgithub側に登録されてなかったのが原因でした。
別アカウントとごっちゃになって再確認したら登録されてませんでした。

githubログイン後、
1.右上のスパナ画像の設定ボタンをタップ
2.左側の「SSH Keys」を選択
3.Add SSH keyをタップしてtitleとkeyを入力

※keyはPCのホームディレクトリの.ssh直下に.pub形式のファイルであります。
id_rsa.pubとか

鍵の作り方は別途ブログ参照
http://e-days.info/2011/05/ssh-keygen/

2014年8月11日月曜日

【開発】AppStoreに反映されるまで

スマートフラグを無事リリースしましたが、
Ready for Saleになったにも関わらず、AppStoreになかなか反映されません。

24時間経過して気づきました。
Rights and PricesのAppの使用可能日が1年ほど先になっていることに!

審査前に入力してど忘れしてました・・・^^;

みなさんも同じ過ちを犯しませんように。



以上!

2014年8月10日日曜日

【開発】スマートフラグ リリース!!

国旗を楽しく覚えられるアプリ「スマートフラグ」をリリースしました!

今、思えばワールドカップ見てて結構、国旗って色々あるな〜と思ったのが始まりです。

まず、何と言っても無料!!

何気にプログラミングよりリソースを整えるのに時間が・・・
画像のサイズとか、国情報の打ち込みとか・・・ーー;

個人的に
一覧から詳細への画面遷移アニメーションとか
詳細から横スワイプで次の国旗に遷移させるところを
UICollectionViewのLayoutアニメーションを駆使して作ったところがGoodだと思ってます。

あと左下のメニューボタンを長押すると・・・

全く大したアプリではありませんが、
ぜひ、ダウンロードして感想を聞かせて下さい!m(__)m

https://itunes.apple.com/us/app/smart-flag/id904656161?l=ja&ls=1&mt=8

以上!

【開発】AppStoreへリリースする際にIDFAエラー

AppStoreへリリースをする際に質問内容の項目が増えていて、





・どうやら広告のSDKを含みますか?と言う質問に「NO」選んだのも関わらず広告SDKを含めてXcodeでアップロードすると下記のエラーで蹴られます。

improper advertising identifier [IDFA] usage. your app contains the advertising identifier [IDFA] api but you have not indicated its usage on the prepare for upload page in itunes connect

この場合、一旦手動でリジェクトし再度アップロードする必要があります。
英語でちゃんと読まなかったのが良くないですが、それくらいローカライズしてくれてもと嘆いてます。

ちゃんと翻訳してくれてるリンク
http://ios-dev.seesaa.net/article/394327576.html

以上!

2014年7月26日土曜日

【開発】vimの矩形選択でラクラク編集!!

Vimとは高機能エディタとしてエンジニアにとても人気の高いエディタです。

その機能の一つが「矩形選択(ctr + v)」!!

例えば、下記のようなコードがあるとします。

hogeName01 = "aaa";
hogeName02 = "bbb";
hogeName03 = "ccc";
hogeName04 = "ddd";
hogeName05 = "eee";

このhogeの部分が実はfooでしたとなった場合、どうしますか?

back spaceで消してfooを書いてカーソルを下に移動して・・・・(繰り返し)

上記は貴重な時間の無駄使いです。。
こんな時に使えるのが矩形選択(ctr + v)です。

1. hogeの先頭にカーソルを移動
2. ctr + v (矩形選択でhogeをカーソル移動で囲む)
4. d (hoge削除)
5. ctr + v (矩形選択で行数分下にカーソルを移動)
6. shift + I (←ここがミソ!)
7. fooを入力
8. escで入力モードから外れる

すると、hoge->fooへ!
fooName01 = "aaa";
fooName02 = "bbb";
fooName03 = "ccc";
fooName04 = "ddd";
fooName05 = "eee";

ブログで説明するのが困難だわ・・・
ぜひ、実際にお試し下さい。m(__)m

以上!!

2014年7月25日金曜日

【変換】eps -> png 一括変換!

epsファイルを一括でpngに変換する方法!

巷には色々な方法があるようですが、
「ImageMagick」を使った方法を紹介します。

参考URL:
http://naganegi0505.hatenablog.com/entry/2013/01/28/173302

手順:
1.Xcodeをインストール(省略)

2.MacPortsをインストール

■まずはパッケージをダウンロード
https://distfiles.macports.org/MacPorts/
※MacPorts-2.3.1-10.9-Mavericks.pkgをダウンロードしました。

■環境変数にパスを通す。
ターミナルを開いて
cd                                  <-ユーザーのホームディレクトリに移動
vim .bash_profile           <-.bash_profileをvimエディタで開く。初期は.bash_profileはない

■.bash_profileに下記を記述
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH

■確認
source .bash_profile

■MacPortsをアップデート
sudo port -d selfupdate
sudo port -d sync

■ImageMagickをインストール
sudo port install ImageMagick

3.espファイルがあるディレクトリに移動して下記コマンドを実行

mogrify -density 100 -format png -geometry 640x427 *.eps

-formatで拡張子を指定。png jpg bmp

-geometryでイメージサイズを指定 640x427

イラストレーターやGIMPなどのバッチで作る方法もありますが、エンジニアからしたらコマンドラインで一括で変換出来る方が良いですね!!

以上!!

2014年7月21日月曜日

【開発】UITableView,UICollectionViewのCellからIndexPathを知る方法!

開発していて現在表示されているCellだけ更新した場合がある。
その場合、下記で取得できる。


[self.collectionView visibleCells]

だが、さらにIndexPathがわからないと更新できない。

CellからIndexPathを知りたい場合は下記で

[self.collectionView indexPathForCell:cell]

そして更新する場合は下記です。

[self.collectionView reloadItemsAtIndexPaths:indexPaths]


これらを組み合わせて下記のようなメソッドを書いてviewDidAppearとかで呼んでます。

-(void)allCellReload
{
    NSMutableArray * indexPaths = [NSMutableArray new];
    for (UICollectionViewCell * cell in [self.collectionView visibleCells]) {
        [indexPaths addObject:[self.collectionView indexPathForCell:cell]];
    }
    [self.collectionView reloadItemsAtIndexPaths:indexPaths];
}

以上!!