<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
  <title>MASATOの開発日記</title>
  <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/" />
  <modified>2010-02-02T11:41:23Z</modified>
  <tagline>ソフト開発のTipsや自作ソフトウェアのリリース案内。</tagline>
  <id>tag:www.sutosoft.com,2006:/room//2</id>
  <generator url="http://www.movabletype.org/" version="3.2-ja-2">Movable Type</generator>
  <copyright>Copyright (c) 2010, MASATO</copyright>
  <entry>
    <title>タッチイベント処理の順番</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000942.html" />
    <modified>2010-02-02T11:41:23Z</modified>
    <issued>2010-02-02T20:37:49+09:00</issued>
    <id>tag:www.sutosoft.com,2010:/room//2.942</id>
    <created>2010-02-02T11:37:49Z</created>
    <summary type="text/plain">iPhone SDK 3.1.2 において、タッチイベント処理が、
touchesBegan → touchesMoved x N → (touchesEnded or touchesCancelled)
という順番で来る想定でコードを書いていたら、マルチタッチ時に上手く動作しないという問題が発生しました。
この問題があるため、以前リリリースしたButterfly 15というアプリは、
画面を複数の指でタッチしまくっていると落ちます。なんてことだ。</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
iPhone SDK 3.1.2 において、タッチイベント処理が、
<br />
touchesBegan → touchesMoved x N → (touchesEnded or touchesCancelled)
<br />
という順番で来る想定でコードを書いていたら、マルチタッチ時に上手く動作しないという問題が発生しました。
<br />
この問題があるため、以前リリリースした<a href="http://www.sutosoft.com/room/archives/000886.html">Butterfly 15</a>というアプリは、
画面を複数の指でタッチしまくっていると落ちます。なんてことだ。
</p>
]]>
      <![CDATA[<p>
ちょっと調べてみたところ、
「<a href="http://developer.apple.com/jp/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/EventHandling/EventHandling.html">iPhoneアプリケーションプログラミングガイド: イベント処理</a>」によると、
touchesBeganが何回か続けてくることもあるようです。
<br />
実際にも、指一本で画面に触れた後、離す前に別の指で画面に触るとtouchesBeganが呼び出されるようです。
UIViewのmultipleTouchEnabledをNOにしておいても呼び出されます。
</p>

<p>
というわけで、タッチイベント処理は、
<br />
touchesBegan → (touchesBegan or touchesMoved) x N → (touchesEnded or touchesCancelled)
<br />
という順番で来ることを想定しておく必要があるようです。
<br />
そもそも意図していない順番で呼び出された時は何もしないようなコードにしておけば良かったんですけどね。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>人材獲得作戦・４　試験問題</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000920.html" />
    <modified>2010-01-11T10:41:15Z</modified>
    <issued>2010-01-11T16:41:57+09:00</issued>
    <id>tag:www.sutosoft.com,2010:/room//2.920</id>
    <created>2010-01-11T07:41:57Z</created>
    <summary type="text/plain">人材獲得作戦・４　試験問題というのがあったのでやってみました。</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
<a href="http://okajima.air-nifty.com/b/2010/01/post-abc6.html">人材獲得作戦・４　試験問題</a>というのがあったのでやってみました。
</p>

<p>
60分で以下のコードができました。
<br />
内訳は以下の通り。
</p>
<table>
<tr><td>入力ファイルを読み込んでメモリに落とすコード</td><td>10分</td></tr>
<tr><td>最小値を検索するコード(関数FindRoot)</td><td>29分</td></tr>
<tr><td>最小ルートを$に置き換える関数(関数MapRoot)</td><td>10分</td></tr>
<tr><td>空白マップのときの処理時間が長いことに気がついて修正</td><td>8分</td></tr>
<tr><td>不要なコード削除、入出力周り整理</td><td>3分</td></tr>
</table>

<p>
入出力周りや、細かいバグで結構時間を取られました。
こういうのを30分以下でできる人は凄いと思います。
</p>]]>
      <![CDATA[<h5>コード</h5>
<pre>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

using namespace std;

int StartX = 0;
int StartY = 0;
int GoalX = 0;
int GoalY = 0;
vector&lt;string&gt; Maze;
vector&lt;basic_string&lt;int&gt; &gt; Answer;

void FindRoot(int x, int y, int level);
void MapRoot(int x, int y);

int main(int argc, char* argv[])
{
  for (size_t y = 0; !cin.eof(); ++y) {
    string line;
    getline(cin, line);
    for (size_t x = 0; x &lt; line.size(); ++x) {
      switch (line[x]) {
      case 'S':
        StartX = x;
        StartY = y;
        break;
      case 'G':
        GoalX = x;
        GoalY = y;
        break;
      }
    }
    basic_string&lt;int&gt; answer(line.size(), 0);
    Maze.push_back(line);
    Answer.push_back(answer);
  }

  FindRoot(StartX, StartY, 1);
  MapRoot(GoalX, GoalY);

  for (size_t y = 0; y &lt; Maze.size(); y++) {
    cout &lt;&lt; Maze[y] &lt;&lt; endl;
  }
  return 0;
}

void FindRoot(int x, int y, int level)
{
  Answer[y][x] = 1;
  for (int level = 1, goal = 0; !goal; ++level) {
    for (size_t y = 0; y &lt; Maze.size(); ++y) {
      for (size_t x = 0; x &lt; Maze[y].size(); ++x) {
        if (Answer[y][x] == level) {
          for (int xp = -1, yp = 0, i = 0; i &lt; 4; xp += yp, yp = xp - yp, xp = yp - xp, ++i) {
            char c = Maze[y + yp][x + xp];
            int a = Answer[y + yp][x + xp];
            if (c != '*' &amp;&amp; (a == 0 || level &lt; a)) {
              Answer[y + yp][x + xp] = level + 1;
              if (x + xp == GoalX &amp;&amp; y + yp == GoalY) {
                goal = 1;
              }
            }
          }
        }
      }
    }
  }
}

void MapRoot(int x, int y)
{
  int a = Answer[y][x];
  for (int xp = -1, yp = 0, i = 0; i &lt; 4; xp += yp, yp = xp - yp, xp = yp - xp, ++i) {
    if (x + xp == StartX &amp;&amp; y + yp == StartY) {
      break;
    }
    int b = Answer[y + yp][x + xp];
    if (Answer[y + yp][x + xp] == a - 1) {
      Maze[y + yp][x + xp] = '$';
      MapRoot(x + xp, y + yp);
      break;
    }
  }
}</pre>

<p>
関数とか使わなくてもできましたね。
</p>

<h5>出力例</h5>
<pre>**************************
*S* *$$$$                *
*$* *$ *$ *************  *
*$*$$$* $  ************  *
*$$$ *  $$$$$$$          *
**************$***********
* $$$$$$$$$$$$$          *
**$***********************
* $$$  *$$$$$$$$$$$$$$G  *
*  *$$$$$ *********** *  *
*    *        ******* *  *
*       *                *
**************************</pre>

<pre>**************************
*S                       *
*$                       *
*$                       *
*$                       *
*$                       *
*$                       *
*$                       *
*$                       *
*$                       *
*$                       *
*$$$$$$$$$$$$$$$$$$$$$$$G*
**************************</pre>
]]>
    </content>
  </entry>
  <entry>
    <title>日本「半導体」敗戦</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000913.html" />
    <modified>2010-01-08T18:03:12Z</modified>
    <issued>2010-01-09T03:01:05+09:00</issued>
    <id>tag:www.sutosoft.com,2010:/room//2.913</id>
    <created>2010-01-08T18:01:05Z</created>
    <summary type="text/plain">日本「半導体」敗戦 という本を読みましたので感想を書いておきます。 </summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>書評</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=wwwsutosoftco-22&o=9&p=8&l=as1&asins=4334934692&fc1=000000&IS2=1&lt1=_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>

