新しいプログラミング言語の学習に際し

久しぶりに新しいプログラミング言語の勉強をして思ったことまとめ。

はじめに

最近Androidアプリを作成しようと思い立ちましてKotlinの勉強を始めました。
Javaは(20年以上前に…)すでに学習しているのでKotlin自体はそれほど詰まることはないのですが、OS依存の知識の学習がけっこう大変でして。
で、久しぶりに学習に難儀したので、じゃあ自分が苦労したところをメモしておけばプログラミング初学者に教えるときに役立つのではないかと思いまして、取りとめなく書き留めておくことにしました。

苦労した点

用語を覚えるのが大変

まず最初に思ったのが、Windowsとの用語の違いがかなりあるなぁ、ということでした。Activity, Fragment, View, IntentあたりがWindowsアプリと全く違う用語かつAndroidアプリの基礎になる部分のようで、他にもアクションバーとかツールバーとか(ひっくるめてアプリバーとか)、インフレートとか、Floating Action Buttonとか。
Windowsアプリにも同じような役割の用語があればその対応関係だけ覚えておけばよいのですが、対応関係のない用語は別途覚えなければいけないのが大変です。

また「アプリの右下あたりにある、スクロールしても動かない丸いボタンってどういう名前?」みたいな逆引きができないとそもそもググる事もできないので、そういう逆引き辞典も脳内に構築しないといけないです。

ライブラリを調べるのが大変

言語が違えば当然ライブラリも違います。なので新しい言語を覚えるたびに、どんな機能がどんなライブラリ名で提供されているのかを最初から調べないといけません。
こればっかりは多分どうしようもないので諦めるしかないのですが、それでもどこかの天才がなんとかしてくれることを期待して止まないところです(他力本願)。

バージョンによる差分

この関数はこのバージョンから非推奨になったとか、この関数はこのバージョン以降でないと使えないとか、そういうのにやたら出くわすように感じます。もちろんWindowsでも同じようなことはあるのですが、Androidではその頻度が極端に高い気がします(iOS, Linuxは開発経験がないのでわかりません)。

ググって見つけた情報をコピペしてみたらIDEから「それエラーだよ」とか言われて、IDEから修正案の提案もないので再度ググっても同じ情報ばかりしかヒットしなくて…なんてことがしょっちゅうありまして。
ウェブの情報だけでは学習が困難だと感じたので、仕方なく本屋に行って最新の入門書を買ってきました。本はこういう点で優れていますよね。少なくともその本の中では使用するバージョンが統一されているので、ちゃんと動く環境を一度構築してしまえばそれ以後は快適に学習が進められます。

良い点

良い点とは「先人が苦労した点を改善した部分」なので、良い点も併せて挙げておきます。

エミュレータの存在

公式IDEであるAndroid StudioにはAndroid端末のエミュレータが搭載されています。クロスプラットフォーム開発においてこれはかなり助かります。開発中のアプリを実機にインストールして動作確認すると、デバッガーが使えないとか、ログが貧弱とか、どうしても開発効率が落ちてしまうので、事前にエミュレータでデバッグできることの恩恵はかなり大きいです。

しかもこれまでに販売されたスマホやタブレットなどのプロファイルが提供されているので、おそらく特定の環境でのみ発生する不具合の調査がはかどるのではないかと。

エラーメッセージ

コンパイラに限らないのですが、何らかの問題が発生したときに「こんなエラーが発生しました」とだけ表示するアプリのなんと多いことか。いや問題が起きているのはのは見ればわかるよ。じゃあどうすりゃいいのよ。どうすりゃ直るのよ、と。

Android Studioはこのあたりが結構よくできていて、エラーが発生した原因の詳細を表示してくれたり、修正案を提示してくれたりしてくれるので、ググらなくても修正できてしまうことが結構あります。

Java to Kotlinの自動変換

Androidアプリ開発ではJavaとKotlinが主で、ググったときにソースがJavaだったりKotlinだったりします。で、Android StudioではKotlinを使う設定でJavaコードがペーストされると自動でKotlinに変換してくれます。素晴らしい。

この記事が気に入ったらサポートをしてみませんか?