自己紹介

自分の写真
最近、iphoneアプリをリリースしました。
UxU
無料アプリですので、是非遊んで下さい。 第二弾アプリ:工場夜景写真集 今後も色々なアプリをリリースしていく予定です。
次は、コスプレ or 漫画 or 騎乗日記

2011年2月25日金曜日

Android 3.0 (HoneyComb)

Android 3.0 (HoneyComb) の SDK が公開されていますね。
http://developer.android.com/sdk/android-3.0.html

翻訳をしてくださっています。
http://y-anz-m.blogspot.com/2011/02/android-30-platform-1.html

参照ください。

Fragment は新しいフレームワークコンポーネントです。
これが、肝の新機能みたいですね。

UIを提供しないで Fragment を使い、Activity が走っている間だけ発生する download の進捗管理など、Activity 用の worker として使用することができます。

各国のAppStoreランキングを見えるサイト

各国のアプリランキングが見えるサイトを紹介します。

□日本/アメリカに絞って紹介されているページ(iOS)
http://www.rainbowapps.com/

□全世界(iOS)
http://www.appannie.com/top/japan/overall/

□Web版Android Market
https://market.android.com/details?id=apps_topselling_paid

NTTドコモ Android(Xperia arc,MEDIAS,Optimus)について

Xperia arc(ソニーエリクソン)    
MEDIAS N-04C(NEC)
Optimus Pad L-06C(タブレット)

が登場しました。

Xperia arc ですが、予想通り、「おサイフケータイ」・「赤外線」・「ワンセグ」が搭載されていない国際展開ケータイのそのままの仕様でしたね。
これは、予想的中です!

さらにXperia arcには「フロントカメラ」がないのが、残念ですね。
android OS は、2.3が入っているので制御は出来るようになっているのに・・・。

■仕様
FullWVGAの解像度に対応した4.2型大画面ディスプレイを装備。
有効画素数810万画素のカメラを装備し、手ブレ補正や、LEDオートフラッシュ、開放値F2.4の明るいカメラレンズなども搭載する。
撮影機能には、「スマイル検出撮影」「シーン検出撮影」
コンティニュアスオートフォーカス」「HDムービー撮影」などを用意。
さらに、2011年6月(予定)より順次開始する、FOMAハイスピードエリア内での受信速度を最大14Mbpsまで高めた高速通信「HSDPA14Mbps」に初めて対応。



詳細はコチラ



MEDIASは、コチラは国内メーカーらしく「おサイフケータイ」・「赤外線」・「ワンセグ」が搭載されています。

画面の大きさもいまや主流となっている4.0インチでさらに特徴としては、7.7mmという薄さです。(iphone4は、9.3mm)これは、スゴイ!
でも、インカメラは搭載されず、OSはandroid2.2ですか。残念。
あと、3G連続待受時間が短い気がする。大丈夫か?(androidは、Allマルチだぞ)

■仕様
FullWVGA解像度に対応した4.0型タッチパネル液晶ディスプレイには、
日常使用で生じる擦傷、落下、衝撃による傷に対するすぐれた耐性を持つという「Corning Gorillaガラス」。
カメラ機能は、有効画素数510万画素のCMOSカメラをボディ背面に装備。
撮影間隔約1.1秒の「クイックショット」や「HDムービー」などの撮影機能を用意。


詳細はコチラ

Optimus Padは、8.9インチ大画面&Android 3.0搭載のタブレット端末です。
ただ、これといって特徴が見えない気がします。
これは、どのターゲットを狙った端末なのでしょうか?
この後に出るTOSHIBAタブレットの方が楽しみではないのかなぁと個人的には思います。

ドコモは、一体何処を目指しているのでしょうか?

2011年2月24日木曜日

Android Push通知(Channel API)

iPhoneは、Push NotificationというAppleが提供してくれているフレームワークがあるが、
Androidは、あるのかな?って探してみたところ、なんとなんとGoogle App EngineのVer1.4.0で追加されたChannel APIで実現が可能ということです。

簡単に言うと、
「アプリ間においてHTTPコネクションを常時接続していて、GAEからクライアントアプリに対してデータを送ることが出来る」仕組みのようです。

他にも、ver1.4.0では「 "Always On" (リザーブインスタンス)、タスクキューの正式リリース、
スタートアップリクエスト、バックグラウンド処理の改善」などが追加されています。


ここにサンプルがあります。

休み中に、サンプルを試して、iphoneとの違いを説明しようと思います。

2011年2月23日水曜日

