この記事は KobeUniv Advent Calendar 19日目の記事も兼ねています
高専カンファレンス100 in 東京,100カンファに行ってきました.そこで(毒にも薬にもならない)Androidの発表をしてきました.
www.slideshare.net
どんな内容だったの
いろいろとAndroid開発を楽にできたらいいなと,そういうことで設定いじったりライブラリ使ってみたりとそんな内容です.
補足
「ButterKnife使うんならDataBinding使えば良いんじゃね?」的なことをカレーメシ先輩( @c_bata_, id:nwpct1 )に聞かれたので,一応DataBindingについても解説します.
DataBinding?
Google I/O 2015で「つけるよ!」って言われた機能.XMLとjavaコードを静的ないしは動的に結合してくれます.
雑な使い方例
とりあえずは,app/build.gradleに次の記述を追加しましょう.
こんな感じに普通のPOJOなクラスをBaseObservableのサブクラスにして,getterに @Binding
アノテーションをつけます.そんでsetterには notifyPropertyChanged(BR.hoge)
で,変更を伝えるようにしてみます.
activity_main.xmlは,まず, <layout>
タグで囲んでから, <data>
で宣言を行います.この時の name
属性をMainActivity.javaで使います.その後に表示するLayoutを書きますが, android:text=@{user.firstName}
の様に代入したい値を書き入れます.この時,prefixとかのmは消して先頭は小文字にします.ちなみに使えるのは参照元のクラスがpublicなメンバかgetterが存在する時です. app:onClickListener="@{activity.buttonClickListener}"
の様に,Activity等に書いたリスナも代入出来たりします.便利.
MainActivityでは onCreate
内で ActivityMainBinding
のインスタンスを立てます.クラス名はXMLのファイル名のキャメルケースになってますね.XMLが正しければ name
に書いた要素に対して binding.setUser()
などのメソッドができているので,ここに代入します.MainActivityを書いた時点でこのままコードを走らせると mUser
に格納した変数が setText()
もしてないのに表示されてますね.ついでに app:onClickListener="@{activity.buttonClickListener}"
で設定したメソッドで OnClickListener
のインスタンスを返すようにすると,ちゃんとリスナが実行されます.ここでは mUser.setLastName()
で名前を変更しているだけですが,ちゃんと notifyPropertyChanged(BR.hoge)
してあるので,変更がViewに反映されます.
細かいことは
[Android] – Data Bindingつかってみたtech.recruit-mp.co.jp
こちらの記事に非常によくまとまっているので,こちらを参照するといいかと思います.
感想
初めて高専カンファで発表しましたが,とても良かったなと思ったりしてます.最初は「誰も来ないんだろうなーこわいなー」とか思ってたらちゃんと10人以上来てくれたり,ポジティブな反応してくれていた人も居たので,ありがたい限りです.ただもっとぶっ飛んだ内容にしても良かったかな…なんて.
カンファ自体もとても楽しかったです.基調講演に始まり,アイスブレイク,夢これ,懇親会,複数トラック(B102にしか居なかった),一般発表,LTと,充実のプログラムだったと思います.運営,発表者の方々には頭が上がりません.ありがとうございました.(発表上手い人ばっかで正直泣きそうになりました.)ちなみに夢これボードなる,夢を貼り付けまくるホワイトボードがあったのですが,5分くらい考えて「夢を探す」などと書きました.
あと,初日の夜にでなり( @denari01, id:denari01 )カレーメシ先輩( @c_bata_, id:nwpct1 ),ルータ芸人( @puhitaku, id:puhitaku )らと調布で飲んでました.いろいろあって行く店が大体潰れていて「調布って競争激しいんだな」とか言いながらどうやら電通大生の間では「DJ」などと言われているさかなや道場で「調布ビール最高」などと言ってました.くっそ楽しかったです.
補足書いてて感想書くこと忘れてしまった(☝ ՞ਊ ՞)☝
おわりに
実行委員の方々,本当にお疲れ様でした,ありがとうございました.発表者,参加者の方々もお疲れ様でした.今度は近畿圏でlolカンファがあるみたいなので,そこでもっと変な発表が出来そうならしてみたいと思います.
おまけ
クソアプリ Advent Calendar でつくったすらこん!をアップデートしたので,今回使って見ました.どうやら動きはなかなか良いみたいなので満足です.ついでに らりょすくん ( @raryosu, id:raryosu )にも貸しt…もとい,押し付けてみたところ,ちゃんと動いてました.どうやら大丈夫そうですね.