2014年12月31日水曜日

iOS シミュレータ

  • Xcode 6.1.1
  • iOS Simulator 8.1
当方、iOS シミュレータを使うのはスクリーンショットを撮る時ぐらいでした。
でも、iPhone 6 やPlus など機種が増えて実機を揃えるのが大変になってきました。
そこで、iOS シミュレータを活用していこうかと思った次第です。

iOS シミュレータとは

名前のとおり、iPhone や iPad の動作をシミュレートします。
Xcode に含まれています。Xcode は App Store から入手しましょう。

iOS シミュレータの起動

  1. Xcodeを起動します
  2. メニューから Xcode > Open Developer Tool > iOS Simulator を選択します

Xcode のプロジェクトを開いているのであれば、シミュレートしたい機種を選択し、実行(Run)を行えばOKです。

また、iOS シミュレータをよく使う場合は、Dock に登録しおくと便利です。

iOS シミュレータの設定

設定を変更したい場合は実機と同じように「設定(Settings)」で行います。
日本語にする場合もコチラで行います。

iOS シミュレータの操作

操作はキーボードとマウスで行います。ここでは実機と違う箇所を紹介します。
  • 左に回転(command + ←)
  • 右に回転(command + →)
  • シェイクジェスチャー(control + command + Z)
  • ホームボタン(shift + command + H)
  • ロックボタン(command + L)
上記は Hardware メニューからも可能です。

タップやスワイプなどはクリックやドラッグなんだろうと想像がつくのですが、2本指でのジェスチャーなどはどうするの?
その場合は、option キーや shift キーを使います。
option キーを押しっぱなしにすると、画面上に丸が2つ表示されます。この丸が指の場所になります。加えて shift キーを押しっぱなしにすると2つの丸が固定されます。
ちょっと説明が難しいので、地図アプリなどでためしてみてください・・・

iOS シミュレータの制限

なかなか便利な iOS シミュレータですが、以下が使えない等の制限もあります。

  • 加速度センサー
  • ジャイロスコープ
  • カメラ
  • マイク
  • 近接センサー

そのほか、メモリサイズや実際の使い勝手なども実機で確認する必要がありますね。

2014年12月22日月曜日

[Mac操作]Spotlight検索

アプリやファイルを探す場合はSpotlight検索が便利です。

メニューバーの右上のアイコンをクリック、または、control + space で利用できます。

[Mac操作]スクリーンショット

