CocoaのFrameworkでSTLを使ってみる

最近Cocoaにはまっています。Windows用に作成したライブラリをMacへ移植してみたのですが意外とはまったのでメモ

環境

  • MacOX10.9
  • XCode 5

TestAppという単純なアプリを作成しその中からSTLで作成したFrameworkを呼ぶことにするサンプルです。

UtilsというなのFramework

まず、ライブラリの作成です。XCodeでOSX用のCocoaFrameworkを作成します。

作成した後にファイルの追加で以下のヘッダファイルとC++ファイルを追加します

  • Test.h

  • Test.cpp

ついでにObjective-Cのクラスも追加します。こちらを参考に

  • Utils.h

  • Utils.m

それぞれのヘッダファイルをPublickにしたのちに、コンパイルするのですが、Build Rulesの Apple LLVM 5.0 Language C++のC++ Language Dialect を -std=c++11へ、C++ Standard Libraryを libc++(LLVM C++ standard library with C++ 11 supportへ変更します。また Apple LLVM 5.0 Language のCompile Source As をObjective-C++へと変更しておきます。

これでコンパイルOKのはず

TestAppというアプリ作成

OSXのApplicationのCocoaApplicationからプロジェクトを作成し、テキストボックスとボタンを配置しておきます。また、プロジェクトのFrameworksに先ほど作成したUtilsのフレームワークを追加しておきます。

  • AppDelegate.h

  • AppDelegate.m

先ほどのライブラリと同様にBuildSettingを変更しておきます。

これでコンパイルとリンクがOKのはず。。

ボタンを押すとライブラリで計算した値がテキストボックスに出るはずです

Mac用アプリの自動テスト

最近自動テストツールにはまっています。

さすがにはやりというかiOSやAndroid用のテストツールは山ほど(というほどでもありませんが)有るのですが、Macのアプリ用のテストツールはほとんど有りません。

ちなみにこちらにまとめて書いてあるので参考になります

http://iphone-dev.g.hatena.ne.jp/laiso/20120111/1326280021

KIFのMac版が有るとのことなのでちょっと試してみました。

こちらのサイトを参考に

http://d.hatena.ne.jp/laiso+iphone/20121013/1350134198

環境

  • MacOS10.9
  • Xcode 5

この組み合わせで少しはまりました。

http://d.hatena.ne.jp/laiso+iphone/20121013/1350134198

こちらのサイトのサンプルであるGITHubからダウンロードします

https://github.com/laiso/Mac-Samples/tree/master/KIFMac01

このままではKIFがとれないので別途取得します

先ほど取得したサンプルに上書きします

Xcodeを起動しプロジェクトを取り込みます

IntegrationTestのターゲットを選んで実行。しても止まってしまいます。

ログを見ると、

どうやらアクセシビリティがだめな模様。

システム環境設定のアクセシビリティを見ても設定項目なし。。

http://www.tekrevue.com/how-to-enable-access-for-assistive-devices-in-os-x-mavericks/

こちらに答えが書いていました。

システム環境設定のセキュリティとプライバシーの中から、プライバシータグのアクセシビリティにXCodeのチェックボックスをオン

これでサンプル通りに動きました

npmコマンドのproxy設定

iOSとAndroidのアプリのテストが自動でできるというappiumを試そうとしたときの話。

  • 環境
    • MacOS 10.9
  • インストール

こんな感じでおこられてしまった

proxyの設定はbashの環境変数とは別の様でconfigで設定する必要が有ります

再度実行

macを10.9.1にバージョンアップしたらmac->winのSynergyでバックスラッシュが効かなくなってしまった場合の対処

サーバ側

  • MacOS 10.9
  • SynergyKM

クライアント側

  • windows7
  • Synergy1.3.1a-ja

こちらを参考に、http://wiki.nothing.sh/page/memo/Synergy 上記構成でMacをサーバにWindowsをクライアントとしてSynergyを使っていたのですが、どうやら10.9.1にバージョンアップしたらWindows側でバックスラッシュ「¥」が効かなくなってしまいました。

10.9.1のReleaseNoteをチラッと見ると、日本語入力周りの修正等と書いてあったのでもしやこれに引っかかったか?

非常に不便なので、ダメ元でWindows側のSynergyを1.3.1-jaに変更。

どうせ一緒だものね。

と、なんと、これでバックスラッシュが効くようになったとさ。

今回のMacOSのアップデートで、どうやらずいぶんと前からある不具合を直したのでしょうか?

LinuxからMac10.9へリモートディスプレイでX上のFirefoxを動かす

ちょっとはまったのでメモ。

通常X-Windows同士はお互いに、リモートでディスプレイ上のものを映すことができます。

A:Linux

B:Linux

A->BへsshでログインしBのFirefoxを起動しAのX上で操作するということです。

意外とこれが便利。

X-Windowを搭載しているMacでも同じことが当然できるはず。

ということで試してみる

古い記憶を辿りながら

Local

mac 10.9(hostname:mac,ip:192.168.0.1)

remote

RedHat 5.8 (hostname:linux,ip:192.168.0.2)

Macでの設定

Linux側での設定

これが起動しない。

こちらに解決法が。。

http://ruepprich.wordpress.com/2013/01/08/x11-forwarding-on-os-x-10-8-2-mountain-lion/

Macでの設定

Linux側での設定

見事にMac側にFirefoxのウインドウが。。

DISPLAYは必要ないのね。。

marveriksにアップデートしたらSynergyのキー配列が変

以前Windowsをサーバにmacをクライアントでsynergyを使用していたのですが、macのOSをmountain lion からmavericksにアップデートしたところ、synergyで記号がまたまたおかしくなってしまった

以前はキーボードの設定で地域をオーストラリアなどにすればよかったのですが今回はそういう設定がなくなった模様。。

いろいろごじゃごじゃやってようやく解決

  • mac 10.9 + SybergyKM
  • windows 7 + Synergy1.3

1.macのシステム設定からキーボードを選択

2.入力ソースで+からbritish-PCを選択

3.ことえりを選択し英字のチェックを外す

つまり英語入力時にはbritish-PCを使えば106キーボードの記号がそのまま出ます

そろそろバグ修正してもらえませんかねぇ

MacOS10.8のVirtualBox上でUSB接続のDVDを認識させる

  • iMac MacOS10.8
  • DVD Drive Buffalo BRXL-PC6VU2
  • ゲストWindowsVista Ultimate 32bit

この組み合わせでVirtualBox上のVistaにつなげるにはちょっと苦労しました。

VirtualBoxの設定からポート、USB を選択し+ボタンでBUFFALO Optical ODDを追加します。この際にUSB2.0コントローラを有効にしますが、こちらはVirtualBoxの追加パッケージを入れておく必要がありました。

このまま起動すると、Vista上では不明なデバイスとして認識されてしまい、DVDは使えません。

ネットを調べたところ皆さん苦労しているようで、起動前にUSBをMacから物理的にはなしておき、VirtualBox起動後につけるとかあったのですが、うまくいきません。

半ばあきらめていたのですが、OKWebにあったこれ

「CPUを一個にするとうまくいく!」

半信半疑でVirtualBoxのCPU数を2個から1個へ。

これがうまくいきました。Explorer上でちゃんとDVDドライブとして認識されています

Macでkakasi

KAKASIをMacにインストールしてみた

  • MaxOS10.8.2
  • kakasi-2.3.4

エラーが出る

http://www.ki.nu/~makoto/diary/?200307b&to=200307131#200307131

こちらに対処法があったので修正

うまくいったようだ

memcachedで日本語キーを扱う

memcachedの代わりにkyoto tycoonを試してみようとしています。

kyoto tycoonはmemcachedと同じインターフェースで起動できるとのことで、当然memcachedライブラリが使えます

日本語のキーが使えるかどうか確認します

  • memcachedライブラリ

なんかだめ。。

ちなみにperlだと

rubyのライブラリが悪いようだ

ちなみにOSはMountain Lion

vimのシンタックスハイライトにscalaを追加する

macでscalaを使うためにはbrewでインストールするのが一番簡単です

このままだとvimで.scalaを開いた際に色がつかないので非常にみづらいです

いろいろやり方はあるみたいですがこれが一番簡単でした

http://bsnyderblog.blogspot.jp/2012/12/vim-syntax-highlighting-for-scala-bash.html