WinObjC雑感

公開から少し間が空いてしまいましたが、
WinObjCについて触れてみたので、感想を書いておこうと思います。

WinObjCとは

Microsoftが公開している、Windows上でObjective-C(iOS)のソースコードをコンパイルできるようにする、ブリッジモジュールの事です。

https://github.com/Microsoft/WinObjC/

今のところプレビュー版で、ARM向けのバイナリが生成できないなど、色々と制約はあります。

サンプルの動かし型

前述のgithubからSDK一式zipをダウンロードして展開し、
VisualStudio2015でソリューションファイルを開き、ビルドして実行するだけです。動かすだけなら超簡単だった。

WinObjC_Sample

ちゃんと.mファイルを修正すると、その通りバイナリにも反映されています。

WinObjC_Sample2

そして、Objective-Cのコードにバグを仕込むと、コンパイル時にちゃんと検出してくれています。

WinObjC_Errors

イケてるところ

  • Windows上でiOSアプリの動作確認ができる。(これが最重要ですねw)
  • VisualStudioで設定したブレークポイントでちゃんとブレークできる。
  • C++なんかと同様、ブレーク時点でのイミディエイトウィンドウで変数の値を確認できる。

微妙なところ

  • UIコンポーネントのサンプルもあったけれど、iOSとはデザインが微妙に異なるため、見た目の確認には厳しいかも。
  • Objective-Cのコードに合わせてエディタがハイライトされない。
  • IntelliSenseやフォーマッター、関数・クラス定義へのジャンプもできない。
  • 動的なシンタックスエラーチェックなどもできない。

まだプレビュー版なので、正式版に期待といったところでしょうか。
VisualStudioで開発できるようにするからには、IDEのサポートも期待したいところです。
ちなみに、サンプルの範囲で確認しただけなので、ライブラリの利用は試していません。

amazon-ecsで当月発売の商品を取得する

で、Powerサーチの使い方がいまいち分かりにくかったのでメモメモ。

opts = {
  browse_node: "nodeid",
  response_group: "Large",
  country: "jp",
  power: "pubdate:during 09-2015"
}
response = Amazon::Ecs.item_search(keywords, opts)

pubdate:duringの後に当月を指定します。
pubdate:beforeにすると、前月以前になり、pubdate:afterにすると、翌月以降発売の商品が取得できます。

Powerサーチを使いこなせれば色々できそう。

前回の記事から二週間も空いてしまった、、時間見つけて書かないとなぁ。

ansibleでgolangをインストールするレシピ

グローバルにgoをインストールするレシピを書きました。
一応冪等性も確保。

    # /usr/local/go のディレクトリ有無を確認。ディレクトリが無いときだけ以下のレシピを実行する。
    - stat: path=/usr/local/go
      register: godir
    - name: get golang
      command: wget https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz -O /tmp/golang1.5.tar.gz
      sudo: yes
      when: not godir.stat.exists
    - name: tar golang
      command: tar zxf golang1.5.tar.gz chdir=/tmp
      sudo: yes
      when: not godir.stat.exists
    - name: install golang
      shell: mv /tmp/go /usr/local/go-1.5; ln -s /usr/local/go-1.5 /usr/local/go; echo 'export PATH=$PATH:/usr/local/go/bin' > /etc/profile.d/go.sh
      sudo: yes
      when: not godir.stat.exists

GOPATHは適宜設定しましょう。
(syntaxhighlightのwordpressプラグインってyamlはハイライトできないのね。。)