.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.28 2010

PackageMakerでインストーラ作成

Tasakiです。

まず最初に、先週の記事についてですが、その後よくよく調べてみたら、サードパーティ製ライブラリの使い方がまずかったために起こっていた現象のようでした。お騒がせいたしました。

最近の僕の記事は、このカテゴリに関する記述が多いような気がしますけども、今回はXcode付属のインストーラ作成ツールPackageMakerについてです。

このツールを使えばGUIベースで簡単に、Macユーザにはおなじみの画面構成のインストーラを作成することができます。
ツール本体は、/Utilities以下にインストールされます。

起動すると、ダイアログが表示され、その中で識別用のドメインとOSの最低動作バージョンを設定します。
PackegeMakerInit
その後について、ざっと説明します。
パッケージのタイトルやインストールボリュームの設定画面が表示されます。
Requirementsタブでは、インストール環境の条件を設定することができます。
Actionsタブでは、インストール開始前と終了後に実行するアクションを設定することができます。
左のContents枠内にファイルやフォルダをドラッグ&ドロップして、インストールコンテンツを追加します。

コンテンツのアイコンの方にフォーカスをあてると、各コンテンツの設定画面に移ります。
PackageContents
Installフィールドにコピー元のファイルパスが表示されています。
Destinationフィールドにインストール先のファイルパスを設定します。
Scriptsタブでは、インストール開始前と終了後に呼出すスクリプトファイルを設定することができます。

インストール画面の編集する場合は、ツールバーのEdit Interfaceを選択します。
InterfaceEditor
ここでは、背景や文面を編集することができます。
デフォルトでは表示されませんが、readmeやライセンス同意画面も追加が可能です。
また、下方のドロップダウンリストに項目を追加して、ローカライズに対応が可能です。

編集が完了したら、ツールバーのBuild and Runでインストーラを作成し、挙動を確認してみましょう。

ほとんどの作業が直感的に行えるので、とても簡単です。
iPhoneアプリの開発に直接使用することはないでしょうが、ライブラリを配布したりする場合に、Macのネイティブコードを全く書かずに扱える点は非常にありがたいです。

そろそろMacのアプリにも手を出してみたいところではありますが…

スポンサーサイト
.27 2010

MKMapViewで現在地にピンを立てる話。

Hola!
KIMURAです。

今日は「MKMapView」で現在地にピンを立てる話です。

これまたある意味『失敗談』になって恥ずかしいんですが、現在地を「CLLocationManager」で取得した後に、その座標を元に「MKAnnotation」で現在地にピンを立てようとしたら何故かピンが2つ同じ場所に立ってしまったんですよね。
で、調べてみたら

   [map setShowsUserLocation:YES];

という記述ですでに現在地が表示される、と。
さらに「addAnnotation」した時に呼ばれるメソッド「viewForAnnotation」で現在地情報かどうかの判定を入れてなかったため、2本の同じピンが同一の場所に立ってしまってたようです。

なので、「現在地表示」の場合はわざわざ「Annotation」を作成、追加しないでも

   [map setShowsUserLocation:YES];


の設定だけで現在地が表示されます。
で、「viewForAnnotation」を自前で準備しなければデフォルトの水色の玉(と周りのわっか)が表示されます。
「viewForAnnotation」を利用する為には「setDelegate」でデリゲートの設定が必要です。

いま開発中のアプリではデフォルトの水玉の方を採用する様にしました。

ここで1点注意

   [map setShowsUserLocation:YES];


で現在地に水玉は設定してくれますが、「setRegion」で表示したい場所を指定してあげないと、画面上にはガーナの南側の海(経度0、緯度0)が表示されちゃいますw

では、今日はこの辺で。。。
Ciao!
.26 2010

MacBookProのバックライトキーボード

oogamiです。

またまたiPhoneとは直接関係ないお話です。
先日、MacBookPro 17インチ(Apple整備品)が到着しました。
新品のような箱もなく段ボールの中にクッションがあって、その中に本体と備品が入っているだけというとっても味気ないものでした。
なので、あのApple製品特有の箱を開けるワクワク感はなく、とてもあっさりした開封でした。

気を取り直して。

MacBookとMacBookProの決定的な違い。
それは、バックライトキーボード。

で、早速部屋を暗くして電源ON!

すると、ふわーっとキーボードが光ります。

「かっけー」

これからは意味もなく暗闇でMacしそう。これだけでPro買った価値ありです。
.21 2010

CPUリソース制限

Tasakiです。

