クエリーに合わせた構造体を書くだけでGithub GraphQL API を扱えるGoのライブラリ[githubql]

golangとGraphQLの勉強中。 今回はGoでGithub APIのGraphQLのクライアント githubql を使ってみました。 githubqlの使い方 基本的にはGraphQLのqueryやmutationに合わせたGoの構造体を定義するだけです。 まずgithubqlのページに載っているサンプルを見てみ…

charlock_holmes(0.7.3) が Siera(10.12.6)でインストールできない場合の対応

icu4cのバージョンを上げたらcharlock_holmesがicu4cを見つけられなくなったため、bundlerでcharlock_holmes(0.7.3)を再インストールしようとしたが、今度はインストール時にエラーが出て少し嵌ったので対応をメモ。 環境 OSX Siera 10.12.6 ruby 2.4.1p111 …

リーンキャンバスのツールやテンプレート

先日、ミッドタウンで開催された書籍「RUNNING LEAN -実践リーンスタートアップ」の刊行記念セミナーに参加してきました。 『Running Lean -実践リーンスタートアップ』刊行記念 著者アッシュ・マウリャ氏 来日特別セミナー at Yahoo! JAPAN 著者のアッシュ…

ボルダリングとプロテイン

技術系の話ではないのですが、最近ボルダリングを始めて定期的にジムに通っています。ボルダリングは手や足を置ける石がルートやレベルによって決まっていて、筋力だけでなくどのルートをどのように体を使ったら登れるか適度に頭を使って考える必要があり、…

Object#public_send()で安全にメソッドを呼び出す

rubyで動的にメソッド呼び出しをしたい時、Object#send()を使うと文字列やシンボルでメソッドを呼び出す事が出来ます。 ただこの機能を使うと意図せずにカプセル化を壊す事が出来てしまうため、publicメソッドのみ呼び出すようにしたい場合はObject#public_s…

procとlambdaの違いについてメモ

Rubyのメモ。 procとlambdaはどちらもProcクラスのインスタンスなのだけど、違いがある。 そもそものProcの使い方と、lambdaとprocとで何が違うのかを調べてみました。 「プログラミング言語Ruby」によると、 procはブロックのオブジェクト形態であり、ブロ…

CookPadのchanko勉強会に行ってきたのでサンプルを作ってみた(View編)

6/8(金)にCookPadで開催された「chanko勉強会」に行ってきました。 chankoとはCookPadが開発したrails用のライブラリで、chankoを使うと プロトタイプで作成した機能を素早くかつ安全にプロダクション環境で 実際のユーザーに使ってもらう事が出来ます。 h…

シングルコンテキストでTi.UI.currentWindowやTi.UI.currentTabがundefinedになるのを回避する方法

Titaniumはシングルコンテキストで書くのが最近の流儀のようですが、 その場合Ti.UI.currentWindowにアクセスしようとしたら以下のようなエラーが出てしまいました。 [ERROR] Script Error = Result of expression 'Ti.UI.currentWindow' [undefined] is not…

TitaniumでiPhoneへの実機転送時にはまった件のまとめ

iPhoneアプリをTitaniumで作ろうと思い、期限が切れていたiOS Developer Programを更新しました。 アプリを実機に転送して動作確認するために、プロビジョニングプロファイルを作成する必要が あるのですが、うっかり以前作成した際に使った秘密鍵のバックア…

TitaniumのAndroid用モジュールを作る カスタムViewモジュールの作成

今回はTitaniumのモジュール機能を利用してカスタムViewを作ります。 最低限必要な手順を整理したかったので、カスタマイズ内容は通常のViewクラスに色をつけるだけのシンプルな内容にしました。 プロジェクトの作成 TitaniumのAndroid用モジュールを作る そ…

Titaniumの「Module Developer Guide for Android」を日本語化してみた。

TitaniumのAndroidのモジュール作成について調べたのですが、日本語での資料があまり見つかりませんでした。 そこでまず自分の理解を深めるために公式サイトのドキュメントを日本語化してみました。 TitaniumのAndroid用モジュールを作る その1 TitaniumのA…

TitaniumのAndroid用モジュールを作る その3

TitaniumのAndroid用モジュールを作る その1 TitaniumのAndroid用モジュールを作る その2 の続きです。公式サイトのドキュメントのほぼ直訳ですが若干訳が怪しい箇所があって読みづらいかもしれません・・・ モジュールとプロキシの生成 プロジェクトの初…

TitaniumのAndroid用モジュールを作る その2 テストの実行

TitaniumのAndroid用モジュールを作る その1の続きです。 公式サイトを厳密に翻訳しているわけではなく、意訳・追加・省略等を行なってます。 組み込みExampleプロジェクトでのテスト モジュールプロジェクトにexample/app.jsというファイルがあるので、こ…

