画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

aws-sam-cliを使ってlocalでLambdaを動かしてみる

aws-sam-cliをインストールする github.com Docker for MacとPython 2.7 or 3.6が必要。 Macのデフォルトでは2.7系だったので、一応最新版を入れる pyenv install 3.6.5 pyenv global 3.6.5 pip install aws-sam-cli ※ドキュメントの方では—userをつけている…

dockerの中に入った時にcontrol + pを2回押さないと履歴が表示されないのをなおした

これを見て解決 qiita.com ~/.docker/config.jsonこのファイルの中に以下を追加するだけ { "detachKeys": "ctrl-\\" } 今まで、なんか動作がおかしいなぁと思って面倒くささを感じてたけど、普通にキーバインドの問題だったのだ。 開発環境を作る時くらいで…

転職して3ヶ月が過ぎた。雑感。

気がついたらたってて、たぶん試用期間も終わってた。 前職は車関係の事やってて、現職も車関係。せっかくなので、もうちょっと関わってみたいと思った。 そして、Androidエンジニアからサーバサイドエンジニアになった。 Golang、AWS、もしくはGCP。 Androi…

Instagram api メモ

InstagramのAPIってカジュアルに使えないらしい。んだけど、実際のところどうなの?と思って調べてみた。 Instagram API PlatformとInstagram Graph APIの2種類ある Instagram API Platformは段階的に廃止され、2020年には全て廃止の方向。Instagram Graph …

株式会社スマートドライブをちょっと前に退職した

3月末をもって退職しました。 最終出社日です!— ぼいらー (@mapyo) 2018年3月22日 翼を授かった! pic.twitter.com/cwpm4U8Xx4— ぼいらー (@mapyo) 2018年3月22日 やったこと Androidアプリのエンジニアとして働いていた。そんなに長くはない期間だったけ…

iPhoneXを購入した

数週間くらい前に購入した。今までは仕事でiOS版の方の挙動を確かめる為に触った事はあったけど、個人的にメインで使うということは一切やったことなかった。 www.apple.com きっかけ ポケモンGoプラスを購入したものの、今までメインで使ってたNexus5xに全…

iterm2でフルスクリーンにした時に新しいデスクトップになってしまう設定をやめる

いつもiterm2を起動して、⌘+Enterで最大化して使っているのだが、 デフォルトの設定だと、新しいデスクトップ?の方に最大化してしまって、ちょっと自分としては使いづらい部分がある。 そして一度設定するとめったに触ることがないので、新しいPCにiterm2を…

DroidKaigi2018で「USB接続するアプリを開発した時に試行錯誤した事」というタイトルで登壇してきました

ちょっと時間がたってしまいましたが、発表してきました。 こちらの発表です。 https://droidkaigi.jp/2018/timetable?session=15880 資料はこちら。 Usb接続するアプリを開発した時に試行錯誤した事 from Masataka Kono www.slideshare.net 今回は事前に…

DroidKaigi2018 Room 2 - 2018/02/08 16:50-17:20 USB接続するアプリを開発した時に試行錯誤した事 のスライドを公開します

スライドを事前に公開する流れが来ているなと思ったので公開します。 [追記]スライドを少し修正したのでアップロードしなおしました Usb接続するアプリを開発した時に試行錯誤した事 from Masataka Kono www.slideshare.net 変更があるとしても、おそらく…

cookpad/license-tools-pluginを使ってみる

github.com techlife.cookpad.com つまづいたこと1 普通にREADMEのSetupを実行しただけではエラーになります。 https://github.com/cookpad/license-tools-plugin#for-gradle-plugin-3-users ここに書かれてますが、Android Studio 3を使ってる場合は、その…

Android Studioでscroll from sourceが出来るショートカットを探してたらいい解決方法をみつけた

やりたいこと Project Viewの以下の部分をクリックすると、今エディタで開いているファイルがProject View内でフォーカスされる。 でもこれを毎回手作業でやるのはめんどくさい。でもショートカットがどうもないっぽい。 プラグインを入れる 以下のプラグイ…

2017年の振り返り

立ててた目標の振り返りと、どんな事やってたかざっくり振り返っていきたい。 目標の振り返り 2017年の目標はこちら 2017年の目標は大きく3つだった Androidがんばる プルリク駆動勉強 運動 それぞれ1つずつ振り返っていこう 1. Android頑張る 主に3つを…

Android plugin for Gradle 3.0.0からは、buildToolsVersionを指定しなくてもよくなったっぽい

https://developer.android.com/studio/releases/build-tools.html このページの一番上に以下のように書いてあった。 You should always keep your Build Tools component updated by downloading the latest version using the Android SDK Manager. If you…

時間のかかるコマンドの実行が終了した時にディスプレイに通知する

10秒とか20秒とか1分とか時間のかかるコマンドを実行する事はしばしばある。 この間ずっとiterm2を目視しているわけにもいかず、何か別の事をする。しかし別の事をしていると、コマンドが終わった時に気が付けない。10秒くらいで終わるコマンドを実行…

戦略とか戦術とか

あれ、どっちがどっちだっけ?と迷った時に、よくこのブログを思い出して検索する d.hatena.ne.jp 不意に読もうという気持ちになってさくっと購入して読んでみた。 booth.pm さくっと読めるのでオススメ。この中に戦略的設計と戦術的設計が出てきたのでブロ…

