Skip to content

Instantly share code, notes, and snippets.

View Atsumi3's full-sized avatar
:octocat:

atsumi Atsumi3

:octocat:
View GitHub Profile
@Atsumi3
Atsumi3 / route_event.dart
Created July 18, 2024 09:34
Flutterでイベントフローを実装するためのもの
import 'dart:async';
class Router {}
final _controller = StreamController<Router>.broadcast();
/// [Router]イベントを監視するmixin
mixin RouteEventObserver<R extends Router> {
StreamSubscription<Router>? _subscription;
@Atsumi3
Atsumi3 / logger.dart
Created July 17, 2024 06:16
flutterのログ周りを綺麗に定義する
final logger = Logger(
output: CrashlyticsLogger(),
printer: PrettyPrinter(
methodCount: 1,
errorMethodCount: 5,
dateTimeFormat: DateTimeFormat.onlyTimeAndSinceStart,
),
);
@Atsumi3
Atsumi3 / dart_extract_library_files.sh
Last active June 24, 2024 05:04
Dart/Flutterのライブラリ作成でexportファイルの生成を楽にするためのスクリプト
#!/bin/bash
# 以下のようなディレクトリ構成で作成されているプロジェクト用
# pubspec.yaml
# lib/src/aaa/bbb.dart
if [ ! -f pubspec.yaml ]; then
echo "このスクリプトはDartパッケージのルートディレクトリで実行してください。pubspec.yamlが見つかりません。"
exit 1
fi
@Atsumi3
Atsumi3 / check_graphql_impl.sh
Last active June 24, 2024 04:42
GraphQLのクライアント側実装漏れをチェックするスクリプト
#!/bin/bash
# GraphQLの関数実装漏れをチェックするスクリプト
#
# 例えば、以下のようなスキーマファイルがある場合
#
# // schema.graphql
# type Mutation {
# postUser(name: String!): User!
# }
@Atsumi3
Atsumi3 / delete_workflows.sh
Created October 11, 2023 11:13
Github Actions の不要なAction履歴削除
# based: https://stackoverflow.com/a/67000032
# ghコマンドのセッションチェック
gh auth status >/dev/null
if [ $? -ne 0 ]; then
echo "Please login to GitHub with gh command."
exit 1
fi
# org, repo を引数から取得する
@Atsumi3
Atsumi3 / flutter-all-clean.sh
Created May 29, 2023 04:53
[fvm] Flutterでプロジェクトがおかしくなった時に正常化するShellスクリプト
#!/usr/bin/env bash
PUBSPEC_FILE_NAME='pubspec.yaml'
echo '------------------------------------'
echo '-- flutter clean'
echo $(pwd)
# .dart_tool を除いたプロジェクトフォルダ内の $PUBSPEC_FILE_NAME が格納されているディレクトリ一覧を取得
PUB_SPEC_DIRS=$(find "$(pwd)" \
@Atsumi3
Atsumi3 / GetSignature.kt
Last active February 1, 2024 09:18
AndroidでアプリのSHA1,SHA256を取得するスニペット
@Suppress("DEPRECATION")
@SuppressLint("PackageManagerGetSignatures")
fun getSignature(algorithm: String): String {
fun byteArrayToReadableString(array: ByteArray, delimiter: String = ":"): String {
return array.joinToString(delimiter) {
var str = Integer.toHexString(it.toInt())
str = (if (str.length == 1) "0$str" else str).replace("ff", "")
if (str.isEmpty()) str = "FF"
str.uppercase(Locale.getDefault())
}
@Atsumi3
Atsumi3 / ContextLoadFileExt.kt
Last active May 29, 2023 04:57
[Android] assetsにあるファイルをキャッシュ領域にコピーし、Fileとして扱えるようにするスニペット 
fun Context.loadFileFromAssets(fileName: String): File {
return File(cacheDir, fileName)
.also {
if (it.exists()) it.delete()
it.outputStream().use { cache ->
assets.open(fileName).use { inputStream ->
inputStream.copyTo(cache)
}
}
}
@Atsumi3
Atsumi3 / app_mail_notifier.gs
Created April 3, 2023 09:41
タイトルに特定アプリ名を含むメールを受信したらSlackに通知するgs
/**
* ここから始まる
* @param {string} appName - アプリ名
* @param {string} fromAddress - 送信元アドレス
* @param {string} slackChannelName - 投稿先チャンネル名
* @param {string} slackMessageIcon - 投稿メッセージアイコン
* @param {string} slackMessageUserName - 投稿者名
* @param {string} webhookUrl - 投稿スペースのWebhookUrl
*/
@Atsumi3
Atsumi3 / yahoo_login_dialog.dart
Last active April 2, 2023 07:32
Flutter で Yahoo Japan へのログインをする Dialog
/*
pubspec.yaml
dependencies:
flutter_inappwebview: 5.5.0
http: ^0.13.5
*/
// https://developer.yahoo.co.jp/yconnect/v2/authorization_code/