というほどでもないですが、レシートの束が厚くなっていくだけのTauriで作りたい家計簿アプリでは新たにCSSのカスタムプロパティを使ってみることにしたのです。
というか、新技といってもかなり前からあると思いますが。CSSで変数のようなものが使えるやつ。
でも変数じゃなくてカスタムプロパティなのはなんでか?とも思っていたのですけど。
説明([CSS カスタムプロパティ(変数)の使用 - CSS: カスケーディングスタイルシート | MDN])を読むと、変数とはちょっと違うかも知れないとかも思いましたが。
でも便利そうだけどこれまではLittle Mustapha's Black-holeやRestHouseで使われなかったのを試してみたらけっこう良さそうなのです。
(使われなかったのは古いブラウザでもちゃんと機能するのか?とか、そういうのもあるのですけど。)
いろんなパーツのデザインは全て違うことはあまりないですし、逆に同じアプリ内だったら似ている要素が多くなるのですけど。
同じ色を使っている場所を変えようと思った時にカスタムプロパティなら一気に変更出来たりするのです。
まあ、やみくもにプロパティを作成しまくっていたら意味がなくなってきますけど。
上手くやれば色の組み合わせとか、これまでは面倒で試せなかったことも簡単に出来るのでLittle Mustapha's Black-holeの模様替えでも色々と実験が出来るかも知れないのです。
そして、今日はデザインの実験ばかりやっていたので、まだコードの部分も完全でない家計簿アプリは何も進んでないといっても過言ではないとか。
ということで、Tauriで昭和の家計簿は手書きだろうが!アプリの続きなのですが。
デザイン部分をいじり始めたら、ここはボタンにして「表示」と「非表示」を切り替えた方が良いなあ、というのが出てきたのでちょっと修正するつもりがスゴく大変でした。
というか、最初の方に作った部分はコードの書き方のコツを忘れている感じで、ゴチャゴチャなので修正するのも大変だったり。
関数にしなくて良いところが関数になってたり、その逆とかも。
一応動くようにはなったのですが、また問題が発生したら何がどうなってるのか解らないかも知れませんけど。
だけど、書き換えたことによって最初よりはまともになったという怪現象も起きているのです。
そんな感じなので、デザインが進むはずがコードの修正になっているので、まだ昭和のエレベーターになっていないのです。
<!-- でも見た目がアプリっぽくなってくると何故かやる気が出てきたりもします。-->

チャンクス!チャンクス!チャンクス!
ということではないのですが、Tauriで家計簿アプリが上手くいかない問題の続き。
昨日書いた問題点はRustでデータベースを扱うsqlxのマニュアルを参考に一部を書き換えたら上手くいったというか。
何がどうなって上手くいったのか解ってないので、実際には上手くいってないけど、上手くいったことになっているのです。
それでとりあえず先に進めそうと思ったら、一つのデータを修正するとなぜか別のデータまで書き換えられてしまう現象。
頭が大混乱でもうやめようかと思ってしまいましたけど。
JavaScriptの方だと問題を調べる方法が色々とあるので、大変だったけど問題解決なのです。
というか、何が起きているのか調べるのに何度も登録済みのデータを修正していったら全部「チャンクス」になってしまったとかもあるのですが。
もともとは本物のレシートを使ってちゃんとしたデータが登録されていたのです。
それはどうでも良いですが、スクショに写っている「編集/修正」ボタンをクリックすると、該当データのidと編集のための機能が「決定」ボタンに割り当てられるようになっているのですけど。
「編集/修正」を押す度にそれらの機能が追加で割り当てられていて、最初に一番目を修正しようとしてボタンをクリックしたあとに、やっぱり二番目とか思って二番目のボタンをクリックすると一番目と二番目が同時に編集されてしまうということになっていたのです。
長く書いたのですが、なんのことだか解らないとも思いますけど。
とりあえず直ったので、ただのチャンクスじゃなくて、チャンクスのあとにidのナンバーが書かれた状態で保存されているというスクショでもあるのです。
チャンクスばっかりになっているのが面白いってだけでもありますが。
そんな感じで、そろそろ最終段階に進めるのか、あるいはさらなる問題が発生するのか、というところまで来たので、続けて頑張っていきたいと思います。
ということで、Tauriで作っている「いつになったら家計簿がつけられるのか?」アプリの続きですけど。
一度入力したデータを修正したりするところで問題が発生なのです。
しかも、エラーが出てないのにちゃんと動いていないという一番厄介なやつでもあるのですけど。
Rustの方のコードはネットで見つけたサンプルを写したようなものなので、どこに問題があるのか良く解らないですし。
困ったことになっております。
というか、最初に基本的な操作が全部出来るか試してから作り込んでいくべきだった、ということかも知れませんけど。
簡単に出来るはずだったのが、凄い時間がかかっているです。
タイトルは漢字だらけなのにそれほど中国語っぽくはならないですね。
というのはどうでも良いですが、Tauriで家計簿アプリを作るのだ!の続きですが。
もうここまで来たらあとは一気にやってしまえる、という感じのところに来ているのに全然進まないのです。
画像等整理アプリのMecoressの時は一日にもっと進んだし、それでもなかなか出来ないという感じでもありましたが。
今回はそれほど複雑ではないけど時間がかかります。
多分モチベーションの差というか。
Mecoressは作れそうにないと思っていたものが出来てきてちょっと盛り上がってましたし、しかも個人的にはないと困るようなものでもあったので、かなり頑張れたのです。
それに比べると、今回はデータベースを使うアプリの練習ということで始めているので、面倒になってくると先に進めないのです。
ついでに暑いし。
そんな感じですが早く溜まったレシートを処理出来るように頑張るのです。
<!-- もしも公開するということになった家計簿アプリの方が需要はありそうですけどね。(今のところ誰かに使ってもらえるレベルにはなっていませんけど。)-->