VysorからOpenSTFに乗り換えた

今まではVysorを使っていた Vysor Androidの実機をPCから操作したい時に主に使っていた。 ディスプレイにうつして他の人にデモしたり、テキストを入力する時に便利。 しかしながら、無料版だといくつかの欠点があった 画質が悪い たまに広告が勝手に起動する…

RxJavaでPublishSubjectをsubscribeした時にonErrorが呼ばれるとそれ以降動かなくなる

サンプルコード subject.subscribe ({ number -> println(number.toString()) if (number == 3) throw RuntimeException() }, { println("onError") }, { println("onComplete") }) subject.onNext(1) subject.onNext(2) subject.onNext(3) subject.onNext(4…

fastlaneを使ってGoogle Playのベータ版にアップする

http://mapyo.hatenablog.com/entry/2017/07/23/032630 この辺で日々のビルドをするためにfastlaneを使ったので、次はGoogle Playにアップするところで使ってみる。 いきなり本番は流石に辛いのでベータ版にアップする部分を自動化して、手元で確認してから…

アプリで日々のビルドを配布する作業を自動化する時に考えた事

現在開発中のdevelopブランチの最新を日々自動的に配布したい。 日々配布してQA担当の方にテストしていただいたり、今のアプリの動きどうなってるんだろ?と思った時にさくっと確認出来て便利。 developブランチにMergeしたタイミングでapk作るのはちょっと…

KotlinでSealed Classを継承したクラスをGsonでシリアライズする時の話

こんな感じのseald classを作る sealed class SampleEvent(open val name: String) class SampleEventA( override val name: String ): SampleEvent(name) こんな感じでJson作る Gson().toJson(SampleEventA("aaaaa")) 気持ちとしては以下のようなjsonが出て…

How to convert Completable to Observable? Rxjava2

Observableな川の流れの中で、Completableを使った時に、どうやってまたObservableとして流せばいいのか?と考えてた。 http://reactivex.io/RxJava/javadoc/io/reactivex/Completable.html#andThen(io.reactivex.ObservableSource) andThenというオペレータ…

Pythonでバイナリを保存する時

最初は f = open('hogedata','w') for packet in packets: f.write(packet) f.close() こう書いてた。Macだと上手くいくのだけど、Windowsで試して貰った時にダメだった。ダメだったというのは、Macで作った時と何故か違うファイルが出来ているっぽかった。…

別プロセスで動いている生き死にするServiceで非同期処理をする事を考える

AndroidのServiceのお話。以下のようなServiceがある。 Serviceを別プロセスで動かしている destroyが呼ばれた時は、Process.killProcess(Process.myPid())を呼んで自分自身のプロセスをkillする。 定期的に生き死にする こういったSerivceで非同期処理をす…

RxJavaでretryWhenを使ってエラーをキャッチして別のエラーを流す

https://speakerdeck.com/yuyakaido/droidkaigi-2017?slide=86 この辺の話に近い。 Observable.create<Int> { emitter -> emitter.onNext(1) emitter.onNext(2) emitter.onError(HogeException()) emitter.onComplete() }.retryWhen { observable -> observable.f</int>…

最近の関心事

最近やっぱり大事だよなと思った事を雑にまとめる。 変化に対応する事 今作ってるアプリやプロダクトは将来的にどう変わるか、どう変えていきたいか。について正確に予想しながら作り上げていく事は難しい。 もちろん何も考えずに作っていくわけではなくて、…

RxJavaのdoAfterNextを使う

RxJavaで一つ前の川で受信用のobservableをflatmapとかで設定して、その直後で送信処理するみたいな事書きたいけど出来るのかな。。?逆にすると送信処理した直後にデータ送られて来たら、それを取りこぼしちゃうみたいな。。。— ぼいらー (@mapyo) 2017年5…

株式会社スマートドライブに入社して4ヶ月くらいがたった

気がついたら3ヶ月が過ぎて試用期間が終わって、4ヶ月過ぎようとしているのでもろもろ書いてみる 何やってる会社なの? ざっくり言うと車に専用のハードウェアを取り付けて走行データを収集して、スマホ経由でサーバに送ってサーバで解析して、見やすい形…

Realmで暗号化して、中身を確認するまで。

暗号化 Realmで暗号化するには、公式のサンプル通り、以下のような感じでやればよい realm.io このサンプルの通りだと、毎回ランダムな文字が割り振られてしまうので、一旦文字列をキーにして、byte列に変換して入れる事にする。 実際に使う時はコードに直接…

KotlinでGsonでパースした時の挙動の調査

Kotlin書いてて、基本的にはvalで宣言してかつ書けるのであればnon-nullな形で書いていくのが良い書き方だなぁと考えている。 data classでGsonを使ってパースした時に、non-nullな形で書きたい。 しかし、Jsonはnullとか、そもそもキーが欠落していたりとか…

アプリでどこまで難読化されてるか確認する

自分が作ったアプリを難読化した時に、どんな感じで難読化されるのか?というのを確認しないとちゃんと難読化出来てるのかわからないのでやってみる。 ぽちぽちコマンドもろもろ打って確認して。。というのをやるのめんどそうだなぁと思ったら、 コマンド一…