Droid君との歩き方


この記事は大阪工業大学[Advent Calendar](https://adventar.org/calendars/5332)の3日目です。

#最初に読んでください\_Droid君との歩き方\_IC・IM・IN・IS

新しいものに触れる際に大変なのは**環境構築**とそれの**学び方**だと思います。
そこでこの記事では、これまでの経験から個人的に良かったなと思ったAndroidの学び方について書いていこうと思います。

#学び方

ここではAndroidでのリスト表示を学んでいく過程を説明することで、Androidの学び方を伝授しようと思います。

##調べ方を知ろう

まず初めに学ぶにあたってとても大切な調べ方について。
例えばAndroidでリスト表示の仕方がわからないとき「Android リスト表示」のように**日本語で調べる**かと思います。
しかし、それを一度**英語で調べるだけで有益な情報を見つけやすくなります**。

具体的には「how to display list in android」等で調べると良いです。

##質問サイトを積極的に見よう

調べ方の次はどのサイトを訪れるかが重要です。そこで**お勧めなのは質問サイト**です。
理由としては自分の知りたいことが回答として詳しく載っているからです。
ただ、ここで注意してほしいのはその回答の正しさについてです。
信頼できる人の発言ではないので細かいところで間違っている可能性もあります。

なので**質問サイトを見る目的**は、あくまでも多くの回答に出てきた**キーワードを取ってくる**ということだけにとどめてください。

リスト表示について「調べ方を知ろう」と「質問サイトを積極的に見よう」を参考にすると以下のサイトにたどりつけるかと思います。

[how to display list in android](https://stackoverflow.com/questions/20750118/displaying-list-of-strings-in-android/20750202)
このサイトの回答からListViewというキーワードが重要そうなのを感じれればOKです。

##公式ドキュメントを見よう

次に**正しさを得るため**に公式ドキュメントをみます。
ここで基本的に多くを学ぶようにしてください。
これまでの行為はここにたどり着くための準備だったわけです。

「Android ListView」と調べて [Android Developers](https://developer.android.com/reference/android/widget/ListView) にアクセスするとよいです。

##Codelabで手を動かそう

最後にcodelabというサイトで実践を行います。
そもそもcodelabとはチュートリアルのようなもので、手順通りに進めていけば学びたいことが少ない時間で学べるというものです。
「ListView codelab」で調べるとよいです。

ここで注意なのですが、**公式ドキュメントでは「ListView使わずにRecyclerView使うとなおいいよ」、との記載があります**。
なので「RecyclerView codelab」と調べるとなおいいです。 [^1]

[ここ](https://developer.android.com/codelabs/kotlin-android-training-recyclerview-fundamentals?index=..%2F..android-kotlin-fundamentals&hl=cat#0)にアクセスするとよいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547679/83940ab5-1a69-ec68-7376-5d8523d5a173.png)


##IDEを活用しよう
補足的な内容です。

一応先程までの流れで基礎的なことは学んでいけるかと思います。
しかし複雑なこととなると説明や実践だけではしっくりこないようなことも多々あります。
そこでよく行うのが実装の確認です。

実際にやってみました
![ezgif.com-gif-maker (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547679/efa0f9b3-8374-b80f-7d84-992554c8d7b4.gif)
ここでは実装を知りたいクラスやメソッドを選んで、ctrlを押しながらクリックしています。

#新しい技術の見つけ方

次は流行りの技術や、有用だけどあまり知られていない技術等の見つけ方の紹介です。

##流行りの技術について

これには3つの方法があります。
技術の新鮮度が高いと思われるものから順に列挙していきます。

1. 有名な人の「いいね」を監視する
2. イベントに参加する
3. 大規模なプロジェクトのコードを覗く

1つ目はそのままで、TwitterやGitHub等で界隈で有名な方をフォローすることで流行りの技術を収集することです。[^2]

2つ目はLTやセミナーに参加することです。
[connpass](https://connpass.com/)[^3]を通じてLT[^4]に参加したりAndroidMeetupsというGoogle主催のセミナーに参加するのがいいです。[^5]

3つ目はDriod KaigiやGoogle I/Oのコードを覗気に行くことです。[^6]
これは年に1度開催されるAndroidのイベントです。
両方とも次の年のAndroid開発はこうできるといいよね、といった考えのもとでアプリを設計しています。(と聞いたことがあります。)
なので基本的にそこで使われている技術を知っておけばトレンドは抑えれるというイメージです。 

#最後に

ここまでいろいろ言ってきましたが、実は**人に聞くのが一番大切**です。
あのGoogle社のあるチームでも人に聞くことを推奨しています。

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">15 min rule: when stuck, you HAVE to try on your own for 15 min; after 15 min, you HAVE to ask for help.- Brain AMA <a href="https://t.co/MS7FnjXoGH">pic.twitter.com/MS7FnjXoGH</a></p>&mdash; Rachel Thomas (@math_rachel) <a href="https://twitter.com/math_rachel/status/764931533383749632?ref_src=twsrc%5Etfw">August 14, 2016</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


私も友人から教えてもらったりインターンに参加して人に聞いたりとしてきましたが、**人に聞くことが成長への近道**だったなと感じます。なので聞ける環境にあるならフルに活用してほしいし、その環境にないならその環境を築いてください...![^7]

この記事で書いた勉強の仕方というのも友人なしでは確立できなかったと思っています[^8]。

明日以降のアドカレの方も興味深い記事ばかりだと思うのでぜひ最後まで見てみてください ^^

[^1]: 実はそもそも「ListView codelab」ではほしいものが出てこなかったりします
[^2]: 自ら探す方法、手に入れる方法というのは実は僕も確立していません。教えてほしいくらいです…!
[^3]: 技術系のイベントを探すときに重宝するサービスです
[^4]: イベントの趣旨に沿った内容の発表をしたり聞けたりします
[^5]: LTもAndroidMeetupsも気軽に参加してみてほしいです、難しいことも優しく説明していたりします。イベントによっては雑談タイムをもうけていて、その時間にご飯が用意されていたりします(過去に参加したところでは寿司がでたりピザが出たりと交通費が浮きまくりました)
[^6]: [Droid Kaigi](https://droidkaigi.jp/2020lite/)も[Google I/O](https://events.google.com/io/)もGitHubでプロジェクトが公開されているだけでなく、エンジニアによるLTのようなものも同時に行われていてとてもいい
[^7]: 僕自身も人にアウトプットできる人間を目指しているのでTwitterのDM投げていただけたら手助けできそうであれば飛んでいきます!(幣学の課題の答えについては聞かないでね笑)
[^8]: 本当にありがとう、お互いに就活と人生成功させよう