OS4.0ベータ公開から2週間…早くもベータ2が公開されました。
今回はAPIも続々と追加されているようですし、リリースの度に大きな変化がありそうで楽しみなところです。

4/28追記:これは、別に使用してたライブラリの影響によるものでした。OS側から特にこのような制限は設けられていません。お騒がせいたしました。
さて、今回のテーマですが、訳あって大量にCPUパワーを消費しなければならない状況に遭遇してしまい、経験的に以下の挙動が判明しました。

CPU稼働率をフルに近い状態で15~20秒程度アプリを動作させていると、OS側から強制終了がかかります。
その際のステータスシグナルは9または11でした。


発熱やバッテリ寿命の問題から設定されているんでしょうが、大量にCPUパワーを食う処理を実装する場合はこの点にも注意が必要なようです。

.20 2010

InterfaceBuilderについて。。。

Hola!
KIMURAです。

今日は「InterfaceBuilder」について少々。

多くの『iPhoneアプリ開発技術者』と同じ様に、私も最初は書籍&ネットの解説サイトで勉強したクチです。
で、その多くが画面の作成には「InterfaceBuilder」を使用して開発しています。

私がiPhoneアプリ作成の勉強を始めたのが去年の秋頃で、最初は書籍&解説サイトの通り「InterfaceBuilder」を利用していました。

ところが、、、
ネクストシステムに転職後、支給されたMacBookで今まで通りアウトレットアクションを追加しようとしたら今までのトコに見当たらない!
どうやらOSの進化(Leopard → SnowLeopard)に伴い、「InterfaceBuilder」もバージョンアップしたようで、そこいら辺の使い方がガラッと変わったようでした。。。

その後は、ここの古い記事にもある様にInterfaceBuilderを使用しない開発で進めています。

どちらの方法も一長一短あると思うので、時間が出来たら「InterfaceBuilder@SnowLeopard」の方も勉強して行くつもりですが『時間』っていつ出来るものやら・・・(-_-;

以上
.19 2010

新MacBookPro 15 or 17 ?

oogamiです。

先日、新しいMacBookProが発売になりました。
今使っているMacBook白はBluetoothが壊れて、バッテリーが膨張して。。
5年間よく頑張ってくれました。

で、そろそろMacBookProを買おうかなーっと。

iPad用アプリも開発したいので、これは17インチしかないなって思ってたら、
15インチのオプションで、1,680 × 1,050ピクセルっていうものもあり、
iPadは1024×768ピクセルだし、15インチのMacでもちゃんとiPadシミューレータが画面に入るんですねー。
んーーーーー。迷う。迷う。
.14 2010

iPhoneSDKとアーキテクチャ

Tasakiです。

今回はアーキテクチャの話をしようと思います。というのも、そろそろこの辺に意味が出てきそうだから、なのですが…

Xcode上でターゲットを切り替える際のドロップダウンリストにアクティブアーキテクチャなるものが見受けられます。
通常ここを触ることはほとんど無い訳ですが、iPhoneOS向けのバイナリは、ネイティブコードですので、当然プロセッサ(CPU)に大きく依存することになります。

アクティブアーキテクチャとは、ターゲットと同様に、このビルドによって生成するバイナリは何に対してのものなのかを決定する要素ということになります。

iPhoneやiPod touchには、ARM社のプロセッサが使われているわけですが、ここには、世代間の違いがありまして、
iPhone 3G や iPod touch (第2世代)には、バージョン6
iPhone 3GS や iPod touch (第3世代)には、バージョン7(Cortex)
に相当するアーキテクチャを採用したプロセッサが搭載されています。(参考リンク)
また、iPadには、Apple A4というカスタムチップが搭載されています。Xcodeでは、こうしたアーキテクチャの違いをどのように吸収しているのでしょうか。

iPhoneSDK3.2では、プロジェクト作成時にiPhone向け、iPad向け、両方に対応したユニバーサルアプリの3種類の
アプリケーションを作成できます。
このとき、それぞれのプロジェクト内で、アーキテクチャがどのように扱われているかを確認してみました。

まず、メニューバーから、プロジェクト>アクティブターゲット"xxx"を編集を選択し、ビルドタブを選択します。
ここで、アーキテクチャのセクションを見てみると、定義されたアーキテクチャが確認できます。

iPhone向けの場合は、
3.2foriPhone
3G向けアーキテクチャですが、基本的にはコードに互換性があるので全てのiPhoneに対応するということでしょう。(ビルド設定を変更してしまった場合はこの限りではありません)

iPad向けの場合は、
3.2foriPad
デバイスに依存するコードが含まれるのでしょう。シミュレータと実機で明確に区別がされています。ここから見ても、Apple A4はARMv7アーキテクチャ互換のプロセッサであることが分かります。

ユニバーサルの場合は、
3.2forUniversal
この設定では、armv6とarmv7の双方に向けたビルドが行われます。当然全てのコードを2度コンパイルするので、エラーや警告も原則的に2倍になります。(ついでにコンパイル時間も増えます......)

もし、SDK3.1.3以前で作成した既存のプロジェクトをユニバーサルプロジェクトに変更する必要がある場合には、この点に注意が必要になります。

既存のプロジェクトの場合は、こうなっています。
3.1.3
Standard(armv6)と書かれた部分をクリックすると、
3.1.3b
このようにリストが表示されますので、Optimized(armv6 armv7)を選択します。
これで、実機ビルドに時間がかかるようになったら、成功です。

最初にも言いましたが、iPadも発売され、OS4では端末によってサポートされる機能が異なってきますので、この辺りの設定も今後、必要になってきそうな気がします。


.13 2010

iPhoneOS 4.0betaでの開発話

Hola!
KIMURAです。

先日発表されたiPhoneOS 4.0ですが、beta版が開発者向けのサイトに上がってたので早速DLして入れてみました。
利用者側の立場で今確認出来る範囲では、

 ○壁紙の設定
 ○アプリのフォルダ分け
 ○複数メールアカウントを1つの受信ボックスで閲覧


辺りがありがたい機能です。
特に「アプリのフォルダ分け」は、様々なアプリをDLして煩雑になった待ち受け画面を整理するために切望していた機能だったので正直嬉しいですね♩

一方、技術者側からみると

 ◇マルチタスク

が一番気になるところですね。

実際にサーバーからパケットを受信するアプリを起動&受信開始後、ホームキーで待ち受けに戻った後に再度立ち上げるとバックグラウンドで受信が進んでいました。
まだリファレンスを読んでないので何とも言えませんが、「アプリの終了」に関しては今までと異なるアプローチが必要なのかもしれませんね。
シングルタスクがマルチタスクになると影響範囲が広いと思われるので、今まで作成したアプリに関しても時間をかけた動作検証が必要だと思われます。

以上
.12 2010

マップでのピン

Oogamiです。Map関連のお話。
Map上にピンが上から「グサッ」と刺さるようなアニメーションをする方法です。

・MKPinAnnotationViewのanimatesDropプロパティをYESに設定する。

これだけです。簡単。

ピンの色も3色用意されていてMKPinAnnotationViewのpinColorに以下の
タイプを指定するだけです。

赤のピン)MKPinAnnotationColorRed
緑のピン)MKPinAnnotationColorGreen
紫のピン)MKPinAnnotationColorPurple

