Bazelのrules_kotlinについてのメモ

Bazelのrules_kotlinにkotlin_android_library rule 追加され、Kotlinで書かれたAndroidアプリがビルド可能になったので調べたメモ。 BazelでのAndroidアプリのビルド方法の復習 Bazelのインストール サンプルプロジェクトの用意 workspaceのセットアップ WO…

Reproでプッシュ通知を受け取る際にSmall Iconが表示されない場合の対処方法

概要 Reproでプッシュ通知を受け取る際に、NotificationCompat.BuilderのsetSmallIconでiconのリソースを指定していても通知に表示されない場合の対処方法について。 対処方法 AndroidManifestのapplicationタグに以下のようなmeta-dataを追加します。 <meta-data android:name="io.repro.android.PushNotification.SmallIcon" android:resource="@drawable/YOUR_ICON_ID"> </meta-data> こ…

既存のURL文字列にUri.Builderでクエリを追加する方法

既存のURLにUri.Builderを使ってクエリを追加する場合こうする。parse後にbuildUpon()で繋ぐのがミソ。 val url = Uri.parse("既存のURL") .buildUpon() .appendQueryParameter("key", "value")

Kotlinで1から99までの整数を含むListを簡単に作成する

KotlinではlistOf関数を使う事で簡単にListを作成できる。 val list = listOf(1, 2, 3) // [1, 2, 3] ここで1から99までのListを作る場合はRangeを使うと簡単に作成できる。toList()でListに変換してやるのがポイント。 val list = (1..99).toList() // [1, …

KotlinでListをイテレーションする際にindexが欲しい場合の書き方

withIndex()を指定すればOK。 val list = listOf(1, 2, 3, 4, 5) for ((index, element) in list.withIndex()) { print("$index, $element\n") }

英語でKotlinを勉強するためのリソース

Android DevelopersのKotlinのページにはResources to Learn Kotlinというページがあります。 Resources to Learn Kotlin | Android Developers このページにはタイトル通りKotlinを学ぶためのリソースのリストが載っていて、以下のカテゴリに別れています。…

BuckでのAndroidプロジェクトのビルドについて

概要 Facebook製ビルドツールBuckをインストールし、サンプルとして公開されているAndroidプロジェクトをビルドしてみます。 Buck? BuckはFacebookが開発しているビルドツールです。 buckbuild.com 公式サイトではBuckの特徴が解説されています。ビルドが高…

React NativeプロジェクトでFlowのよる型チェックが「Flow: Waitng for diagnostics」と表示され実行されない場合の対処方法

概要 React NativeのプロジェクトをReact Native CLIで新規作成し、Nuclideで開発を始めると以下のように「Flow: Waitng for diagnostics」と表示されFlowによる型チェックが実行されませんでした。 この記事は型チェックが正常に動くまで行ったことのメモで…

React NativeでiOSアプリをビルド

概要 React Nativeが公開された際に一度動かしてから触っていないので、改めてReact Nativeプロジェクトの作成から、ビルドしてiOSシミュレーターで表示するまでをやってみたのでメモ。

後方参照不要なグループ化

よく忘れるのでメモ (?:1|2|3)

s3からのファイルの取得

AWS SDKを使いs3からファイルを取得する方法についてメモ require 'aws-sdk-core' Aws.config[:region] = 'ap-northeast-1' s3 = Aws::S3::Client.new( access_key_id: ACCESS_KEY_ID, secret_access_key: SECRET_ACCESS_KEY ) File.open('保存時のファイル…

GoogleMapのMapFragmentを取得した際にNullPointerExceptionが発生する場合の対処方法

概要 以下のようなコードでGoogleMapを表示しようとしたところNullPointerExceptionが発生した。 GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); UiSettings uiSettings = googleMap.getU…

KotlinでAndroidアプリをビルドしてみる

最近Kotlinの話題を聞く事が多くなってきたので、Kotlinでプロジェクトを作成し、HelloWorldアプリをビルドするところまでやってみる。 公式サイトを見ながら環境を構築していく。 Kotlin Pluginのインストール IntelliJ IDEA 15は最初からKotlin Pluginが入…

半年振りにBazelをインストール

概要 BazelがAndroidのビルドに対応してから試せていないので試したいが、Bazelは半年前にインストールしたままなので、新しくインストールし直してみる。 Bazelのインストール http://bazel.io/docs/install.htmlを参考にインストールする。Ubuntuのバージ…

Dockerで起動したUbuntuコンテナからarchive.ubuntu.comの名前解決ができない場合の対処方法

Dockerで起動したUbuntuのコンテナで、apt-getを実行したところ以下のようなエラーが発生した。 $ apt-get install software-properties-common ・ ・ ・ 0% [Connecting to archive.ubuntu.com] Err http://archive.ubuntu.com/ubuntu/ trusty/main libroke…

deprecatesになったBoot2DockerをDocker MachineにMigrationする

