2013年10月25日金曜日

iOS7のナビゲーションバーを考慮した位置の模索

iOS7になって、画面領域がステータスバー(20px)も含むようになりました。
これにより、ナビゲーションバーの高さは、iOS6で44px, iOS7で64pxになります。

Storyboardで、Adjust Scroll View Insets にチェックがついている場合、
UITableViewやUICollectionViewのようなUIScrollViewを継承したものをViewの一番目に配置すると、コンテンツ領域が自動的にナビバーの下から表示されるようになります。
(Insetsが自動的に設定される)



Adjust Scroll View Insets のチェックを外すと、

こんな感じに。

UITableViewなどは、Storyboard上でも上手くレイアウトしてくれるのでデザインしやすいのですが、UIScrollViewを使った場合にはStoryboard上ではレイアウトしてくれない。

レイアウト時には、Storyboard上のView asの設定を 「iOS6.1 and Earlier」にすると NavigationBarがある状態でもY位置が0pxの位置からデザインができる
(他に良い方法があるのだろうか....?)

そもそも、縦スクロールはない とか、スクロールしてもナビゲーションバーの下に表示されなくてもいい のであれば、Storyboard上のViewControllerの設定で Under Top Bars のチェックを外せばOK。
0,0 の位置がナビゲーションバーの下に表示されるのでレイアウトしやすくなります。


多分、Under Bottom Bars はToolBarかな?

iOS6の時は44px...とコードに直接書きたくはないし、3.5inch/4inchで画面が違うときには...と考えたくもない。というわけで、Storyboard上でAutoLayoutを使いつつ頑張ってレイアウトする訳ですが、動的にUIScrollViewにViewを追加する場合もある。

AutoLayoutを使わず、Autosizingを使えば簡単にできそうと思う所も、AutoLayoutを使いたいのだ。という場面に まぁ なる。

AutoLayoutをプログラムで指定するには、NSLayoutConstraintをを作って追加します。

例:
        [contentView addConstraint:
         [NSLayoutConstraint constraintWithItem:customView
                                      attribute:NSLayoutAttributeWidth
                                      relatedBy:NSLayoutRelationEqual
                                         toItem:contentView
                                      attribute:NSLayoutAttributeWidth
                                     multiplier:1
                                       constant:0]];
        
        
        [contentView addConstraint:
         [NSLayoutConstraint constraintWithItem:customView
                                      attribute:NSLayoutAttributeTop
                                      relatedBy:NSLayoutRelationEqual
                                         toItem:contentView
                                      attribute:NSLayoutAttributeTop
                                     multiplier:1

                                       constant:0]];

        [contentView addConstraint:
         [NSLayoutConstraint constraintWithItem:customView
                                      attribute:NSLayoutAttributeHeight
                                      relatedBy:NSLayoutRelationEqual
                                         toItem:contentView
                                      attribute:NSLayoutAttributeHeight
                                     multiplier:1
                                       constant:0]];


UIScrollViewに動的にViewを追加した場合、ContentSizeを変更する必要があるが、このタイミングも間違えてはいけない。

UIViewController#loadView などでは、まだ正確なレイアウトはできていない。
loadViewで UIScrollView#setContentSize をしても、Adjust Scroll View Insetsの機能がその後に実装されて設定が有効にならない。

AutoLayout, Adjust Scroll View Insets が反映された後のタイミングは、
UIViewController#viewDidLayoutSubviews になりますので、ここで処理を入れます。

このタイミングで、UIScrollViewの情報を見ると、iOS7の場合だと
UIScrollView#contentInsets は {64, 0, 0, 0}
UIScrollView#contentOffset は {0, -64}
に自動的に設定されている。

ということで、UIScrollViewに設定するcontentSizeについてはInsetsの値を考慮した値にします。
たとえば、縦はScrollViewの高さと同じにしたい場合は、
scrollView.bounds.size.height - contentInsets.top
という形で。

contentOffsetを指定する場合も、 y = -64 というデフォルト値が入っていることを考慮するのを忘れずに。


iOS7から
UIViewControllerに、topLayoutGuide, bottomLayoutGuide のプロパティが追加されていて、topLayoutGuide の値に 64 が入っていました。

iOS6ではこのプロパティは使えないので、このプロパティがなかったら0(+NavigationBar)、あったらその値 という感じで、Contents領域の上の位置を取得する 感じで位置取得も可能そう..なのかな?



• • •

2013年10月9日水曜日

続・iOSの日付処理まとめ

Timeletを作成したときに、またもや日付周りでいろいろ悩みました。
そのネタをまとめてみます。
以前日付関連でまとめたブログ記事→ iOSの日付処理まとめ

日付時間フォーマットをiOS設定通りで表示する


NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle: NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

NSDateFormatterStyle はDate, Time毎に以下から選択します。
  •   NSDateFormatterNoStyle
  •   NSDateFormatterShortStyle
  •   NSDateFormatterMediumStyle
  •   NSDateFormatterLongStyle
  •   NSDateFormatterFullStyle
結果は以下の通り。

書式カレンダー24時間表示結果
Japan西暦2013/10/09 1:08
Japan西暦×2013/10/09 午前1:11
Japan和暦×H25/10/09 1:12
United States西暦Oct 9, 2013, 1:16
United States西暦×Oct 9, 2013, 1:13 AM
United States和暦×Oct 9, 25 Heisei, 1:14 AM

日本だと 0:00 AM である時刻表示は、他の国だと 12:00 AM なんですよね。
12時間表示でも、国によって "01:00 AM" の所もあれば、"1:00 AM" の所もある様子。

知らなかった! 忘れてた! 各国の書式の差をカバーしてくれます。
ただ、文字の長さがどれくらいになるかは設定依存になるので、文字がはみ出さないように画面上にレイアウトするように気をつける必要があります。


日付フォーマット書式


setDateStyle, setTimeStyle ですが、内部ではDateFormatの値に該当する書式を設定してくれています。その結果を見ることで書式の設定方法が分かります。

書式が日本、カレンダーが和暦、24時間表示OFF だと