<p>
<a href="http://www.amazon.co.jp/gp/product/4334934692?ie=UTF8&tag=wwwsutosoftco-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4334934692">日本「半導体」敗戦</a><img src="http://www.assoc-amazon.jp/e/ir?t=wwwsutosoftco-22&l=as2&o=9&a=4334934692" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
という本を読みましたので感想を書いておきます。
</p>
]]>
      <![CDATA[<p>
1990年頃は世界シェアトップだった日本の半導体産業が、その後10年位で韓国や台湾に追い抜かれてしまった原因を分析した本です。
<br />
ざっくりと要約すると、昔のコンピュータは大型で高価なものが主流であり、日本が製造する高品質で高価な半導体と合うものだったのですが、
コンピュータの低価格化が始まっていくと、韓国や台湾の低品質で安価な半導体の方が売れてしまったというお話です。
<br />
日本の半導体メーカは、低品質で安価な半導体を作ることができなかったのです。
その理由の一つとしては、筆者は、既存製品より品質を落とせない企業体質を挙げています。
<br />
私も、既存製品以下の品質だとダメと言われる場面に遭遇したことは何度もありますので、
身につまされました。
<br />
結局のところ、品質を上げるコストが品質ロスコストを上回った時点で、品質を上げる取り組みはストップするべきなのでしょう。
あとは、それぞれのコストの見積もり精度を高めていけば、ベストなストップポイントが見つかるのではないかと思います。
</p>

<p>
品質向上の取り組みを延々と続けることに疑念を持っている方にはお勧めの一冊です。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>iPhoneアプリの登録作業(3/3)</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000903.html" />
    <modified>2010-01-11T08:08:53Z</modified>
    <issued>2009-12-29T00:49:38+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.903</id>
    <created>2009-12-28T15:49:38Z</created>
    <summary type="text/plain">iPhoneアプリの登録作業(2/3)の続きです。
Overviewの入力が終わりましたので、残りの項目を入力していきます。</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
<a href="http://www.sutosoft.com/room/archives/000900.html">iPhoneアプリの登録作業(2/3)</a>の続きです。
Overviewの入力が終わりましたので、残りの項目を入力していきます。
</p>
]]>
      <![CDATA[<h4>Rating</h4>
<p>
暴力なもの、性的なもの、アルコールやタバコ、ギャンブルなどがでてくるかどうか。
<br />
私の場合は特になかったので全てNoneにしました。
</p>

<h4>Upload</h4>
<p>
<a href="http://www.sutosoft.com/room/archives/000899.html">iPhoneアプリ登録作業(1/3)</a>で準備しておいたアプリケーション、アイコン、スクリーンショットを登録します。
</p>

<h4>Pricing</h4>
<p>
Availability Date(公開可能日)、Price Tier(値段)、公開地域を登録します。
<br />
私の場合は、レビューが終わったらすぐに公開して良いものだったので、公開可能日＝登録日(2009/12/5)にしました。
<br />
値段は無料(Free)。公開地域は全てにしました。全世界に公開です。
</p>

<h4>Localization</h4>
<p>
日本語のアプリケーション名、解説、キーワードなどを入力します。
<br />
私は、ここでトラブルが起きました。
以下のエラーメッセージが表示されるのですが、入力欄が表示されないのです。
<br />
You must provide an application description for Japanese
</p>

<p>
結局アプリケーション登録を最初からやり直すことで問題は解決しましたが、
再入力は若干面倒でした。
</p>

<h4>終了</h4>
<p>
Waiting For Review状態になれば登録は完了です。お疲れさまでした。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091206_app.png" width="445" height="185" alt="Waiting For Review状態" />
</p>

<p>
登録にあたっての注意点は以下の2つです。
</p>
<ul>
<li>画像のフォーマットに注意すること</li>
<li>登録中のトラブルに備えて登録内容はメモしておくこと</li>
</ul>
]]>
    </content>
  </entry>
  <entry>
    <title>iPhoneアプリの登録作業(2/3)</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000900.html" />
    <modified>2010-01-11T08:09:26Z</modified>
    <issued>2009-12-28T03:49:49+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.900</id>
    <created>2009-12-27T18:49:49Z</created>
    <summary type="text/plain">iPhoneアプリの登録作業(1/3)の続きです。
