wide and shallow life.

四十路アプリ開発者の備忘録

無念!i-dio受信できず。。

あっと言う間に3月ですね。2月の後半は家族で私以外インフルエンザに苦しめられていた、はるそうパパです。

先日申し込みをしていたi-dio 新放送サービスのチューナーが届きました。

一応エリアも関東近郊ということでまあ、大丈夫だろうと。

早速アプリも入れて受診してみることに。。。

むー。むー。ダメですね。 アンテナを窓に近づけてもダメ。うちが東向きだから?

そもそもこのアンテナを伸ばして頑張るという行為自体 昔のFMラジオを彷彿とさせ、ちょっとしたノスタルジーに浸ってしまいました。。

まあ、アプリのレビューも繋がらないと大荒れでしたのでこれからの改善に期待!

やはりradikoは偉大だった。

fastlane/deliverでiOSアプリ申請を楽にしちゃおう!

またまたfastlane関連の小出しエントリです。はるそうパパです。
fastlane/snapshotのおかげでスクリーンショットをバシャバシャと撮ることができるようになりました。

yokada3.hatenablog.com

確認用ならばsnapshotだけでもいいのですが、iOSアプリの申請に使いたい場合はiTunes Connect(以下iTC)にログインしてアップロードを行わねばなりません。対応言語が多いとこれにHPをけずられます。。。正直面倒です。。

そこでfastlane/deliverの登場です!

fastlane/deliverを実行するとipaファイルなどのバイナリファイル、スクリーンショットなどの画像ファイル、アプリ名、アプリの説明文、レーティングなどのメタデータも事前に設定ファイルに記述しておけばiTCに送信してくれるのです!おー!スバラシすぎます!

それでは早速やってみましょう!

続きを読む

fastlane/snapshotで複数パターンのスクリーンショットを撮る方法

前回はfastlane/snapshotのご紹介をしました。

yokada3.hatenablog.com

今回は複数パターンでスクリーンショットを撮り分ける方法をご紹介します。

Snapfileを見るとわかるのですが、fastlane/snapshotはShemeを指定して実行できます。 この仕組みを利用して、Xcode複数Schemeを作成しSchemeごとにテストを分けることで、スクリーンショット複数パターン撮り分けを実現します。

それでは早速やってみましょう!

続きを読む

キッズ用テニスネットでどこでもテニス!

f:id:yokada3:20160214155213p:plain

錦織圭選手!メンフィス・オープン決勝進出おめでとうございます!是非4連覇を果たして頂きたい!

我が家の子供たちも明日の錦織を目指して近所のテニススクールに通い、日々練習に励んでいるのですが週一なので物足りず、土日にちょっと練習をさせたいと思うことがあります。

公営・民間含めて探すのですが、なかなかテニスコートの空きがみつからないことも多いです。また民間のテニスコートですと1時間3000円以上が当たり前でなかなか毎週というわけにもいきません。

子供らのボールもいわゆる大人用の硬いボールではなくノンプレッシャーボールという一番ふわふわした子供用ボールですので、近くの公園や空き地で十分ではと思い、実際に近所で適当に打ってみたこともあるのですが、どうにもやはりネットがないと盛り上がりません。

Amazonで探してみると子供用テニスネットが売られており7000円ちょっとでしたので、ぽちってみました。

組み立ても簡単で慣れれば1分もかからず組み立てられますし、ネットの高さも自由に上げ下げできるので、子供のレベルに合わせることができます。専用の入れ物もありますのでちょっと移動時に重いですが、パパのダイエットもでき一石二鳥です。

これで、ビシバシ特訓して明日の錦織を育てたいと思います!

子どもたちからのチョコ

今週のお題「バレンタインデー」

f:id:yokada3:20160213221519p:plain

たぶん、クマかな。ネズミかな。。かわいい手作りチョコをもらいました。姉から弟へ。。
私「あれ、パパは?」
姉「パパ食べていいよ!」
私「ありがと!」

まあ、貰えているだけマシというものですよ!

fastlane/snapshotでアプリのスクショをバシャバシャ撮ろう。

はるそうパパです。今日はぬくい!春一番です!

さて、本日ご紹介するのはXcodeのUITestを利用してアプリのスクショが自動で撮れる「fastlane/snapshot」です。
iOSアプリの新規申請を行う際にとにかく面倒なのがスクショをたくさん撮らねばならないことです。
例えば、3画面分で日英対応しているアプリですと端末数が3.5インチ、4インチ、4.7インチ、5.5インチ、iPadと5種類分ありますので、3 × 2 × 5 = 30枚ものスクショが必要となります。

私も今まで手動でこれらの苦行を行っていたのですが、「fastlane/snapshot」を導入することで自動化され苦行から解放されるのです!

続きを読む

Vectorをシャッフルする(C++11)

f:id:yokada3:20160206131728j:plain
はるそうパパです。思い出したかのようにプログラミングTIPSを投稿します。

今cocos2d-xで九九計算アプリを開発中なのですが、問題データをVectorに詰めてシャッフルしたくなりました。
現在使用しているバージョンは3系なので、C++11で推奨されてる方法で実装すべきですね。
ネット上で色々調べた結果、下記の方法で実現できました。

#include <algorithm>
#include <random>
Vector<std::string> questionList = Vector<std::string>(81);

//九九を生成してVectorに詰める
for (int row = 1; row < 10; row++) {
    for (int col = 1; col < 10; col++) {
        questionList.pushBack(StringUtils::format("%d × %d",row,col));
    }
}
        
std::random_device rdev{}; //乱数生成器を生成
std::mt19937 mt(rdev()); //メルセンヌ・ツイスタ生成器を使用
std::shuffle(std::begin(questionList), std::end(questionList), mt);//Vectorをシャッフル!

前半は本件とは関係なく、Vectorに九九を詰めてます。このままだと九九の「1 × 1」から「9 × 9」まで順番に表示されてしまいおもしろくないので、後半でシャッフルしています。

ぜひお試しください。

参考:
メルセンヌ・ツイスタ - Wikipedia
shuffle - cpprefjp C++日本語リファレンス
c++ - How to shuffle a std::vector? - Stack Overflow