NSDateFormatter *dateFormatter = [[NSDateFormatter allocinit];
[dateFormatter setDateStyle: NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSLog(@"%@", dateFormatter.dateFormat);

の結果は、
GGGGGyy/MM/dd aK:mm 
になります。

指定の文字は何を表しているのかは、LDML DateFormatPatterns で確認できます。

たとえば、時間は
h : 1 〜 12 の12時間表示。
H : 0 〜 23 の24時間表示。
K : 0 〜 11 の12時間表示。
k : 1〜 24 の24時間表示。
hh, HH など2つ重ねると 0Padding です。

書式を固定する


書式に固定したい場合は、NSLocaleを指定します。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle: NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSLog(@"端末の書式:[%@]", dateFormatter.dateFormat);

NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
dateFormatter.locale = locale;
NSLog(@"en_US指定書式:[%@]", dateFormatter.dateFormat);
NSLog(@"結果 : %@", [dateFormatter stringFromDate:[NSDate date]]);

上記の結果は以下。(書式は日本、和暦の設定の場合)

端末の書式:[GGGGGyy/MM/dd H:mm]
en_US指定書式:[MMM d, y, h:mm a]
結果 : Oct 9, 2013, 1:48 PM

日付フォーマットとLocaleを一緒に指定することも可能です。

NSDateFormatter *dateFormatter = [[NSDateFormatter allocinit];
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
dateFormatter.locale = locale;
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"
yyyyMMdd hmma" options:0 locale:locale]];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

結果↓
10/09/2013, 2:01 PM

書式を固定すると、各国の表示形式に合わせることはできないので注意。
たとえば、日本でも 0:00 AM でなく、12:00 AM の表示になります。
(hなのか、Kなのか という書式のところ)

常に12時間表示の時刻を表示する


12時間表示の日付フォーマットは @"hhmm a"になるので、これを指定すれば12時間表示を期待するのですが、上手くいかないパターンもあります。

NGパターン1
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"h:mm a"];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

書式カレンダー24時間表示結果
Japan西暦12:36 午前
Japan西暦×12:36 午前
United States西暦0:36
United States西暦×12:36 AM

NGパターン2
NSDateFormatter *dateFormatter = [[NSDateFormatter allocinit];

NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"hmm a" options:0 locale:locale]];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

書式カレンダー24時間表示結果
Japan西暦12:36 午前
Japan西暦×12:36 午前
United States西暦0:36
United States西暦×12:36 AM

NGパターン3
NSDateFormatter *dateFormatter = [[NSDateFormatter allocinit];

NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
dateFormatter.locale = locale;
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"hmm a" options:0 locale:
[NSLocale currentLocale]]];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

書式
カレンダー
24時間表示
結果
Japan
西暦
AM0:36
Japan
西暦
×
AM0:36
United States
西暦
0:36
United States
西暦
×
12:36 AM

OKパターン
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
dateFormatter.locale = locale;
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"hmm a" options:0 locale:locale]];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

書式
カレンダー
24時間表示
結果
Japan
西暦
12:36 AM
Japan
西暦
×
12:36 AM
United States
西暦
12:36 AM
United States
西暦
×
12:36 AM


端末の設定で、書式を日本にしていると一見上手くいっているのですが、違う国に設定すると上手くいかないのです。
これにハマった!

OKパターンは、en_US書式固定したパターンです。
端末設定に依存せず12時間表示 かつ 表示形式は端末設定の書式を使う
ができると嬉しいのですが、その方法がみつかりませんでした。
NGパターン3が惜しかったんだけどなー。

12時間表示の設定かどうかを判断する


+ (BOOL)timeIs24HourFormat {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setLocale:[NSLocale currentLocale]];
    [formatter setDateStyle:NSDateFormatterNoStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    NSString *dateString = [formatter stringFromDate:[NSDate date]];
    NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
    NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
    BOOL is24Hour = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
    return is24Hour;

}
• • •

時差時計 Timelet リリースしました!

8月に Flask LLPを +Takako Horiuchi さんと共に設立しました。
まだApple開発者登録が完了できていない状態なのですが、第一弾アプリをリリースしました!

時差時計 Timelet


各国で開催されるイベントもYouTubeなどでリアルタイムにOnAirされる時代。
日本にずっといてても、サンフランシスコでこの時間は日本だと何時なんだ?
と思う事が多くなりました。

リアルタイムにイベントと、関連ツイートをみつつ、みんなとお祭りのように盛り上がるってのはとっても楽しいですよねー。
翌日になれば、まとめ記事ができるわけなんですが、その頃には熱が冷めちゃってたりしてたりw

そんなお祭りに参加する時間を知るために、いままでは、

  1. iPhoneの設定で時間帯をサンフランシスコに変更し、日付時刻をイベント時刻に変更する。
  2. その後、時間帯を日本に戻して日付時刻をみる。

...で時間を確認していました。

時差は知っているものの、サマータイムっていつからいつまでだっけ?とか考えて計算するのが面倒なので、なにかに頼らないと無理...。

そんなあなたにこのアプリ。
各国の現在時刻が表示される他に、日/時間 を変更してその時の日本時間が確認できます。

これで、
時刻を早めたから、いろんな通知が一気にきたーー
iPhoneの時刻を元に戻すの忘れてたーー
なんてことは起こらないはず。(よくやってました)

機能はこれだけのプチアプリですが、スッキリデザインで見てて気持ちよいアプリになってると思います。
私も、行移動がD&Dでできるように実装を頑張りましたよっ
あと、日付周りに再びハマったりと....そのネタは次回のブログに。

良ければお使いくださいませー。



• • •

2013年8月16日金曜日

LLPで法人銀行口座の作成

iOSのAppStoreにアプリを載せる際、個人アカウントでは個人の名前が表示されます。
個人事業主の屋号にもできない。
昔は変えることができたのですが、今はどうも無理らしい。 

ということで、 LLP(有限責任事業組合)を作成し、AppStoreでのアプリ登録者名を個人名でなく組合名にしよう! とチャレンジ中です。 

※ LLPにした理由は、パススルー課税 だから。
※ AppleでLLPの法人アカウントを作れるかどうかは、やってみないと分からないらしい。(出来てるところもある)

