伊賀焼陶器まつりと道の駅あやま

2024年9月21日

三重県伊賀市の伊賀焼。

その伊賀焼のまつりが開催されるということで伊賀焼陶器まつりに行ってみました。

どんな陶器なのか楽しみに車を走らせること約2時間。

中勢バイパスができて伊賀市にも行きやすくなりましたね。

会場は運動場の一角にある屋根付きの大広場。

阿山第一運動公園 すぱーく阿山

駐車場はグラウンドを丸々使っているので広かったです。(200台駐車可能)

早速、なかに入ってみると

31の窯元・作家がズラリ。

熱気を感じます。

マグカップ、ぐい呑み、お皿、箸置き、土鍋などの定番からトレンドの陶板まで多種多様。

価格設定も1500円~3000円のものが多くお手頃感がありました。

伊賀焼の予備知識がなかったのですが、

ゴツッとした質感のこれぞ陶器といったものや色合い深い、味のある一品。

はたまたサラッとしたモダンなものまで幅の広さを感じるラインナップでした。

その中でお気に入りの窯元を見つけるのも楽しかったりしますね!

日々窯のブース。

お香立てに良さげだったので

亀の焼き物を購入。

税込み、3000円。

会場の外にはフードトラックが多数出店していました。

かき氷、税込み300円。

手作りシロップが絶品でした。

伊賀焼振興協同組合のサイトで「伊賀焼の魅力」を事前に見ておけばもっと楽しめたかも・・・。

陶器まつりを一通り見終わったので会場の向かいにある道の駅あやまに立ち寄りました。

道の駅からみた陶器まつりの会場。

道の駅に隣接する売店が充実していました。

売店の1つ、阿山農産。

伊賀盛(みそしる付き)を注文。

税込み1180円。

伊賀牛×伊賀米のコラボを堪能。

しおむすび、税込み120円も美味。

阿山農産の隣のご縁屋。

みたらしソフト。

税込み600円。

あまじょっぱい、ループしてしまうアレ。

伊賀焼の窯元が一堂に会する伊賀焼陶器まつり。

バラエティに富んだ陶器の数々を楽しむことができました。

そして、その向かいの道の駅あやまの売店がこれまた良き。

また訪れたいと思います。

イベント情報

第42回伊賀焼陶器まつり

開催日時:2024年9月21日(土)~9月23日(月)

     9:00~17:00(最終日16:00)

会場:阿山第一運動公園「すぱーく阿山」

住所:三重県伊賀市川合3373−1

伊勢の昼ご飯(5)河崎2丁目食堂

2024年8月21日

リモートワーカーの昼ご飯日記

伊勢の飲食店を巡ります。

かつて伊勢の台所と呼ばれた伊勢河崎。

その一角にあるのが河崎2丁目食堂です。

店の裏手に駐車場があります。

店内は4人掛けテーブル3卓、2人掛けテーブル1卓、カウンターの構成。

13時頃に訪れたときにはお客さんは1組だけでした。

カウンターに着席。

ランチメニューは定食vsカレーの構図。

洋食を堪能するか、スパイスにときめくか。。。悩みます。

A5黒毛和牛ビーフカレー&2種コロッケをチョイス。

税込み、1700円。

コロッケも美味しいのではずせません!

そして、食後にメロンクリームソーダを注文。

ご馳走様でした!

お店情報

河崎2丁目食堂

営業時間:11時30分~14時、17時30分~21時

定休日:木曜日

住所:三重県伊勢市河崎2丁目7−14

コミュニティ電子化

2024年7月27日

課題

地域当番が広報冊子や地域情報(回覧板)を地域住民に配る。

今でも当たり前に行っている習慣ですが、

現在の通信技術や環境を考えると無駄な作業に感じてしまいます。

そろそろブラッシュアップのタイミングではないでしょうか?

紙を物理的に配布するコストの削減を目指します。

電子化の対象

・広報冊子

・地域情報

・市からの通達

電子化のメリット

・紙の削減(エコ、SDGs貢献)

・配送削減(ガソリン(CO2)、マンパワーの削減、SDGs貢献)

電子化のデメリット

・全ての人に行きわたらない(スマートフォンが必要)

・既存企業の経済の喪失

対策

・全てに人に行きわたらない

解決策)

スマートフォン貸与。

最安だと個人契約でも1台月額500円、デバイス1台0円~3000円。

大型契約だともっとディスカウントできるのではないか。

印刷代、配送代とのトレードオフ。

・既存企業の経済の喪失