スマートフォン スクリーンショット(略して『スクショ』と呼ばれてます。)の撮り方

■android version 2.1以下は全て同じ方法です。

1. android端末用のドライバーをインストールする
(注意:Macをお使いの方は、ドライバーは不要です。 ドライバーが必要なのは、Winの方のみです)

2. Android SDKをダウンロードして、インストールする。

3. [設定]->[アプリケーション設定]-[開発]-[USBデバッグ]にチェックをつける

4. android-sdk-windows\tools\ddms.batを実行。

5. 端末側でスクリーンショットを撮りたい画面を表示させます

6. PCでCTRL+Sキーを押します。

この方法に該当する端末は:IS03,Xperia,HT−03A,

[IS03]のスクリーンショットの撮り方
http://someya.tv/is03/100/manual01.php

[Xperia]のスクリーンショットの撮り方
http://trip-bee.cocolog-nifty.com/blog/2010/04/xperia-8c77.html

[HT-03A]のスクリーンショットの撮り方
http://blog.livedoor.jp/warabimoch/archives/51653932.html

[LYNS 3D]のスクリーンショットの撮り方
http://e-nami55.jugem.jp/?eid=620

■Android2.2以降のファームウェアでは、簡単な方法があります。

[戻るキー]を長押しし、ホームボタンをクリックすると、カシャっと音がします。
これでスクリーンショットの撮影は成功。(iPhoneのパクリですかねぇ)

撮影したスクリーンショットは、/sdcard/ScreenCaptureにpng形式で保存されます。
ギャラリーアプリなどで「ScreenCapture」フォルダで確認することが出来ます。
ちなみに、android2.1以下と同様の撮り方も出来ます。

この方法に該当する端末は:Galaxy S,GALAPAGOS・・・・

[Galaxy S]のスクリーンショットの撮り方
http://juggly.cn/archives/8173.html


■iphone

1.簡易な撮り方
スリープボタンを長押しして、ホームボタンをクリックすると、カシャっと音がします。
これでスクリーンショットの撮影は成功。

2.開発者用の取り方
実機をMACに接続した状態で、Xcodeから[オーガナイザ]を起動して、[Screenshots]メニューを
選択して、「Capture」ボタンを押す。
※「実機デバッグ方法」を参照してから行ってください


[iphone]のスクリーンショットの撮り方
http://d.hatena.ne.jp/RyoAnna/20100326/1269608881

スクリーンショットの他にも色々と
下記の本に載ってますヨ〜!

SSLの実装サンプル(JAVA)

JAVAでHTTPS通信をする方法

import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;

SSLContext sc = null; // SSLContext
HostnameVerifier hv = null; // HostnameVerifier

// SSLContext 作成
try {
//System.out.println("DEBUG:SSLContext 作成");
sc = SSLContext.getInstance("SSL");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("SSLContext#getInstance: NoSuchAlgorithmException", e);
}

// SSLContext 初期化
try {
//System.out.println("DEBUG:SSLContext 初期化");
sc.init(null, getTrustManagerAllowAllCerts(), null);
} catch (KeyManagementException e) {
throw new RuntimeException("SSLContext#init: KeyManagementException", e);
}

// HTTPSで使用する SSLソケットの作成(SSLSocketFactory) をセット
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// HostnameVerifier を作成
hv = getHostnameVerifierAllowAllHosts();

// HTTPSで使用する ホスト名の検証(HostnameVerifier) をセット
// デフォルトの検証が失敗した場合(証明書の氏名[CN]が異なる場合など)に呼び出される
HttpsURLConnection.setDefaultHostnameVerifier(hv);


ソース元

2011年2月21日月曜日

スマートフォン(android,iphone)の【おサイフケータイ】の現状

①iphone5で搭載されるというNFCについて
NFCに対応したというだけでは、
FeliCaに対応したことにはなりません。
iPhone 5にSONYが開発したFeliCaチップが搭載されなければ、日本の【おサイフケータイ】にはならないのです。
結論ですが、iphoneは国際展開端末なので、Felicaチップを搭載する可能性は極めてゼロ。
何故なら、Felicaは、日本と一部アジアで使われているだけで、欧米では全く使えません。
そのため、アップルは非接触ICを入れるとしても、Felicaの搭載は有り得ないので、
「おサイフケータイ」には対応しない

