自己紹介

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

2011年3月30日水曜日

低価格スマートフォンが次の争点(OS覇権争い)

米国では、50ドルを切る低価格Androidスマートフォンを発売する米Verizon Wirelessが発表したことで、競争はAppleが対抗できない方向へと激化している。
日本では、まだスマートフォンはパケホーダイと込みで契約しないと行けないので、
パワーユーザ&リッチユーザ向けとなっておりますが、パケホーダイがもっと低価格の
プランでかつ、ソフトバンクが行った0円iphoneのような事をandroidで行うキャリアが
出てくるとandroid化はますます増加するでしょう。










これが、いつどのキャリアから行われるかが日本のスマートフォンの方向性を決める
鍵になると思います。
その前に、ソフトバンク以外のキャリア(auやドコモ)からもiphone5が登場するような
事があれば、iphoneが覇権を征するでしょう。











ただ、フィンランドNokia社が、米Microsoft社との戦略的な提携の方針を打ち出した事で、
まだまだスマートフォン市場は激化することになりそうです。
Nokia社の世界出荷台数 4.53億台ということで世界一位を保持しております。
この台数がWindows Phoneとなれば、androidを超える可能性を秘めております。

ここでも鍵は、低価格帯のスマートフォンをNokia社が打ち出せるか?
というところが焦点になってくると思います。

2011年3月28日月曜日

Xperia次期モデル acro(赤外線、おサイフ)対応 :NTTドコモ

前に記事を書いた時には、NTTドコモでは、国際展開モデル版Xperiaのみ
発売すると思っておりましたが、「ドコモ春モデル発表会」にてXperiaにワンセグ・おサイフ・赤外線を搭載したXperiaを販売すると公言されました。
今夏リリース予定。
個人的には、コチラの方が売れる気がします。
結局、スマートフォンの弱点は、上記三点が無い所です。
(ちなみに、同モデルはauからも販売を予定しています)

この情報を知らないでXperia arcを購入した人が
いないと良いのですが・・・。

※「KDDI au IS11S Xperia Acro」は、当初の情報では5月中の発売予定でしたが、
延期のようです。同様に、Docomo版の「SO-02C Xperia Acro」も延期となるようです。

OSのバージョンは、Xperia arcと同じ2.3.2がバンドルされる予定のようです。
但し、国内特定ソフトを入れることによるデメリットも存在することをお忘れなく
具体的には、OSのバージョンUP対応が遅れる可能性があります。
何故かというと、国内特定ソフトはOS以外の構成を入れているので、Google OSの
バージョンUPにより、動作不安定になる事もあるからです。

■4/6追記情報

<詳細情報>
OS: Android 2.3
CPU: Qualcomm Snapdragon 1GHz
RAM: 512MB
ROM: 1GB
ストレージ: ROM1GB + Max32GB microSD
サイズ: 127×63×11.8mm
重量: 135g
ディスプレイ: 4.2インチ マルチタッチTFT液晶
解像度: 480×854 FWVGA
カメラ: 8.1MP(背面)
通信: WiFi 802.11 b/g/n Bluetooth 2.1+EDR
筐体カラー: アクア、ホワイト、ブラック
その他: おサイフケータイ、SPモード対応、赤外線通信、ワンセグ、FMラジオ、iC通信


<残念な点>
・ピンクは出ない事
・フロントカメラが付いていない
・CPUがマルチではない点

さらに、ドコモからもキャリア決済がAndroid Marketで可能となる
ようです。これで、有料アプリも購入しやすいですね!
Google CheckOutは、どうしても分かりづらい&面倒でしたから。


さらに、シャープから「SH-12C」という新しいAndroidケータイが出る
ようです。
3D動画が取れるAndroid2.3搭載した携帯ということのようです。

京セラも国内にAndroidを出す予定のようです。
京セラは、米国で2画面ディスプレイというユニークな「Kyocera Echo」を発表しております。
メモリ:1GHz 3.5インチディスプレイ×2:Android OS 2.2

次々にandroid市場へ参入してます。
来年には、ガラケーを出す会社はいなくなるのかもしれませんね。





前の記事:
Smart@BLOG (android,iOS): スマートフォン(android,iphone)の【おサイフケータイ】の現状

Smart@BLOG (android,iOS): NTTドコモ Android(Xperia arc,MEDIAS,Optimus)について

2011年3月27日日曜日

NavigationBarを消す方法

NavigationBarを表示したいページと消去したい時があると
思いますが、以下のように書くと実装出来ます。

//消去
[self.navigationController setNavigationBarHidden:YES animated:YES];