</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
<a href="http://www.sutosoft.com/room/archives/000899.html">iPhoneアプリの登録作業(1/3)</a>の続きです。
<br />
以下のサイトは参考になりますので合わせて読んでおいて下さい。
</p>
<ul>
<li><a href="http://gihyo.jp/dev/serial/01/iphone/0010">目指せ！iPhoneアプリ開発エキスパート 第10回</a></li>
<li><a href="http://lab.studioheat.com/?p=473">Studio Head Lab. iPhoneアプリ、App Storeに登録完了</a></li>
</ul>
]]>
      <![CDATA[<p>
以下、登録時のOverview項目に私が入力した内容を挙げます。全部英語です。
</p>

<h4>Application Name</h4>
<p>
アプリケーション名。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_applicationname.png" width="569" height="37" alt="Application Name" />
</p>

<h4>Application Description</h4>
<p>
解説。結構適当です。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_applicationdescription.png" width="550" height="296" alt="Application Description" />
</p>

<h4>Device Requirements</h4>
<p>
対応デバイス。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_devicerequirements.png" width="535" height="34" alt="Device Requirements" />
</p>

<h4>Primary Category, Secondary Category</h4>
<p>
カテゴリ。一応パズルゲームなのでそれっぽく。
良く分からないところは空欄のまま。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_category.png" width="518" height="152" alt="Primary Category, Secondary Category" />
</p>

<h4>Copyright</h4>
<p>
著作権表示。先頭に(C)をつける必要はないようです。Appleが勝手につけてくれます。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_copyright.png" width="460" height="35" alt="Copyright" />
</p>

<h4>Version Number</h4>
<p>
バージョン番号。最初のリリースなので一応1.0に。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_versionnumber.png" width="497" height="32" alt="Version Number" />
</p>

<h4>SKU Number</h4>
<p>
アプリケーションユニークな文字列。良く分かりませんでしたが、とりあえずアプリケーション名にしておきました。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_skunumber.png" width="472" height="33" alt="SKU Number" />
</p>

<h4>Keywords</h4>
<p>
検索用キーワード。適当。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_keywords.png" width="453" height="58" alt="Keywords" />
</p>

<h4>Application URL, Suport URL, Support Email Address</h4>
<p>
アプリケーション紹介ページ、サポートページ、サポートメールアドレス。
このサイトにあるものを使用しました。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_applicationurl.png" width="547" height="115" alt="Application URL, Suport URL, Support Email Address" />
</p>

<h4>Demo Account</h4>
<p>
アカウントが必要なアプリケーションの審査用アカウント。
私の場合はアカウントは必要ないので空欄にしました。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091228_demoaccount.png" width="570" height="297" alt="Demo Account" />
</p>

<p>
以降、<a href="http://www.sutosoft.com/room/archives/000903.html">iPhoneアプリの登録作業(3/3)</a>に進みます。
<p>
]]>
    </content>
  </entry>
  <entry>
    <title>iPhoneアプリの登録作業(1/3)</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000899.html" />
    <modified>2010-01-11T08:09:52Z</modified>
    <issued>2009-12-27T17:16:54+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.899</id>
    <created>2009-12-27T08:16:54Z</created>
    <summary type="text/plain">先日iPhoneアプリの登録作業をしてみましたので、作業に必要だったものや遭遇したトラブルについてメモしておきます。 </summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
