見出し画像

盆栽愛好者向けスマートウォッチを探す旅12 ダンジョンの中から未来を描く

はじめに

前回記事

では、現在取り組んでいるAndroid Basicsのカリキュラムの学習状況をご報告し、その中での学習課題で作成しているアプリ「盆栽30日」をご紹介しました。

それから。。。

アンドロイド開発という山登りの途中で、何度も遭難しそうになりました。
自分が思ったペースで学習が進まず、くじけそうになっています。
現在位置をしっかりと確認しながら、一歩ずつ進んでいきたいと思っています。

で、今どの位置にいるかというと

「デベロッパー向けAndroid」サイト
https://developer.android.com/

「Compose を用いた Android アプリ開発の基礎」(https://developer.android.com/courses/android-basics-compose/course?hl=ja)コースを履修中です。

コースの中では学習成果をSNSで「#Android Basics」を付けて積極的に発信することが求められています。
全7コース中の4コース目。山登りでいうと5合目を少し過ぎたところです。

「ユニット4:ナビゲーションとアプリ アーキテクチャ」の中の「パスウェイ2:Jetpack Compose でのナビゲーション」で「③Cupcake アプリをテストする」のコードラボ(ハンズオン講習)に挑戦中です。

今まで集めたバッジ

バッジを集めるために、単元の内容をしっかり勉強し、バッジテストでの合格を目指しています。

学びの成果

従来は、Androidのアプリを作るためには、Javaを用いて作っていました。画面まわりのインターフェイスはXMLを使って定義し、Javaからアクセスできるように、縫い合わせる作業が必要でした。

今学習している、Androidアプリの作成方法は最新の作成方法で、Kotlinという言語を使い、さらにComposeというライブラリを用いて作成しています。

最終目標であるPixel Watchのアプリを組む上で、KotlinとComposeの理解は必須であると思われました。

Kotlinは最初全くなじめず、できれば避けて通れないかと考えていました。
書式が今までのJavaとは違うし、学習コストが高く、成果は低いものだと思っていました。

ただ現在の履修コースではKotlinのトレーニングとAndroidの開発がミックスされていて、Composeを利用するためにはKotlinの知識は必須でした。

別言語を覚えるつもりで取り組んでみるとなかなか面白く感じました。
安全面での配慮があり、ついやりがちな「ぬるぽ」(null pointer assignment)対策がなされているあたり、さすがだなぁと感心したり、null値許容変数として「?.」で宣言された変数に対して、null値だった場合のデフォルト値を指定するエルビス演算子「?:」というものもあります。

エルビス演算子(リーゼント!)

また、以前として肚落ちしていない高階関数やラムダ式。

// 関数定義
fun trick() {
    println("No treats!")
}
// ラムダ式
val trick = {
    println("No treats!")
}

Composeの中で多用されており、この書式のおかげで、非常に簡潔にプログラムが書けることも少しずつ分かってきました。

私の頭の中では、classというオブジェクトがタコやイカのようなもののようにイメージしています。頭の部分がプロパティやサービス関数の部分で、長い手足が別のclassに張り付いて、コールバック関数として機能するようなイメージです。

これが正しい認識かどうかはもっと学習しないと見えてこないのですが、プログラムが簡潔に書ける反面、ずいぶん慣れないとわかりにくい考えだなと思っています。

どんな状況かお話しします

学びがいのある骨のある教材に出会い、満足していました。

新しい単元に入ると、まず簡単にその課の学習項目を抜き出します。
私の場合はevernoteに書き出しておきます。

学習ノートの一例

そして、学習の中で新しく知ったこと、気付いたこと、疑問点、クリップしておきたい資料をどんどんevernoteに貼り込んできます。

ハンズオンの学習はPCがないとできませんが、授業動画の視聴やテキストの読み込みは、すきま時間できるため、できるときに先に進んだり、または復習で前の単元を見たりしています。

が、現在、せっかくの良教材を前に、挫折しそうになっています。

動画を見ても、理解できない。内容が頭に入らない。
テキストを読みながら、ハンズオン講座を進めてみても、今一つ理解が進まない。

こんな状況が続いています。

原因を考えてみると

原因の一つは、英語の壁です。
講座は、動画とテキストで進められます。
動画は、これから行う作業の概要を説明したり、最後のふり返りをしています。
視聴は省略可能となっているため、別に見なくても先に進めるのですが、少しでも理解が深まればと思い、視聴しています。
英語での授業はほぼ聞き取れないのですが、YouTubeの動画なので、自動翻訳を使って補っています。
なのですが、少し難しい内容になると頭に入ってきません。

テキストは基本ハンズオンのマニュアルとなっており、スタートの教材をダウンロードし、開発環境Android Studioでコンパイルしながら、一歩ずつ開発を進めています。
最初のうちは、次の一手が分かりやすく、テキストの内容をコピーし、貼り付け、内容を理解する。このサイクルを繰り返しながら、授業を進めていました。

途中から、だんだんと、次の一手が分かりにくくなってきました。これはテキストの作りの問題かもしれません。
テキストの指示通りに作業が進められなくなり、挫折してしまいました。

もう一つは、Google社員の優秀さを目の当たりにし、力不足を実感しました。
Googleの優秀なエンジニアがAndroidのアプリ開発が簡単に安全に開発できるよう、工夫を凝らしたカリキュラムを提供してくださっています。最初にチャレンジするアプリは誕生日カードを作成するものでした。単にアプリの一画面を作るのではなく、誕生日カードを作るのです。とても良い例題だと思います。

その情熱がとてもよく伝わってくるのですが、いかんせん受け取る側の能力の問題で、理解が及ばない部分が数々あります。
とても優秀な人がナチュラルに平易な言葉で難しい概念についてお話しされると、その瞬間はとても分かった気持ちになるのですが、実際にはほとんど理解できていません。

ひとつ打開策を見出しました

作り手のカリキュラムでは理解が進まないので、受け手側も工夫して、理解が進むように考えました。

1.授業の開始と終了のプロジェクトを読み込みます。
2.2つのプロジェクトを並べ、ソースの違いを確認します。
3.ハンズオンの授業を受けます。
4.開始時のプロジェクトに手を加えていきます。
5.わからなくなったら、終了時のプロジェクトを参考にして修正を加えます。

この方法でもう少し進めそうです。

少し焦っている理由は

異文化のSF物語に触れ、実際にその中で自分も参加している感覚があり、刺激的で面白いです。まるでスター・トレックを見ているようです。

または、ロールプレイング・ゲームをしているような感覚にも近いかもしれません。少しずつ経験値がたまり、使える武器も魔法も増えてきています。
今の私はまるで、軽装備でダンジョンでさまよっているようです。

この物語世界の中で、ずっとさまよっていたい気持ちが半分、どんどん進化する技術の中で現時点での成果物を作り上げたいと思う気持ちが半分。悩ましい所です。

特に、私がスマートウオッチに興味を持ち始めた時から、スマートウオッチに対しての状況はあまり変わっていないように見受けられます。つまり、健康デバイス、通知デバイスとしての使い方ぐらいしか見つけられなくて「面白くないガジェット」としての位置づけが色濃いように思います。(あくまでも私見です)

そんな今だからこそ、素人がアプリを作る意義があるんじゃないか。
とも考えるのです。

初心に立ち帰り、盆栽愛好者向けスマートウオッチについて考える必要があるんではなかろうか。。。そんなふうに思っています。

これからの学習方針について

このまま、ダンジョンの中でさまっていてもいいものか?考えました。
少し先を見通した後にダンジョンで楽しく遊ぶのがいいのかなと思いました。

今の「Compose を用いた Android アプリ開発の基礎」コースは一通り学習しておいた方がよいと思うので、そこはやり遂げたいです。
問題はその先。次に何をやるかを見ておいた方がよいと思いました。

アンドロイド開発サイトから提供してもらっている教材があるようです。

Compose for Wear OS 1.1 が安定しました: 新機能をチェックしてください!
https://android-developers.googleblog.com/2022/12/compose-for-wear-os-11-stable.html

この内容から、

Wear OS 向け Compose の Codelab
https://developer.android.com/codelabs/compose-for-wear-os?hl=ja#0

Wear OS で初めてのタイルを作成する
https://developer.android.com/codelabs/wear-tiles?hl=ja#0

このあたりを進めて行きます。
ここまでくれば、自分で作ってみたいWearOS用のアプリが見えてくるかもしれません。

さいごに

学習を進めながら、モヤモヤしていた課題について少し見直しできました。
安心して、ダンジョンの中でもがくことができるようになりました。

さいごまでお読みいただき誠にありがとうございました。

#盆栽愛好者向けアプリ #AndroidStudio #WearOS #Android #AndroidDev #つくってみた・やってみた #Kotlin #自学 #AndroidBasics #ダンジョンの中から未来を描く #ダンミラ

2023.2.2追記

2時間ほど電車移動の時間があったので、とにかく先へ読み進めてみました。
内容の理解は2〜3割。でもおおよその分量はつかめたかも。WearOSに役立つかどうか。
このあたりでWearOSに舵を切っても良さそうな感じがしてきました。



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