狐好きぷろぐらまー

狐好きプログラマーのブログです。

【Keyball】Keyball61の組み立て時に知っておきたかったメモ

こんにちは。pregum_foxです。

今回は、初めて自作キーボードを購入しましたので、組み立てる際に知っておきたかったこと、組み立てた後に知っておくと良いメモを書いていきます。

読むとわかること

  • Keyball61をキーボードとして使用する為に必要なもの
  • Keyball61の組み立て時間のサンプル

想定読者

  • Keyball61を購入しようか迷っている自作キーボード初心者の方
  • 結局Keyball61をキーボードとして使うにはが必要?と思っている方
  • キースイッチとは?ProMicroとは?TRRSケーブル?という方

以下目次です。

  • 読むとわかること
  • 想定読者
  • 記事を書いている人間のKeyball歴と普段使うキー配列
  • 組み立てた範囲と組み立てにかかった時間
    • 組み立てた範囲
    • 組み立てにかかった時間
  • 備忘録: Keyballの組み立て前に知っておきたいこと
    • 商品の購入に利用したサイト
    • キーボードとして使うためにいくつかの部品の購入
    • ダイオードとソケットの半田付け
    • 精密ピンセットとルーペの必要性
    • ネジやダイオードを一時的に入れておく容器があると良かった
  • 組み立てた後に知っておきたいこと
    • キーマップの設定
    • マウスとスクロールの感度設定
    • Layerの存在
    • キー配置の注意点
    • 接触不良の確認
    • 通常は有線のみ操作可能
    • まとめ
続きを読む

【Drift】Driftの個人的なTipsをまとめてみた【Flutter】

こんにちは。pregum_foxです。

今回はdriftの使い方についていくつか自分が調べて情報がなかった箇所についてtipsとして書いていこうと思います。

以下目次です。

  • 検証環境
  • サンプルで作成したリポジトリ
  • set up
  • primaryKeyをuuidにする方法
  • 外部キーの有効化
  • 外部キー制約の定義方法(CASCADE / RESTRICT 等)
  • 中間テーブルを含むDB操作
  • マイグレーション方法
  • serializer(DataTimeをISO8601形式にする)
  • toJsonで出力されるMapのkeyをキャメルケースからスネークケースに変える
  • drift_db_viewerの使い方
  • シンプルなCRUD操作で使用できるmanagers
  • postgreSQL のクライアントとしてDriftを使用する
  • まとめ
続きを読む

【Supabase】Flutter + Supabase Authentication のAnonymous Sign-insを使って匿名サインインのサンプルを作ってみた

こんばんは。pregum_foxです。

今回は、Supabaseにも正式に匿名サインイン(Anonymous Sign-ins) が実装されたのとのことなので、手元のリポジトリで試してみました。

前回はSocial Login(Facebook)のサンプルを作成しました。

【Supabase】Flutter + Supabase Authentication で Social Login(Facebook) のサインアップ・サインイン処理のサンプルを作った - 狐好きぷろぐらまー

他のSupabase Authenticationのサンプルを見たい場合は下記記事から確認可能です。

pregum-fox.hatenablog.jp

それでは目次です。

  • 開発端末
  • 検証端末
  • サンプルで作成したリポジトリ
  • 必要なもの
  • 匿名サインイン実装の手順
  • 匿名サインインとそれ以外でのサインインの判別方法
  • 図解
    • 1. 導入するSupabaseプロジェクトにて、匿名サインインを有効にします
    • 2. 匿名サインインのクライアントコードを実装します
  • 雑感
続きを読む

【codemagic】FlutterプロジェクトにてビルドからFirebase App Distributeの配布までをcodemagicで自動化する手順【Flutter】

こんばんは。 pregum_foxです。

今回は個人開発毎回ビルドを手元で行うと、時間が溶けてしまうのでcodemagicを利用して

GitHubのレポジトリのdevelopブランチにPRがマージされたタイミングでビルドからFirebase App Distributeで配布を行う処理を自動化する手順を備忘録として残しておきます。

以下目次です。

  • この記事を読んでわかること
  • 事前に準備が必要なもの
    • 必須
    • iOSでのビルドする場合
    • Androidでビルドする場合
    • Firebase App Distributionで配布する場合
  • 手順
    • firebase-tools コマンドのインストール
    • firebaseプロジェクトの初期化
    • firebaseパッケージをFlutterプロジェクトへ追加
    • codemagicの設定
      • Build triggers
      • Build
      • Distribution
      • Firebase App Distribution
        • Firebase service account
        • Android Firebase app ID
        • iOS Firebase app ID
        • Tester groups for Android app / Tester groups for iOS app
  • 雑感

この記事を読んでわかること

codemagicを用いてFlutterの開発環境のビルド〜Firebase App Distributionの配布までの設定方法

事前に準備が必要なもの

必須

  • codemagicのアカウント
  • GitHubのアカウント

iOSでのビルドする場合

  • code signing certificate(*.p12 ファイル)
    • p12ファイルの作成方法はこちらこちら の記事が参考になります。
  • プロビジョニングプロファイル(*.mobileprovision)
    • 今回は開発環境なのでiOS App Development でOK