解決策)

既存企業と提携して経済活動の代替を目指す(印刷 → ネットワーク管理)

構想

・システム構築

Webシステム、アプリの作成(dat&開発)

・展開

モデルエリア(理解の高いエリアと低いエリアの2地域)を設定して試験。

フィールバックして市全エリアに展開。

将来

・更なる電子化、市サービスとの連携

・他地域への横展開

・売り込み(管理費を収益源とする)

HTMLファイルを表示する

2024年7月15日

開発環境
OS:Windows 11
SDK:VS Code + Flutter 3.7.12

概要

アプリ内のローカルストレージに格納したhtmlファイルを画面に表示します。

WebViewウィジェットを準備する

HTMLファイルはWebViewウィジェットを通して表示します。

そのため、WebViewパッケージをインストールする必要があります。

サンプルプロジェクトを生成して動作確認してみます。

webview_flutterをインストールします。

HTMLファイルを準備する

次にHTMLファイルを準備します。

<!DOCTYPE html>
<html lang="ja">

  <head>
    <meta charset="UTF-8">
    <title>Top Page</title>
  </head>

  <script>
    function sendData1() {
      // Flutterへデータ送信
      sample.postMessage("1");
    }
    function sendData2() {
      // Flutterへデータ送信
      sample.postMessage("2");
    }
  </script>

  <body>
    <h1>Please tap a button.</h1>
    <br>
    <br>
    <button onclick="sendData1()">Send Data 1</button>
    <br>
    <br>
    <button onclick="sendData2()">Send Data 2</button>
  </body>
</html>

ボタンが2つあるHTMLファイル(top.html)を作成しました。

プロジェクトフォルダ内に「html」フォルダを作成し、その中に作成したhtmlファイルを格納します。

次にpubspec.yamlのassets項目にhtmlファイルを定義します。

  assets:
    - html/top.html

WebViewウィジェット実装

main.dartにWebViewウィジェットを追加します。

ネットワーク上のurlにアクセスして表示するわけではないため、htmlのロード処理もあわせて追加する必要があります。

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late WebViewController controller;
  late Future<void> controllerInitialization;

  @override
  void initState() {
    super.initState();
    controllerInitialization = initController();
  }

  Future<void> initController() async {
    final html = await rootBundle.loadString('html/top.html');
    controller = WebViewController()
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..addJavaScriptChannel('sample', onMessageReceived: (result) async {
          switch (result.message) {
            case "1":
              print("call 1.");
              break;
            case "2":
              print("call 2.");
              break;
          }
        })
      ..loadRequest(
        Uri.dataFromString(
          html,
          mimeType: "text/html",
          encoding: Encoding.getByName("utf-8"),
        ),
      );
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder<void>(
      future: controllerInitialization,
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.done) {
          return Scaffold(
            appBar: AppBar(title: const Text("Test Page")),
            body: WebViewWidget(controller: controller),
          );
        } else {
          return const CircularProgressIndicator();
        }
      },
    );
  }
}

※Android向けのビルドが失敗した場合はこちら↓をチェックしてみてください。

動作確認

デバッグモードで起動しました。

HTMLのテキストと2つのボタンは期待通りに表示されています。

次にボタンを押し分けてみると・・・

ターミナルに「call 1.」、「call 2.」が表示されました。

ボタン操作も処理できることが確認できました。

今回は以上です。

ビルドエラー解消(JAVA_HOME)

2024年7月15日

開発環境
OS:Windows 11
SDK:VS Code + Flutter 3.7.12

概要

久しぶりにFlutterの動作確認をしようとサンプルプロジェクトを生成し、Android向けにビルドしたら失敗しました。

Android向けビルド時に発生したビルドエラーの解消方法についての話。

Flutter ビルドエラーの発生

サンプルプロジェクトを生成。

AndroidスマホをPCにUSB接続し、デバイスをチェック。

スマホのデバイスIDを取得し、デバイスIDを指定してデバッグ起動。

たったこれだけの手順でビルドエラーが発生してしまいました。

以前はビルドできたはずなんですが。。。

エラー内容は、以下。

環境変数「JAVA_HOME」に指定したディレクトリが存在しないってことのようです。

ということでディレクトリを見てみると・・・

ディレクトリ「jre」の直下はディレクトリ「bin」のみ。

そのディレクトリ「bin」の直下も.makerファイルのみと見事にもぬけの殻になっていました。

そういえば、最近、Android StudioのバージョンをFlamingoからIguanaにバージョンアップしたんだったっけ。。。