ということでTauriで家計簿チャレンジですけど。
まだ全然完成品とは違うのですが、珍しくエラーなしで新しい機能が追加出来たので記念にスクショ。
エラーはなくても直すところは沢山ありますけど。
その前にデータベースとのやり取りが大変で。
新しくデータを追加する時に自動でIDが割り当てられるのですが、そのIDをどうやって取得するのか?とか。
簡単に出来そうなところなのにつまずいていたりして。
たまたま別のことを調べる時にRustのSqlxのマニュアルを読んでいたらIDを取得するコードが出てきて、やっと前に進めたとかもありますし。
その他にも、もっとシンプルに出来るはずのところをすごく遠回りしてデータを取得してるところもあったり。
そういうのをちゃんとやろうとすると終わりそうにないので、かなり妥協バージョンで作ってます。
とりあえずバージョン0は動けばイイということですし。
<!-- ついでに書くと何故か7月にデータがあったりするのは、入力の時に間違えたからに違いないですが、まだ修正とか削除とかの機能がないので直せないのです。-->
早く家計簿をつけたい!というTauriで作っていることになっている家計簿アプリの続きですけど。
なんか脳が機能してないみたいな感じで、かなり微速前進な状態です。
今回はSqliteを使っているので、それを上手く使いこなせると、一番古いデータはどれか?とか、そういうのを簡単に探せるのですけど。
Rust経由でやろうとするとワケが解らない状態になってしまうのです。
もっと単純な仕様にしたらすぐ出来そうなのですが、ちょっとでもスゴいものを作りたくなってしまうので、ゴチャゴチャで何をやっているのか解らなくなってしまいます。
とってあるレシートの束もかなり厚くなってきましたし、なんとかしたいのです。
7弦ギター用のセットで売っている弦だと、これまで使っていたのより太めになるので、これまでの6弦用セットに7弦だけをバラで買うようにした、というのは前に書いたかどうか覚えてませんが。
0.01の違いなのにスゴい効果があって、最近私のギターが気持ち良く歌っているのです。
(というか、今調べて知りましたが、ギターの弦の袋に書いてあるあの数字ってミリメートルかと思ったらインチなんですね。)
その代わり、かどうかは知りませんが、演奏にこだわり過ぎて録音作業が全然進まないのですけど。
適当に弾いたやつもこだわったやつも、人が聴いたらあまり違わないということでもあるのですが。
演奏が楽しいので、簡単に妥協出来ないというか。
上手く出来てももう一回弾いてみたいとか、そんな感じなのです。
家計簿アプリをTauriで作るのさ!の続きですが。
必要な項目を入力するためのパーツを作って、金額の所に文字とかが入力されないような対策もして、そろそろデータベースに記録する段階になって来た、と思って試しにレシートの内容を入力しようとしたのです。
そうしたら、なんと消費税がある!
良く考えたら、これはけっこう厄介なところなのですけど。
税抜きで計算すると実際の出費と差が大きくなりすぎですし。
しかも10%と8%があるとかですし、今後税制が変わったらバージョンアップしないといけないとか。
<!-- ついでに書くとバージョンアップの時にTauriの仕様が大幅に変わっていて、簡単には出来ないということもあり得るとか。-->
税率の変化は設定ファイルで対応出来るかも知れないですけど、二種類あるのが一つになるとかも、大いにあり得ることなので、なんだか面倒なものを作り始めてしまったと思えてきました。
もしかして、このアプリのために選挙で誰に投票するかが変わってくる、というのはネタですけど。
また良い方法を考えないといけなくなってしまいました。
出来上がるまでレシートの束が増える一方のTauriで作りたい家計簿アプリの続きですが。
おそらく一番難しいポイントだったと思われるRust側のデータベースとのやり取りの部分が出来てきたっぽいので、あとは簡単と思いきや、やっぱりちゃんとしたアプリは準備(設計?)とかが必要なのですぐには出来ないです。
それとは関係なく、ブラウザで動かすような普通のJavaScriptだと出来ないようなこともTauriでは出来たりするのですが、そういうのは多分、裏でRustを呼び出して実行してるのだと思ってたり。
なので同じ事をRustで書く事もできるっぽいので、ここは勉強のためにRustで書くべきか、あるいは早く完成させるためにJavaScriptで書くのか。
迷っている時間がまたもったいないということでもあるのですが。
Rustは本を読むだけじゃなかなか書けるようにならないので、自分でコードを書いて慣れるしかなさそうですし、どうしようか。
<!-- レシートは前に変なスピーカーを作るのに短く切ったアルミパイプに突っ込んでますけど。あと二ヶ月分ぐらいは貯められそうではあります。-->
やっと上手くいったと前回書いたTauriで家計簿計画なんですが。
実は次の日にもう一度やり直したら、またデータベースのテーブルが作成出来てないとかでピンチになってたのです。
まだ基本的なことしかしてないですし、上手くいく時といかない時があるとか、謎すぎなのですけど。
色々とネットで情報を探して、もしかしてこれか?ということでSQLファイルを置いてあるフォルダの名前を変えたら上手く動きました。
(でも謎すぎるので、次にやると変になる可能性もありますけど。)
このままだと先に進めないので、とりあえず最初の段階は出来た事にして、次は慣れているはずのJavaScriptとの連携だから、ここで一気に完成形に近づくと思ってたのです。
JavaScriptはナントカ応援団のアレの修正で3月ぐらいに一度いじっているので、復習にもなっていたはずなのですけど、やってみると全然書けないとか。
しかたないので、ノートにやるべき事を色々と書き出して、どういうコードを書けばいいのかをまとめてみたら、余計なアイディアとかも出てきてしまって。
それはそれで楽しいのですが、なかなか完成しない気もしてきました。
そんなことよりも、早く溜まりすぎなレシートの束を片づけたいので、完成させるのが先なんですけど。
なんか、最近はずっとこんな感じなので、何を作るにしてもなかなか完成しないみたいです。
ということで、コードを書き始める前から苦労しているTauriバージョン2で作りたい家計簿アプリですけど。
昨日つまずいていたところはどういうことかというと、useを使って読み込む関数の読み込み方というか書き方が解らなかったということなのです。
あれって、関数というのか解らないですけど。
正解はこちら、ということで "use tauri_api::path::local_data_dir;" と書いたら上手くいったのです。
やりたいことをやるのには local_data_dir() を使えば良いというのは調べて解ったのですが、使えるようにする方法を知るのにはかなり遠回りした感じです。
そして、やっと基本部分のエラーがなくなってコンパイルが出来るようになったのですが、今度は起動時に作成されるデータベースがおかしくて、確認すると作られているはずのテーブルがなかったり。
SQLファイルが実行されてないっぽいので、もしかしてRustのコードで"?"のところを"expect"にしたらどこで失敗したのか確認出来るかも、と思って書き換えてみたのです。
そうしたら、エラーは出なくてちゃんとデータベースにテーブルも作られてるとか。
これでは、何が悪くて何が良かったのか全然解らないので、この先が不安になったりするのですけど。
とりあえず、ここまではちゃんと動いていることになっているので、次からはちゃんとJavaScriptと連携出来るのか、ということです。
なんだか、また大量のエラーが出るような気もしますけど。
<!-- エラーが出るならまだ良いですが、思ったとおりに動かないのにエラーも出ないというのが一番困るとかも。-->
ということで、パソコンを新しくしたらTauriがバージョン2になってしまったので、新しいやり方を覚えないといけないのですが公式なドキュメントだけだとちょっと難しいし、ネットで情報を探したいのですが、Tauriのことを書いてある記事は全体的に少ないので結構大変なのです。
その前に、何をやっているのか?ということですが、ちょっと修正しようと思ったMecoressの続きではなく、前に作ろうとしてそのままになっているパスワード・マネージャーでもなかったりします。
本当はパスワード・マネージャーを完成させたいところですが、データベースと暗号化(と複合)とか難しそうなことが多いので、その前にデータベースだけを使う物ということで別のを計画してたりして。
計画だけは2月からあるので、おかげで大量のレシートが貯まっているのですけど、最近はミョーに物が高くて余計な出費があるような気がしてきたので、家計簿アプリのようなものを作ろうとしているのです。
データベースとのやり取りの部分は前に途中までやっていたパスワード・マネージャーのが使える予定でしたけど、Tauriならではのエラーが出ていて、先に進まなくなっています。
どうにかしようと色々と調べたら、バージョン2になって変わったことが思ってよりも多そうですし。
もっと簡単なものから再入門したい感じもしてきました。
<!-- ついでに書くと、公式ドキュメントを見ていたらバージョン2だとデータベースも簡単に使えそうなのですけど。せっかく途中まで作ったので、しばらくは今の方法で頑張ってみるのです。-->