<a href="http://www.sutosoft.com/room/archives/000871.html">先日iPhoneアプリの登録作業</a>をしてみましたので、
作業に必要だったものや遭遇したトラブルについてメモしておきます。
</p>
]]>
      <![CDATA[<h4>登録前に必要なもの</h4>
<ul>
<li>ZIP圧縮したアプリケーション</li>
<li>App Store上で表示するアイコン(512x512ピクセル)</li>
<li>アプリケーションのスクリーンショット</li>
<li>解説文</li>
<li>サポートサイトとメールアドレス</li>
</ul>

<h4>ZIP圧縮したアプリケーション</h4>
<p>
アイコン設定やディストリビューションビルドを行う必要があります。
詳細は「<a href="http://gihyo.jp/dev/serial/01/iphone/0010">目指せ！iPhoneアプリ開発エキスパート 第10回</a>」が参考になります。
<br />
注意点としては、57x57ピクセルのアイコンの画像形式です。PNGにする必要があります。
私はJPEGにしていたのですが、以下のエラーメッセージに遭遇して登録できませんでした。
<br />
The binary you uploaded was invalid. The icon file must be in .png format.
</p>

<h4>App Store上で表示するアイコン(512x512ピクセル)</h4>
<p>
対応画像形式はJPEG、TIFFが推奨されていますが、PNGを使ってもOKでした。
</p>

<h4>アプリケーションのスクリーンショット</h4>
<p>
言語毎に最低1枚必要です。対応画像形式はよく分かりませんがPNGはOKでした。
<br />
Optionとして4枚追加できるので、最大で言語数x5枚登録できます。
<br />
私は英語用に1枚、日本語用に1枚用意しました。
</p>

<h4>解説文</h4>
<p>
多言語毎に必要です。最大で4000文字です。
<br />
私は日本語の解説文を最初に書いて、英語版は日本語版を「<a href="http://www.excite.co.jp/world/">エキサイト 翻訳</a>」で翻訳して作成しました。
</p>

<h4>サポートサイトとメールアドレス</h4>
<p>
私の場合はこのサイト(<a href="http://www.sutosoft.com/room">MASATOの開発日記</a>)がありましたので特に何も必要ありませんでしたが、サイトを持っていない方は準備が必要になります。
<br />
メールアドレスも普段のものを使うことにしました。
</p>

<p>
準備ができたら、<a href="http://www.sutosoft.com/room/archives/000900.html">iPhoneアプリの登録作業(2/3)</a>に進みます。
<p>
]]>
    </content>
  </entry>
  <entry>
    <title>平成21年度 秋期 システムアーキテクト試験 成績照会</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000895.html" />
    <modified>2009-12-21T15:52:19Z</modified>
    <issued>2009-12-22T00:45:06+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.895</id>
    <created>2009-12-21T15:45:06Z</created>
    <summary type="text/plain">平成21年度 秋期 システムアーキテクト試験 成績照会</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>感想</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