昨日、無事登記を終え、今日は法人銀行口座を作成してきました。 
LLPの目的は「アプリをリリースするため」で、メガバンクである必要は特にない。
口座維持手数料がかからない所の方がいい。
ということで、ゆうちょ銀行 を選択しました。 

最初は、ネットバンク(ジャパンネット銀行、住信SBIネット銀行、楽天銀行 など)を検討していたのですが、

住信SBIネット銀行は他の法人口座が無いとダメらしい。↓
https://contents.netbk.co.jp/pc/popup/honnin_kakunin_corp.html

楽天銀行はLLPの扱いはないらしい。↓
http://help-sb.rakuten-bank.co.jp/app/answers/detail/a_id/6119/ 

残すはジャパンネット銀行ですが、審査が厳しそうな雰囲気。
参考サイト : 法人口座・法人クレジットカードの審査を通過するためのアドバイス
あと、ジャパンネット銀行だと受け取り口座として指定できないパターンがありそうな予感も。(還付金の受け取り口座とか...なんかそういうの...)

最近、振り込め詐欺のおかげで審査がより厳しくなったそう。
審査が厳しくなるのはいいことなんですが、設立したばかりのところは、怪しくないんだよ と説明できる材料が少ないのでなかなか厳しい。

そう思うと、ちゃんと窓口に出向いて登録をした方が、ネットだけの審査よりは説得力あるだろう と思う。
(実際は、詐欺の人の方がスーツ着てビシっと決めてくるんだろうな と思うけど)

ネットバンクでない通常の銀行で、口座維持手数料とネットバンキングが無料な所はなかなかない。 個人と法人ってこんなに差があるのか... と実感。
そして、ゆうちょ銀行 に辿り着きました。

ゆうちょ銀行では以下の書類が必要になります。

(1)法人の履歴事項全部証明書(原本)
(2)ご来店者の公的な本人確認書類(運転免許証・各種保険証等)
(3)ご来店者と法人の関係を証する書類(社員証等)
(4)法人の印鑑証明書(原本)
(5)(主要)株主名簿または(主要)出資者名簿
(6)次の書類のいずれか(設立後6か月以内の法人に限る)
・所轄税務署あての法人設立届出書(控)
・所轄税務署あての青色申告承認申請書(控)
・主たる事務所の建物登記簿謄本(現在事項証明書)(原本)
または主たる事務所の賃貸借契約書(原本)


(3)ご来店者と法人の関係を証する書類(社員証等)
LLPの履歴事項全部証明書に組合員の名前が記述されているのでこれでOK。

(5) (主要)株主名簿または(主要)出資者名簿
出資者名簿というものは作っていなかったのですが、紙としてあるのが大事なのであろう...ということで、それらしいものを作成しました。

(6) が難しいのですが、従業員はいませんので、
・所轄税務署あての法人設立届出書(控)
・所轄税務署あての青色申告承認申請書(控)

はありません。

・主たる事務所の建物登記簿謄本(現在事項証明書)(原本)※
または主たる事務所の賃貸借契約書(原本)

主たる事務所は自宅にしているのですが、賃貸借契約書は夫名義で名前が違う。
でも、これしかない...ので賃貸借契約書をもっていきました。
結果、大丈夫だったようです。

その他、他の方のブログで「門前払い」の話をいっぱい目にしていたので、少しでも信用してもらえるよう、この組合の説明内容を書いた紙を作成してもっていきました。
中身は、事業内容やHPのURL、実績などをさらっと書いたものです。
振り込め詐欺とは全く違う業種内容ですよ! ということを主張する感じで(笑)
効果があったのかどうかは不明ですが、一緒に提出しました。

LLPは、登記はするものの、法人格はありません。
なので、法人なき×××(失念!) という種類になるようで、窓口ですぐに口座の作成してもらえ、通帳をもらい帰宅できました。
株式会社であると、2週間ぐらいの審査期間があるようです。

個人口座であればクレジット機能付きカード も無料で作れますが、法人口座は作れないとのこと。
そうだろうなーと思っていましたが、あわよくば という思いで窓口の方にいろいろ調べてもらいました。
窓口の方は、本当に親切にいろいろしてもらってとても好感触。

あとは、問題のDUNSNumber取得と、開発者登録のenroll。
上手くクリアできるといいな。


• • •

2013年8月5日月曜日

Up by Jawbone やっとで入手


Up by Jawbone をやっとで入手!

