Skip to content

Instantly share code, notes, and snippets.

View riscait's full-sized avatar

Ryunosuke Muramatsu riscait

View GitHub Profile
@riscait
riscait / .bashrc
Last active July 7, 2019 11:05
ホームディレクトリ用のMy .bashrc
# .bashrcを編集する
alias vibash='vi ~/.bashrc'
# .bashrcを更新する
alias rebash='source ~/.bashrc'
# Git
alias gst='git status'
alias gdf='git diff --staged'
alias gcm='git commit -m'
alias gcma='git commit --amend'
@riscait
riscait / Mintfile
Created February 21, 2020 20:17
Swift製CLIのパッケージマネージャーMintで使用する、パッケージのリストファイル
@riscait
riscait / .Brewfile
Last active April 17, 2021 20:49
HomeBrewで管理したいアプリのリストファイル。ホームディレクトリに置いた場合は `brew bundle --global`
# https://github.com/Homebrew/homebrew-bundle
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"
cask_args appdir: "/Applications"
# ----------------------------------------
# brew
# ----------------------------------------
final isLightTheme = Theme.of(context).brightness == Brightness.light;
RaisedButton.icon(
// タップした時に色の変化があるが、使用している画像の背景色が透明ではないので、
// 不自然な表現になってしまう。回避策としてタップ時の色変更を透明(なし)にしている
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
elevation: 0,
shape: StadiumBorder(
side: isLightTheme ? const BorderSide(width: 1) : BorderSide.none,
),
final isLightTheme = Theme.of(context).brightness == Brightness.light;
AppleSignInButton(
style: isLightTheme ? ButtonStyle.whiteOutline : ButtonStyle.white,
type: ButtonType.signIn,
onPressed: => presenter.onPressedAppleButton(context),
)
// Determine if Sign In with Apple is supported on the current device
await AppleSignIn.isAvailable() // => Future<bool>
/// Apple認証で取得したフルネームを保存して使用するためのクラス
class AuthCredentialWithApple {
AuthCredentialWithApple({
@required this.authCredential,
this.givenName,
this.familyName,
});
AuthCredential authCredential;
String givenName;
String familyName;
/// Apple認可のクレデンシャルを要求し、(取得できた場合は)フルネームも一緒に返却する
Future<AuthCredentialWithApple> requestAppleIdCredential() async {
// apple_sign_inパッケージによるリクエスト実行関数
final authResult = await AppleSignIn.performRequests([
// メールアドレスとフルネーム、取得したいスコープを指定する
// メールアドレスとフルネームどちらも不要な場合は空のListを指定すればOK
const AppleIdRequest(requestedScopes: [Scope.email, Scope.fullName])
]);
// エラーハンドリング
if (authResult.error != null) {
/// Sign in with Appleが押された
Future onPressedAppleButton(BuildContext context) async {
// 証明書をリクエストして取得
AuthCredentialWithApple credentialWithApple; // フルネームを使用しない場合は `AuthCredential`でOK
try {
credentialWithApple = await requestAppleIdCredential(); // この後実装
} on Exception catch (e) {
// エラーハンドリング
}
if (credentialWithApple == null) {
dependencies:
flutter:
sdk: flutter
# Sign in with Apple
apple_sign_in: ^0.1.0
# Firebase
firebase_core: ^0.4.4+3
# ユーザー認可
firebase_auth: ^0.15.5+3