現在のiphone4用の電子マネーシールの様に対応するのが、精一杯です。
http://softbankselection.jp/onlineshop/
ただし、現在販売しているものは「WAON,NANACO,Edy」であり、[Suica]はありませんし、
JR東日本のホームページによると「対応予定はございません。」と掲載されております。
個人的には、シールくらいsoftbankに頑張って頂いて、[Suica]も対応して頂きたいと思います。
みんなでTwitterに投稿しましょう!!softbank社員の方々頑張れっ~!って(笑)

②androidおサイフケータイ:
LYNX 3D SH-03C(SHARP)、REGZA Phone
T-01C(TOSHIBA)、IS03(SHARP)、GALAPAGOS 003SH(SHARP)、IS04(TOSHIBA)

androidスペック表:http://itpro.nikkeibp.co.jp/article/COLUMN/20101216/355333/table1.html?ST=keitai

JR東日本【スマートフォンについての質問】:
http://www.jreast.co.jp/mobilesuica/faq/about_smartphone.html#anchor-1

ここで、android &SONY と来ると、上記に載っていない機種がありますよね?
[Xperia]です。
こちらは、どうなるのでしょうか?
結論は、iphoneと同じく、対応しないのではないでしょうか。
Xperiaは、ソニーエリクソンの国際展開端末であり、日本市場のためだけに【Felicaチップ】を搭載してくるとは思えない為です。
ただし、これはあくまで私個人の主観です。
ソニーが作成したチップをソニーエリクソンが付けるのは、
簡易な事ですが、日本市場の為だけにコストを上げてまでチップを搭載するとは、考えにくいと思われます。

しかし、KDDI向けのモデルはよりカスタマイズされた端末になる模様です。

日本経済新聞はおサイフケータイなどの機能を搭載して特徴を打ち出す、と報じており、NTTドコモとは方針が異なる様です。


auは、どんどんスマートフォンをガラパゴス化してますね。
さてさて、これが凶とでるか吉とでるか?
(難点は、カスタマイズするとバージョンアップが遅れる、最悪、対応しないとなること)

日本経済新聞

BlueToothについて = android,iphone =

iPhone Bluetooth

クライアント/サーバ型のゲームの最大規模は、プレーヤー16人です。
元ソース:
GameKit_Guide

Bluetoothを利用するメリット
 ・(意外にも!?)省電力
 ・オフラインで利用可能
 ・10mちょっと
 
 □GKPeerPickerControllerを使う場合
 □使わない場合→GKSession
  
 ダイアログを表示しない方法 → GKSessionを使うと出来る

 androidと通信が出来るか? → GameKit同士でないと通信できないので、出来ない。

= android =
Android 2.0 Bluetooth
API:http://developer.android.com/reference/android/bluetooth/package-summary.html
サンプル:http://developer.android.com/resources/samples/BluetoothChat/index.html

Grand Central Dispatch =iOS4新機能=

GCDというマルチスレッドプログラミングが楽にかけるフレームワークを
AppleがiOS4から提供されていた事が本日行ったiOS勉強会で聞くことが出来たので、
書いておきます。

今までは、同期プログラミングは、Viewが固まる&読み込みが遅いという
ことで非同期プログラミングが使われておりましたが、
マルチスレッドにすることで、画像読み込みスレッドとメインViewスレッドとデータ読み込みスレッドを分ける事で、同期プログラミングで簡単に高速化された処理を実現することが
可能のようです。

具体的には、こちらのブログを参照下さい。
yuumi3のブログ

NSStringでもクラッシュする場合がある!? =iOS開発=

通常、NSStringを使う場合は、releaseを自動的に行うのですが,

例)
NSString* img1 = [NSString stringWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1];

上記の変数をループで乱発させるとメモリ不足で落ちる場合があります
で、どのように解決するかというと

NSString* img1 = [[NSString alloc]initWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1]];
[img1 release];

としても良いのですが、全てのNSStringに対して行うのは、非効率なので何か良い方法
はないかと探したところ、NSAutoreleasePoolというクラスがあり、

  NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSString* img1 = [NSString stringWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1];
:
:
[pool release];
とすることで、間に挟んだautoreleaseする変数を一括でリリースしてくれます。
よって、メモリがなくなり落ちるという事が解消できます。

2011年2月17日木曜日

EXC_BAD_ACCESSと出た場合の対処方法

NSZombieEnabled

EXC_BAD_ACCESSは良く目にする不正終了メッセージの一つです。

そこで、実行可能ファイルの実行時引数に次のオプションを追加します。

NSZombieEnabled:YES

上記オプションを付けることで、何処でエラーしたのかをある程度教えてくれます。

NSDebugEnabled:YES