先日、Fitbit Flexを入手しましたが、それと同じ活動量計です。
普通の人は両方購入する必要なんて全くないです(笑

ダブル装着!


UpはSサイズを購入したのですが、結構小さめでした。
Fitbit Flexの一番小さくなるよう留めたサイズよりもちょっと小さいぐらい。
男の人はMサイズ以上でしょうね。

Fitbitの方はbluetoothでデータ転送するので外す必要はないのですが、Upの方は、ヘッドフォンジャックに突き刺してデータを転送する必要があるので少々面倒。
キャップをいつか無くしそうな恐怖があります。
充電時は、逆にUpの方が楽になりますけども。

Upで面白い機能としては、しばらくじーーっとしてたら「動いてないよ?」のアラームが仕掛けられる事。
15分、30分... 2時間 まで設定できます。
15分て!どんだけ動いている人だよ!! と思うのは私だけでしょうか。。

もう1つ、Fitbitにはない機能としては、睡眠サイクルを見て起きやすいタイミングで目覚ましアラートをかけられること。
私は両方装着のため、どれだけ効果があるのかが全く分かっておりませんが、同じような機能のアプリ Sleep Cycleは効果があったので、多分よいはず。

ただ、私は最近Fitbitのサイレントアラームを、時間に気づくために使っていて、12時、17時... と定期的に鳴るようにしています。
これ、時間を忘れる私にとって、結構よいです。
音がならない(バイブ)なので、外出中に鳴っても平気なのがいい。

もういっそのこと、サイレントアラーム専用のガジェットがあってもいいんじゃないかと思うくらい。
LEDで3色くらい色つけてもらって、赤、黄、青で緊急度だけ見れるような設定ができる....とか最高だなー。
※ Fitbit, Up ではそんなことはできません(笑)

上記の理由で全く同じ使い方ではないけど、Fitbitの方が電池の減りが早い気がする。

アプリは、Fitbitだったら飲んだ水の量が記録できる。Upだったら気分アイコンを設定できる。とか... 機能の差もありますが、UIも好みが分かれそう。
私は、当日のダッシュボード的な画面は、Fitbitの方が好き。


達成度(%)を見せられてもあまり嬉しくないのは、日々の目標が明確にはないからかもしれない。目標がある人にとったら違う意見かもしれない。

だがUpの方が、グラフを見るのは楽しい感じ。
...これも、実際の数字が出ている方が嬉しい という私の感覚が大きいかも。

今、改めて気づいた。数字が出てるのが好きなのだわ、私。
infographicsも好きなんですが、絵だけじゃなく、数字があるのが好きなんですよね。
たとえば 90% って数字が大きく目にとまり、「お、これ何の値なんだろう?」 ..興味がでてくる。
グラフだけみせられても、とくに気に留めないというか、どこを見ればよいかのポイントが分からないというか。

ま、というわけで、Fitbit, Up のお友達募集中です!

• • •

2013年8月2日金曜日

LEAP MOTION 来ました



Leap Motion がやってきました。
Pre-Orderしたのが、2月28日。届いたのが7月26日。
忘れた頃に...という時期ではありますが、アノのアプリが対応してるらしい とか、GoogleIOに展示があったよ など、話題を聞く度に まだかいのー! と思っていた日々でした。

実際手に取ってみると、思ってたよりかなり小さい。



Leapで動くアプリは、AirSpace Store でダウンロードする事ができます。
https://airspace.leapmotion.com/

多い訳ではないのですが、もうそれなりにあるのに少し驚き。
このタイミングでアプリを作って出せているのにジェラシー。

この端末の真上でなくても、ちょっと離れた所でも反応してくれる。
指の関節をみて、いま手が上に向いている、下を向いている ということも判断できるようになっている。小さいやつなのに凄い。
でも.... 思うように動いてくれない。

操作は、手を動かしてスクロールとか、人差し指を前に出してその項目を選択する とかなのですが、これは慣れが必要。
慣れればストレスなく思い通りに動くようになるのかは、まだ分かっていない。(想像できていない)

どんな動きでどんな操作になるかはこの動画をみると良くわかります。


この人、操作上手いな...。私には無理だわ。

Freeのアプリで、Cut the Rope がありました。


これなら、ロープ切るだけの操作だからぴったりなんではないか? と思ったのですが、やっぱり”切る" という操作の認識が上手くされない時があるので、イラっとしてしまう。

どんなアプリにしたら向いているのだろうなー と思わず考え込んでしまう。


やっぱり、これか?(笑

ともかくも!
このようなデバイスを使ったアプリを一般ユーザが手軽に作れる
という自体はとっても素敵。

Leap Developer https://developer.leapmotion.com/dashboard
から開発に必要な情報を得られます。
使える言語は以下。

  • C++
  • C# and Unity
  • Java
  • Python
  • JavaScript


JavaScriptもありますよ、お兄さん。
だれでも作れちゃいますよね。

問題は言語ではなくて、3D処理に慣れているかどうかの方がとても重要そう...w

• • •

2013年7月23日火曜日

Fitbit Flex


Fitbit Flex

活動量計(ActivityTracker)です。
米国のAmazon.comにて購入致しました。
今購入になったのは、Up by jawboneになんどもフラれ続けなかなか入手できないから、Flexも買っちゃうか となったためです。
# "も" です。Up諦めてません。いろいろ試すことに決めました。

このFlex、日本ではソフトバンクが販売と専用サービスをしているらしい。
そのため、基本日本語ではFlex設定ができないです。
海外で買った方は、Fitbit のアプリから登録が出来るのでそちらからどうぞ。
(iPhoneの場合、言語をEnglishにしないとFlexが出てこないのでEnglishにしましょう。一回登録すれば日本語に戻してOK!)

第一印象。
留め具をつけるのが堅いっ
何回も繰り返したら緩くなってくれるのだろうかー。
見かけは、募金でもらえるリストバンドみたいな感じ。

そこそこ小さいのでずっとつけてても苦じゃない。邪魔だけど。
私の場合、一番小さくなる位置で留め具をつけて上記のような写真の感じでぴったり。
(私は、身長164cm 女 です。横幅は普通サイズ。)

Fitbit Flexでは歩数と睡眠パターンが記録できます。
バイブでAlarm設定ができるので、周りに人がいるけどちょっと寝て起きたい...という時にもよさそう。

Fitbit のアプリでは、運動した量、体重、食べたカロリー量、水の量 の登録ができるようになっているのでカロリーコントロールをしたい人にはよいのかな。

友達の機能もあるのですが、私には友達まだいないのため詳細不明。
多分、順位を競えるとかなのかな?

データ転送は、Fitbitのアプリを起動すると自動的にBluetooth経由で行われる模様。
取得したデータは、Fitbitのサーバー上で保存されていて、Web上でも見る事が出来ます。

私は体重はWithingsで測っているので早速連携してみた。
https://fitbit.com/weight/withings
ふふ、便利!
やっぱ、APIあるっていいなー。メジャーっていいなー。

FitbitにもAPIある。
PopWeightに? もやもやしていたのだけど、ソフトバンクの件があるので、日本でこのAPIをつかったアプリをリリースするのは...罠にハマる予感。どうだろうね...。

ま、あとは、ちゃんと歩くだけですね(笑

P.S.
ちなみに、アプリのRateが悪かったので疑問に思ってレビューを読んでみたのですが、ソフトバンクのサービス経由で購入した方が、Fitbitの公式アプリを使ってしまっている?
まったく良くわかってしないのですが、多分ソフバン提供の専用アプリがあるのでは...と想像。それで困ってこのブログを発見した方は確認してみてくだされ。
参考までに、私は昨日のデータが消える現象はでてないです。

• • •

2013年7月1日月曜日

Wii Uを購入


Wii U を購入した。
いまさら購入の訳は、ピクミン3 が7/13に発売されるためです(笑

全く前提知識が無い状態で手元に来たのですが、サンサーや、スティックなどは、Wiiのものを使用する形なのですね。

その分、値段が安くなっているのだろうとは想像するのですが、Wiiを売る事が出来なくなってしまいますよね。
このハード...外付けHDDのように何か使い道はないものだろうか。もったいない。


ゲームパットはもちやすい形状になっていて、さすが!と思いました。
Wiiの時は、スタンバイ時に親機から発熱するのが嫌だったのですが、Wii Uでは今の所発熱していない模様。これは嬉しい。(設定によるのかもしれないが)

ですが、解像度が悪いのがとても気になってしまいます。普段、Retinaのタブレットに慣れているからでしょうかーー。
昔は、ゲームは解像度なんて期待しないものでしたけど、今では前機種よりスペック上げても期待値以下と思われる事も多いはず。家庭用ゲーム機だから安く販売したいメーカーにとっては、大変な時代ですね。

購入したWiiUベーシックセットはAmazonで ¥25,814 -。
ただし、この手のゲームソフトは高い。
コスパを考えると、1人でゲームするなら断然iPadとかNexus7などのタブレットの方が良い。

Wii → Wii Uになって、「家族みんなで楽しもう」という要素を増やしやすいようにハードも変えたんだなと思う。
任天堂が生き残る道は、そんなコンテンツ次第なのだろう。

任天堂は、OUYA のように、だれでもゲームを開発できるような道は辿らないのだろうか。そういう道は、品質が悪いコンテンツが増える..という懸念も良くわかるが、じゃぁ、いまのままで生き残っていけるのか? というのもなかなか疑問。

日本初の世界の任天堂だから頑張ってほしい。
そうきたか!すげーっ 思いもつかんかった。と思うような取り組みが今後やってくることに期待。

• • •

2013年6月29日土曜日

さくっとアルバム アプリをリリース!

iPad用 写真管理アプリ 「さくっとアルバム」をリリースです!

さくっとアルバム 
-かんたん3ステップで 家族の写真を整理してアルバムに!-



エムズさんに声をかけて頂き、3月27日(私の誕生日!!)に開発がスタートしたこのアプリ。
開発期間は3ヶ月弱でしたが、開発に携わった女性4人で試行錯誤を重ねる日々でとても楽しいプロジェクトでした。

はじめて、「フィーチャー用のArtwork画像を送付しなはれ」というAppleからの問い合わせも経験。台湾などいくつかのAppleStoreでフィーチャーの表示がされ、日本のStoreでも間近?!  フィーチャーに載るのが夢の1つだったので凄く感激です。
そして...現在、写真・ビデオカテゴリ/無料 で第2位と大健闘中!!

こうやって取り上げてもらえたのは、エムズさんの企画力、プロモーション力があったからこそ。パワー半端ないなーと日々実感しております。そして、そんな企画に携われたことを感謝!

私はプログラマとして参画したので、その目線から頑張った(苦労した)点を少し紹介です。

できるだけ早く、メモリを抑えて表示する

iPadでRetinaとなると巨大な解像度になります。
その解像度を生かして綺麗な写真を大きく表示するというのはかなり大変でした。
「できるだけ早く」というのと「メモリを抑える」というのは、相反する要素です。
そこを程よい妥協点で、見た目あまり気にならないように... といろいろ模索するのが難しくもあり、楽しくもありました。

大きく画像を表示する所は、丁度よいサイズ かつ Alphaチャンネルを外したBitmapContextに変換した画像をNSOperationQueueで作成して、CALayerで描画 で早く貼付けれるように...などなど。

処理を待たせるグルグルインジケーターが出るタイミングをかなり少なくできたのでは!とちょっと自慢ですw

画面遷移をアニメーションで自然に見せる

最近マイブームなのが、アニメーションで自然に画面遷移を実現すること。
それを実装してみたのが、トップのアルバム一覧でアルバムをタップした時にアルバムのプレビュー画面に移動するところです。

アルバムがずずっと大きくなって、アルバムを開くアニメーションで画面遷移しています。最初はpushで遷移するようにしていたのですが、私のわがままで入れてしまいました(笑)

アルバム内写真の読込みなど最初に時間がかかる処理はこのアニメーション中に行うように処理しています。これで処理待ちグルグル回避!

アルバム一覧で選択アルバムの拡大

アルバム一覧で、横スクロールを実装しているのですが、真ん中に来たアルバムを拡大して選択されている状態 になるようにしています。
1つのアルバムを拡大して表示しても左右のアルバム同士のマージンを程よく表示するために、各アルバムの表示位置をズラさないといけない。
UICollectionViewのLayoutを自作するとよいのだろうか...と模索していたのですが、結局UIScrollViewをカスタマイズしてゴリゴリ実装しています。

出来上がったアプリを動かすと、そんなに苦労していなさそうな自然な動きに見えるのですが... そう思えるのだったらこれは成功だったのだろう! と思っています。

アルバムページめくり

iOSには、薄い紙をめくるようなページめくりのアニメーションがSDKにあるので、これであれば苦労せずに実装ができます。
...が! 今回は、アルバムだから堅いページだろう! という意見で、堅いページ風のページめくりができるように入れこんでみました。

最初はページをめくっているアニメーション中はとくに影とかいれなくてもいいんじゃないかな?と思っていれてなかったのですが、めくり感があまりでない..。
影を入れてみたらめくり感がUp! 影って大事だなー。意識してないつもりだけど人間て勝手に影を判断してるんだなー としみじみ納得。

こんな感じで仕上げた、さくっとアルバムアプリ、無料ですのでiPadお持ちの方はぜひお試しくださいませ!


• • •

2013年5月30日木曜日

変化の見落とし

最近、マイブームなのが、画面を遷移して処理が進んでいく(UINavigationのpush)のではなく、画面の一部分が変化していって処理が進んでいく画面を考える事。

iPadのような画面サイズが大きいものだと、画面がガラっと切り替わると、その画面の内容を理解するまでに結構時間がかかります。
文字で説明を..としても、文字なんて正直みないし、読んでもその内容を理解するまでに時間がかかります。
画面の一部分だけ変更 とか、動きや影で説明ができれば、理解しようとする人の負担も少なくなるはず と思うのです。

そんな事を思っている時に、
ナショジオの Test your brain をHuluで見ました。
最新脳科学トレーニング という邦題がついていますが、一時期はやった茂木先生の番組を見ていた人にとったら、ああーあれか。という感じかもしれません。

変化の見落とし Change blindness

ある一部分だけ変更された 2枚の画像。
続けて動画で再生すると変更箇所はすぐに発見できるが、黒い画面が一瞬挟まるともう分からなくなってしまう。

ゆっくりとある部分だけ変化していく動画。
現実的に変化が起こらないはずのところだと、なかなか気づかない。

Change Blindness - Cognitive Psychology Experiment - Take Part!!


これは、選択的注視の動画。
マジックとかは、選択的注視をさせられているから気づかないことが多い。

視覚だけでなくて聴覚でも選択がある。(カクテルパーティ効果)
ざわざわとしている場所でも自分の名前が呼ばれたらなぜか聞こえてしまうようなパターン。

全てを見ていたと思っていても、注意しているのは一部分で全てに注意を払うことは難しい。重要な所を即座に理解するために選択と集中が行われている。

いろいろ見てみて感じた事を私なりにまとめてみると...


生きるにあたって重要な事は判断能力が一番高い(早い)

人の顔・人の動き・影 などは即座に認識でき、補完能力も抜群に高い。
人の動きなんて4点ぐらいあれば理解できるかもしんない。
影はモノを3次元で認識するのに重要な要素なので、無意識的に理解してしまう。
錯覚を使ったトリックアートを見ると、頭では理解したのにずっとだまされてしまう事があるけど、それが無意識的に反応しているという事なのだろう。

今まで経験した知識キャッシュにあるかをまず確認している

キャッシュにあればそれで理解しようとする
脳で新たに理解するには結構CPUが食うんでしょうね、多分。
そして、ファジーな補完をする。

動かないもの or 動くもの を判断する

動かないもの であれば注意は向ける必要がないので、注意が向かない。
動くものは危険かもしれないので注意が向く。
どんな感じに動いている を判断しているのは "影"、"大きさの変化" など。

...ということで、アプリUI設計にも役立ちそうな事は多いよなー と思ったりします。
職業病ですねw

  • 画面全てを見てくれていると思わないこと。
  • 注意してほしいことを絞ること。
  • 注意してほしい所を動き、影、色を効果的に使うこと。
  • 影を上手くつかうこと。
  • 知識キャッシュにあるものを多くつかうこと。
  • 新たな理解が必要な要素を一気に増やさないこと。

こうやって並べて書くと、当たり前の事になっちゃうなw
最近、思っていたより凄いーーっと思ったのは 影 の威力。凄いですよ、影。

使いやすさ と 理解しやすさ って比例する所もあるけど、そうとも限らない所もある。
使いやすさを求めて理解しやすさを捨ててしまうこともあったりも。

で、理解しやすさ を増やすのは、画面の要素を変えるだけでなく、動きなどカバーできる所が多いんですよね。
画面のワイヤーを紙に書いただけでは、全く画面設計として満たされない。
頭で動きを想像して時間かけて決定しても、実装して動かしてみたら違う結論に落ち着いたとかも数多い。

どんだけ時間かかんだよー とも思うが、面白いなーとも思うこのごろ。
そしてそんな模索中に、こんな脳科学の前提知識があると解決が早かったりするかもしれないな と思ったり。

• • •

2013年5月16日木曜日

[戯言]安心して死ねない

今日、会話の中で

「どうしてデジタル写真をフォトブックにしたいのか?」
という問いに対して、
「自分がもし急に死んだとしても、モノとして写真が子供に残せる。」
 というお話が出てきました。

それを聞いて、むむむー、私も安心して死ねないな と深く考えてしまった。

WiMaxとかDropboxとかサーバー費とか定期的支払しているものは止めて無駄遣いしてほしくないし、銀行預金も凍結される前に身内に分配してほしい。

ネット上のサービスだと契約しているのかどうかの判断さえ、残された人には分からないのですよねー。
とわいえ、生前にユーザ/パスワードも含めて誰かに伝えておくなんてことは考えられない。パスワードなんて定期的に変えるものだしさ。
伝える人も本当に信頼できる人でないと無理だ。もし旦那に伝えていたとしても一緒に事故で死亡する可能性もあるわけで最良でもない。

弁護士に遺言状を渡す感じ?  いやいや...そんな社長のような身分でもないし。

そういうサービス作る? いやいや...知らない人が運営しているサービスにそんな情報渡したくない。

みんなどうしているのだろうー?

• • •

2013年5月7日火曜日

Macで鍵付きのsvn+sshする方法

失念していたのでメモ。

SubvertionのConfigでtunnelの設定を加える。

$vi ~/.subversion/config

[tunnels]
ssh_hoge = ssh -q -p {ポート番号} -i {秘密鍵のパス} -l {ユーザ名}

ssh_hoge はエイリアス名。適当につければOK。

接続は
$svn list svn+ssh_hoge://{サーバーIP}/{svnディレクトリ}
な感じでイケる
• • •

2013年4月30日火曜日

GoogleGlassで未来に馳せる

Google IO 2013 まであと少し。
私は行かないのですが、Shin1Ogawaが向かうので、
プレゼントにGoogleGlassがあるのかどうか? の期待が膨らむ毎日です。
予習として以下のYouTube動画をみました。

Building New Experiences with Glass





私がGlassのようなガジェットで期待してしまう事としては、AR(拡張現実)です。
映画 ターミネータのような、見えている風景の上にその情報が被さるHUD画面のような。

パイオニアのAR HUD はちょっとイメージに近い。

GoogleGlassはどうなの? ですが、現在公開されている資料だけではなんとも分からないのですが、目で見ている映像をサーバーに常に送受信して表示を切り替えるって...出来ないのかもなー とか思ったりしています。
Socketを開きっぱなしにしてくれるほど太っ腹じゃないでしょうしねー 多分..。

今出来る事と、未来とは違いますが、未来をみていないと今すべき事って見えない。
... ということで、Glassのようなガジェットにあったサービスコンテンツってなんだろう? を考えてみました。

両手が塞がっていてスマートフォンがもてない時に動画を撮る

TVで頭にビデオをつけて映像を撮っているもの。まさにそのシチュエーション。
ジェットコースターの映像とか。川口浩探検隊とか。(トシバレ)

身の危険を感じた時に、録画ボタンを押しておくと映像が残せる。(犯罪減る!)
警察に110番して、いま目で見ているものを動画でおくるとかあってもよさそう。
銀行強盗にあっていて、いましゃべれないし、スマートフォンをかざすとバレちゃうという時、いいのでは... 銀行窓口の人とかいかがかなw

目の前のモノを調べる

きのこを見つけたのだけど、これって食べれるのかが分からない。
綺麗な鳥をみつけた。この名前なんだろう?
のようなシチュエーション。

HUDで情報が、ピピーっと表示されると最高。

「これって食べられる?」 と動画もいれて聞く。
「もっと傘の内側をみせて」...とやりとりをする。
という、リアルタイム人力検索のようなのでもいいかもしれない。
いままで、ビデオ電話でもできたけど、1vs1 でなくて 1vs多数にできるのがメリットか。

人とあった時に、その人の情報がHUDで出てきてくれたらいいな。
どんな会社のどんな人で、以前に合ったことがあるのか? という情報が出てくるイメージ。営業マンや社長さんには大好評?!

自分の動きをログする

この道を何時何分に通った などのログを残す。
5分前まで見た映像をさかのぼって見る事ができる。

Glassに自分の目の動きが録画できる機能があれば!
目線がどんな感じで動いていったのかが記録することが、手軽にできるようになるといろんな所で使えそう。

プロゴルファーがスイングする時の目線の動きを疑似体験できる とか。
運転免許をとる時、右見て左見て... という目線がカメラで記録される。(仮免試験のときにはつけるのが必須になって、採点対象になる!)

写真をとった時、目で見た風景と写真が違う... って事がよくありますが、これって脳内で勝手に変換してるのですよね。目線がとれるようになったら、目線にある所を拡大するなどして目で見た風景と近くなるような写真がとれるようになる? それが出来ても素敵だー。


Glassは常に目の前にあるので、まさに今!必要な情報しか欲しくない。
スマートフォンがGlassに置き換えられるとは今は全然思えない。
スマートフォン、PC とはシチュエーションを分けて使いこなしたい。
.... なので
同じサービスコンテンツが、違うプラットフォームでも使え、かつ、違和感ない
というのが、やっぱり、やっぱり重要だなー。

• • •

2013年2月28日木曜日

iOSのGmailのデザインについて

Gmailのメールアプリが、マルチアカウントの対応してからは、標準メールアプリは使わなくなりました。
Gmailのメールアプリは、良い意味で記憶に残らないシンプルデザイン。
老若男女問わず、飽きがこないと思います。

あまり意識を今までしていなかったのですが、画面上部のナビゲーションバーのちょっとした工夫がなるほどー!素敵だなー と思ったので今日はそのお話を。

メール詳細画面を開くと、こんな感じ。


ナビゲーションバーとコンテンツ部分には、影の線とハイライトの線があるぐらい。

下にスクロールすると...

ナビバーの下に影が出来ます。
影ができることで、上にコンテンツがあるということが分かります。

スクロール位置に限らず、常にナビバーの下に影があるデザインは多くありますが、そのデザインだと、
現在は、スクロールの一番上にいるのか?いないのか?
が一見判断できなくなります。
Gmailのように、現在の状態によって、影をつける or つけない で感覚的に分からせるという方法はとても素敵。

上にスクロールすると、Pull to Refreshがでてきます。


ナビバーに影ができる とともに、コンテンツ上部に少しハイライトが入っているので、下になんか出てきた! って気分になります。

コンテンツの内容の続きじゃなくて、全く違うものがなんか見えているだぜ! というのが上手く伝わってきます。

2次元じゃなくて、3次元にするとより多くの情報が伝わりますねー。
当たり前ですけども。

モバイルの場合は特に、シンプルに・分かりやすく というのが大事。
メインの操作がタッチである というのがWEBに比べてより現実(=3次元)に近い。
と思うので、こういうちょっと工夫をちゃんと考慮していきたいなー と思った次第。


• • •

2013年2月24日日曜日

iOSで星を描く方法

12ホワイトボード アプリで☆を書けるようにしたのですが、その方法をご紹介します。


+ (void)addStarPath:(CGContextRef)context rect:(CGRect)rect {
    CGFloat degreeDiff = 360.0 / 10.0;
    CGFloat degree = 90;
    CGFloat radius = rect.size.width / 2.0;
    
    CGFloat x = rect.origin.x + radius;
    CGFloat y = rect.origin.y + radius;
    
    for (int i = 0; i <= 10; i++) {
        CGFloat radians = degree * (M_PI / 180.0);
        if ( i % 2 == 0) {
            CGFloat pointX = x + cos(radians) * radius;
            CGFloat pointY = y - sin(radians) * radius;
            if (i == 0) {
                CGContextMoveToPoint(context, pointX, pointY);
            } else {
                CGContextAddLineToPoint(context, pointX, pointY);
            }
        } else {
            CGFloat pointX = x + cos(radians) * (radius / 2.0);
            CGFloat pointY = y - sin(radians) * (radius / 2.0);
            CGContextAddLineToPoint(context, pointX, pointY);
        }
        degree -= degreeDiff;
    }
    CGContextClosePath(context);
}


赤丸の点 5つと、青丸の点 5つ = 合計10個の点 を結んで星を描きますので、360を10で割って、順々にポイントを打っています。
赤丸は円周の位置でポイント、青丸は半分の円周の位置でポイントしています。

円周に沿って星の点を均等にポイントして描いていますが、その際使用するのが、あのなつかしの サイン、コサイン。

習ったのはたしか高校1年でしたっけ?
習った当初は、「こんなの覚えても生活に使わないから意味ないわ」とか思っていましたが、ちゃんと使うタイミングがくるもんですねー。


サイン、コサインの関数は用意されていますが、引数に渡せるのは 角度ではなくて、ラジアン 単位。
ラジアン。名前は覚えているけど、内容なんてすっかり忘れておりました。

上記のコードはパスを描いているだけですので、
CGContextFillPath(context); などで塗りつぶすなり、線をかくなりの処理を入れてくださいね。


• • •

手書きアプリ「12ホワイトボード」リリースしました

PicTack をはじめ、いくつか手書き機能のアプリを作成してきたのですが、現在の集大成の意味もこめて、手書きができるホワイトボードアプリをリリースしました!

12ホワイトボード
https://itunes.apple.com/jp/app/id604395964




iPhone, iPad 両方で使えるユニバーサルアプリですが、iPadのみの機能として

  • ペンの色を変えられる
  • ペンの色を透明度を設定できる
  • ハート、星、四角 などのマークが書ける

があります。よければiPadでお使いください。
絵は12個のみアプリで保存できます。

同じような手書き機能がある既存の無料のアプリを使わせて頂いていたのですが、
不満点を解決する =このアプリの機能
ということで、不満点とともにこのアプリの特徴をご紹介です。

Retina iPadでもサクサク書きたい

RetinaでiPad となるとかなり大きいサイズのピクセル数になるので、注意して描画処理をしないと、それはもうカクカクになります。ほんと酷いアプリもありますよね...
絵心がない私としては、カクカクされると、より酷い絵ができてしまう(涙
逆に、スムーズな曲線が書けるように補完してほしいのだ! というのが希望。

Adobeのものは本当に綺麗な曲線になるように補完してくれて素晴らしいのですが、お金を払ってまで書きたいのか?となると私のニーズは違ったので、私の出来る範囲で補完する機能をいれてみました。

高解像度で画像を出力したい

書いた絵は素材の元ネタ使いたいということが多いので、できるだけ高解像度で保存したい。
Retina iPadだったら、2048×1400でも綺麗な線で出力してほしい。
そして、背景を透明にして出力もしたい。
という、ニーズの反映もしました! ほぼ私向け?(笑
アプリ内部では、vector線で描画しているので綺麗に出力できているはず。

DropBoxに直接出力したい

書いた絵はどこで使うのか?ですが、PCで取り込みたいというのが私の一番の使い方。
PCでの取り込み方法として、カメラロールに一旦保存してから、メールなりDropBoxで送信 とか、面倒くさい!
ということで、出力方法もいくつか用意しました。



カメラロール、メール、Twitter、Facebook と一般的なもの。
Open In... では、端末に入れているアプリで画像を扱う設定になっているアプリが表示され、画像がを受け渡しできます。
たとえばこんな感じ。


私はDropBoxで開くのを多用中!

無料!

これは不満点ではないのですが、無料でも基本的なことは使えるアプリで!というのは1つの目標だったので、無料にしました。広告はでますけど。
本格的な絵を描きたい人は、高機能な有料アプリを使用すると良いと思いますw


最後に...

このアプリのアイコン。

この線も、このアプリで描きました。
ええ、1秒くらいで(笑

• • •

2013年1月5日土曜日

昨年の振り返り:CoCafe

明けましておめでとうございます。

昨年はいろいろありましたが、アプリをいろいろ作れて楽しい一年でした。
今年も良い年にしよう! なるといいなーでなくて、するよ!!

昨年の振り返りとして、CoCafeから。

CoCafeのダウンロード数が1年で1万超え達成!

2011年12月にリリースしたCoCafeが、2012年12月にダウンロード数が1万をこえて、現在 11,461 ダウンロードになりました!
1日の平均ダウンロード数は20ぐらいをずっと推移していたのですが、11月中旬ぐらいから、平均が 50になり...100になり... と突然のびていきました。
どこかのサイトに紹介された などではないようなのですよね、これが。

iOS6向けにGoogleマップに対応が効いたのか...
iPad対応が効いたのか...
iPadMiniのユーザが増えたのか...
CoCafeの名前を [CoCafe カフェマップ]に変えたのが効いたのか...

CoCafeは、アプリは無料。広告を外すアプリ内課金は 250円に設定しています。
広告は、AdmobとかiMobileとかいろいろ試していたのですが、現在はiAd一本にしぼっています。
理由としては、

  1. 広告も増えてきた :  CocafeのiAdFillRateは99.31。まぁまずまず。
  2. まともな広告が多い

AdmobはGoogle検索の広告が結構でてくるし(広告切れ?)、その他のものもエロ広告が多く、広告を拒否していくのも面倒。
iAdは、広告をだすのにそこそこお金がいるのもあって、ちゃんと作り込んだ広告がほとんど&ほぼエロなし です。
そして... iAdであれば、外部広告用SDKを使用する必要がないので安心!
知らず知らずのうちに、情報を取られたり、使用情報を広告会社の蓄積情報として使用されていたりするのはやっぱり嫌。使用者としても開発者としても。
ただ、iAdで残念なのは、自社広告をだす機能がないこと。今後に期待。

現在、広告収入は、アプリ内課金収入の4倍あります。
#広告外しがプチ高めであまり購入されないというのもありますがw

セールとかも少し試してみましたが、例えば半額にしたとして課金収入が倍になるか?といったらそうでないと思います。
正直、先々ずっと使っていくようなアプリは、課金収入より広告収入の方が多くなるかもしれない..? という気もする。
なので、今の感想としては、安易な値下げはせず、妥当な金額をつけるのがやっぱりよいよな と思います。

iAdのTTRは 0.62%。
CoCafeのユーザ層はネットに精通している人が多いと思うので、広告をクリックしてくれる人は多分あまりいない想像。
この値は、ほぼミスクリック? わざと誘発しようとはしていないのですが、広告を外したときに最良に使える(全画面を使える)ように考えると、どうしても...な所があります。

アプリ無料 + 広告 という仕組みは始めに考えやすい体系ですが、向いているのはゲームか、ソーシャル的要素があるもの。
そして、広告外しのオプションは、ちょっと微妙。今後は出来るだけ考えない方がよいかもしれない。
ツール系の場合は、広告なし..... つまり、有料 もしくは、アプリ無料 + 制限付き  もしくは アプリ無料 + アプリ内課金 がやっぱりよさそう。
広告をつけるのは、サクっとつくったもの。競合も多い。アプリ内課金用アイテムを考える程でもない(手を加えた分だけペイできる程でもない) のようなアプリかなぁ。
...というのが現時点の感想。

今年もいろいろ試してみるよー!

• • •