tag:blogger.com,1999:blog-31817212499779452772024-02-20T09:11:18.809+09:00memo?iPhone/iPod touchアプリの開発に関するメモ。
配布するアプリのプロモーション、サポートなども。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-3181721249977945277.post-58479870480938356972009-05-30T09:15:00.003+09:002009-05-30T09:21:47.250+09:00memo_Google Web ElementsブログなどにGoogleのサービスを埋め込むサービス、<a href="http://www.google.com/webelements/">Google Web Elements</a>。<br /><br />使えるサービスは以下。<br /><ul><br /><li>Calendar</li><br /><li>Conversation</li><br /><li>Custom Search</li><br /><li>Maps</li><br /><li>News</li><br /><li>Presentations</li><br /><li>Spreadsheets</li><br /><li>YouTube News</li><br /></ul><br /><br />YouTube Newsのサンプル。<br /><!-- Google YouTube News Element Code --><br /><iframe frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" src="http://www.google.com/uds/modules/elements/videonews/iframe.html?channel=thenewyorktimes" scrolling="no" allowtransparency="true"></iframe>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-55619632420775154002009-04-03T20:32:00.005+09:002009-04-03T20:56:08.790+09:00CountUp v1.1 Released.<a href="http://click.linksynergy.com/fs-bin/stat?id=f*Na91AwvQQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D291811378%2526mt%253D8%2526partnerId%253D30">AppStore</a>で公開中のアプリ<a href="http://click.linksynergy.com/fs-bin/stat?id=f*Na91AwvQQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D291811378%2526mt%253D8%2526partnerId%253D30">CountUp</a>をバージョンアップしました。<br /><br />このバージョンアップで起動時の選択画面で「Scoreboard」を選択することで、<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFh1ckU-sJozMBLxTreHeW6jfqoq8BiEZ31gsiJs0M1Pnf7BMawC5mGbqxjqUCIHq6HF5bEFB_Nzod8rG3MPM_lECz2lpLLkVDBzq4E0jRFWaDmYNLh_oB2qreXdpdISxn7gCqF3jsqM/s1600-h/Screenshot+2009.04.03+20.46.31.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFh1ckU-sJozMBLxTreHeW6jfqoq8BiEZ31gsiJs0M1Pnf7BMawC5mGbqxjqUCIHq6HF5bEFB_Nzod8rG3MPM_lECz2lpLLkVDBzq4E0jRFWaDmYNLh_oB2qreXdpdISxn7gCqF3jsqM/s320/Screenshot+2009.04.03+20.46.31.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5320431607697933810" /></a><br /><br />自分の成績のスコアボードを閲覧できるようになりました。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi58ZFxn5YAHPWNMIGIwdBYz_I6RnUA2OEhJDKT8KtQaiy1so4vIJksAk7mlViD_MBszauyxm1md_COQOptL_edIeJj9nvZI8YsfbJMhZWyEIFjLNipuZ2K0BTpJ5tmWRlRJfUfL-Rq2ig/s1600-h/Screenshot+2009.04.03+20.49.29.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi58ZFxn5YAHPWNMIGIwdBYz_I6RnUA2OEhJDKT8KtQaiy1so4vIJksAk7mlViD_MBszauyxm1md_COQOptL_edIeJj9nvZI8YsfbJMhZWyEIFjLNipuZ2K0BTpJ5tmWRlRJfUfL-Rq2ig/s320/Screenshot+2009.04.03+20.49.29.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5320431615401607154" /></a><br /><br />また、「Option」から設定することで、オンライン上のスコアボードを世界中のプレイヤーと共有することができるようになりました。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim-mwJf4ggvEhO-u_Q3dTyQl4kmK9MvY2jnuoPYSM6h_UYd8-2NMDUglCCHPQtxozf6W7ebSUkbDJlhh1EiB4lvR4J4ITfjv2VfiL4GDHY8RzjsNEJ_zxvDnt_Nx30NubkYGPfF6S7wLI/s1600-h/Screenshot+2009.04.03+20.49.46.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim-mwJf4ggvEhO-u_Q3dTyQl4kmK9MvY2jnuoPYSM6h_UYd8-2NMDUglCCHPQtxozf6W7ebSUkbDJlhh1EiB4lvR4J4ITfjv2VfiL4GDHY8RzjsNEJ_zxvDnt_Nx30NubkYGPfF6S7wLI/s320/Screenshot+2009.04.03+20.49.46.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5320431621231935842" /></a><br /><br />オンラインスコアボードはGoogle App Engineを利用していて、<a href="http://kkohtaka.appspot.com/countup">こちら</a>から見ることができます。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com2tag:blogger.com,1999:blog-3181721249977945277.post-84111358025947740562009-03-31T22:27:00.003+09:002009-03-31T22:34:58.550+09:00memo_iPhone SDK 3.0 XcodeでCode Signingを成功させるより手軽な方法UIOP+さまが<a href="http://uiopplus.blog63.fc2.com/blog-entry-11.html">こちら</a>にてCode Signingを成功させるより手軽な方法を提供しています。<br /><br />この方法ならば再ログインの必要がない上、Xcode以外のアプリケーションでは日本語環境のままなのでうれしいですね。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-72958351419469668432009-03-23T16:55:00.007+09:002009-03-24T01:26:51.552+09:00memo_iPhone SDK 3.0をインストールしたXcodeでCode Signingを成功させる方法環境設定で言語の優先順位のトップを日本語にしている場合、iPhone SDK 3.0をインストールしたXcodeでビルドしようとすると、「Code Signing Identity "?" does not match any valid, non-expired, code-signing certificate in your keychain」と言われて成功しない。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwN0nNXJxUqTv80tc92BbCzXDp3ufEc7y-SvOiSycdzSGERTOZF3H0osiThB1_8j7H7Sp7xLzI16LXQ5pTQXEVmEZsg1S_axwv-XvOs6DZQQb0pRxtG1Oz0BWeXUvjpcV9MYxW_kBWMQw/s1600-h/xcode_codesigning2.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 104px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwN0nNXJxUqTv80tc92BbCzXDp3ufEc7y-SvOiSycdzSGERTOZF3H0osiThB1_8j7H7Sp7xLzI16LXQ5pTQXEVmEZsg1S_axwv-XvOs6DZQQb0pRxtG1Oz0BWeXUvjpcV9MYxW_kBWMQw/s320/xcode_codesigning2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5316300861579251154" /></a><br /><br />Code Signingの設定を見ると下のようにコード署名IDが「?」となっていて、正しいIDを選択することが出来ない。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir5CQ2eAF9xRGpfCW4bwN8Otr3bJYiUTj9HR8BEzjEk_ny8_purHg98izTAv7k5I22OsqTzhX2X-q4iWGSfbIShWFNVAXsitdEJs9HEbt3FAbOhA6aw4ftrtpm_YujU_L5mdpBo2ux5t8/s1600-h/xcode_codesigning.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 122px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir5CQ2eAF9xRGpfCW4bwN8Otr3bJYiUTj9HR8BEzjEk_ny8_purHg98izTAv7k5I22OsqTzhX2X-q4iWGSfbIShWFNVAXsitdEJs9HEbt3FAbOhA6aw4ftrtpm_YujU_L5mdpBo2ux5t8/s320/xcode_codesigning.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5316300851191465762" /></a><br /><br />ここで、環境設定の言語設定の優先順位を「English」、「日本語」の順にし、ログインし直すと、<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqWOU0M5uua2L7DhdAe7z9rcAXFFi73dGPsXdrOgOK4oyU-DMrWMEA3paRCdFRiwlh8EC6A2TuwLYV2DwzFrDfV4rmLa_S9MyNmu2LJRPn4UG6Vo9Hvvk7rwrI3pg0TKNzXpBtifBSgY/s1600-h/xcode_codesigning4.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 278px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqWOU0M5uua2L7DhdAe7z9rcAXFFi73dGPsXdrOgOK4oyU-DMrWMEA3paRCdFRiwlh8EC6A2TuwLYV2DwzFrDfV4rmLa_S9MyNmu2LJRPn4UG6Vo9Hvvk7rwrI3pg0TKNzXpBtifBSgY/s320/xcode_codesigning4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5316300865956051858" /></a><br /><br />下のように、正しいIDを選択出来るようになり、ビルドを成功させることが出来るようになる。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG3DZ3wzxgCh8az000fIb-izj6Tvn61hrmYNfDp6GA25fju50lXCq-x5YcJ2UN9zMiKxSl4QCzUmraZms7vhKtdM9CKodkiSL-FBoOZ0D7SuNw50nzAtdUah1OunHFL4ORpec_YFArn_I/s1600-h/xcode_codesigning3.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 118px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG3DZ3wzxgCh8az000fIb-izj6Tvn61hrmYNfDp6GA25fju50lXCq-x5YcJ2UN9zMiKxSl4QCzUmraZms7vhKtdM9CKodkiSL-FBoOZ0D7SuNw50nzAtdUah1OunHFL4ORpec_YFArn_I/s320/xcode_codesigning3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5316300866222560738" /></a><br /><br /><br /><br />※匿名さま、情報ありがとうございました!!<br /><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kohtaka-22&o=9&p=8&l=as1&asins=4797352418&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com2tag:blogger.com,1999:blog-3181721249977945277.post-56767741804287351962009-03-18T19:15:00.002+09:002009-03-18T19:33:41.054+09:00iPhone SDK 3.0をインストールしたら。。。iPhone SDK 3.0のベータが公開されたので早速インストールしてみた。<br /><br />何しろ、新しいAPIが1000以上も追加されたとのことなので、どんなものか見てみようと思った。<br /><br />ところが、インストールしたところ、Code Signingに失敗するようになってしまった。。<br /><br />そういえばSDKをダウンロードするときに新しいLicense Agreementに同意していたので、以前の署名が有効でなくなったのかと思い、新しく証明書と鍵とプロビジョニングを作り直した。<br /><br />しかし、ダウンロード、インストールをし、ビルドしてみると、コード署名IDの候補がすべて”?”となっていてビルドに失敗してしまう。<br /><br />どうして???<br /><br />Program PortalのTeam Agent の名前が文字化けしているのが原因かと思ってdevprogramsに直してもらうようメールしてみた。<br /><br />しかし、これで直るのか???kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com4tag:blogger.com,1999:blog-3181721249977945277.post-88178675155878527312009-03-17T17:00:00.002+09:002009-03-17T17:16:24.268+09:00ソーシャル名刺、PokenCNETのPoken創立者兼CEO、Stephane Doutriaux氏に対する<a href="http://japan.cnet.com/interview/story/0,2000055954,20390003,00.htm">インタビュー</a>からの抜粋。<br /><br />「<cite>会社の方針として基本的にオープンにしたいと思っています。欧州では技術のライセンスも進めています。日本でも携帯電話メーカーから声がかかれば、喜んで対応する予定です。</cite>」<br /><br />とのこと。iPhone使いとしては、赤外線通信が出来ないのでこういったものが普及してくれるとうれしいかも。<br /><br />というわけで早速一個注文した。デザインはガイコツのやつにした。<br /><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kohtaka-22&o=9&p=8&l=as1&asins=B001UWMS9S&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-91072648201039281072009-03-16T17:23:00.002+09:002009-03-16T17:30:51.662+09:00iPhone Developer Programのライセンス<a href="http://japan.cnet.com/mobile/story/0,3800078151,20389940,00.htm">アップル、iPhone Developer Programのライセンス期限を延長</a>とのこと。<br /><br />ありがたいことだが、欲を言えば<a href="http://kohtaka-memo.blogspot.com/2008/10/pending-contract.html">Pending Contract問題</a>で販売が開始されなかった期間の分も延長してほしい。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-47284969780327730322009-03-15T14:32:00.005+09:002009-03-16T17:31:34.137+09:00memo_ネイティブアプリからURLをSafariで開く方法開きたいところで、<br /><pre><br />[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];<br /></pre><br />とする。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-42218742453344507252009-03-15T13:01:00.005+09:002009-03-16T17:31:59.775+09:00memo_NSDateから日時・時間を取得する方法<pre><br />// Assume that (NSDate *)date already exists.<br /><br />NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];<br />unsigned int flags = NSYearCalendarUnit |<br /> NSMonthCalendarUnit |<br /> NSDayCalendarUnit |<br /> NSHourCalendarUnit |<br /> NSMinuteCalendarUnit |<br /> NSSecondCalendarUnit;<br />NSDateComponents *components = [calendar components:flags fromDate:date];<br />[calendar release];<br /><br />// Here, you can get information about (NSDate *)date <br />// by using methods year, month, day, hour, minute, and second of instance (NSCalendar *)components.<br /><br />[components release];<br /></pre><br /><br />参考:<br /><a href="http://take-blizzard.cocolog-nifty.com/blog/2009/01/cocoansdate-7c4.html">【Cocoa】NSDateから日時の値を取得する</a>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-37508739571578692652009-03-14T17:27:00.002+09:002009-03-14T17:32:22.176+09:00memo_iPhone/iPod touchのステータスバーのインジケータiPhone/iPod touchでstatus barにあるnetwork indicatorの起動と終了の仕方。<br /><br />起動するときは、<br /><br />[UIApplication sharedApplication].networkActivityIndicatorVisible<br /><br />をYESに、終了するときはNOにする。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-12831732792638654752009-01-08T14:31:00.003+09:002009-03-16T17:32:21.811+09:00memo_gnuplotをleopardにインストール1. <a href="ftp://ftp.gnu.org/pub/gnu/readline/">ここ</a>からreadline5.2とパッチをダウンロードしてパッチを当てる。<br /><br />2. ./configure、make、sudo make installする。<br /><br />3. <a href="http://gnuplot.info/">ここ</a>からgnuplotをダウンロード。<br /><br />4. ./configure --with-readline=builtin、make、sudo make installする。kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-53310376940857711002008-12-14T19:34:00.007+09:002009-03-16T17:32:49.670+09:00memo_FiveStars!の作り方(Amazon Associates Web Service編)<br><a href="http://fivestars.kohtaka.com">FiveStars!</a>を作る上で勉強したことをまとめておく。<br /><br />Amazon Associates Web Serviceへのリクエストをどこへ送信するかは、どの国のデータベースを検索・参照するかによって異なる。<br /><ul><br /><li>ecs.amazonaws.ca/onca/xml(カナダ)</li><br /><li>ecs.amazonaws.de/onca/xml(ドイツ)</li><br /><li>ecs.amazonaws.fr/onca/xml(フランス)</li><br /><li>ecs.amazonaws.jp/onca/xml(日本)</li><br /><li>ecs.amazonaws.co.uk/onca/xml(イギリス)</li><br /><li>ecs.amazonaws.com/onca/xml(アメリカ)</li><br /></ul><br />これらのエンドポイントに、例えばHarry Potterというキーワードで検索するには<br /><pre style="background-color:#eee; border:1px solid #aaa; font-size:medium; padding:0.5em; overflow: auto;">http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService // (1)<br />&AWSAccessKeyId=[<span style="color:red;">Your Access Key ID</span>] // (2)<br />&Operation=ItemSearch // (3)<br />&SearchIndex=Books // (4)<br />&Keywords=Harry%20Potter // (5)<br /><br />#実際には一行で書く。</pre>などとする。なお、スペースは使えないので"%20"としていることに注意。<br /><br />以降、このリクエストについて説明して行く。<br /><br /><p>(1). 一行目</p><br />決まり文句。<br /><br />エンドポイントの".com"の部分は検索・参照したい国によって".jp"となったり、".co.uk"となったりする。<br /><br /><p>(2). 二行目</p><br />[Your Access Key ID]の部分には、それぞれのアクセスキーを入れる。アクセスキーの参照は<a href="http://aws.amazon.com/">Amazon Web Services</a>へログイン後、"Your Account"メニューの"Access Identifier"から可能。<br /><br /><p>(3). 三行目</p><br />データベースからの検索を行うには、Operationパラメータに"ItemSearch"を指定する。他にこのパラメータには"ItemLookup"(参照)、"CartCreate"(商品を入れるカートの生成)などがある。(Operationパラメータによって他に必要なパラメータが変わってくるので、次回は各Operation毎に使い方をまとめる予定。)<br /><br /><p>(4). 四行目と(5). 五行目</p><br />"Books"カテゴリから"Harry Potter"というキーワードを含む商品を検索するという意味。<br /><br />この部分はItemSearchというOperationパラメータに特有のもの。<br /><br /><p>このリクエストに対するレスポンス</p><br />きちんと必要なパラメータが渡せていれば、XMLで正しい結果が戻るはず。<br /><br />上の例ではキーワードにヒットした商品の情報がItemSearchResponse->Items->Itemに格納されている。<br /><br><br>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-10649477824329895092008-12-14T15:12:00.008+09:002009-03-16T17:33:12.756+09:00memo_FiveStars!の作り方<br><a href="http://fivestars.kohtaka.com/">FiveStars!</a>を作る上で勉強したことをまとめていく。<br /><br />まず、準備として、アマゾン・Webサービスを利用するには<a href="http://aws.amazon.com/">ここ</a>でユーザとして登録する。<br /><br />これはアマゾンの商品データベースを検索・参照するために必要。<br /><br />また、アマゾンへのトラフィックを作ることによって収益を得たいと思うならば、各国のアマゾン・アソシエイトとして登録する必要がある。<br /><br />ただし、アマゾン・アソシエイトの方は、収益を得たいと思っている国の全てで登録しなければならない。(Webサービスの方は利用できる全ての国で共通のアカウント)<br /><br /><br />次にサイトの構成。<br /><br />今回はAjaxを利用することで、ユーザからの操作に対してページ内の必要な部分のみを更新して行くような設計にした。<br /><br />大体、次のような感じ。<br /><br /><ul><br /><li>サーバ側</li><br />AmazonAWS.php<br /><pre style="background-color:#eee; border:1px solid #aaa; font-size:medium; padding:0.5em; overflow: auto;"><?php<br /> define("KEY_ID", "Your Access Key ID");<br /> define("ASSOCIATE_ID", "Your Associate ID");<br /> <br /> $request = "http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService";<br /> $request.="&AWSAccessKeyId=".KEY_ID;<br /> $request.="&AssociateTag=". ASSOCIATE_ID;<br /> $request.="&Operation=ItemSearch";<br /> $request.="&SearchIndex=" . $_GET["SearchIndex"];<br /> $request.="&Title=" . $_GET["Title"];<br /> $request.="&Author=" . $_GET["Author"];<br /> $request.="&Publisher=" . $_GET["Publisher"];<br /> $request.="&Keywords=" . $_GET["Keywords"];<br /> <br /> $response = file_get_contents($request);<br /> $xml = simplexml_load_string($response);<br /> $json = json_encode($xml);<br /> echo($json);<br />?><br /></pre>サーバ側のAmazonAWS.phpは、クライアントからのリクエストをアマゾン・Webサービスのエンドポイント(http://ecs.amazonaws.jp/onca/xml)に送り、そのレスポンスをJSONに変換してクライアントに返す。<br /><br /><br /><li>クライアント側</li><br />index.html<br /><pre style="background-color:#eee; border:1px solid #aaa; font-size:medium; padding:0.5em; overflow: auto;"><html><br /><head><br /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><br /> <title>Testing Amazon Associates Web Service</title><br /> <script type="text/javascript" src="jquery.js"></script> <br /> <script type="text/javascript" src="jquery.form.js"></script> <br /> <script type="text/javascript"> <br /> $(document).ready(function() {<br /> var option = {<br /> success: function(json) {<br /> $("#SearchResults").empty();<br /> for (var i = 0; i < json.Items.Item.length; i++) {<br /> $("#SearchResults")<br /> .append(<br /> $("<li></li>")<br /> .html(json.Items.Item[i].ItemAttributes.Title)<br /> );<br /> }<br /> },<br /> dataType: "json"<br /> };<br /> $("#ajaxForm").ajaxForm(option);<br /> });<br /> </script> <br /></head><br /><body><br /><br /><form id="ajaxForm" action="AmazonAWS.php" method="get"><br /><table><br /> <tr><td>タイトル</td><td><input type="text" name="Title"></td></tr><br /> <tr><td>著者</td><td><input type="text" name="Author"></td></tr><br /> <tr><td>出版社</td><td><input type="text" name="Publisher"></td></tr><br /> <tr><td>キーワード</td><td><input type="text" name="Keywords"></td></tr><br /></table><br /><input type="radio" name="SearchIndex" value="Books" checked>和書<br /><input type="radio" name="SearchIndex" value="ForeignBooks">洋書<br /><button type="submit">検索</button><br /></form><br /><br /><ul id="SearchResults"></ul><br /><br /></body><br /></html><br /></pre>クライアントはアマゾンの商品データベースへの検索フィールドを送り、返ってきたJSON形式のレスポンスから必要な情報を抽出する。上の例では検索結果のタイトルをリストにして表示する。<br /><br />また、今回はjQueryを利用することでソースコードを簡略化しているので、上の例を動作させるためには<a href="http://jquery.com/">jQuery</a>とその<a href="http://malsup.com/jquery/form/">フォームプラグイン</a>が必要となる。<br /></ul><br /><br><br>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-34561270098679773632008-12-11T15:26:00.004+09:002008-12-14T20:09:13.646+09:00FiveStars!アマゾンで買い物をする事が多いので、外で買い物をするときもアマゾンでの価格やレビューが気になってしまう。<br /><br />iPhoneを持ってれば、外にいるときでもすぐに確認出来るのだが、あの小さい画面ではいまいち見にくいなぁ、と思っていた。<br /><br />で、iPhone用のアマゾンビュアーを作っていたのだが、Amazon Web Servicesの<a href="http://aws.amazon.com/agreement/#5.1">規約</a>を読んだところ、どうやら携帯電話用のアプリケーションからAmazon Associates Wev Serviceを利用する事は出来ないらしい。<br />(正確には利用するには事前に書面による承諾が必要との事なのだが、これを申し込んだところ断られた。)<br /><br />せっかく途中まで作っていたので、もったいないと思ってPC用のブラウザから見れる普通のサービスとして作ってみた。<br /><br />Five Stars!<br /><a href="http://fivestars.kohtaka.com">http://fivestars.kohtaka.com</a><br /><br /><br />ところで、iPhoneアプリにはAmazon Web Servicesを使ってるっぽいのがいくつかあるみたいなのだが、これらの開発者の方々はどうやって承諾を得たのだろうか?<br /><br />参考(AppStoreへのリンク):<a href="http://click.linksynergy.com/fs-bin/stat?id=f*Na91AwvQQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D298454705%2526mt%253D8%2526partnerId%253D30">ItemShelf</a>、<a href="http://click.linksynergy.com/fs-bin/stat?id=f*Na91AwvQQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D291031830%2526mt%253D8%2526partnerId%253D30">Snip</a>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-24282423390485823582008-11-07T12:07:00.004+09:002008-11-07T16:42:13.058+09:00App Storeでの検索にかからない。。。<div><br /></div><div>一週間程前、<a href="http://kohtaka-memo.blogspot.com/2008/11/calc.html">calc.</a>がReady for SaleになったのでApp Storeで検索にかけたのだが、かからない。</div><div><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=290568098">開発者のページ</a>を見ても見当たらない。</div><div><br /></div><div>Ready for SaleになってからApp Storeに出るまで、少し時間がかかるのかと思って(CubePuzzleのときは全く時間がかからなかったが。)、一昨日までまったがまだ駄目だった。</div><div><br /></div><div>仕方が無いので、iTunes Connectにメールで聞いたところ、<a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=295289483&mt=8">ここ</a>にあるよ〜、と言われてしまった。だが、検索には一向にかからない。。なぜ???</div><div><br /></div><div><br /></div><div>-----追記-----</div><div><br /></div><div>さっきApp Storeで検索してみたら、見つけることが出来た。メールしたから直ったのか、自然に直ったのかは謎。</div><div><br /></div><div><br /></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-4465059489014695662008-11-07T11:44:00.006+09:002008-11-12T16:16:41.227+09:00calc.<div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzEwOCfSWZmuwjxN_g0xU0aiV4gmkY_0EAmdJoDfXsBD80aE6S9C_obcHZNd8UYpnXI-n4weUFkrmRlHMDOZqxBqeCojz4m2Kmye4MdFyDPpyRIXxA-G4vjSmJtX-yrXDRxEjjAoerSY0/s1600-h/Icon.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 57px; height: 57px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzEwOCfSWZmuwjxN_g0xU0aiV4gmkY_0EAmdJoDfXsBD80aE6S9C_obcHZNd8UYpnXI-n4weUFkrmRlHMDOZqxBqeCojz4m2Kmye4MdFyDPpyRIXxA-G4vjSmJtX-yrXDRxEjjAoerSY0/s320/Icon.png" alt="" id="BLOGGER_PHOTO_ID_5265741753314953330" border="0" /></a><br /><br /><br /><div><br /></div><div><br /></div><div>簡易的な関数電卓です。</div><div><br /></div><div>三角関数などの基本的な関数の値を求めることが出来るほか、</div><div>括弧を使用した計算が可能です。</div><div><br /></div><div>また、計算結果を記憶しておく機能により、</div><div>重複した入力をする手間が省けます。</div><div><br /></div><div>スクリーンショット、購入はこちらから。</div><div><p style="margin: 0px; font-family: Hiragino Kaku Gothic ProN; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; min-height: 18px;"><br /></p><div><a href="http://click.linksynergy.com/fs-bin/stat?id=f*Na91AwvQQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D295289483%2526mt%253D8%2526partnerId%253D30"><img alt="CubePuzzle" src="http://ax.itunes.apple.com/images/badgeitunes61x15dark.gif" height="15" width="61" /></a><br /><br /></div><div><br /></div><div>-----以下、メモ。-----</div><div><br /></div><div>iTunes Connectにアプリを申請する際、始めはCalculatorという名前で申請しようと思ったのだが、これはビルトインのアプリに使われているので不可だった。どうやら既に使われている名前での申請は出来ないらしい。</div><div><br /></div><div>ちなみに、アプリの名前は申請する時に記入するものが既存のものと重複しなければ大丈夫だが、インストールした時にiPhoneのデスクトップに表示されるアプリの名前は、ビルドした時の<s>ターゲットの名前</s>info.plistのBundle display nameになるようだ。(なので、calc.をインストールすると、アプリ名はCalculatorと表示される。。。)</div><div><br /></div><div><br /></div><div><br /></div></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-7298956580254940952008-11-07T11:00:00.012+09:002008-11-07T12:06:17.103+09:00CubePuzzle<div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyYUa7tdvTHY4USD8rYRG2KMMHoOfyVPpWE4VMMNAZxSx8zcz87mfj0UU_zp5dme_80OGfwi4eh4ygcnOY4KFb6g6in5rGWH1xOj_i-dWpOy37z-cHNMvbHSwbCg97XeEENGjpet3XvzE/s1600-h/Icon.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 57px; height: 57px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyYUa7tdvTHY4USD8rYRG2KMMHoOfyVPpWE4VMMNAZxSx8zcz87mfj0UU_zp5dme_80OGfwi4eh4ygcnOY4KFb6g6in5rGWH1xOj_i-dWpOy37z-cHNMvbHSwbCg97XeEENGjpet3XvzE/s320/Icon.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5265737790223550274" /></a><br /><div><br /></div><br /><br /><br />立方体の6つの面の色をそろえていくゲームです。<br /><br /><遊び方><br /><ol><li>iPhoneをシェイクして各面の色をバラバラにします。 <br /></li><li>スクリーン上のキューブをドラッグすることで、面の色をそろえて行きます。 <br /></li><li>もしも別の視点からキューブを眺めたくなったなら、キューブのない空間をドラッグすることで視点を変えることが出来ます。ただし、指を離すと元の視点に戻ってしまいます。 <br /></li><li>新しい視点に固定したい場合は、二本指でドラッグを開始してください。 <br /></li></ol><br /><操作法><br />シェイク:<br /><span class="Apple-tab-span" style="white-space:pre"> </span>面をバラバラにする。<br />キューブをドラッグ:<br /><span class="Apple-tab-span" style="white-space:pre"> </span>キューブを回転させる。<br />キューブ以外をドラッグ:<br /><span class="Apple-tab-span" style="white-space:pre"> </span>視点を一時的に変える。<br />二本指でドラッグ:<br /><span class="Apple-tab-span" style="white-space:pre"> </span>視点を変える。<br /><br /><br />スクリーンショット、購入はこちらから。<br /><br /><a href="http://click.linksynergy.com/fs-bin/stat?id=f*Na91AwvQQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D294208109%2526mt%253D8%2526partnerId%253D30"><img height="15" width="61" alt="CubePuzzle" src="http://ax.itunes.apple.com/images/badgeitunes61x15dark.gif" /></a>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-48560601399603050372008-10-21T13:17:00.004+09:002008-10-21T16:12:33.975+09:00Pending Contract 解消!!<div><br /></div><div>Pending Contractが解消され、めでたく<span class="Apple-style-span" style=" white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Lucida Grande';font-size:11px;"><a href="http://click.linksynergy.com/fs-bin/click?id=f*Na91AwvQQ&offerid=94348.698197060&type=10&subid="><span class="Apple-style-span" style=" white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-family:Georgia;font-size:16px;">App Store</span></a><img alt="icon" width="1" height="1" src="http://ad.linksynergy.com/fs-bin/show?id=f*Na91AwvQQ&bids=94348.698197060&type=10&subid=" /><span class="Apple-style-span" style=" white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-family:Georgia;font-size:16px;">にアプリが並んだ。</span></span></div><div><br /></div><div>Pending Contract問題で悩まされていた開発者の多くが、今朝、その悩みから解放されたらしいが、念のため自分が行ってきた事の中で問題解決に関係していたかもしれないことをまとめておく。</div><div><br /></div><div><ul><li>iTunes ConnectのContracts, Tax & Banking Informationを全て登録した。</li><li>iTunes株式会社から会社情報(日本語と英語)を聞かれて答えた(二回)。</li><li>iTunes Connectで見られるCompany AddressのState/Provinceが???となっていたので、iTSPaymentsに連絡して直してもらった。自分の場合は名前の文字化けは無かった。</li></ul><div><br /></div><div><br /></div><div><br /></div></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com4tag:blogger.com,1999:blog-3181721249977945277.post-881811936044892462008-10-17T23:29:00.003+09:002008-10-17T23:46:41.292+09:00Contact Informationの変更<div><br /></div><div>Pending Contractに陥らないための最低条件のひとつに<a href="http://iphone-dev.g.hatena.ne.jp/takuma104/20081006/1223242939">Contact Informationの住所が文字化けしない</a>というのがあるみたい。</div><div><br /></div><div>早速、iTSPaymentsに直してもらうようにメールしたところ、ものの一日で直してもらえた。ただリンク先にもあるように、この条件はアプリの審査終了時点で満たされていなければならないらしく、相変わらず私のアプリはPending Contractのまま。。。これを解消するには一体どうしたら良いのだろうか?</div><div><br /></div><div>さらに新しいアプリを申請したいのだが、このような不安要素を抱えたまま、申請して良いものなのだろうか?やはり、Contract in ProcessのステータスがSetup Completeになるのを待つべきなのか?</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><span class="Apple-style-span" style="color: rgb(70, 115, 203); font-family: 'Lucida Grande'; font-size: 12px;"><br /></span></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-79345522877600785722008-10-11T18:35:00.003+09:002008-10-11T18:43:36.175+09:00memo_TabBarItemの設定<div><br /></div><div>TabBarItemに自分で描いたイメージを用いる場合、グレイスケールで、大きさは30*25pixel程度にするのが良さそう。</div><div><br /></div><div>見た感じでは、非選択時の描画は二値化されているようなのだが、選択時にはグレイスケールが反映されているのだろうか?小さくて判断がつかない。</div><div><br /></div><div><br /></div><div><br /></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-66871839238845644262008-10-11T18:30:00.003+09:002008-10-11T18:43:45.954+09:00Pending Contract の続き<div><br /></div><div>どうやらこの状態は、登録情報のいくつかを日本語で登録していた人たちが陥っているようだ。</div><div><br /></div><div>そういえば、アップルから二度程、日本語と英語での社名(または個人名)などの追加情報を連絡するようにとのメールをもらっていた。この件も手続きの滞りと関係があるのだろうか。</div><div><br /></div><div><br /></div><div><br /></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-52599418862671744792008-10-09T18:21:00.004+09:002008-10-11T18:30:31.604+09:00Pending Contract...<div><br /></div><div>以前に申請したCountUpのレビューが通ったとの連絡があってから二週間程経つ。が、いまだiTunes Connectでの状態はPending Contractのまま。。。これはアップルに問い合わせた方が良いのだろうか。</div><div><br /></div><div><br /></div><div>SS-4をFAXしてから、一月程経って郵送でEIN取得の連絡が来た。FAXでの連絡が無かったのでずっと不安だったのだが、これでこちらの件は一安心といったところか。引き続き、今度はアップルへW-8BENを郵送した。</div><div><br /></div><div>AppStoreのおかげで、プログラマの小遣い稼ぎが楽になったかと思いきや、意外と面倒なこと、うまくいかないこと、が多くて少し残念である。</div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-71708212963132468772008-09-21T21:27:00.007+09:002008-09-21T21:40:33.325+09:00CountUp<div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUwF7J9Or2SJ4c23-1_IX6brK0RRUa_wGT6XneVSRHJvmEcTyMsOBT-P-HCCAkWh7qSYBDazcZNvjLKXW5EgqHh4eYM61SM6Q9nlE4Sob5PNurPL7Y2d8qQRWMF9krYtE0rTCTThApEgg/s1600-h/Icon.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUwF7J9Or2SJ4c23-1_IX6brK0RRUa_wGT6XneVSRHJvmEcTyMsOBT-P-HCCAkWh7qSYBDazcZNvjLKXW5EgqHh4eYM61SM6Q9nlE4Sob5PNurPL7Y2d8qQRWMF9krYtE0rTCTThApEgg/s320/Icon.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5248451935417183586" /></a><br /><br /><div><br /></div><div><br /></div><div><br /></div><div>新しいiPhoneアプリを申請。<div><br /></div><div>今度は1から30までの数字をタッチして数えていくゲーム。</div><div>数字は起動ごとにランダムに配置され、30まで数え終わるとそれまでにかかった時間を表示する。<br /></div><div><br /></div><div>ベストスコアを記録しておく機能も付けようかと思ったが、取り敢えずということで申請してしまった。</div><div><br /></div><div>今度は通ると良いなぁ。</div><div><br /></div><div><br /></div><div><br /></div></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com2tag:blogger.com,1999:blog-3181721249977945277.post-1855883895731567752008-09-12T10:31:00.005+09:002008-09-21T21:40:44.118+09:00Vibratorの末路<div><br /></div>先日、AppStoreへ投稿したVibratorがリジェクトされた。<div><br /></div><div>どうやらバイブレーションという機能をアラート以外の目的で使用することが問題らしい。</div><div><br /></div><div>無念。</div><div><br /></div><div><br /></div><div><br /></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0tag:blogger.com,1999:blog-3181721249977945277.post-33307742100645118042008-09-07T16:53:00.005+09:002008-09-21T21:40:57.820+09:00App Store<div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfDSz70MuNDL6dgJ6x3IrIzY0-HuCTjnBPdJV2eVIfQFUlur-ichkr8B4tTk27N1w33fj86uS4nvKzjpAHtqFpX8R9XZ14qlVR_PdWGuAKnftiRPLj3Oc1oh4FDp1JFYE-U68ZTH6glLg/s1600-h/Screenshot_Japanese.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfDSz70MuNDL6dgJ6x3IrIzY0-HuCTjnBPdJV2eVIfQFUlur-ichkr8B4tTk27N1w33fj86uS4nvKzjpAHtqFpX8R9XZ14qlVR_PdWGuAKnftiRPLj3Oc1oh4FDp1JFYE-U68ZTH6glLg/s320/Screenshot_Japanese.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5243512037343760290" /></a><br />EINを取得するため、ss4なる書類を作り申請するも音沙汰がない。<div><br /></div><div>仕方なしに無料アプリを先にAppStoreへ申請した。何事もなく受理されると良いなぁ。</div><div><br /></div><div>以下、申請したアプリの概要。</div><div><br /></div><div>アプリ名:Vibrator</div><div>カテゴリ:Healthcare & Fitness</div><div>説明:iPhoneの振動機能を利用することで、iPhoneを簡易マッサージ器にしてしまおうというアプリケーション。</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>kohtakahttp://www.blogger.com/profile/17346612985297947215noreply@blogger.com0