株式会社デジタルクエスト エンジニア Advent Calendar 2018 7日目担当のTakeuchiです。
みなさんAndroidアプリ開発楽しいですか?醍醐味って何だと思いますか?
今回はこれからAndroid開発を行う人のためにまず最初にやっておいた方がいいことを書いてみます。
##はじめに
iOSとAndroidともに開発したことがある人なら分かってもらえると思いますが、iOSの方が標準UIパーツがそもそも高機能ですよね。
対してAndroidはかゆいところに手がとどかないUIパーツが多い。
ことあるごとにカスタマイズしないと実装できないのがAndroidだとアプリエンジニアには思れていることが多いです。
その一番の理由は、はいコレ↓
##iOSっぽいデザインの実装
Androidの開発をしているとiOSっぽいデザイン指示がくることが本当に多い。
iOSとAndroidは別物!!
それぞれにあった最適なUIがあるんだから当然違うものが用意されるべきですが、実際はiOSだけデザインしてAndroidもこれと同じUIで!ってパターンも多くないかと思います。
そうなると、iOSだと簡単なのにAndroidはなんでこんなに大変なんだ・・・なんて思いをするのは日常自販機!
これを面倒だと思う人はAndroid開発はやめた方がいいと思います。。
何使って実装しよう?と思考錯誤するのは実はAndroid開発の醍醐味の一つなんです。
##醍醐味を楽しむために
まずAndroid開発のスペシャリストをみていてよく思うこと。それは知識量。
開発が早い人。コードが綺麗な人は得てして知識がおおいです。
例えば、一番カンタンな例で「連絡帳」つくるとして・・。
iOSだとTableViewでいいですね。
iOSのTableViewって優秀ですよね。
なによりセクションヘッダの機能がデフォルトで付いている。Cellのキャッシュも簡単。
対してAndroidだとなんでしょう?
ListViewとかRecyclerViewという人が多いんじゃないでしょうか?
ただ、ListViewだと連絡帳には付き物のセクションヘッダがないですね。。
###じゃあどうする?
この課程が一番開発をしていて楽しいですよね。何を使って実装するか。
ここで設計したとおりに綺麗に実装できると本当に気持ちいいです。
連絡帳の例ですが、駆け出しアプリエンジニアだったとき私はListViewでつくっちゃいました。
で、その後ほかのエンジニアのソースをみたらその人はExpandableListViewを使っていました。
これ昔からあるんですが、意外と知名度低いですよね・・。(人気ない??笑)
ExpandableListViewは一言でいうと折りたたみ式ListViewなんですが、折りたためなくするとセクションのように使うことができたり、グループ毎にセルのパターンも複数用意してキャッシュできるのでセルのレイアウトパターンが増えたときにも対応しやすい、また、iOSのtableviewと使い方が似ているのでiOS開発がメインの人でもわかりやすくていいですね。
勿論答えは賛否両論あるでしょうし、実際作るものによってはExpandableListViewじゃないほうがいいこともあると思います。
###とはいえ!
ExpandableListViewを知っているか?頭に浮かぶかどうか!
がAndroid開発においてはもっとも重要だと思います。
結局力技を駆使すればなんだって実装できちゃうのが良くも悪くもAndroidなんですよね・・。
ただ、だからこそ、知識によってコードが美しくなるんだと思います。
今でこそ、知識量は増えてきましたが選択肢が少なかった時は後日「あ!これつかってりゃ同じことできたじゃん!」ってなることが本当に多かったです。
##おわりに
「ないんだったら自分で作ればいいのよ!」
こんな事言ってるアニメがありました。そう、作るのが楽しいんです!
でもAndroid開発においては「本当にないのか?」にかける時間が本当に大事だと思います。
そしてそれは開発がはじまってから探すのでは遅いことが多いです。
なのでこれからAndroid開発をはじめるひとにおすすめしたいことはまず
#Googleが提供している標準UIにどんなものがあるか?
これを把握しておくことだと思います。
実際に使ってみるのが一番理想ですが、そこまでしなくても、こんなものもあるんだってレベルでいいので一通り目を通すことがAndroid開発を今後おこなっていく上で重要な事になると思います。
みなさま、よきAndroidライフを。