TitaniumのAndroid用モジュールを作る その1

TitaniumのAndroid用モジュール作成はWebで探しても日本語で解説しているところが見当たらなかったので、公式サイトを参考にかいつまんでまとめておきます。 公式サイトを全て完全に訳しているわけではなく、意訳や省略・追加している箇所もあるのでご了承く…

TitaniumでAndroidの画面の向きを固定する

TitaniumでAndroidアプリを作っていて画面の向きを固定にしたくなったのですが、通常Androidではactivityタグの中で下記のように設定します。 android:screenOrientation="portrait" ただTitaniumではTitaniumでは一つ一つのActivityを意識しないため、おそ…

vimでneocomplcacheを使ってTTにHTMLのコード補完をする

「Androidアプリ開発メモ」というブログのタイトルですが、サーバサイド開発の際はvimを使ってPerlやPHPのコーディングをする事が多いので、たまにはvimの話を書いてみます。 今回はコーディングを快適にするためにneocomplcacheを入れてみましょう。 neocom…

AndroidでTitanium.Network.HTTPClientを使うとUAがセットされない

Titanium.Network.HTTPClientで嵌りました。Yahoo!のAPIを使ってデータを取ってくる処理を書いていたのですが、iPhoneでは動くのにandroidで動かないという現象が発生しました。onerrorでエラー内容を見ると「Bad Request」とのこと。試しにはてなやATNDなど…

titaniumでError generating R.java from manifestが発生する場合の対処法

titaniumのandroidで Error generating R.java from manifest が発生する場合、「Edit」の「Application ID」を確認しましょう。 Application IDが「Hoge」のようになっていたら、「com.Hoge」のようにパッケージ形式で記述すると直ります。(直らない場合も…

Titanium.UI.iPhone' [undefined] is not an object が発生した場合の対処法

Androidに限定した話題じゃないのですが、最近はJavascriptでiPhoneとAndroidのアプリが開発出来るTitanium Mobileをいじってます。gihyo.jpで「Titanium Mobileで作る! iPhone/Androidアプリ」が連載されているので、そのサンプルコードを参考にアプリを…

スリープ状態をアプリから解除する

端末の電源ボタンを押す等してスリープ状態に入ったまま、バックグラウンドでプロセスを動かし、なんらかのタイミングでスリープ状態を解除してアプリをresumeしたい場合は android.os.PowerManagerとandroid.app.KeyguardManagerを使用します。PowerManager…

Androidあるある その1 ブレークポイントを設定してもデバッグ出来ない

Androidアプリ開発で分かっているのによくやってしまう失敗をネタにAndroidあるあるをメモ。eclipseで下記のようにブレークポイントを設定してデバッグ実行しているのに処理がブレークポイントで止まってくれない・・・(´・ω・`)ショボーン はい、AndroidManife…

monkeyテストツールを使う

Monkeyというツールを使うと、クリックやタッチなどのユーザーの操作イベントやシステムのイベントをランダムに発生させることができます。 開発者はこのツールを利用してストレステストを行えます。 基本構文 adb shell monkey [options] <event-count> デバイス名、冗長</event-count>…

adbコマンドメモ

よく忘れるのでメモ。 起動 adb start-server 終了 adb kill-server 接続中のデバイスのリスト adb devices logcat adb logcat シェルでログイン adb shell デバイスを指定してシェルでログイン adb -s デバイス名 shell デバイスを指定してlogcat adb -s デ…

WebViewでローディング(画面更新)をハンドリングする

WebViewでの操作をハンドリングする方法はいくつかありますが、画面のロードをハンドリングするには WebViewClient#shouldOverrideUrlLoading を使います。下記はWebView内のリンクをクリックした場合など、画面のロードが始まった時にToastを表示します。 W…

AndroidでのAdMobのテストモード

作ったアプリにAdMobの広告を入れてみました。広告レイアウトの確認をする場合、テストモードを使います。エミュレータの場合、下記のようにActivity内で書けばテストモードで表示されます。 AdManager.setTestDevices( new String[] { AdManager.TEST_EMULA…

GoogleのAndroid機種一覧サイト

http://www.google.com/phone/少し前に出ましたね。

TextView.setText(int)に注意

layoutのxmlとActivityを編集してると下記のエラーが発生。 android.content.res.Resources$NotFoundException: String resource ID #0x3e8 かなり嵌ったけど、よく見るとTextView.setText() にintの値をそのまま渡していた。つまり setText(CharSequence te…

Androidの年代別全端末スペック

2008年〜2010年の間に発売されたAndroidの全端末のスペックを まとめているサイトがありました。http://www.androphones.com/all-android-phones.phpAndroidはiPhoneと違って様々な機種があるので、こういうまとめサイトは貴重ですね。