環境変数を編集する

ということでAndroid Studioの実体を探してみると・・・

環境変数を編集します。

Flutterビルドエラーの解消

ターミナルを立ち上げなおして再度、ビルドしてみます。

ビルドが成功し、スマホ上でサンプルアプリが起動しました。

今回は以上です。

com.google.android.play.coreの警告に対処する

2024年7月15日

開発環境
OS:Windows 11
SDK:Android Studio Iguana | 2023.2.1 Patch 1

概要

Google Play Consoleの受信トレイにcom.google.android.playに関する警告がきており、8月31日までに対処が必要とのことで対応しました。

警告を確認する

Google Play Consoleの受信トレイにcom.google.android.playに関する警告が届きました。

警告の内容を確認すると、

com.google.android.play.core(1.8.0)がAndroid 14(sdk 34)に対応できなくてアプリがクラッシュするため、それを回避するために8月31日までにライブラリの参照を変更しなさい。

とのことのようです。

com.google.android.play.coreって何に使ってたんだろうか?

com.google.android.play.coreの使用状況を確かめる

まずは警告が届いたアプリのソースコードを確認します。

Android Studioで立ち上げ、「com.google.android.play」で検索してみると・・・

検索の結果、In-App Reviewのモジュールがヒットしました。

import com.google.android.play.core.review.ReviewManagerFactory
import com.google.android.play.core.review.ReviewManager

build.gradleのライブラリを確認すると

今回の警告対象である「com.google.android.play:core-kt」が見つかりました。

 dependencies {

    implementation("com.google.android.play:core-ktx:1.8.1")

}

「com.google.android.play:core-kt」を削除してビルドしなおしてみるとReviewManagerのインポートで参照エラーがでました。

「com.google.android.play:core-kt」の代替ライブラリが必要のようです。

ライブラリを差し替える

改めてIn-App Reviewの実装方法を公式サイトで確認するとライブラリが変わっていました。

 dependencies {

    implementation 'com.google.android.play:review-ktx:2.0.1'

}

ということで「com.google.android.play:core-ktx」を「com.google.android.play:review-ktx」に変更し、ビルドしてみると・・・

これで警告の対応が完了です。

お疲れさまでした。

アプリにIn-App Reviewを組み込む

2024年7月15日

開発環境
OS:Windows 11
SDK:Android Studio Iguana | 2023.2.1 Patch 1

概要

AndroidアプリにIn-App Reviewを組み込みます。

In-App Review

In-App Reviewとはアプリの評価やレビューの入力を促すポップアップ機能です。

アプリの操作中に意図したタイミングでポップアップさせることができます。

アプリの評価やレビューはアプリの改善に役に立つため、In-App Reviewの実装はおススメです。

In-App Review実装の流れ

実装していきます。

まずはbuild.gradleにライブラリを組み込みます。

 dependencies {

    implementation 'com.google.android.play:review-ktx:2.0.1'

}

次に必要なモジュールをインポートします。

import com.google.android.play.core.review.ReviewManagerFactory
import com.google.android.play.core.review.ReviewManager

Activityの起動時にレビューマネージャーを生成します。

    private lateinit var reviewmanager : ReviewManager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        reviewmanager = ReviewManagerFactory.create(this)

    }

あとは適当な場所(画面起動時やイベント終了後など)でポップアップ処理をコールします。

    val request = reviewmanager.requestReviewFlow()
    request.addOnCompleteListener { task ->
        if (task.isSuccessful) {
            val reviewInfo = task.result
            val flow = reviewmanager.launchReviewFlow(this@MapsActivity, reviewInfo)
            flow.addOnCompleteListener { _ ->

            }
        }
    }

In-App Reivewの実装は以上です。

デバッグ方法

デバッグをしたい場合、FakeReviewManagerを使用します。

FakeReviewManagerをインポートします。

import com.google.android.play.core.review.ReviewManagerFactory
import com.google.android.play.core.review.ReviewManager
import com.google.android.play.core.review.testing.FakeReviewManager

FakeReviewManagerを生成します。

    private lateinit var reviewmanager : ReviewManager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

//        reviewmanager = ReviewManagerFactory.create(this)
        reviewmanager = FakeReviewManager(this)

    }

ポップアップ処理は変更不要です。

FakeReviewManagerのデバッグではポップアップは表示されず、正常系のシーケンスのみ確認できます。

ステップ実行してみるとrequestReviewFlowに成功し、launchReviewFlowがコンプリートします。

