それがいいことの序章です

楽しいことならいっぱい夢見ることならめいっぱい

使わないパラメータでWarningを出さない for Kotlin

Androidの話。
MVVMアーキテクチャで開発をしていると、ViewModelにクリックメソッドを実装する事が多い。
その際、

fun onClickHoge(view: View) {
  someThing()
}

のように定義するんだけど、このviewというパラメータはそこまで使わない。

使わないパラメータで警告を出さないようにしようと

fun onClickHoge(@SuppressWarnings("unused") view: View) {
  someThing()
}

としてたんだけど、これでは警告が抑えられていなかった。

調べてみると、これはJavaの書き方のようで、Kotlinだと@Suppressを使うらしい。
そこで、

fun onClickHoge(@Suppress("unused") view: View) {
  someThing()
}

としたんだけど、これでも警告が抑えられていなかった。

調べてみると、unusedじゃなくてUNUSED_PARAMETERを使うらしい。 そこで、

fun onClickHoge(@Suppress("UNUSED_PARAMETER") view: View) {
  someThing()
}

とすると、警告が抑えられた!🙌

conclusion

困ったらalt + Enterだ 🙏 f:id:rmakiyama:20180126140801p:plain

DroidKaigi conference-app-2018にコントリビュートした

このブログをはじめるきっかけにもなったDroidKaigi 2017。
一番最初のブログで、こんなことを言ってた。

来年もまたあったら絶対にコントリビュートする!と心の中で誓う私。

DroidKaigi 2017 is awesoooome!!! - イニシャルがリムーブ

コントリビュートした💪

有言実行。簡単なissueを拾ってコントリビュートさせて頂いた。

github.com
このissueをこう。
github.com
やったぜ!

すごい :+1: の飛び交う雰囲気でとてもあたたかくて
PR出すまで緊張してたけどとっても嬉しかった!

もういっちょ

あとは見ていてコードでの知見もだがUI的にも参考になる。
ぜひとも見て触って欲しいと思う。集合知である。

触ってたら


なんて事もあって1行入れ替えのPRを出したら
爆速でマージしていただいてさらに良い経験になった!

github.com

英語が本当にひどいので頑張ろうと思った。
けど、こんな英語でも怒られることはない!(?)

やってみて所感

今回のコントリビュートで、OSSに関わるって
楽しいし夢があるし学びしかないと身を持って感じれたのが
1番の収穫だったと思う!機会があれば狙っていきたい!

今がチャンス

easyタグのissueが増えた今がチャンス!
ぜひこの体験をあなたも!あなたも!

github.com


P.S.
2週間に1記事が聞いて呆れるけど、気にせず続けていきます🙌

RxKotlin2.2.0での注意点

ギリギリ前回から2週間以内。あまり重く考えず、会社の休憩中に書いていきます。

RxKotlin

軽く紹介すると、RxJavaはRxのJava実装ですが、RxKotlinはRxのKotlin実装ではなく RxJavaに便利な拡張関数を追加できる軽量ライブラリです。

約一ヶ月半前のことです。バージョン2.1.0のリリースノートを見て、「最高かよ…」と思い 用法用量を社内コンフルにまとめて、さっそく実務投入しました。

そして12月に差し掛かったある日。

f:id:rmakiyama:20171218142733p:plain

困ったというかビックリしました、、

2.2.0での注意点

バージョン2.2.0のリリースノートに書かれたことが全てです。

(個人的に)大きく変わったところは、singlemaybeto~メソッドが削除されたところです。

// hoge()の処理からSingleを生成
Single.just("hoge")

// RxKotlin 2.1.0
"hoge".toSingle()

簡易的にSingleMaybeを生成する場合に重宝するかなと思っていた部分だったのですが どうやら他のライブラリなどと競合する部分もありなくなったようです。

あまりいないかもしれませんが、使っている方は注意。

私の2.1.0での勘違い

指摘されるまで気づかず使っていたのですが、toSingle()メソッドの定義は以下のようになっていました。(2.1.0では)

// ver.2.1.0 -> https://github.com/ReactiveX/RxKotlin/blob/2.1.0/src/main/kotlin/io/reactivex/rxkotlin/single.kt
fun <T : Any> T.toSingle(): Single<T> = Single.just(this)
fun <T : Any> Future<T>.toSingle(): Single<T> = Single.fromFuture(this)
fun <T : Any> Callable<T>.toSingle(): Single<T> = Single.fromCallable(this)
fun <T : Any> (() -> T).toSingle(): Single<T> = Single.fromCallable(this)

あるメソッドをストリームに載せたい場合に安易に

hoge.toSingle()

としていたのですが、これではSingle#justメソッドが呼ばれるためストリームに乗らないのでした。 勝手にSingle#fromCallableが使われていると思っていました。とんだ間違いでした。。

※ 現在(ver 2.2.0)はtoSingleメソッドは一掃されて存在しません。

まとめ

  • ライブラリアップデートでBreakingな変更はウォッチしよう!
  • ライブラリは内部実装もある程度読んで、動きを把握した上で使おう!