平成21年度 秋期 システムアーキテクト試験 成績照会
</p>
]]>
      <![CDATA[<p>
受験番号  SAXXX-XXXX の方は，不合格です
</p>

<table border="1">
<tr><td>午前Ⅰ得点</td><td>78.20点</td></tr>
<tr><td>午前Ⅱ得点</td><td>76.00点</td></tr>
<tr><td>午後Ⅰ得点</td><td>71点</td></tr>
<tr><td>午後Ⅱ評価ランク</td><td>B</td></tr>
</table>

<p>
初受験不合格。
最後の論文は制限時間内に書ききれなく、Bがついただけマシのひどいものでした。
<br />
でも内容は普段の業務とそんな離れていないので、もうちょい受ければ行けそうな感じではありました。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>基礎からのiPhone SDK 改訂版</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000891.html" />
    <modified>2009-12-20T16:16:40Z</modified>
    <issued>2009-12-21T01:09:25+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.891</id>
    <created>2009-12-20T16:09:25Z</created>
    <summary type="text/plain">「基礎からのiPhone SDK 改訂版」という本を読みましたので、感想を書いておきます。 </summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>書評</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=wwwsutosoftco-22&o=9&p=8&l=as1&asins=4797357010&fc1=000000&IS2=1&lt1=_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>

<p>
「<a href="http://www.amazon.co.jp/gp/product/4797357010?ie=UTF8&tag=wwwsutosoftco-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4797357010">基礎からのiPhone SDK 改訂版</a><img src="http://www.assoc-amazon.jp/e/ir?t=wwwsutosoftco-22&l=as2&o=9&a=4797357010" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」という本を読みましたので、感想を書いておきます。
</p>
]]>
      <![CDATA[<p>
ゲームの作り方だけざっと流した「<a href="http://www.sutosoft.com/room/archives/000881.html">iPhone SDK 3 プログラミング大全 ゲームプログラミング</a>」と違い、
基本的なことがしっかり書いてあります。
</p>
<p>
その中で、私にとって参考になった解説を挙げておきます。
</p>
<ul>
<li>Objective-C記法</li>
<li>nibファイルロード時の各インスタンス初期化順</li>
<li>メモリ管理(autoreleaseなど)</li>
<li>日付(NSDateなど)</li>
<li>文字列(NSStringなど)</li>
<li>配列(NSMutableArrayなど)</li>
<li>値の保存(NSUserDefaultsなど)</li>
<li>ローカライズ(Localizable.stringsなど)</li>
</ul>

<p>
これらのキーワードを見てどんな機能であるか思い出せる方には本書は不要だと思いますが、
ここらへんを抑えておかないと何も作れませんし、個々に調べるのは面倒なので、一冊にまとまっていたのはありがたかったです。
<br />
特にメモリ管理、値の保存やローカライズは<a href="http://www.sutosoft.com/room/archives/000886.html">Butterfly15</a>を作る時にとても参考になりました。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>Butterfly15 1.0 リリース</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000886.html" />
    <modified>2009-12-16T13:18:27Z</modified>
    <issued>2009-12-16T22:00:03+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.886</id>
    <created>2009-12-16T13:00:03Z</created>
    <summary type="text/plain">先日iTunesのApp Storeへ登録したiPhoneアプリ「Butterfly15」のレビューが完了し、公開されました。
登録から公開までは10日ほどでした。Appleからの指摘は何もありませんでした。
内容無いので指摘しようがなかったのかもしれませんが。</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<a href="http://www.sutosoft.com/room/archives/000871.html">先日iTunesのApp Storeへ登録</a>したiPhoneアプリ「Butterfly15」のレビューが完了し、公開されました。
<br />
登録から公開までは10日ほどでした。Appleからの指摘は何もありませんでした。
内容無いので指摘しようがなかったのかもしれませんが。
</a>

<p>
ダウンロードは以下のリンクからできます。無料アプリです。
<br />
<a href="http://itunes.apple.com/jp/app/butterfly15/id344880137?mt=8">Butterfly15をiTunes App Storeで開く</a>
</p>
]]>
      
    </content>
  </entry>
  <entry>
    <title>iPhone SDK 3 プログラミング大全 ゲームプログラミング</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000881.html" />
    <modified>2009-12-13T11:56:56Z</modified>
    <issued>2009-12-13T20:40:11+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.881</id>
    <created>2009-12-13T11:40:11Z</created>
    <summary type="text/plain">「iPhone SDK 3 プログラミング大全 ゲームプログラミング」という本を読みましたので感想を書いておきます。 </summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>書評</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
