投稿一覧

41-45件 / 73件

読んだ本のアウトプット等始めました

本日の気付き 自分の、妻に対する見方に問題があることを自覚しました。妻は片付が苦手なので、定期的に私が妻の散らかしたものを掃除しています。「仕方のない人だ」と常日頃から思っていましたが、そういう風に妻を見ることが問題ですよね。自覚しました。妻の自発的な片付を促した上で期待し、優しく見守ろうと思います。 本日の読書 本 経営の教科書ー社長が押さえておくべき30の基礎科目ー | 新 将命 読んだ範囲 序章 会社をつぶしてはならない 内容 経営者が犯す最大の罪は会社をつぶすことである。 正しい経営が出来ていても外部要因(経済状況を含む外部環境)が悪ければ結果が出ないことがある。 利益を出すために必要なのは内部要因の質を高めることである。内部要因とは自社の強み(理念・戦略計画・人材等)と市場性(会社の規模と成長性)のことをいい、その質を高めることは「収益性を見込める事業領域の見極め」を意味する。 会社には「つぶれてしまう会社」「生き残る会社」「勝ち残る会社」の3種類が存在する。会社を「勝ち残る会社」にするためには経営の原理原則を理解する必要がある。 その他 毎日、その日の気付きや読んだ本の内容をアウトプットすることにしました。こうして日記として書いていきたいと思います。 今日は子供を連れて実家に行ってきました。自分の親に子供を会わせて親が嬉しそうだと自分も嬉しいです。たくさん可愛がってもらって本当にありがたい。

pageview 81

子育て支援センターって良いですね

今日は初めて子育て支援センターなるところに行ってきました。うちの子供と同じくらいに生まれたお子さんがいたので、一緒に遊ばせてもらいました。こういう場に行くことが子供の社会性を育むのによいのは当然として、他所の親御さんとお話できるのもとても良い。子育てをしていれば同じような問題を抱えますから、会話すると話に花が咲きます。また、自分達が知らない情報を持ってらっしゃる方もいますので、情報を共有するととても有意義です。支援センター、今後積極的に利用していこう...と思った次第です。 初対面の方と長く喋ったり他所のお子さんと沢山遊んだりしたので、今日はどっと疲れました。もう寝よう。

pageview 64

【Flutter】画面遷移の方法(go_router)