Androidでビルドする場合

  • keystore
    • 今回は開発環境なので、~/.android/debug.keystore のkeystoreを使用します。残りの3項目は左記のkeystoreの場合は、いじっていなければ以下の想定です。
  • alias
    • androiddebugkey
  • storepass`
    • android
  • keypass
    • android

Firebase App Distributionで配布する場合

  • Firebaseのアカウント
続きを読む

【Supabase】対象のEmailの重複確認を行う関数の作成方法とその呼び出し方【Flutter】

こんにちは。pregum_foxです。

最近模様替えを行いモニタの配置が変わって姿勢がよくなりましたが、机の高さを変えられる昇降デスクが欲しくなった今日この頃です。

概要

今回は、supabaseのsignUpメソッドにてデフォルトの挙動ではすでに存在するEmailを渡しても例外を投げないので、ないなら自分で作ってしまおうということで事前に存在チェックをするPostgres functionを定義して、Flutterから呼び出す処理がうまく動作したので記事にしました。

注意点

Issueにはセキュリティの問題からサニタイズされたユーザーデータ(つまりダミーのユーザーデータ)を返すようなので、戻り値で判定できないようになっているので、セキュリティホールにならないように実装が必要です。

以下目次です。

  • 概要
  • 注意点
  • 検証環境
  • Postgres functionsの実装
    • SQLの説明
    • 同名のPostgres functionの確認
    • SQLの実行
  • Flutterからの呼び出し方
  • まとめ
  • 参考記事
続きを読む

【Tool】最近開発で使っているツールについてまとめてみました【macOS】

こんにちは。pregum_foxです。

最近使う電子マネーSuicaからQUICPayに変えてみたのですが、通知のタイトルを初めてみたときシンプルすぎて少し笑ってしました。

支払い自体はスムーズでチャージもしなくてよいので、今後も使っていこうと思ってます。

概要

さて今回は、最近開発で使っているツールをまとめてみようと思います。

いわゆる「ぼくのかんがえたさいきょうのつーる」のつもりで書いていますので

  • 「このツールの方が良いでしょJK」
  • 「このツール使ってないとか、にわか乙」
  • 「それ、GPTでできるよ」

などがあれば、コメントもらえると嬉しいです😉

注意点

この記事の対象OSはmacOS です。

ですのでWindows ならこれがあるやLinux では〜〜 などは聞き流してしまうのでご注意ください。

また、対象はモバイルアプリ・Webアプリの方をターゲット層のつもりで書いています。

インフラ系の方にはお口に合わない可能性があります。

その場合でも色々ご意見いただけますと幸いです 🙏

以下目次です。

バックグラウンド

普段どのような開発をしているか説明します。

普段はモバイルアプリの開発をやりつつ、React.jsやCloud Function for FirebaseなどのNode.js + TypeScriptのコードも書いていたりしています。

ですので、バックエンドは知ってるぐらいで詳しくないです。

趣味では、FlutterやBaaSの勉強をしつつ個人開発を細々とやっています。

そんな人間がよく使うツール一覧をまとめましたので、その認識で読んでいただけると幸いです。

  • 概要
  • 注意点
  • バックグラウンド
  • ターミナル
    • Warp
      • 使っていて便利だと感じた点
      • 少し困っている点
  • Spotlight系
    • Raycast
      • 便利な点
      • 試してみたい点
  • 作業記録系
    • toggl
  • Window移動(cmd + tab的なもの)
    • AltTab
      • 嬉しい点
      • ちょっと悲しい点
  • git操作
    • tig コマンド
      • 便利な点
      • 少し手を加える必要がある点
    • lazygit コマンド
      • 便利な点
      • 少し困った点
    • gh コマンド
      • 嬉しい点
  • クリップボード
    • Clipy
      • 嬉しい点
  • ブラウザの拡張機能
    • vimium
      • 嬉しい点
      • 悲しい点
    • CLEAN crxMouse Gestures
      • 嬉しい点
      • 対応が必要な点
  • ちょっとした変換
    • Macのデフォルトの変換ショートカットキー
  • メモ帳
  • トンネリング
    • ngrok
  • npmなどのバージョン管理ツール
    • anyenv
    • fvm
    • homebrew
  • IME関連
    • 英かな
    • Karabiner-Elements
  • 感想
  • 参考URL
続きを読む

【Flutter】Supabaseでの中間テーブルの作り方とFlutterからの使い方について【Supabase】

こんにちは。pregum_foxです。

今回の記事は Supabase Advent Calendar 2023 の6日目の記事となっています。

前回は いせりゅー🥳 さん の【Flutter x Supabase】SNS系のアプリで自分の投稿だけを取得する方法 でした!

それではSupabaseでの中間テーブルの作り方とFlutterからの使い方について書いていきます。

以下目次です。

  • 背景
  • 想定読者
  • この記事を読むとできるようになること
  • この記事を読んでもできないこと
  • 開発環境
  • 今回作成するテーブル一覧
  • 今回作成するアプリの操作フロー
  • 完成図
  • 手順
    • 1. Supabaseプロジェクトを作成
    • 2. .env ファイルの設定
    • 3. DBの初期設定
      • menusテーブルの作成
      • allergensテーブルの作成
      • menus_allergensテーブルの作成
    • 4. Flutter側の呼び出し側の実装
  • うまくいかない場合に、確認する点
  • 宣伝
  • RLSについて再度ご連絡
  • 雑感
  • 参考サイト
続きを読む