「<a href="http://www.amazon.co.jp/gp/product/4048681621?ie=UTF8&tag=wwwsutosoftco-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4048681621">iPhone SDK 3 プログラミング大全 ゲームプログラミング</a><img src="http://www.assoc-amazon.jp/e/ir?t=wwwsutosoftco-22&l=as2&o=9&a=4048681621" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」という本を読みましたので感想を書いておきます。
</p>
]]>
      <![CDATA[<p>
本書は、iPhone SDKを使った簡単なゲームの作り方の解説書です。
</p>

<p>
5つのゲームの作成方法が説明されており、一番複雑なゲームは、インベーダーゲームよりもちょっとシンプルなシューティングゲームになっています。
本書の内容を理解できれば、インベーダーゲームは作れるようになるでしょう。
逆に言うとその位しか作れるようにはならないので、既にiPhone SDKに詳しい人には無用の品だと思います。
<br />
なお、OpenGLにはまったく踏み込んでいません。UIViewをメインに使ったゲームだけに留まっています。
<br />
400ページ近い分厚い本でこの内容というのはちょっと薄い気がしますが、初めてiPhoneSDKを扱う私にとってはちょうど良い内容でした。
</p>

<p>
本書は、iPhone向けのゲームを作りたいが、何から手を付ければ良いのかよく分からない方にお勧めの一冊です。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>透明色を含む画像の縮小</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000875.html" />
    <modified>2009-12-08T15:18:08Z</modified>
    <issued>2009-12-09T00:13:03+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.875</id>
    <created>2009-12-08T15:13:03Z</created>
    <summary type="text/plain">先日iTunes App Storeへの登録を行ったアプリですが、アプリ名称は「Butterfly15」で、以下のようなロゴを使っています(LogoShader V1.85で作成しました)。
ちょっと大きめのロゴなので、アプリで使う場合は縮小して使うのですが、縮小するときにトラブルが起きたので、そのときの話を書いておきます。 </summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
先日iTunes App Storeへの登録を行ったアプリですが、
アプリ名称は「Butterfly15」で、以下のようなロゴを使っています(<a href="http://homepage2.nifty.com/pyonpyonpyopyon/index.html">LogoShader V1.85</a>で作成しました)。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091209_defaultlogo.png" alt="デフォルトロゴ" width="421" height="91" />
</p>

<p>
ちょっと大きめのロゴなので、アプリで使う場合は縮小して使うのですが、縮小するときにトラブルが起きたので、そのときの話を書いておきます。
</p>
]]>
      <![CDATA[<p>
<a href="http://www8.plala.or.jp/kusutaku/iview/">IrfanView32 日本語版(V4.25)</a>で縮小して保存すると以下のような画像になりました。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091209_irfanview.png" alt="IrfanView32で縮小" width="240" height="52"/>
<br />
黒い縁取りがついてしまっています。
<br />
拡大するとこうなります(透明な部分はチェックマーク模様にしました)。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091209_irfanview_e.png" alt="IrfanView32で縮小" width="416" height="288" />
<br />
縮小するときにα値が考慮されていないようです。
</p>

<p>
α値を考慮して縮小可能なソフトをいろいろ探したところ、<a href="http://www.getpaint.net/">Paint.NET(V3.5.1)</a>を使うと上手くいくことが分かりました。
<br />
ダウンロードページは英語ですが、ソフト自身は日本語に対応していますので英語が分からなくても問題ありません。
<br />
このソフトで縮小するとこんな感じになりました。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091209_paintnet.png" alt="Paint.NETで縮小" width="240" height="52"/>
<br />
黒い縁取りはありません。
<br />
拡大するとこうなります。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091209_paintnet_e.png" alt="Paint.NETで縮小" width="416" height="288"/>
<br />
境界部分のピクセルには適切なα値が設定されているようで問題がありませんでした。
</p>

<p>
Paint.NET万歳。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>iPhoneアプリ登録</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000871.html" />
    <modified>2009-12-05T17:32:50Z</modified>
    <issued>2009-12-06T02:24:57+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.871</id>
    <created>2009-12-05T17:24:57Z</created>
    <summary type="text/plain">iPhoneアプリの15パズルが完成したので、iTunesのApp Storeに登録してみました。</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
<a href="http://www.sutosoft.com/room/archives/000868.html">iPhoneアプリの15パズル</a>が完成したので、
iTunesのApp Storeに登録してみました。
</p>
]]>
      <![CDATA[<p>
2時間くらいかけて細かいトラブルをいくつかの乗り越え、レビュー待ちの状態に到達することができました。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091206_app.png" alt="登録完了" width="445" height="185" />
<br />
無事にレビューを通過して公開にまで到達できたら、細かいトラブルの詳細を書いてみたいと思います。
</p>]]>
    </content>
  </entry>
  <entry>
    <title>iPhone SDK ファーストインプレッション</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000868.html" />
    <modified>2009-12-04T16:17:41Z</modified>
    <issued>2009-12-04T00:02:07+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.868</id>
    <created>2009-12-03T15:02:07Z</created>
    <summary type="text/plain">最近iPhone SDK 3.1.2を使い、以下のようなアプリを作ってみています(ただの15パズルですが)。