概要 パッケージ go_router を用いて画面遷移する方法を備忘録としてまとめます。ルビーdogさんの動画を参考にしています。 全体像 以下のような流れで画面遷移を作ることができます。 go_routerをインストールする 画面のクラスを定義する アプリ全体のクラスでgo_routerによる画面遷移のルールを定義する go_routerをインストールする Flutterプロジェクト直下にある pubspec.yaml を編集します。具体的には、以下の画像の赤線部分のように、dependencies に go_router を追加します。 図1. pubspec.yaml 画面のクラスを定義する 画面のクラスを定義します。main.dart と同じ階層に page1.dart, page2.dart を作成し、内容を以下のようにします。 copy_all page1.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; class Page1 extends StatelessWidget { const Page1({super.key}); // 画面2に進む処理 void push(BuildContext context) { context.push('/2'); } @override Widget build(BuildContext context) { // 画面上部のバー部分 final appBar = AppBar( backgroundColor: Colors.yellow, title: const Text('画面1'), ); // 進むボタン final pushButton = ElevatedButton( onPressed: () => push(context), style: ElevatedButton.styleFrom(backgroundColor: Colors.yellow), child: const Text('進む'), ); return Scaffold( appBar: appBar, body: Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ pushButton, ], ), ), ); } } copy_all page2.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; class Page2 extends StatelessWidget { const Page2({super.key}); // 画面1に戻る処理 void back(BuildContext context) { context.pop(); } @override Widget build(BuildContext context) { // 画面上部のバー部分 final appBar = AppBar( backgroundColor: Colors.cyan, title: const Text('画面2'), ); // 戻るボタン final backButton = ElevatedButton( onPressed: () => back(context), style: ElevatedButton.styleFrom(backgroundColor: Colors.cyan), child: const Text('戻る'), ); return Scaffold( appBar: appBar, body: Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ backButton, ], ), ), ); } } page1.dart では画面を進める処理として、context.push('$遷移先パス')が使われています。page2.dart では画面を戻す処理としてcontext.pop()が使われています。今は2画面のみの画面遷移を考えているので出てきていませんが、3画面以上の画面からなるアプリで、例えば「画面1から画面3に遷移する」といった画面遷移を考えるときにはcontext.go('$遷移先パス')が使えるとのことです。 それと、いずれのファイルでもimport 'package:go_router/go_router.dart';の一文を先頭に書き足すのを忘れないようにしましょう。 アプリ全体のクラスでgo_routerによる画面遷移のルールを定義する 先程作成した page1.dart, page2.dart と go_router のパッケージをインポートし、アプリ全体のクラス(ここではMyAppクラス)を次のように書きます。 copy_all main.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:test/page1.dart'; import 'package:test/page2.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { MyApp({super.key}); final router = GoRouter( // アプリ起動時の画面を指定するパス initialLocation: '/1', // パスと画面の組み合わせ routes: [ GoRoute( path: '/1', builder: (context, state) => Page1(), ), GoRoute( path: '/2', builder: (context, state) => Page2(), ), ]); @override Widget build(BuildContext context) { return MaterialApp.router( routeInformationProvider: router.routeInformationProvider, routeInformationParser: router.routeInformationParser, routerDelegate: router.routerDelegate, ); } } ポイントは2点です。1点目は、 copy_allfinal router = GoRouter( // アプリ起動時の画面を指定するパス initialLocation: '/1', // パスと画面の組み合わせ routes: [ GoRoute( path: '/1', builder: (context, state) => Page1(), ), GoRoute( path: '/2', builder: (context, state) => Page2(), ), ]); の部分。routes のリストの要素である GoRoute のそれぞれがパス(path)と画面(builder)の組み合わせの定義を表します。path では画面を表すパスを引数として書き、builder では(context, state) => Xxxx()の形でどのクラスによって画面を作るかを指定します(Xxxx は画面を定義するクラス)。2点目は copy_all return MaterialApp.router( routeInformationProvider: router.routeInformationProvider, routeInformationParser: router.routeInformationParser, routerDelegate: router.routerDelegate, ); の部分。go_router を使う場合、この部分は以上のような決まった書き方をするとのこと。コピペで使いまわせばいいですね。 まとめ go_router を用いた画面遷移について備忘録としてまとめました。

pageview 122

「明日は我が身」の体験

新入社員のとき、Javaの外部研修を受けました。あの研修はそれまでオブジェクト指向型言語を扱ったことがなかった自分にとって大変有意義なものとなりました。おかげでPythonをはじめとした別言語でクラスを使ったコードを書くのも大変じゃなかったです。本当、会社に感謝してます…まあそれはいいとして。 問題だったのはその研修の講師の方がとても逆贔屓する(試験の成績が悪かったりプログラミングができないと見なした人に対してかなりキツい言い方をする)方であったことです。私は試験の成績もよく(頑張ったので、ということを強調しておきます)演習問題も積極的に取り組んだ(進んで書いたコードを発表したり説明中に手を挙げて質問したりした)のであまりキツい言い方をされなかったのですが、他の人には容赦なく言葉の雨が降り注いでいました。 他の人がキツく言われているのを聞くのはいいものではありません。自分が怒られているわけではないけれど、ダメージがあります。キツく言われている人がいたのに自分は何もしなかった。今、とてもそれを後悔しています。あそこで声をあげていれば周りの人にとっても自分にとっても、研修がもっといい経験になったに違いありません。 「自分にとっても」と書きました。それには含みがあります。最終的に私も講師の方にキツく言われることになりました。それが今でもトラウマになっており、ネガティブになっているときに思い出してはイライラすることが多いです。そういう気持ちになったときは「これから何をするか」に目を向けてすぐ気持ちを切り替えるようにはしていますが…まあそれはいいや。 研修の最後には、グループでWebアプリを作成して発表する演習がありました。そこで私はプロジェクトリーダーを立候補して務めることになったのですが、いかんせん経験不足でプロジェクトは大炎上したのです。発表ではお偉いさんから「歴代の発表で最低」と言われる始末(今思えばそこまで言わなくても…と思いますが)。そんな炎上プロジェクトのリーダーに対して講師の方はついにキツく言ってきました。このときほど「明日は我が身」を体感したことはないです。 当然、指摘された内容には耳を傾けるべきです。ただ物には言い方というものがあります。言い方を間違えれば相手を必要以上に傷つけます。伝えた内容に聴く耳を持ってもらえないことすらあるかもしれません。怒鳴られた相手は萎縮し、今後コミュニケーションが取りづらくなる。悪いことしかありません。ですから、言い方には気をつけるべきなのです。 今日書いた内容は自分への戒めにもなっています。今後仕事で後輩や部下ができたとき、上の経験を反面教師にしてやっていきます。

pageview 68

秋の味覚

昼に秋刀魚を食べました。スーパーに行って目に入り、食べたくなった次第です。よく焼いたつもりだったのですが、生焼けの部分がちょっとずつあったんですよね...そしてそれに気づいたのが2口目という...。調べたら秋刀魚にもアニサキスがいるということで、明日腹痛が来たらそういうことですね。。電子レンジで加熱して赤い部分を全て無くしました。 ここ数年の秋刀魚は細くて物足りなかったのですが、今日食べたものは肉付きがよく、脂が乗っていて美味しかったです。大根おろしが秋刀魚を引き立てていて最高でした。 今年も秋に秋刀魚を食べられて満足です。それではおやすみなさい。

pageview 64