私はMacをほとんど使ったことがありません。
そのため、Macの操作方法がわかりません。
そこで、新しく覚えた操作方法をメモっていこうと考えました。
今回はスクリーンショットを覚えた。

  • 画面全体を撮影
    Shiftキー + Commandキー + 3キー
  • 画面の一部を撮影
    Shiftキー + Commandキー + 4キー
    撮影したい箇所をドラッグ
  • ウインドウを撮影
    Shiftキー + Commandキー + 4キー
    スペースキーを押す
    撮影したい箇所をクリック

    ファイルはデスクトップに保存されます。
    クリップボードに保存したい場合は、Controlキーを押しながら上記操作を行います。

        2014年12月19日金曜日

        iOSアプリ開発の準備

        今回はiOS開発に必要と思われるものをまとめてみました。


        Mac(パソコン)

        これがないと始まりません。最初はMac mini で十分です。
        アプリ開発に必要なXcodeはApp Storeからダウンロードできます。
        ボタンなどの画像はGIMPで作成できます。フリーソフトウェアです。
        効果音はGarageBandで作成できます。これは最近のMacには同梱されているはず・・・

        実機

        iPhoneやiPadなど。動作確認に使用します。
        macにはシミュレータもあるのですが最低1つは実機が欲しいところです。

        Webサイト

        App Storeに登録するには、アプリの説明やプライバシーポリシーを表示するWebサイトが必要です。フリーのWebサイトでもOKです。

        英語力

        ドキュメントは基本的に英語(日本語ドキュメントもあるけど古い場合が多い)です。
        苦手な人はGoogle翻訳や、Macの辞書機能(単語を3本指でタップ)を活用しましょう。
        なお、Appleとのやりとり(お知らせメールや質問メールなど)も基本的に英語です。


        あとは「時間」と「ヤル気」でしょうか・・・

        2014年12月18日木曜日

        iOSアプリのアップデートも64bitとiOS8必須

        Appleからメールがきてました。
        64-bit and iOS 8 Requirements for App Updates
        アップデートの場合も64bitとiOS8必須になるとの事。
        次は登録済みアプリも64bit & iOS8必須とかになるんでしょうか?

        私も64bit & iOS8対応やりました「最新のXcodeのデフォルト設定でビルドし直せばいいんでしょ?」と思ってたんですが・・・

        • Xcodeのバージョンアップでコンパイルエラー発生
        • iPhone6 & iPhone6Plus 対応でレイアウト修正
        • プライバシーポリシーの追加
        • アプリの申請方法が変わってた(IDFA)など

        などなど、なかなか大変でした。

        2014年12月17日水曜日

        SpriteKit Programming Guide その1

        • iOS 8.1
        • SpriteKit (SpriteKit Programming Guide 2014-09-17)
        iOS Developer Library の SpriteKit Programming Guide を調べてみました。



        Introduction

        この章ではSpriteKitの概要や、このドキュメントの使い方、前提条件などが記述されています。

        SpriteKitは、
        • 画像のアニメーションや、サウンドを再生ができる。
        • フレームが描画される前に、各フレームの内容が処理されるレンダリングループを使用している。
        とのこと。詳しいことは進めていくうちに明らかになっていくことでしょう・・・


        Jumping into Sprite Kit

        この章からサンプルプログラムを作成していきます。

        Creating Your First Scene

        XcodeのSingle View Application テンプレートを使用し、実際にコーディングしていきます。ポイントとしては以下と思われます。
        • SpriteKitではコンテンツを描画するためにSKViewクラスを使用する。
        • SKViewには診断情報(node数, draw数, FPS)を表示できる。
        • SKViewにSKSceneをセットする。

        Adding Content to the Scene

        次は「Hello World」を表示します。文字はSKLabelNodeクラスで作成し、SKSceneに追加するようです。
        実行すると「Hello World」が表示され、診断情報には「1 node」と表示されました。

        Using Actions to Animate Scenes

        表示したノード(Hello World)をアニメーションさせてから削除します。ポイントは以下。
        • ノードに名前を付け、使用時に名前で呼び出す。
        • アニメーションはSKActionクラスで行う。
        実行し、画面をクリックすると、文字がアニメーションした後に消え、診断情報は「0 nodes」になりました。

        Transitioning Between Scenes

        次はシーンの遷移です。新しいシーン(SpaceshipScene)を作成し、「Hello World」の文字削除後に新しいシーンに遷移するように実装します。
        (runActionをrunAction:completion:に変更する)
        気になったのがSpriteKitではSceneで遷移しているという点、Viewで遷移するのかと思ってました。

        Building Complex Content Using Nodes

        2番目のシーンに宇宙船を追加します。宇宙船は複数のノード(SKSpriteNode)を組み合わせて表示します(四角い船体に2つの四角いライト)。
        ポイントは以下でしょう。
        • ライトは船体の子ノードで、船体はシーンの子ノードになる。


        Creating Nodes That Interact with Each Other

        宇宙船の上から無数の石を落とすという実装を行います。物理サブシステムというものを使い衝突などの動きをシミュレートしているとの事です。


        以上が SpriteKit 基本的な技術で、残りは応用になるかと思います。
        それはまた後ほど・・・

        2013年2月9日土曜日

        CakePHPでPDF出力

        PDFライブラリ

        CakePHPでPDFを出力する方法を試してみた。
        まず、PDFライブラリですが、調べたところイロイロあり迷ったのですが、TCPDFを使用することにしました。
        決め手は、
        • 後発
        • UTF-8 対応
        かな。
        TCPDFサイトにはexamplesが大量にあったのでそれを参考にすればよさそう。

        CakePHPでの使用

        まずは、TCPDFをダウンロード&展開し、
        • トップ/app/Vendor/tcpdf
        に置きます。

        次に、コントローラ作成
        • トップ/app/Controller/PdfsController.php
         <?php
         class PdfsController extends AppController {
          public $components = array('RequestHandler');
        
          public function pdfTest() {
           // Content-Type
           $this->RequestHandler->respondAs('application/pdf');
        
           // レイアウトを使用しない
           $this->layout = '';
          }
         }
        

        最後に、ビュー作成
        • トップ/app/View/Pdfs/pdf_test.ctp
         <?php
         App::import('Vendor', 'tcpdf/tcpdf');
         $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
         $pdf->AddPage();
         $pdf->Cell(0, 0, 'Hello World');
         $pdf->Output('HelloWorld.pdf', 'I');
        

        Content-Typeがうまく設定できなくてはまりました。RequestHandlerが必要なんだって。