画竜点睛を衝く@mapyo

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

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とか、そもそもキーが欠落していたりとか…

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

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

BaseActivityは作らないようにしよう

割りとあってもいいかなぁー。という派だったけど、 konifar.hatenablog.com メンバー個々の判断に委ねるといつか瓦解します。これはメンバーのスキル不足ということではなく、締切とのトレードオフを鑑みた結果、とりあえずBaseActivityに実装して回収され…

Betaでアプリを配信する

Crashlyticsはちょこちょこ使った事あるけど、Betaは使い慣れてないのでやってみた。 昔作ったサンプルアプリに導入してみた。 コマンドラインからBetaにアップしたい Android Studioのプラグインを使えばアップ出来るのだが、apkファイルを手作業で選択して…

gitconfigで別ファイルの設定を読み込む

こんな感じで書く https://github.com/mapyo/dotfiles/blob/master/.gitconfig#L1-L2 [include] path = .gitconfig.local 自分のホームディレクトリにこのファイルを追加しとくと、自動的に読んでくれる。 違う場所に置きたい時はpathを工夫すればいけると思…

#potatotips #38 に参加してきた

potatotips.connpass.com オーディエンス枠で当選したので参加してきました。 資料とか発表の内容については他の方々がもろもろまとめてくださってるのでこの辺をみるとよさそうです。 togetter.com Androidのエンジニアが若干少なかったので今度は発表者と…

CircleCIで4G memory limit

結論として、 circleci.com ここに書いてた事をやればよさそう。 いろいろぐぐって出てきた情報をやってみたけど、うまくいかなかったり、1回はうまくいくけど、それ以降はうまくいかないみたいな感じだった。 でももしかすると、今回もたまたま何回かうま…

DroidKaigi 2017にて「minneにおけるテスト〜リリース〜リリース後にやっている事の紹介」というタイトルで発表してきました

droidkaigi.github.io DroidKaigiとは、Android関連のでっかいカンファレンスです(雑) https://droidkaigi.github.io/2017/timetable.html#session-6 「minneにおけるテスト〜リリース〜リリース後にやっている事の紹介」というタイトルで発表させて頂きま…

RxJavaとKotlinをやってる

最近というか、ちょっと前からRxJavaとKotlinを同時にやり始めてて、初心者的な観点から、いろいろ思った事をメモ。 もともとは、なんとなく情報は追ってるつもりではあったけど、コードはガリガリ書いてなかった感じで、最近ガリガリ書き始めたというレベル…

GMOペパボを退職した

本日でGMOペパボを退職となります。有給消化的なやつで最終出社は12月の末頃だった。 4年間くらい在籍させていただきました。 入社する前〜今日まで何やってたか、大きめの仕事を中心にざっくり振り返ってみる。長くなりそう。。。 入社前 製造業の社内SEと…

2017年の目標を考える

2016年の振り返りの内容はこちら mapyo.hatenablog.com 今年は以下の3つをがんばろうかと思う。 Androidがんばる プルリク駆動勉強 運動 数値目標を入れない目標はダメっぽいので、なるべく入れるようにしてみる。 1. Androidがんばる 去年に引き続き頑張っ…

2016年の振り返り

2017年も開けてしばらくたってしまったが、まずは振り返ってみる。 まずは2016年に立てた目標を見返す。 mapyo.hatenablog.com Android頑張る インプットとアウトプット 運動する 大きくはこの3つを考えていた。これに加えて、「この先5年、10年について…

9isというWebサービスのご紹介

この記事は、pepabo Advent Calendar 2016の6日目の記事です。 9isというみんなでわいわいクイズが出来るサービスを少し前に会社の仲いい人と作ったのでそのサービスの紹介をします。 9is(クイズ) - みんなでもっとおもしろくできる 作った経緯とか、どう…

4年前に作ったAndroidアプリの話

この記事はクソアプリ Advent Calendar 2016 5日目の投稿です。 もう4年くらい前の話になりますが、ASpeedLaterというアプリを作ってGoogle Play(当時はAndroid Marketだった気がする)に公開しました。 play.google.com アプリのカバー画像はどこかに行った…