上記も同様に追加しておきましょう。


2011年2月16日水曜日

ジオコーディング実装方法 =iphone開発=

iphoneの標準フレームワークでは、逆ジオコーディングは用意されているが
正ジオコーディングがない。

ただ、標準MAPアプリでは、地域名検索が可能である。
何かないかな?と探していたところ[gmgeocoder]というフレームワークがありましたので、
ご紹介します。

ただし、これはネット接続が必要となりますので、ネットワーク接続していない場合は、
エラーとしてあげるなどの考慮は必要ですが、まぁまぁ使えます。

http://code.google.com/p/gmgeocoder/

ちなみに、DLするにはSubvertionが必要です。
svn checkout http://gmgeocoder.googlecode.com/svn/trunk/」でDLできます。


基本的には、文字入力するので、SearchBarと一緒に使います。

//searchBar
if(geocoderSearchBar==nil)
{
geocoderSearchBar = [[[UISearchBar alloc] init] retain];
geocoderSearchBar.frame = CGRectMake(0, 0, self.view.bounds.size.width, 0);
geocoderSearchBar.delegate = self;
geocoderSearchBar.barStyle = UIBarStyleDefault;
geocoderSearchBar.translucent = YES;
geocoderSearchBar.showsScopeBar = YES;
geocoderSearchBar.placeholder =@"検索したい地域を入力して下さい";
[geocoderSearchBar sizeToFit];
[self.view addSubview:geocoderSearchBar];
}

//UISearchBarDelegate


- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
TRACE();
keyboradChk = YES;
[geocoderSearchBar setShowsCancelButton:YES animated:YES];
if (theGeocoder){
[theGeocoder cancel];
[theGeocoder release];
theGeocoder = nil;
}
//具体的には、下の部分がgmgeocoderの実装部分です。
theGeocoder = [[GMGeocoder alloc] initWithAddress:searchBar.text];
theGeocoder.delegate = self;
[theGeocoder start];
}


- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
[geocoderSearchBar setShowsCancelButton:NO animated:YES];
[geocoderSearchBar resignFirstResponder];
}





上記では、ジオコーディングについて
書きましたが、iPhone&android対応する為のコーディングを
地図情報関連を中心に書いた本があります。
オススメですので、一読下さい。

App Store について

□アプリは 3G でダウンロード可能なサイズに

3G でダウンロード可能な 20MB 以内に納める。

□App Store のランキングアルゴリズム

当日の売上×8 + 1日前の売上×5 + 2日前の売上×5 + 3日前の売上×2 のスコアで決定されるらしい。

よって、プロモーション/キャンペーンは期間を集中させたほうが有利です。


例えば、

1.アプリ内のイベントがある場合は、その日をキーに色々なレビューサイトへ投稿

2.値下げを行う

3. TwitterやFacebookでユーザがお得に感じる文面を投稿して喚起させる

カスタムUINavigationBar

UINavigationBarに画像などを組み込みする方法

//色を変更(アプリに合う色合いにする)
[[self.navigationController navigationBar] setTintColor:[UIColor colorWithRed:0.4 green:0.1 blue:0.1 alpha:1]];

