highlight.xcode

2016年4月14日木曜日

Xcode 2

前回はラベル 1個貼っただけだったので、今回はボタン。
特にイベントハンドラの書き方、と言うか定義の仕方というか、紐付けの仕方が訳が分らなかったのでメモ。
あと、プロジェクト名が思いっきり typo ってたのでやり直し。

それと、シミュレータを起動した時に「プロセスにアタッチできません」等といったメッセージが出てしまうので、予め「システム環境設定」->「セキュリティとプライバシー」->「アクセシビリティ」に「Xcode」を追加しておくこと。

では、いってみよう。

「File」->「New」->「Project」をクリックし、プロジェクトを新規作成する。
「Choose a template for your new project」で「Single View Application」を選択し「Next」をクリック。


「Choose options for your new project」で「Product Name」等を設定し「Next」をクリック。


保存先を聞かれるので適当な場所を選択し「Create」をクリック。
この時「Source Control」にチェックを付け、「Create Git repository on」は「My Mac」にしておき、ローカルリポジトリを作成する。


「Project navigator」で「Main.storyboard」を選択する。


「Object library」から「Button」をドラッグし、「View」へドロップする。


「Attributes inspector」で「Title」の文字列を変更する。


ボタンを選択し「Align」をクリック、「Add new Alignment Constraints」の「Horizontally in Container」と「Vertically in Container」にチェックを付け、「Add 2 constraints」をクリックする。


「Resolve Auto Layout Issues」の「Updates Constraints」をクリックし、レイアウトを更新する。



「Show the Assistant editor」の「Assistant Editors on Bottom」をクリックする。



「Assistant Editor」の「Manual」を「Automatic」へ変更する。
これで表示中のオブジェクトのコードが自動的に表示される。



「Connections Inspector」を開き、「Sent Events」の「Touch Up Inside」右側の「○」をドラッグし、「Assistant Editor」に表示されているコード中の適当な場所へドロップする。
もしくは、ボタンオブジェクト上で右クリックしても同じ事が行える。


イベントの名前を入力し「Connect」をクリックする。
「ButtonExitTouchUpInside」とした。


イベントのコードに「exit(1)」を追加し、押されたらアプリを終了する様にする。
ここで、「File」->「Save」で保存。


「Set the active Scheme」で「iPhone 5s」を選択し、「Build and then run the current scheme」でシミュレータを実行。


「Exit」ボタンをタップすれば、アプリが終了し、ホーム画面が表示される。


「Source Control」->「Commit」で、編集したファイルにコメントを付け、ローカルリポジトリにコミットして終了。


とまあ、イベントハンドラの追加まではなんとか出来た。
イベントハンドラの追加の仕方が独特過ぎて、最初はかなり混乱したが、まさかのドラッグ & ドロップ…。
まあ、解ってしまえば簡単なんだが、けっして直感的じゃないよなぁ…。

2016年4月13日水曜日

Mac のスクリーンショットの保存先

スクリーンショットを撮る機会が多いのだが、デスクトップでは使いにくいので、保存先を変更する。

例によって、SystemUIServer に設定を加え、再起動させる。
$ defaults write com.apple.screencapture location ~/Pictures/Screenshots
$ killall SystemUIServer

元に戻すには、上記設定を削除し、同じく再起動すれば OK。
$ defaults delete com.apple.screencapture location
$ killall SystemUIServer

2016年4月11日月曜日

Apple Developer Program 未加入者が出来ない事

ここ数日 Apple の「アプリケーションの配布に関するガイド」を読んでるんだが、非常に解りにくい…。

そんな中でも、無料の Apple ID と、Apple Developer Program 加入者との違いがリスト化されていたので、まとめておく。
以前にも触れたが、Apple Developer Program 未加入でも、実機でアプリを動作させる事が可能となっている。
ただし、これには制限が付き、一部の機能は利用できない。
「じゃあ何が利用できないの?」って話。

以下、「アプリケーションの配布に関するガイド」の P.258「サポートされるケイパビリティ」より抜粋。
  • 「Apple Pay」: Apple が提供するモバイル決済サービスへの対応。
  • 「Associated Domains」: アプリとドメインの関連付け?
  • 「Game Center」: iOS の Game Center への対応。
  • 「iCloud」: Apple が提供するクラウドサービスへの対応。
  • 「In-App Purchase」: アプリ内決済への対応
  • 「個人向け VPN」: よく解らん。アプリから VPN に繋ぐって事か?
  • 「Push Notification」: プッシュ通知機能への対応。
  • 「Wallet」: クレジットカードやデビットカードを使用する決済サービスへの対応。

うん、これからアプリを作り始めるぞっ、って人達が、いきなりこれらの機能は必要、って事は少ないんじゃないだろうか。

結論を言うと、Apple Developer Program への加入は、アプリの配布準備に入る段階で良いと思う。

っていうか、「ケイパビリティ」みたいに、英語をカタカナにしただけの単語で溢れかえってんだよなぁ、このドキュメント…。
読み進めるのが辛くて辛くて…。

2016年4月9日土曜日

Mac のスクリーンショット

Mac スクリーンショットを撮る方法のまとめ。
  1. 画面全体のスクリーンショットを撮る場合は、「command + shift + 3」。
  2. 画面の一部のスクリーンショットを撮る場合は、「command + shift + 4」で撮影モード。 マウスポインタが十字ポインタになるので、撮影する範囲を指定する。
  3. ウインドウのスクリーンショットを撮る場合は、「command + shift + 4」で撮影モードに入った後、「スペース」でマウスポインタをカメラポインタに変え、撮影するウインドウを選択選択する。
    ※ウィンドウ選択時に「option」を押しながらだと、影付きの枠が付かない。