//表示
[self.navigationController setNavigationBarHidden:NO animated:YES];

2011年3月23日水曜日

NSTimerについて(タイマー処理)

NSTimerクラスがタイマーイベントを処理してくれます。
実際どのように使用するのかを以下に記します。
公式ドキュメントはコチラ
===============
-(void)startTimer
{
if (aTimer) {
[self stopTimer];
}
 //3秒周期でtickイベントをコールする設定
aTimer = [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(tick:) userInfo:nil repeats:YES];
}

-(void)stopTimer
{
if (aTimer)
{
[aTimer invalidate];
aTimer = nil;
}
}

-(void)tick:(NSTimer*)theTimer
{
//実際のタイマーイベントロジック
}

結構、簡単にタイマーイベントを書くことが出来ます。
アプリを作る際、使用することがあると思うので、
試しのプロジェクトで是非、お確かめ下さい。

インフォボタンをNavigationBarに付ける方法

iphoneアプリで「アプリについて」や「アプリの説明」等に使われているインフォメーションボタンがあるのですが、どのように実装するのかを以下に記します。
-----------------
//NavigationBar
// infoボタン
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(infoBtn:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
self.navigationItem.leftBarButtonItem = leftItem;
[leftItem release];


- (IBAction)infoBtn:(id)sender
{
// ボタンタップ時の実装
}

2011年3月19日土曜日

Smart@BLOG (android,iOS): twitter連携、facebook連携、Evernote連携などが同時に出来るフレームワーク パート2

前回の記事を見ていない人はコチラ
Smart@BLOG (android,iOS): twitter連携、facebook連携、Evernote連携などが同時に出来るフレームワーク


1. フレームワークを追加&ヘッダ検索パスを追加
  ・フレームワーク
    ①SystemConfiguration
     ②Security
     ③MessageUI

  ・ヘッダ検索パス
    ①ターゲット->プロジェクトで「コンテキストメニュー」を表示して、「情報を見る」
     ②ビルドタグから「ヘッダ検索パス」に下記を入力
      再帰的:チェック
      パス:Classes/ShareKit/Vendors/Evernote



  ・既存クラスにToolBarを追加してBarButtonにActionを追加する。

  ・追加Actionメソッド内で以下を記述する。
    SHKItem *item = [SHKItem image:imageView.image title:@"San Francisco"];
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

[actionSheet showFromToolbar:self.navigationController.toolbar];



これで、移植完了です。イエ〜イ!

2011年3月17日木曜日

東日本大震災へのアプリ作成者が出来る行動その1

3月11日(金)に発生した、東北地方太平洋沖地震に被災された皆様には心よりお見舞い申し上げます。また、一日も早い復旧をお祈り申し上げます。

ここで、アプリ開発者が何か出来ないかとみんな考えているみたいです。
その中で、すぐに出来ることをやってみました。

それは、admobというアフリエイト広告バナーをアプリに付けている人向けですが、
自主広告枠にバナーを付けて募金ページへ遷移させる。

という行動です。

やり方ですが、
1. AdMobにログインして[サイト及びアプリケーション]タブの中から「自主広告」を選択します。
2. 自主広告の新規作成をクリックします。
3. URLは、募金サイトを入れます
4. 広告タイプ:バナー広告としてここからバナーをダウンロードする

Android 2.3 まとめ

Android 2.3の新機能をまとめておきます。
========================

■ダウンロードマネージャ
■マルチタッチ対応
■フロントカメラへの制御を可能(CameraInfo.CAMERA_FACING_FRONT)
■バッテリー消費量を可視化
■VoIPを標準実装[android.net.sip]
■NFCを標準実装
■センサーAPIを追加(ジャイロスコープ、回転ベクトル、直線加速度、重力、気圧センサ)
■Linuxカーネルを[2.6.35]へアップデート
・マルチCPU環境でのネットワーク負荷分散して通信速度の改善をするRPSとRFS
・メモリーの断片化を軽減するMemory compaction
・電源管理機構の改善
■オーディオエフェクトを追加
・V8
・WebM
・ACC
・AMRに対応
(残念ながら、H.264を対応せず・・・)

※ライセンス管理団体MPEG LAは8月26日、ネットの無料動画配信に対して、
AVC/H.264のライセンス料を「ライセンスの全期間を通じて」無償にすると発表してます。

総評
==============
このアップデートでマルチCPUへの対応が出来てきましたね。
今後は、マルチCPUを対応、フロントカメラ対応した携帯が続々登場するでしょう!
今、android欲しいなと思っている人は、ちょっと待ってから購入するのが良いかもしれませんね。
マルチCPU対応すると、劇的にスピードUPが期待されますし、フロントカメラを利用してskypeでTV電話も可能です。
なかなか逢えない地元の友達と話すのに便利ですね。


前に書いたAndroid3.0については下記を参照下さい。
Smart@BLOG (android,iOS): Android 3.0 (HoneyComb)

より詳しくは下記の本を参照下さい。

2011年3月9日水曜日

Adobe,FlashをHTML5化するツールを無償提供!

ついに、FlashがHTML5へ変換する!
ということは、iphone・iPad・ipod touchで見えないとされていたFlashは
さほど影響がなくなる日も近い(まぁ、skyfireみたいなアプリもあるので・・・特に驚くニュースではないのですが)

ツールですが、「Wallaby」というツールです。

adobeから出てきたというところが、ポイントですね。

つい、先日にはwebGL1.0も発表されてHTML5もにぎやかになってきました!

2011年3月8日火曜日

【iphoneとandroid同時開発ツール】Titanium VS corona

両方ともoneソースでiphone/androidをカバーできる言語です。

□titanium(タイタニウム)
http://www.appcelerator.com/

=特徴=
javascriptベース
OS固有の機能もカバー
モジュールで既存ソースと連携できる
3月後半にエクリプスベースのエディタを公開予定。 ソースも有

@appcelerator_jaをフォローすると技術情報について会話が可能
・kitchenSink デモアプリケーションを公開中

□corona(コロナ)
openGLベース
高速なアプリケーション
Lua言語(AngryBirdなどで使われている、ActionScriptっぽい感じ?)
nativeUIが使えない(但し、5月頃にnativeUIをサポートする)
OS固有の機能が使えない



□まとめ□
web開発者 = titanium
flash開発者 = corona or AIR


私は、UIをOS LIKEなものを作りたいので、titaniumを使ってみたいです。
ちなみに、下記の本に詳しく載っておりますので、一読下さい。

2011年3月7日月曜日

IS05 の新機能 とau キャリア決済開始!

本日、Android定例会にてIS05のタッチ&トライで触ってきました。
動作が、IS03より滑らかになってました。
なにせ、android2.2を搭載してます。

■仕様
3.4型・解像度854x480(ちなみにIS03は、3.5型のNewモバイルASV液晶(960×640ドット))
720pのハイビジョンムービー撮影に対応した805万画素CMOS採用メインカメラ
(ちなみに、IS03は、957万画素)を搭載、ブログ作成、アップロードなどが簡単にできる機能や、自分撮りが楽しめる『インカメラ』の装備している。
なぜ、解像度やカメラの画素数をIS03より落としているのでしょうか・・・。
かなり、微妙な仕様ですネ


■便利機能
□全てのアプリを一発終了(すべてを終了ボタンがアプリ一覧の画面に付きました。)
□スクリーンショット(電源キー+Homeキーを同時押し) ← スクショがあるのは嬉しい!

さらに、赤外線リモコンAPIを公開するようです。(005SHも同様に公開する)
これで、ラジコン操作が可能です。

シャープさんのサイト

auさんからキャリア決済を3/31から開始するとのアナウンスがありました。
これで、有料アプリもいけそうですね。
詳しくはココ

au android情報

softbank android情報


電子書籍フォーマット

どうやら、電子書籍フォーマットはePubで決りそうです。
ePub3.0で縦書き、ルビにも対応して、日本の小説はこれで、
済みそうです。

他の電子書籍フォーマット

さらに、このフォーマットを利用するとGoogleでも見えますし、iPad,iPhoneのiBooksでも
読めて、且つ,safari,Chromeなどのブラウザにも対応しています。
もう、このフォーマットにするべきでしょう。

ただ、独自コンテンツなど入れる場合、ePub+アプリ、image+アプリみたいなものが必要でしょう。

この分野では、[epub+独自アプリ]で何か作りたいと思います。

twitterのツイート時にURL表示に役立つ情報

twitterは通常140文字と文字数を制限しているので、
宣伝活動の一環でURLを表示するとものすごく文字数を取られてしまう
悩みをお持ちの方に必見!
bit.ly
を利用するとURLを短縮できます。
しかも、フリーです。
どんどん使いましょう!

2011年3月6日日曜日

twitter連携、facebook連携、Evernote連携などが同時に出来るフレームワーク

iphoneアプリにSNSをまとめて連携出来るフレームワークがある。
それは、ShareKitです。

ただ、このまま取得しても日本語化ファイルが入っていないので、
gitHubに日本語を対応したソースがありますので、
そちらをDLしましょう。

DLして、SHKConfig.hを編集しましょう。

とりあえず、私はtwitterとfacebookとevernoteを利用しているので
そちらだけAPI Keyを取得して設定しました。

twitter API Key 取得ページ
faceBook API Key 取得ページ
evernote API Key 取得ページ


取得後、SHKConfig.hを修正すると、テキストを送信、画像をUPLoadも出来るようになります。
さらに、ログアウト方法も出来ているので、
カスタマイズして、使用することも可能です。
下記に編集箇所を記述しておきます。


□SHKConfig.h
#Evernote
#define kEvernoteUserStoreURL @"https://sandbox.evernote.com/edam/user"
#define kEvernoteNetStoreURLBase @"http://sandbox.evernote.com/edam/note/"
#define SHKEvernoteConsumerKey @"XXX" ← eメールで送られてくる[consumer key]を入力
#define SHKEvernoteSecretKey @"XXXXXX" ← eメールで送られてくる[consumer secret]を入力

#FaceBook
#define SHKFacebookUseSessionProxy NO
#define SHKFacebookKey @"XXXX" ←APIキー
#define SHKFacebookSecret @"XXXX" ←アプリの秘訣
#define SHKFacebookSessionProxyURL @"http://XXX/" ←Privacy Policy URL

#Twitter
#define SHKTwitterConsumerKey @"XXX" ←ConsumerKey
#define SHKTwitterSecret @"XXX" ←Consumer secret
#define SHKTwitterCallbackUrl @"http://XXX/" ←OAuth Callback URL
#define SHKTwitterUseXAuth     0 // To use xAuth, set to 1
#define SHKTwitterUsername @"XXX" ←account


□SHK.m
+ (NSArray *) favoriteShareForType:(SHKShareType)type
//アクションシートの中身を持っている
 ※クラス名を配列に入れているので、そこを修正する

□SHKShares.plistを編集する。

<key>services</key>

<array>
<string>SHKEvernote</string> <!-- 必要なクラスのみにする。 -->
<string>SHKFaceBook</string>
<string>SHKTwitter</string>
</array>

カスタマイズして自分のプロジェクトへ移植する方法は以下を参照して下さい。
Smart@BLOG (android,iOS): Smart@BLOG (android,iOS): twitter連携、facebook連携、Evernote連携などが同時に出来るフレームワーク パート2

2011年3月4日金曜日

米国 スマートフォンシェア1位Android OS 但し・・・

米調査会社ニールセンが3/3に発表した米国のスマートフォンユーザーを調査した結果では、
Android OSが29%として、RIMのBlackBerry(27%)を抜いて首位に立ったようです。

ただし、Androidの内訳を見るとHTC:12%,モトローラ:10%, サムソン:5%のようです。
会社別だとRIMとAppleが同率で27%で一位となります。

さらにさらに、このデータには、ベライゾン・ワイヤレスから登場したiphoneの台数がまだ、
入っていないのではないだろうか?
ベライゾン次第では、Appleが一位に踊り出るような気がします。

元ソース

国内Android端末のアップデート予定(まとめ)

Galaxy Sのアップデート(android2.3)は、Samsung Germanyのイベントで明かされるようです。
尚、
Galaxy Sの後継機種:Galaxy S II SC-02Cが夏にドコモから登場する予定みたいです。
元ソース


LYNX 3D SH-03Cが3月~4月、REGZA Phone T-01Cが4月~5月にAndroid 2.2アップデート提供される予定です。
元ソース

IS03は、2011年3月末〜4月上旬にAndroid 2.2アップデートを調整中です。

尚、各社のandroid端末のアップデートをまとめたシートがNkzn様より
提供されております。
こちら

【Objective-c】 ポインタって何?

■ポインタとは?

変数のアドレスを持っている変数です。
アドレスって何?という話しになると思いますが、
メモリ内の住所です。
メモリって?という話しになるので、
「PCの記憶する領域に対する格納先を示すもの」です。

◎重要:
----------
配列を引数にできないというC言語のルールです。
よって、Objective-cでも同様です。

【利用シーン1】:配列を引数とする場合
--------------------------------

@interface MyClass
{
int _doubleDigits[10];
}

@property(readonly) int *doubleDigits;

@end

@implementation MyClass

- (int *)doubleDigits
{
return _doubleDigits;
}

@end


【利用シーン2】:クラスを定義する場合
-------------------------------------
CLLocationManager *locMgr = [[[CLLocationManager alloc] init]retain];



■ポインタのポインタとは?
ポインタ変数も独自のアドレスを持つ変数です。
いまいち、理解できないですよね。

クラスはポインタで定義しますよね。
それは、メモリ内のどこを参照すれば良いのかをPCに教える為です。
(正確に言うと、クラスをポインタで定義しない方法もありますが・・・
それを今話すとややこしいので割愛します)


関数の引数にポインタのポインタでクラスの変数を渡す場合、
関数内での値設定を受け取る事ができます。


【利用シーン1】:(参照渡し)関数内での値の設定を受け取りたい場合
------------------------------------------------
関数側:

+(void)setMessageElement:(TBXMLElement *)element toMessage:(Message**)aMsg
{
[*aMsg setTest:[TBXML textForElement:test]];



呼び出し側:

Message* msg = [[Message alloc] init];
[self setMessageElement:msgsElement toMessage:&msg];

◎重要:
----------
このようにポインタを引数にすれば、関数内での値の変更を受け取れます。
つまり、関数を呼び出す側にしてみれば「この変数に値を設定してくれ」と要求していることになります。
ライブラリを見る際に、引数に**があれば、「結果が格納される」と見れば良いわけです。


objective-cを網羅的に一回は調べた方が良いです。
これから、objective-cをやるなら下記の本は必読です。

2011年3月3日木曜日

今回のMacBookProに搭載された「Thunderbolt」(サンダーボルト)とは?

Thunderbolt Technologyだが、IntelとAppleが共同開発したものとされ、
最大10Gbpsのデータ転送速度(片側、双方向だと20Gbps)を持つ高速I/O技術である。

これだけ、聞くとよくわからないので、比較を入れます。

USB3.0が最大5GbpsでUSB2.0の10倍速いと言われております。
ということは、USB2.0(480Mbps)の約20倍速い(20.8・・・・倍)と言うことですね。

NASや外付けHDDに対応されると[Time Machine]が恐ろしく速く終わりそうですね。

で、サードパーティの状況ですが・・・
USB3.0に関しては、製品がそろってきました。
バッファロー

Thunderboltに関しては、何も記載されておらず・・・これからという状況です。
バッファローかIO DATAにはいち早い対応を期待します。

2011年3月2日水曜日

iphoneアプリでバージョンアップ時にだけ、アラート表示してitunestoreへ自動的に遷移する方法

アプリをリリースしていくと色々と不具合や機能UPする事があります。
そんな時、itunestoreのアップデートのお知らせ機能以外に
アプリ内からアップデートをするように促す方法を以下にまとめます。
















上記のように、アラートを表示してOKボタンを押下すると、ituneStoreへ遷移します。







Google App Engine でバージョン管理するテーブルを作成します。

1.GQLで降順でデータを一番目だけ取得します。
http://xxx.appspot.com/xxx/rest/page_size=1&ordering=-ver

2. XMLを取得します

TBXMLで取得してます。

例)XMLデータ
<versiontables>

<version>1.4</version>

<comment>データ取得スピード****</comment>

</versiontables>

TBXMLElement* versionsElement = [TBXML childElementNamed:@"versionTables" parentElement:element];
while(versionsElement != nil)
{
// 取得したいエレメントを入れる
TBXMLElement* version = [TBXML childElementNamed:@"vertion" parentElement:versionsElement];

if(version != nil)
{
[*aVersion setVer:[[TBXML textForElement:version] floatValue]];

}

TBXMLElement* content = [TBXML childElementNamed:@"comment" parentElement:versionsElement];

if(content != nil)
{
[*aVersion setContent:[TBXML textForElement:content]];
}
// find the next sibling element
versionsElement = [TBXML nextSiblingNamed:@"versionTables" searchFromElement:versionsElement];
}


3. plistのバージョンと比較して、最新バージョンがあればアラート表示

if([[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] floatValue]self
cancelButtonTitle:nil
otherButtonTitles:@"OK",nil];
[alertView show];
[alertView release];
}


4. itunestoreへ遷移します。

NSString* urlString = [NSString stringWithString:@"http://itunes.com/apps/アプリ名"];
NSURL* url= [NSURL URLWithString:urlString];
[[UIApplication sharedApplication] openURL:url];



このやり方で行えば、plistからバージョン取得とituneに飛ばす所をandroid用に変えれば
サーバ側は、何も変更せず対応が可能です。

android版とiphone版をそれぞれのバージョンを管理する場合、カラムを[oskind]というようなものを用意して、対応することも可能でしょう!


※android でバージョン情報取得方法
Android.os.Buildを使うと、機器固有の情報を取り扱うことができます。
Build.VERSION.RELEASE・・・ユーザーに表示するバージョン番号