これでIn-App Reviewの組み込みは終了です。

お疲れさまでした。

日本酒の旅 黄桜カッパカントリー

2024年6月1日

この世に天国なんてあるのか?

日本酒が堪能できる施設があるよ、という情報をキャッチしたので近鉄電車で京都伏見まで。

桃山御陵前駅で降り、徒歩10分程。

伏見大手筋商店街を通り抜けた先にあるのが黄桜カッパカントリーです。

お昼ご飯と一緒に日本酒を嗜もうと

12時30分頃に到着。

地ビールとお酒の天国。

入り口だけで期待感高し。

入り口左手が黄桜記念館。

黄桜のトレードマークでもある河童を中心とした企業展示を見ることができます。

そして、右手から施設に入ると売店とレストラン。

早速、レストランのレジカウンターに。

幸い、待つことなく席を案内してもらうことができました。

案内してもらったのは
掘りごたつの席。

レストランは広々としており、
リラックスした雰囲気が漂います。

これぞ、黄桜。

さあ、何を頼もうか。

1品料理から定食までメニューも豊富なので悩みます。

そして、選んだのがこちら。

出し巻き和定食。

税込み、1050円

濃厚な酒粕汁に焼き鮭。

この組み合わせは無限にいけてしまいます。

そして、日本酒は。

黄桜9種飲み比べ。

税込み、1950円。

どぶろくから大吟醸まで多彩なセット。

あとは1品料理を適当に頼みつつ日本酒を堪能♪

豊富な食事メニュー。

そして、地ビール、日本酒。

写真が一部、ブレてしまってます。

酔っていたわけではないのですが。

家が近ければ、仕事終わりに来たかった。。。

これは何度来ても楽しめる究極のエンターテイメント。

天国、ここにありました。

お店情報

黄桜カッパカントリー

営業時間:11:00(平日11:30)~14:00、17:00~20:50

定休日:火曜日

住所:京都府京都市伏見区塩屋町228

阿曽温泉

2024年5月26日

以前、瀧原宮を参拝した後、周辺を散策するなかで見つけた阿曽温泉。

気になってはいたもののなかなか行けずにいたんですが、ようやく訪れることができました。

18時30分頃に到着。

日が暮れかかってきました。

施設前の駐車場は県外ナンバー含め、10台ほど停まっていました。

施設に入るとすぐ目の前がカウンター。

カウンターを左に進むと浴場、右に進むと休憩スペースです。

右手奥に食堂があったようですが現在は休業中。

食事も期待していただけに残念です。。。

入浴料金は大人500円。

廃校になった小学校を温泉施設に改築したのが特徴でもある阿曽温泉。

休憩スペースに置かれた学習机の上に入浴チケットを置いて撮影してみた。

廊下は小学校のときのままだろうか。

内湯1、洗い場6にサウナ(男湯のみ)とこぢんまりとした温泉です。

ですが、足を伸ばしてもゆとりのある浴槽に沈み、チョロチョロと流れ足される天然温泉の音を聞き、日暮れの空を眺める。

周りの静けさも相まって最高のリラックス空間でした。

湯加減は熱め、浴槽の淵に湯の花が見られたので効能は期待できそうです。

温泉情報

阿曽温泉

営業時間:10:00~21:00

定休日:水曜日

住所:三重県度会郡大紀町阿曽429

伊勢の昼ご飯(4)台湾料理 福亭

2024年5月24日

リモートワーカーの昼ご飯日記

伊勢の飲食店を巡ります。

店の近くまで行く機会があったのでお昼ご飯は福亭に決めました。

伊勢市内の高校が密集した地域にあるお店、というとどういうお店かは想像できるかと思いますが、まさにそういうお店です。

高校生も多く立ち寄るお店ですが社会人にも人気です。

それゆえお店横の駐車場は出入りも多く、停めにくいかなと思います。

そういうときは、お店の向かい側の駐車場が広くて停めやすくおすすめです。

店内はテーブル4卓と座敷3卓、カウンター3席。

ランチ帯はセットメニューがお得です!

ランチメニューだけ見ても豊富なラインナップです。

酢豚定食。
税込み、650円。

ご飯のおかわりもOK。

いつもお腹一杯になります。

ちなみに前に天津飯を食べたことがあるのですが、予想外の甘だれでした(笑

人によって好みがあると思うのでその点だけ注意です(^^;

お店情報

台湾料理 福亭

営業時間:11時~15時、17時30分~22時

定休日:水曜日

住所:三重県伊勢市神田久志本町1466