TypeScriptでAngular1.5を書けるようにする

Webアプリを作ることになったので、Angularフレームワークを使ってTypeScriptで書くことにしました。そこでこの組み合わせでさくっとセットアップできなかったので方法を残しておきます。

セットアップ

AngularとTypeScript、Typingsをインストールする。

$ bower install --save angular
$ npm install -g typescript
$ npm install -g typings

TypingsはTypeScriptの型定義ファイルを管理するツールで、TypeScript標準で存在しない型の補助をしてくれます。 今回はAngularと依存しているjQueryの型定義をインストールする。

$ typings install --save --global dt~angular
$ typings install --save --global dt~jquery

Webアプリの設定

HTMLでAngularを読み込む。

<head>
  <script src="./bower_components/angular/angular.min.js"></script>
  <script src="todo.js"></script>
</head>

TypeScriptファイルの先頭で型定義ファイルを指定する。これでTypeScript内でangularなどの変数を使ってもエラーが出なくなります。

/// <reference path="./typings/index.d.ts" />

var app = angular.module('todoApp', [])
...

これでTypeScriptファイルをコンパイルできるようになり、JavaScriptファイルが正常に出力されます!

https://gist.github.com/t-kashima/24d97cddca0ba5e9b14b9e86c2ba81c4

Mac + RC-S380でSuicaを読み込む

MacとRC-S380を使ってSuicaを読み込んでみました。

SONY 非接触ICカードリーダー/ライター PaSoRi(パソリ) USB対応 RC-S380

SONY 非接触ICカードリーダー/ライター PaSoRi(パソリ) USB対応 RC-S380

Suicaを読み込んでデータを表示するためにpythonライブラリnfcpyを使いました。nfcpyを使うために色々インストールしたのでメモしておきます。

$ brew install libusb
$ brew install libusb-compat
$ brew install bzr
$ sudo pip install pyusb
$ sudo pip install libusb1
$ sudo pip install pyserial

これでnfcpyを使うための準備が整いました。さっそくBazaarを使ってnfcpyを取得します。

$ bzr branch lp:nfcpy

nfcpyのサンプルにタグを表示するスクリプトが入っているので実行してみます。

$ python examples/tagtool.py show
Type3Tag 'FeliCa Standard (RC-S???)' ID=0000000000000000 PMM=0000000000000000 SYS=0000

無事にSuicaのタグが表示されました!

Instrumentation TestでNo Testsになる

Gradleプラグイン1.5.0 + multidexの組み合わせでInstrumentation Testが動かなくてはまりました。Issueが上がっていて解決策ものっています。

Issue 194609 - android - Android Gradle Plugin 1.5.0: Multi-Dex on pre-Lollipop devices gives java.lang.IllegalAccessError during the connectedAndroidTest task (dalvik is loading different MultiDexApplication). - Android Open Source Project - Issue Tracker - Google Project Hosting

multidexを有効にすると追加されるライブラリをダミーライブラリに差し替えることで直るようです。次のバージョンで修正が入っているようでGradleプラグインのバージョンを上げても直りました。

名言アドベントカレンダー

お久しぶりです。かしまです。
突然ですが名言アドベントカレンダーの4日目の記事になります。
名言アドベントカレンダーでは色んな方が毎日1つずつ名言を紹介しています。


自分が心に残っている名言は、漫画家の真島ヒロさんの言葉です。

空には好きな色を塗れ

> 自分の解釈
みんなと同じでなくても自分の好きなようにやっていけばいいんだよ。



中学生の時にRAVEという漫画の著者コメントに載っていました。

名言アドベントカレンダーは同僚の@otukutun主催で開催されています!

名言 Advent Calendar 2015 - Adventar