第17回 #potatotips でborder-leftの話をしてきた
#potatotips でLTしてきた
いってきました.しゃべりました. connpass.com
potatotipsといえば関西にいる頃からずっと憧れていた勉強会の1つだった. 関東での初登壇がまさかここになるとは思いもしなかったので緊張したけど,なんとかなったような気がする.
他の方たちの発表については色んなブログ等でまとめられていたのでそちらを見ていただくといいと思います:
- 第17回 #potatotips に参加してきた! | 株式会社キュリオシティソフトウェア
- mitolab - potatotip #17に参加してきました
- #potatotips 17は美人司会者のもと、WANTEDLYで開催!iOS/Android開発Tipsのまとめ!
- 2015/5/13 #potatotips (iOS/Android開発Tips共有会)第17回 - Togetterまとめ
余談ですが,僕はいまこの「美人司会者」がいるオフィスでアルバイトしています.余談です.
border-left: 1dp solid #666666;
TL;DR
- Androidで
border-left
とかつけるの大変だよね - 全周のborderひいて,ネガティブオフセットつければ不要な辺を排除できるよね
- 毎回似たようなコード書くのも面倒だからライブラリにしたよ
Androidでborder-left
つらい問題
例えばこういうデザインにしたいとき:
CSSだとborder-right
とborder-bottom
を設定するだけでOK.
border-right: 1px solid #99ffffff; border-bottom: 1px solid #99ffffff;
でもAndroidだと超めんどくさいよねって話. 一応やりかたは色々あって,例えば背景画像としてしまう,幅1dpのViewを配置するなど. でもどれもとてもつらみを感じる.
本発表では全周のborderをひいて,それに負のオフセットをつけることで不要な辺を見せないという手法を紹介した. このやり方自体は1年半ぐらい前にQiitaに投稿してあった.当時はあまり伸びなかったけど,月1〜2程度のペースでストック数が増えていたので需要自体は感じていた. 今回の発表で新しい点としては,このネガティブオフセットを用いた手法を簡単に利用できるライブラリ的なのをつくったことである.
こいつを使ってやると,たとえばさっきの画像のViewだと次のように書ける:
<com.example.android.AwesomeView android:layout_width="wrap_content" android:layout_height="wrap_content" app:border_right_width="1dp" app:border_bottom_width="1dp" app:border_color="#99ffffff" />
結構直感的になったと思う(僕がCSS得意ってのもあるかもだけど).
Qiita記事のやり方だとViewの数だけdrawable/*.xml
が増殖するのですごく鬱陶しいうえにxml自体の見づらさもある.その点が解消できているのは個人的にも満足している.
現状だと独自Viewにしか適用できないのが欠点ではあるけど,コンストラクタのsuper
のあとに1行追記するだけであとはよしなにやってくれるので楽だと思う.
あとがき
Wantedly
冒頭にも書きましたが,ぼくはいまWantedlyでアルバイトしています.すごいいいタイミングだったんだなあ. ちなみにAndroidエンジニアじゃなくWebエンジニアとして働いています. 当日はずっとJavaScript書いてました.
Wantedlyでは一緒に働ける人を募集しているそうです.興味がある方は遊びに行ってみるといいと思います. www.wantedly.com
ちなみにぼくも遊びに行ったらアルバイトできることになった人です:D
Android
Android、だいたい辛いとか闇とか言ってる感じ #potatotips
— こむ (@petitviolet) May 13, 2015
Android がいかにシブくてエグくて闇かは5分では語り尽くせない感じあるけど先人たちの知恵が超絶詰まった GitHub のライブラリ使えばモダンでナウいオシャンティーコードだって書けるんだもの #potatotips
— KeithYokoma (@KeithYokoma) May 13, 2015
Android開発,楽しいです.