実際に使用する時は、

MKPinAnnotationView *= [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"MKAnnotationView"];
[annotationView setPinColor:MKPinAnnotationColorGreen];
[annotationView setAnimatesDrop:YES];

こんな感じです。
MapKitって楽しいです。遊べますよー。
.06 2010

流れ者Leader

はじめまして。
流れ者 LeaderKIMURA です。

約1年前まで某外資系企業のユーザー研究会で「スマートフォン」を題材に研究をしていたのですが、よもや自分が iPhone チームのリーダーになるとは思ってもいませんでした。。。(;^_^A
諸々の事情によりネクストシステムに転職してまだ5ヶ月。
iPhoneアプリ開発の経験も同じくらいのペーペーリーダーですが、よろしく鬼ヶ島っす!

さてさて、ちまたじゃ「iPad」の話題で持ち切りですが、来たる4月8日に

iPhoneOS 4.0

の発表もあるようですね♩
ネットの予想じゃ大きな変革は望めないようですが、この新OSを載せた新型iPhoneが夏くらいに発売になるとか、ならないとか。。。
もうしばらく「i」から目が離せそうに無いですね(⌒^⌒)b
.05 2010

はじめまして

はじめまして。Oogamiです。

今日からこのブログに参加することになりました。
よろしくお願い致します。

先日、ついに米国でiPadが発売されましたねー。
米国に買いに行かれた日本人の方もいるようで。
日本でも早く発売されないかなー。

iPad勉強しなきゃです。
.02 2010

新メンバー参加のご挨拶

Tasakiです。

今週はお知らせをさせて頂きます。

4月に入り、当ブログもメンバーが増えることになりました。
来週からそれぞれ週1回程度更新を行っていく予定ですので、これからもよろしくお願い致します。


 HOME 

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。