前回、3 の方法を行おうとするも、option キーが VNC 経由で送れず、影無しのスクリーンショット撮影を断念した訳だ。

結局その後も、option キー問題をどうにかしようと色々調べたり、試したりしてみたが、未だ解決に至っていない。

という訳で、別の方法でごまかす事にした。
一時的に設定を変更し、スクリーンショットの影を無くしてしまう方法だ。
SystemUIServer に設定を加え、再起動させる。
$ defaults write com.apple.screencapture disable-shadow -boolean true
$ killall SystemUIServer

元に戻すには、上記設定を削除し、同じく再起動すれば OK。
$ defaults delete com.apple.screencapture disable-shadow
$ killall SystemUIServer

VNC で option キーが送れない

Mac でウィンドウのスクリーンショットを撮ると、ウィンドウの周りに影を表示する枠が付く。これが邪魔になってきたので調べた。

ウィンドウのスクリーンショットを撮るには、「command + shift + 4」を押下し、マウスカーソルが範囲選択用の十字型になったらスペースキーを押下。これでマウスカーソルがカメラ型になるので、撮りたいウィンドウをクリックする。
これが通常の、枠が付いてしまう撮り方。

カメラ型カーソルになった後、撮りたいウィンドウをクリックする時に、option キーを押しながらクリックすると枠無しで撮れる。

が、ここで今まで見ないふりをしてきた問題が顕在化する。

現在の環境は、Mac の画面共有に対し、Windows 機から VCN ビューワで接続し、キーボード、およびマウスの操作内容を送信している状態だ。
Windows キーボードを直接 Mac に接続した場合は、Windows キーボードの Ctrl キー、Windows キー、Alt キーのそれぞれが、Mac の Contorl キー、optionキー、commandキーへと割り当てられる。
ところが、VNC 越しだと Windows キー、Alt キーのどちらも、command キーに割り当てられてしまい、option キーが押せないのである。

もちろん、VNC クライアントも疑い、何種類か試したが改善せず。
Windows キーボードが繋がった Linux 機から接続しても同じ症状なので、これはサーバー側の問題である可能性が高い。

Mac のキー割り当てを変更出来るアプリ Seil(旧 PCKeyboardHack)も試してみたが、ダメだった。
これらのアプリは、物理キーが押されたイベントと、その時に入力されるキャラクタの対応付けを変更するモノの様で、VNC 接続の様にキャラクタを送信しているであろうソフトには効かないのだ。

ググッてみても、日本語、英語ともにこの問題の報告は散見するが、解決策に辿り着く事は無かった。
VNC クライアント側のキーマッピングが変更出来れば、解決しそうではある…。

2016年4月8日金曜日

Blogger の背景透過画像

画像をベタベタ貼りまくりなのだが、背景透過部分が黒く表示されていたので調整。

「テンプレート」->「カスタマイズ」->「上級者向け」->「画像」で、設定エリアを開き、色を変更する。
「背景色」をテンプレートの背景色と合わせる。
「枠線」の色もテンプレートの背景色と合わせる。
「ブログに適用」ボタンをクリックすれば OK。

Mac でスクリーンショットを撮ると自動的に付く、影付きの背景がいよいよ邪魔だな…。

2016年4月7日木曜日

Xcode 1

開発環境 Xcode を App Store からインストール。

しようとするも、いっこうにインストールが進まない。
例によってデカイのだ。
容量を確認すると 4GB 超え。
そのまま放置。

翌日の朝、確認してみるとダウンロードが終わっていたので、インストール開始。
インストール自体はすんなり済んだ。

試してみる。
「Create a new Xcode Project」をクリックし、プロジェクトを新規作成する。


「Single View Application」を選択し、「Next」をクリック。


いろいろと入力して「Next」をクリック。
  • Product Name: プロジェクト名。
  • Organization Name: 自分の名前や組織の名前。
  • Organization Identifier: 自分の名前や組織の識別子。他の開発者と重複しない名称が推奨されるらしい。
  • Language: 今回は Swift。
  • Devices: 今回は iPhone。
  • Use Core Data: 今回は OFF。アプリ内データーベースらしい。
  • Include Unit Tests: ON。
  • Include UI Tests: ON。
※プロジェクト名が思いっきり typo ってる。正しくは「HelloWorld」だな…。


プロジェクトの保存先を聞かれるので、適当なフォルダを選んで「Create」をクリック。
プロジェクト名でフォルダが作られる。
  • Source Control: Create Git repository on XXX: ON。「My Mac」でローカルリポジトリって事かな?


プロジェクトが開かれたところ。


"Main.storyboard"を開く。


ツールバー右下の「Show the Object library」クリックし、オブジェクトの一覧を表示。
オブジェクトの一覧から「Label」を選び、画面中央の「View」へ貼り付ける。
ツールバー右上の「Show the Attributes Inspector」をクリックし、オブジェクトの属性を表示。
ラベルのテキストを「Hello World!」にする。
ラベルの貼り付け位置、幅なんかを適当に調整。
左上の対象機器から「iPhone 5s」等、好きな機器を選択し、実行開始ボタンをクリック。


「Developer Mode」を有効にして良いか確認されるので、「Enable」をクリックし有効化。
なんか、他プロセス(ここではシミュレータ)をトレースしたりする機能なんだそうだ。


途中、管理者権限のユーザ、パスワードを聞かれたりするので入力。



シミュレータが起動し、


「Hello World!」が表示されれば完成。