アウトプットが怖くなくなりたい

DroidKaigiで気分がよくなってブログを始めてみたのが遠い記憶です。
いいきっかけだと思い始めたものの、なかなか続かないものだなと身をもって知りました。

なぜ続かないのか

アウトプットは積極的にしたい!と思うものの、なかなか腰が重いのです。
なんで続かないんだろう、答えは簡単です。

  • 書くネタがない

これを言ってしまうとおしまいなんですよね。思考停止しています私。
もう少しない頭を使ってみます。

書くネタがないとは、

もはや、そもそも書くネタとはなんでしょうか。
簡単に思ったことを列挙してみます。

  • みんなにとって有用な情報
  • 誤りのない正確な情報
  • 他の人が書いていない情報
  • 旬な情報

なるほど、偏った考えだということがわかります。

本当に続かない理由

ほげほげ言い訳を放ったものの、本当に続かない理由はひとつでした。

  • アウトプットが怖い

「自分が書いても誰の特にもならないのでは、、」
「間違った情報かもしれない、、」
「これは色んな人が書いてるし自分なんかが、、」
「今更こんなこと書いてもしかたなくないか、、」

無駄に何かに怯えている自分がいました。でも怖いですよね。
誰に攻撃されるわけでもないのに守りに入っています。怖くなくなりたい。

怖くても書く意味

先日、「ブログを書く技術」を発表したという記事を読みました。

そんなことを言う暇があったら書く

分かってても難しい。それでもせっかくこういった記事を読んでいいなと思ったので
それだけでいいんです、書いていこうと思います。意味は後追いしてくれればいいんです。

続けた末に…

こんなの考える前に書けって話なんですが、続いたとして、振り返ってみて
達成できてたらやったぜ!ってネタにもなるので書いておきます。

  • 自分の外部記憶装置としての役割を果たす
  • 伝える/伝わる文章が書けるようになる
  • 理解が深まっている(言語化できる)

というわけで

絶対に!最低でも!2週間に1回は!ブログを!書くぞ!!

続きを読む

DroidKaigi 2017 is awesoooome!!!


よかった💪

DroidKaigi 2017、本当に、よかった。
2017/3/9,3/10の2日間、本当によかった!!!

2015年から開催されてるDroidKaigi。その時はまだ九州にいて学生で
Android端末を持っててAndroidが好きでJavaを軽く勉強していて
これはいいないつか行きたいなと思ってた、思ってただけ。

そして、4月から社会人になり、関東に出てき、そして!
早期割引でそっっこう購入して!行ってきて!

想像を超えてよかったです。ほんと。やってくぞ!!って気持ちが
ばんばん湧いてきて。周りのやってくぞって気持ちもばんばん感じて。

やってくぞの相乗効果でやってくぞ!!!

セッション

どのセッションもよくって、時間帯のかぶるものは心を鬼にして
ひとつのセッションを選択しなきゃいけない(幸せ)。

今回は

  • マッチョActivityを改善した話
  • minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
  • エラーと戦うためのデバッグ
  • DataBindingで開発を気持ちよくしよう
  • AndroidResourcesRefactoring
  • Androidアプリ開発の体力づくり💪
  • Viewを動的に変化させるアプローチ
  • What'sNewinRxJava2.0
  • AndroidORMの選び方
  • 未熟なチーム開発
  • Kotlin+RxJava+Dagger2+Orma+Retrofitで作るAndroidアプリ
  • Android音声認識を使いこなす
  • コマンドなしでぼくはAndroid開発できない話
  • ErrorHandlinginRxJava
  • LayoutManagerをつくろう

を見に聞きに行かせていただきゃした👀(抜けがなければ)

全セッションに知見が詰まってて、あれもこれも圧倒的に参考にしよう。

あとほか

アプリ

公式アプリをOSSで作ってたんだけど、これも知見の塊。
プルリク覗くだけでもすごい…つよい…ってなっててすごい(?)

全部を追えなかったから時間を作って追いたい!

OSSでプロジェクト公開してみんなえ作ってって、
このなんというかコミュニティのあたたかさというか
本当にこういうとこでもAndroid好きだ。

来年もまたあったら絶対にコントリビュートする!と心の中で誓う私。

スタッフさま

本当にお疲れ様でした、本当にありがとうございました。

あの人数をうまくさばくのは至難の業だったと思います。
何不自由なく快適に楽しめたのも影でのご活躍ありきだったろうと
思いながらみっちりDroidKaigiを楽しみました!!

アフターパーティ

🍣🍣最🍣🍣&🍣🍣高🍣🍣

ひとりで突撃したのでびびってたけど
セッションの話や他の会社でのAndroidの話を色々聞けて
行ってよかった。頑張るぞいが高まりました(^q^)

よかったツイット

本当にこれ。助けてくれ〜という気持ち。笑

本当にこれ。そしていつか登壇したいぞ!

本当に。つかれる!良い疲れ!w

他にもたくさんあったけど、うん、ハッシュタグ見返そう!👀

まとめ

Android好き。