たまたまDockerの公式サイトをみたところ以下のような注意書きが。 Note: This release of Docker deprecates the Boot2Docker command line in favor of Docker Machine. Use the Docker Toolbox to install Docker Machine as well as the other Docker to…

git commitで使用するエディタを指定する

Git

$ git commit時に開くエディタは、以下のコマンドで指定できる。 $ git config --global core.editor vim 参考 Git - Git の設定

Kali LinuxをVirtual Boxにインストールする

サイバーセキュリティプログラミング――Pythonで学ぶハッカーの思考を買った。 読む上でKali Linuxの環境が必要になってくるのでVirtual Box上に用意してみる。 Kali LinuxのISOイメージ用意 Kali LinuxのサイトからISOイメージ(kali-linux-2.0-amd64.iso)を…

AsyncTaskでtimeoutを指定する方法

AsyncTaskを利用してAPIへリクエストする際にTimeOutを指定したい場合がある。そのやり方のメモ。 final SampleTask task = new SampleTask(); task.execute(); // TimeOut処理 new Thread(new Runnable() { @Override public void run() { try { // TimeOut…

Cloud Test Labドキュメントのざっくり翻訳

概要 Cloud Test Labのドキュメントが公開されていたのでトップページだけざっくり翻訳してみた(英語は得意じゃない)。 原文 cloud.google.com [翻訳] Google Cloud Test Lab Google Cloud Test Labは、クラウドベースのAndroidアプリテスト環境を提供します…

JavaのString.format内で%をエスケープ

知らなかったのでメモ。 String.format("%s%%", "test"); 出力 test% 参考 stackoverflow.com

SORACOMのAir SIMの帯域をRubyスクリプトから変更する

概要 ソラコムのAir SIMの帯域変更をRubyのスクリプトから試した。 SORACOM SDK for Rubyのインストール $ gem install soracom Clientの準備 require 'soracom' client = Soracom::Client.new(email: 'YOUR_EMAIL_ADDRESS', password: 'YOUR_PASSWORD') ema…

Rubyでファイル名を置き換える

以下のようなファイルを _hoge1.png _hoge2.png _hoge3.png _hoge4.png _hoge5.png 以下のようにリネームしたい hoge1.png hoge2.png hoge3.png hoge4.png hoge5.png Rubyで書くとこんな感じ equire 'fileutils' Dir.glob('*.png') { |filename| tmp = /_(.*…

PhotonでOSX風Electronアプリを作成する

ElectronでOSX風のUIを簡単に作れるPhotonを使ってみる。 Eelectronをインストール 先にElectornをインストールしておく。 Photonのリポジトリをclone $ git clone https://github.com/connors/photon.git プロジェクト構成 Photonを使用してElectronアプリ…

Electronを動かす

Node.jsのインストール nvm(もしくはnodebrew)を使いインストール $ nvm install v4.2.1 $ node -v v4.2.1 yeomanのインストール Electronの雛形プロジェクトを生成するためにyeomanをインストール $ npm install -g yo Electron用のgeneratorをインストール…

java.net.SocketException: socket failed: EACCES (Permission denied)が発生した時の対処方法

AndroidでCalabashのテストを実行した際に以下のエラーが発生した。 Error message 'java.net.SocketException: socket failed: EACCES (Permission denied)' 原因はパーミッションが足りないから。AndroidManifest.xmlに以下を追加。 <uses-permission android:name="android.permission.INTERNET"/> 参考 stackoverflow.c</uses-permission>…

AWS SDKを使いDeviceFarmでのテストをスケジューリングする

概要 AWS SDKを使用してDeviceFarmへAPKとテストコードをアップロードし、Calabashによるテストを実行してみたのでそのメモ。 APIドキュメントと使用するSDK ドキュメントは以下を参照した。 http://docs.aws.amazon.com/sdkforruby/api/Aws/DeviceFarm.html…

AWS Device Farm APIでプロジェクト情報を取得する

概要 AWS Device FarmのAPIが公開されていたので試してみた。 AWS CLIのインストール 今回はAWS CLIを使ってみる。ドキュメント通りにCLIをインストール。 $ sudo pip install awscli 認証情報の設定 ドキュメントに従い設定。AWS Device Farmがオレゴン限定…

Elixirのインストール

概要 Phoenixを試したいのでまずElixirをインストールする。 インストール Elixir公式のInstallを参考にインストールする。Macの場合Homebrewでインストールできる。 $ brew update $ brew install elixir バージョンを確認 $ elixir -v Elixir 1.0.5 インス…

BazelでJavaのプロジェクトをビルドする

2015年12月時点でのインストール手順はこちら 概要 Bazelを実際に使って見るためにインストールとサンプルプロジェクトのビルドを試してみる。 Bazel? BazelはGoogleで使われているビルドツールBlazeのOSS版。巨大なソースコードのビルド、テストおよびリリ…