//背景画像(横320px)を変更
UINavigationBar *naviBar = [self.navigationController navigationBar];
UIImage *img = [[UIImage imageNamed:@"navigation.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:1];
UIImageView *imgView = [[[UIImageView alloc]initWithImage:img]retain];

imgView.frame = naviBar.bounds;
imgView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
imgView.layer.zPosition = -FLT_MAX;
[naviBar insertSubview:imgView atIndex:0];
[imgView release];

2011年2月8日火曜日

iphone,androidでヒットアプリを出す為にやらなければいけない事

私が感じた事を以下に記します。
決して、これをやれば当たるというものではございません。
ただ、これだけは【やるべき】と感じた事を並べます。
-----------------------------------------------------

[話題性]
■今、存在しないものを提供し、周りに広めたくなるようなユーザ体験を提供する
- マーケットで検索する(現状、無いことを確認してから製作に取り組む)
- 便利な仕掛 or 面白い体験
- 毎日、何気なく行っている行動にアプリを通すと有効な行動になるような仕掛
⇒通勤、仕事、デスクワーク、睡眠、食事、身支度、掃除、洗濯、散歩、買物、TV、インターネット

[実現]
■思い立ったら、吉日。
- 直に、企画書にまとめて、廻りの反応を見る。
- そして、即実行する。

[競合]
■どんなアプリがあり、何が評価されているのか調査
- 同じカテゴリ、同じ系統のアプリを無料/有料問わず調査する。

⇒ 機能をブラッシュUPしてMYアプリに組み込めるか検討する。


[宣伝]
■何処に何を仕掛けるか?
- レビューサイト ⇒ マーケット
- YouTube動画CM ⇒ マーケット or サポートサイト
- 口コミSNS(Twitter,Facebook) ⇒ マーケット
- アフリエイト広告 ⇒ マーケット
- サーチエンジン(キーワード検索) ⇒ サポートサイト[SEO/SEM対策]
- ビラ配り ⇒ サポートサイト or マーケット
- マス媒体 ⇒ 費用対効果を考えると厳しい戦略かも?

[継続]
■毎日起動すると、ラッキーな仕掛を用意しているか?
⇒ 占い、健康、ポイント、アイテム、普段何気なく毎日行っている行動と連動してイベントを起こす

■VerUpをリリース時から計算に入れておくこと
⇒ ver1.3(3回)までは、月1回ペースで上げる事。

2011年2月5日土曜日

スマートフォンについて

1. スマートフォンって?
⇒「電話機能以外の機能を持つ世界共通の仕組みを持つ携帯の俗称です」
 ちなみに、日本の携帯は、iモード(NTTドコモが提供するメールとインターネットを閲覧できるサービス)1999年からスタート開始しました。
 そこで、世界共通ではなく、日本独自に開発され進化を遂げたサービスという事でガラパゴス(独自進化)・ケータイと
     自虐的に言われております。あまりに自虐だった為に、最近では「フィーチャー(特化)フォン」というようになっています。
 OSで言うと、iOS(Apple), Android(Google), Symbian(Nokia), BlackBerry(RIM), Windows Phone(マイクロソフト)が入っているケータイを
     スマートフォンと呼ばれております。

2. 台数 及び ガラケー(フィーチャーフォン)との比較
⇒2010/12 
Android:33.3億台
    Symbian:31.0億台
iOS:16.2億台
RIM:14.6億台
Windows Phone:3.1億台


3. アプリについて
⇒ここからは、AndroidとiOSについてだけの話しに変えます。
     というより、他のOSは日本ではビジネスになりませんので、割愛させて頂きます。

Android:
------------------
アプリ数:100,000以上 (2011/02/03現在)
マーケット:複数乱立している(google Market, au market gmo market, amazon appstore)
レビューサイト:androider(月間:1000万PV), androLib(月間:700万PV), androidnavi(月間:380万PV)

■Androidマーケットの有料アプリ販売はまだ厳しい
- 有料アプリの76%は販売本数50未満、値付けの最頻値は0.99ドル、キャンセル率20-30%

取分:開発者80% / google20%
market登録:25ドル

iPhone:
-----------------
アプリ数:350,000以上(2011/02/03現在)(DL数:100億本突破)
マーケット:app storeのみ
レビューサイト:AppBank (月間:200万PV), Meet-I(月間:160万PV)

取分:開発者70% / apple30%
Developer登録:\10,500円

4. アプリ開発について

android:
-------------------------
言語:Java もしくは AIR(Flash)
開発環境:主にeclipse
開発機:Mac/Windows両方


iOS:
-------------------------
言語:Objective-c
  開発環境:Xcode
  開発機:Mac OS ver10.5以上

5. 今後
⇒「台数は、Android。 サービスはiPhone」

今後、このままの体制で進むとAndroid端末が増えていくと思われます。
但し、アプリ売上と台数では、マッチしていないのが現状です。
今年から、Appleの方針が転換され、1国1キャリア制を敷いていましたが、
    それを辞めて、複数のキャリアに販売を展開する方針を採ってきましたので、
    台数を増やしますし、サービスも拡大する事が予想されております。
GoogleとAppleが台数が増え、特にAndroidは驚異的なスピードで台数を増やしていくでしょう。
よって、ガラパゴスケータイの台数は減り続ける事になるでしょう。
但し、現状そして未来・・・AndroidでNo.1のメーカーが何処が握るかが鍵となるでしょう。
今のまま、混沌としているうちは、台数だけ増えるだけで、サービスが固定化されず
iPhoneの方がビジネスしやすい&使いやすいという流れのままになると思います。
正直、Android/iPhone両方持っておりますし、Androidは複数台所持しておりますが、
開発以外では使いません。
驚きの体験は、現状のAndroid端末では味わうことが難しいでしょう。
使えば、分かります。その違いが。驚くほどに。