鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Flutter GridViewをTableとして使い かつ 横スクロールしたい

Flutter GridViewをTableとして使いたい。邪道?
Tableをそのまま使うとスクロールやらレイアウトが面倒?だから。

スクロール方向がデフォルトの垂直方向だと問題ないのですが
水平方向にするとGridの配置の関係上元のWidgetの配列の並びだと
正しく表示されなくなってしまって困ってしまった。

以下、イメージです。

f:id:kechiya:20210529211148j:plain
Flutter GridView Use as Table

そこで、配列の縦横方向を入れ替えるプログラムを作ってみた。
以下のような感じで入れ替えてあげれば、おそらく大丈夫だと思う。

void main() {
  List<String> list = ["0","1","2","3","4","5","6","7"];

  int col = 4;
  int row = 2;
  List<String> copy = [...list];
  list.asMap().forEach((index,item) => copy[(index / col ).toInt() + row * (index % col)] = item);
  print (copy);
}

Flutter入門してみる

Android Studio入れてプロジェクト作成

とりあえず、レイアウトについてから学んでいます。

gaprot.jp

itome.team

ListViewと他 Widgetを同じ子に使いたい
qiita.com


medium.com

qiita.com

dev.classmethod.jp

laptrinhx.com

データ取得は非同期で書くので、どうしても非同期処理は避けられない。
qiita.com

note.com

www.flutter-study.dev

日経平均をドルコスト平均法で運用した場合の損益試算をPerlで行った

こちらのデータを使いました。
www.macrotrends.net

データは日々の日経平均株価なので毎月月初日だけに絞り込むプログラムを作った。

day2month.pl

use warnings;

my $month = 13;
while (my $line = <>) {
	if ($line =~ /^\d\d\d\d-(\d\d)-\d\d/ and $month != $1){
		$month = $1;
		print $line;
	}
}

月初日データから運用開始年を引数に渡して、試算するプログラムがこちら。

dollcost.pl

use strict;
use warnings;

my $start_year = shift;
my $contribution = 0;
my $unit = 0;
my $valuation = 0;
while (my $line = <>) {
	if ($line =~ /^(\d\d\d\d)-(\d\d)-(\d\d),(\d+\.\d+)/ and $1 >= $start_year){
		$contribution += 10000;
		$unit += 10000 / $4 ;
		my $valuation = $unit * $4;
		print "$1-$2-$3,$4,$contribution,$valuation\n";
	}
}


結果がこちらになります。

f:id:kechiya:20210408221433j:plain

2000年から、毎月1万円を2021年4月まで買い続けた場合の損益はいかになりました。
ドルコスト侮れない・・

拠出額 256万円
評価額 563万円
利益 +307万円