見出し画像

盆栽愛好者向けスマートウォッチを探す旅9 その実力を試すときが来た!

新年あけましておめでとうございます。

前回までの記事

で、新しい方針が立ち、自学を進めています。

Compose を用いた Android アプリ開発の基礎

https://developer.android.com/courses/android-basics-compose/

を少しずつ進めています。
現在は「ユニット 2: アプリ UI を作成する」の「パスウェイ1:Kotlin の基礎」に取り組んでいます。

「Kotlin の基礎」は私の苦手なオブジェクト指向プログラミングの基本が入っており、なかなか頭に入ってきません。
このあたりはC++、Javaに通じるものがあるようで、同じような考え方をしています。

操れればとても面白いと思うのですが、自らコーディングできる能力はなかなか獲得できません。

ひとつ前の単元のさいごに

8 プロジェクト: 名刺アプリを作成する コードラボ

というのがあり、こちらは今まで習ったことを使って、自力でコードを組んでみるというものでした。

適宜、有用なヒントは出してもらえます。

「8 プロジェクト: 名刺アプリを作成する コードラボ」より

私は「MyMeishi」プロジェクトを組み、進めていきましたが、なぜかエラーが取れません。

同じプロジェクト「MyMeishi2」を組んでみましたが、やはり同じ場所で引っかかってしまいます。

画像の読み込みがうまくいきません。

Unsolved reference: drawable

のエラーが発生して、解消できません。
解決までに、約2日を要しました。

同じようなソースを書いてるつもりですが、なぜかエラーになってしまう原因。それは「import」にありました。

エラーの出るソースのimport部:

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.R            <<<<ここが違う
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.mymeishi2.ui.theme.MyMeishi2Theme

動作するソースのimport部:

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.mycomposearticle.ui.theme.MyComposeArticleTheme

「import androidx.compose.foundation.layout.R」が余分についていました。ついた理由は不明です。コンパイラに助けてもらった時に、間違った選択をしてしまったようです。

これにより、リソースを表す「R」クラスが意図したものではなくなったため、「drawable」がなかったのでしょう。

「import androidx.compose.foundation.layout.R」を消すことで、エラーが解消できました。

これで、目標へ向けて組んでいくことができます。

完成見本:AndroidDevより
今の様子:完成に程遠い
ヒントを参考に寄せていく。
だいぶ近くなった感じ

R:0 G:58 B:74
なので16進だと、
R:0 G:3A B:4A
なので、Color(0xFF003A4A)

ようやく形になってきました。

各パーツがやや下がり気味になっていますが、このあたりで完成とします。

そして、一度WearOS用に作ってみることにします

今回ここまでこれたので、一度力試しでWearOS用に同様のアプリを作ってみたいと思います。

今まで、誕生日カード、名刺アプリを作ってきました。
今、間違いなく作れるのは、年賀状アプリだと思いました。

その実力を試すときが来た

今日しか作れない。年賀状アプリを作ろうと思いました。

プロジェクト作成

WearOS > Empty Compose Activity

プロジェクト:Akeome2023
Kotlinで、MaiActivity.ktをカスタマイズしていきます。
エミュレータの画面です。

完成しました。
今日の盆栽写真を背景にしてみました。

ただ、Google Pixel Watchへの転送はうまくできず、次回以降の課題となりました。

さいごに

アプリの基礎の基礎しかやっていませんが、自分でもアプリが組めるようになりました。
思えば、Udacityの基礎講座ではJavaベースのプログラミングをしていて、画面まわりはXML言語で作る必要がありました。

今、こうして最新の開発環境で、Android Composeを使ってプログラミングしています。MainActivity.ktだけを作りこむことで良くなっています。
これは進歩です。

長い時間を掛け、あれこれ彷徨ったおかげで、ありがたみがわかります。
この調子で学習を進めていきたいと思います。

#盆栽愛好者向けアプリ #AndroidStudio #WearOS #Android #AndroidDev #つくってみた・やってみた #Kotlin #自学 #AndroidBasics #note書き初め #私の年賀状

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