2013-01-01から1年間の記事一覧

SBTでコンパイル完了後に通知する

普段Scalaで開発する時にはsbtのインクリメンタルコンパイルを使用するのですが、シングルディスプレイいっぱいにIntelliJを広げているといちいちターミナルを開いて確認しなければならないので、コンパイルが完了したら通知センターに通知を行う方法を考え…

HomebrewでMySQL 5.1をインストール (Mountain Lion)

インストール 以下のオプションを付けて色々試したがビルドエラーになってうまくインストールできなかった。 $ brew install mysql51 $ brew install --use-llvm mysql51 $ brew install --use-clang mysql51 以下のようにAppleのgccを使ってコンパイルする…

IntelliJでScalaの継続プラグインを設定

以下のScala実践プログラミングの限定継続のサンプルをIntelliJで動かす時にハマったのでメモ。 import scala.util.continuations._object Main extends App { val answer = reset { val x = shift {k: (Int => Int) => println("A") println("k(10) = " + k…

iTunesのプレイリストをAndroidに同期する方法比較

MacのiTunesのプレイリストをAndroidに同期したかったので、方法を調査してみました。 現時点で以下の4つの方法を見つけたので、それぞれ比較してみます。 Google Play Music + Play Musicアプリ Google Play MusicはPC上のライブラリを丸ごとGoogleのサーバ…

Scalaの継続モナド(Continuationモナド)を理解する

Scala実践プログラミングに出てきた継続モナド(Continuationモナド)を理解するに手こずったので、備忘録として簡単に説明を残します。該当ページはp.304,305です。 以下は継続モナドの定義です。 class Cont[A, B](m: (A => B) => B) { // for内包表記用のメ…

ConvertBox - 単位変換アプリ リリース

ここ最近ずっとAndroidの単位変換アプリを開発していましたが、ようやくそこそこの完成度になってきたのでGoogle Playストアに公開しました。 ConvertBox - 単位変換 よくある単位変換ツールですが、検索機能に力を入れており、「華氏86」と検索ボックスに入…

PCで作成したSQLite DBをAndroidアプリで使う

辞書アプリなどのSQLiteに保存されたデータを使うアプリでは、アプリの初回起動時に何らかの方法でデータをDBにインサートする必要があると思います。 件数が少なければ外部ファイルからインサートしてもいいのですが、件数が多くなってくるとこのインサート…

Spinnerでプログラムから選択肢を変更した時にonItemSelectedを呼ばないようにする

少しはまったのでメモ。 以下のようにsetOnItemSelectedListenerでnullを設定すればいけるかと思いきや、これではnullに設定してもonItemSelectedイベントが呼ばれてしまいます。 spinner.setOnItemSelectedListener(null) spinner.setSelection(0) 以下のよ…

RobotiumでUIに関するアクションを実行

RobotiumでSoloではサポートされていない操作を行う必要がある時、textView.setText(“hoge”)のようなUIに対する変更のコードをRobotiumのテストで実行すると、以下のエラーとなります。 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the…

CursorLoaderのロード後にListViewの選択行を変更

ListViewでadapterにSimpleCursorAdapterとCursorLoaderを使用している状況では、onLoadFinishedメソッドの中でadapter.swapCursor(cursor)を呼び出してListViewの中身を更新すると思います。 この時swapCursorの後にListViewの選択行を変更するには、以下の…

Spinnerの中でアイテムのpositionを取得する

Spinnerの選択肢を手動で変更する場合、以下のようにsetSelectionで引数にSpinner中のアイテムのpositionを指定します。 // spinnerの先頭を選択spinner.setSelection(0) 問題はこのpositionをどうやって調べるかです。Spinnerから特定の文字列に合致するア…

Cursorに行をマニュアルで追加

MatrixCursor、MergeCursorを以下のように使うと、Cursorにマニュアルで行を追加することができます。 def onLoadFinished(loader: Loader[Cursor], cursor: Cursor) { val matrixCursor = new MatrixCursor(Array("_id", "category_id", "name")) matrixCur…

ListViewの選択されたアイテムの背景色を変更2

[Android] ListViewの選択されたアイテムの背景色を変更では、ListViewの行のレイアウトのbackgroundに以下のselectorを設定して選択された行の背景色を変更しました。 res/drawable/list_item_selector.xml android:drawable="@color/selected_list_item_co…

ListViewをタップした時に色を変えないようにする

ListViewはデフォルトではタップすると色が反転するようになっています。 ListViewのlistSelectorに透明色(#00xxxxxx)を設定すると、タップした時に色が変わらないようになります。 android:id="@+id/unit_list" android:layout_width="match_parent" androi…

テスト用DBを使ってActivityInstrumentationTestCase2のテストを行う

RenamingDelegatingContextをSQLiteOpenHelperのコンストラクタに渡すと、テスト用のDBを使用することができます。 RenamingDelegatingContextはこちらの記事が詳しいです。 u1aryzの備忘録とか: RenamingDelegatingContextを使ってみた 前回の記事[Android]…

CursorLoaderのテスト

現在開発中のアプリではCursorLoaderとSimpleCursorAdapterを使ってDBのデータをListViewに表示しています。 CursorLoader、SimpleCursorAdapterの使い方は以下の記事が詳しいです。 コジオニルク - Android - パワフルなCursorLoader このCursorLoaderをテ…

IntelliJ+sbt+Androidな環境のデバッグ方法

sbt-androidプラグインを使ってScalaでAndroid開発を行う場合のIntelliJのデバッガの設定方法を紹介します。 実機側の設定 実機側の設定はJavaで開発する時と同じです。 以下はAndroid 4.2.2の設定方法です。 設定 > セキュリティ > 提供元不明のアプリ にチ…

sbtでJUnit実行後にレポートを出力

sbtでJUnitのテストを実行するにはbuild.sbtのlibraryDependenciesに以下を追加するだけです。 "com.novocode" % "junit-interface" % "0.8" % "test->default" しかし、これだけだとコンソールに結果が表示されるだけで、xmlに結果は出力されません。 xml形…

sbt-androidでRobolectricのテストを実行

RobolectricはActivityなどのAndroidのライブラリに依存するテストを実機やエミュレータを用いずに、通常のJVM上で実行可能にするフレームワークです。 エミュレータを使わないので高速に動作し、JenkinsなどのCIサーバ上でも通常のテストと同様そのまま実行…

sbt-androidでRobotiumのテストを実行

SBT-Android 0.7でRobotiumなどのActivityやViewなどのAndroidのライブラリに依存したテストの実行方法が少し変わっているようなので、sbt-androidからRobotiumのテストの実行方法について説明します。 giter8でテンプレートからプロジェクトを作成している…

CloudBees Dev@cloudのJenkinsで別バージョンのsbtを使う

この記事を書いている時点ではDev@cloudのJenkinsにインストールされているsbtのバージョンは0.11.3と少し古いです。 ここではDev@cloudのWebDav Repositoryに任意のsbt-launch.jarを置いて、Jenkinsから使う方法を紹介します。 プライベートリポジトリに使…

ListViewの選択されたアイテムの背景色を変更

ListViewの行をタップして選択した後も選択された行の背景色を変えたままにする方法を紹介します。 res/drawable/list_item_selector.xml タッチした時とタッチ後の色を変えるためのselectorを定義します。 android:drawable="@color/selected_list_item_col…

ライブラリをプリロードして(ProGuardを無効にして)ScalaによるAndroid開発を高速化

最近ScalaでAndroid開発を始めました。 やり方は解説サイトが色々あるのでそちらを参考にして下さい。 ScalaでAndroidアプリを作るには(IntelliJ IDEA + Sbt)ScalaでAndroidアプリな修行をはじめていますAndroid アプリを Scala + Intellij で開発したい件 …

Node.js+Connectでシンプルなウェブサーバー

HTML5のFile APIを試したらNOT_READABLE_ERRになってうまくアクセスできなかった。 調べてみるとどうやらfile://..のようなURLでアクセスしたページでこのAPIを使ってファイルを読み込もうとするとこのエラーとなるらしい。 そこでhttp経由でアクセスできる…

Chromium Embedded Framework (CEF) チュートリアル (Mac)

HTML+CSS+JavaScriptでデスクトップアプリを作れるフレームワークの調査でも紹介しましたが、Chromium Embedded Framework (CEF)はChromeブラウザの機能を自分のアプリケーションで使えるようにするためのブラウザコントロールです。 ダウンロードしたバイナ…

HTML+CSS+JavaScriptでデスクトップアプリを作れるフレームワークの調査

Win、Linux、Mac上で動くクロスプラットフォームなデスクトップアプリケーションを開発したいと思い、最近流行り?なHTML+CSS+JavaScriptのWeb3種の神器でデスクトップアプリケーションを開発できるフレームワークを調べました。 TideSDK 元々Appceleratorと…

はてなからBlogeerに移転しました。

昨年6月にアメリカにJ1インターンで来てから遊んでばっかで全然ブログ更新してなかったので、年も変わったことだし今年はもっとプログラミング方面でも遊んでどんどんアウトプットしていこうと思います。 ついでに独自ドメインでブログを運用したくなったの…