iPhoneアプリを作るのは初めてなので、感想を書いておきます。 </summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
最近iPhone SDK 3.1.2を使い、以下のようなアプリを作ってみています(ただの15パズルですが)。
<br />
iPhoneアプリを作るのは初めてなので、感想を書いておきます。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091204_butterfly15_0.png" alt="Butterfly15" width="207" height="385"/>
</p>

<p>
一番の印象は、アニメーションが簡単に作れるところです。
画像の移動くらいであれば、移動開始座標と移動終了座標とアニメーション時間を指定するだけです。
PowerPointみたいな感じです。
</p>
]]>
      <![CDATA[<p>
例えば、シャッフルするときは以下のように15個の画像を同時に移動しています。
<br />
<img src="http://www.sutosoft.com/room/archives/images/20091204_butterfly15_1.png" alt="Butterfly15" width="207" height="385"/>
<br />
さらに移動と同時に画像を半透明から非透明へ変化させてもいます。
画像描画処理が大変そうな気がするのですが、以下の情報をiPhone SDKに与えるだけで実現できました。
</p>
<ul>
<li>15個分の移動開始座標と移動終了座標</li>
<li>移動開始前の透明度と移動終了時点の透明度</li>
<li>移動にかかる時間</li>
</ul>
<p>
私が今まで扱ってきたSDK(例えばMFC)では、一定時間(1/60秒程度)毎にタイマ関数を呼び出されるように設定し、そこで画像の座表計算や画像描画を実施する必要がありましたが、iPhone SDKではこの位のアニメーションではタイマ関数の出番はありません。なんてお手軽。
</p>

<p>
これだけ簡単にアニメーションができると、なんでもかんでもアニメーションさせたくなりますね。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>iPhone SDK Agreementメモ</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000856.html" />
    <modified>2009-11-24T15:25:32Z</modified>
    <issued>2009-11-25T00:20:58+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.856</id>
    <created>2009-11-24T15:20:58Z</created>
    <summary type="text/plain">最近iPhoneアプリの開発を始めたので、iPhone SDK Agreementを読んでみました。
iPhone SDKの利用規約みたいなものです。発行日は2009/07/30のようでした。
興味深かったところをメモしておきます。
</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
最近iPhoneアプリの開発を始めたので、iPhone SDK Agreementを読んでみました。
iPhone SDKの利用規約みたいなものです。発行日は2009/07/30のようでした。
興味深かったところをメモしておきます。
</p>
]]>
      <![CDATA[<p>
<strong>公式リリース前のiPhone SDKは機密情報として扱わなければならない。</strong>
公式リリースされたものであれば問題ないようですが、公式リリース前のものについては話ができません。
<br />
例えばiPhone SDKのバージョンアップが行われようとしているとき、バージョンアップ後の公式版がリリースされるまでは、変更点のまとめなどをブログに書くことはできません。
しょうがないと言えばしょうがないのでしょうが、バージョンアップの際は情報交換できなくて大変そうですね。
</p>

<p>
<strong>位置情報(GPS情報)に関する注意事項が多い。</strong>
乗り物の自動運転に使ってはダメ、使用前に利用者の許可を得ること、位置情報が正確とは限らないことを利用者へ通知すること、など色々。
<br />
位置情報は悪用されるとヤバいからこうなるんでしょう。位置情報を扱うとなるとAppleもアプリ開発者も利用者も大変ですね。
<br />
利用者から許可を得るところあたりはOS側でもできそうな気がしますが(位置情報取得APIが初めて呼ばれた時点でOSがメッセージを表示する、等)どうなっているんでしょうね。
</p>

<p>
<strong>Appleの「Human Interface Guidelines」に準拠する必要がある。</strong>
ライセンスでUIまで縛るあたり、AppleのUIへのこだわりは凄いですね。
私なんぞはUIは市場で競争させてしまえばいいのではないかと思うのですが。
</p>

<p>
こんなところです。
SDKが公開された当初は凄い厳しい規約だったようですが、
今の規約は普通な感じでした。
</p>
]]>
    </content>
  </entry>
  <entry>
    <title>4方向を回るfor文</title>
    <link rel="alternate" type="text/html" href="http://www.sutosoft.com/room/archives/000855.html" />
    <modified>2009-11-20T19:31:38Z</modified>
    <issued>2009-11-21T04:26:28+09:00</issued>
    <id>tag:www.sutosoft.com,2009:/room//2.855</id>
    <created>2009-11-20T19:26:28Z</created>
    <summary type="text/plain">忘備録代わりに4方向を回るfor文を書いてみました。
</summary>
    <author>
      <name>MASATO</name>
      <url>http://www.sutosoft.com/room/</url>
      <email>masato@mb.kcom.ne.jp</email>
    </author>
    <dc:subject>技術メモ</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.sutosoft.com/room/">
      <![CDATA[<p>
忘備録代わりに4方向を回るfor文を書いてみました。
</p>

<pre>for (int xp = -1, yp = 0, i = 0; i &lt; 4; xp += yp, yp = xp - yp, xp = yp - xp, ++i) {
  // ...
}</pre>

<p>
(xp,yp)が、(-1,0)、(0,-1)、(1,0)、(0,1)の順に変化します。
パズル系のゲーム等で役に立つことがあります。
もっと簡単に書く方法もあると思いますので興味がある方は考えてみて下さい。
</p>
]]>
      
    </content>
  </entry>

</feed>