@neiraza

2匹の怪獣が寝た後にプログラマーしてる僕のネタ帳

Parse.comのClient Pushとか

前職の会社から、

Parse
に関する問い合わせがあって、下記の記事を始めて読んだ。


そもそも、クライアントからプッシュを送信するって必要だったの?て、前から思ってた。
こんなオチは、特に考えてなかったけど。


The Dangerous World of Client Push | Parse Blog


プッシュて便利だけど、ユーザにとってほとんどのケースでは邪魔だと思う。
どれだけ、その情報が有効であったとしても、
今、まさに、その情報が欲しいと思っている事なんて、ほとんどない。

個人的には、そのアプリを使う時間以外の時間に、
割り込まれるのは嫌なので、ほとんどのアプリの通知をオフにしてる。
常時オンにしたいアプリなんて、ほとんどないし。

というのは個人的な問題でだけど、
プッシュ送信の条件やタイミングは、常に状況を見つつ変更していきたいので、
クライアントから直接プッシュすることはなく、Cloud Codeを使っている。
(前職の場合、僕がそう決定したわけではないけど、僕はそう思ってた。)

妖怪ウオッチの情報収集が我が家での居場所

最近、お気に入りなのは『万尾獅子』

妖怪ウォッチ 07 万尾獅子

妖怪ウォッチ 07 万尾獅子

アニメで観た時は、「まだだ、まだその時ではない」を連呼してた。
満を持して行動するまでが長くて、
僕には足りない感覚なので、気に入りました。


お給料がでなくて、家での肩身が狭くなる一方なので、
妖怪ウオッチの情報を楽ちんに収集できるものが欲しくて、少し作ってみた。

neiraza/ziba-nyan-crawler · GitHub

まだ出来てないけど。


もっと、手っ取り早いのは、
妖怪ウオッチを手に入れちゃうことなんですけどね

これ、もう少し安くならないすかね。


情報ください・・・。

xcode5.1にあげたらビルドが失敗た

先日、後輩がcocoapods爆発しろネタを書いていたなーとは思ってたけど、
まとめw 爆発wとか笑いつつ、対応保留にしてた。

akisutesamaありがとう
http://akisute.com/2014/03/ios-sdk-71-xcode-51.html

昨日の深夜か早朝か、油断していてxcodeが5.1にあがってしまた。

おかげで、arm64に対応していないライブラリがビルドエラー(smaad v2.1.6)。
smaad氏ねと思いつつ、
Build SettingsのArchitecturesを$(ARCHS_STANDARD_32_BIT)に変更し、
ビルドしなおし。

今度は、cocoapodsで入れたライブラリたちがビルドエラー。
cocoapods氏ねとおもってたけど、
Podsを一度削除して、pod installしなおせば問題なかた。

なにやってんだオレは。

iOSとAndroidアプリのダウンロード数を晒してみた

3年くらい前に初めて作ったiOS & Androidアプリについて、
公開から現時点までのダウンロード数を
記録がわりに、晒してみることにした。

広告とか入れてないので、収入は無し。
iOSはゲームで、Androidは添付画像ベースのメーラー

f:id:redogu:20140220100151p:plain

iOSの方は、5割りほどが中国ユーザでした。
ありがとう、中国。

最近はプライベートで Androidアプリは作ってないし、
iOSはずーっとreject続きだけど、次は3,000ダウンロードを目標に。。。

blockでコールバックを書いたった

blockでコールバックを書く

いい加減、delegateばっかだと、あっちこっち読むのが大変なので書いてみた
まず、呼び出される側から。

// BlockSample.h

#import <Foundation/Foundation.h>

typedef void (^BlockSampleCallBack)(NSArray *foo);

@interface BlockSample : NSObject
- (void)hoge:(NSString *)fuga callback:(BlockSampleCallBack)callback;
@end

typedefで定義してするほうが可読にいいよねってことらしい。

// BlockSample.m

#import "BlockSample.h"

@implementation BlockSample

- (void)hoge:(NSString *)fuga callback:(BlockSampleCallBack)callback
{
	NSArray *array = @[@"りんご", @"ごりら", @"らぶらぶ"];
	callback(array)
}

@end

次に呼び出し側を書く。

// CalledBlockSample.m

// いろいろと割愛

- (void)moDMP
{
	// BlockSampleがシングルトンだったとして...
	[[BlockSample] sharedManager] hoge:@"これはテストだ" callback:^(NSArray *foo) {
	NSLog(@"アホな配列がやってくるお %@", foo);
	}];
} 

// いろいろと割愛

CoreDataのサンプルでハマった?

もし、あなたが

Receiver type 'NSManagedObjectContext' for instance message is a forward declaration

でハマったら、

たぶん、サンプルではCoreDataのimportがpchファイルに書いてあるはず。


そんなiOS、CoreDataを始めますって方におすすめなのがこの本。

iOS Core Data徹底入門

iOS Core Data徹底入門

DBって何だよ(笑)ってレベルからでも、読みやすいと思われ。

ACTION REQUIRED: Google Play Merchant In-app Billing Sample Code Security Update

ACTION REQUIRED: Google Play Merchant In-app Billing Sample Code Security Update
ってメールがきた

diffしてみたけど、ほんと些細な違いだった。
その違いでやられちゃう人もいるんだろけど。

In-app billing v3を使ってて、Rev5よりも古いRevのSampleを丸パクなアプリ
特にIabHelper.javaSecurity.javaを丸パクはアウト

purchaseの内容をサーバ側でチェックする作りになっていない

この辺に心当たりのある方は、
In-app Billing Rev5が来ているのでチェックしよ。