どうも、たくチャレ(@takuchalle)です。 Firebase Crashlytics の導入 パッケージのインストールとiOS/Androidそれぞれの設定は、公式ドキュメントの手順通りに行えばハマることなくできると思います。 Flutterのコードは以下のようにしました。 void main() { FlutterError.onError = (details) { FlutterError.dumpErrorToConsole(details); Crashlytics.instance.recordFlutterError(details); if (kReleaseMode) exit(1); }; runApp(App()); } ポイントは以下の通りです。 従来のデバッグ時のコンソールのエラーは出力 Crashlytics にも出力 リリースビルドの場合は強制的にアプ
どうも、たくチャレ(@takuchalle)です。 Flutterでリリース環境でエラーが発生した時に、強制的にアプリを終了する方法を紹介します。 Flutter のエラーハンドリング まず、Flutterのエラーハンドリングについて解説します。 Flutterではエラーが発生した時にFlutterError.onErrorハンドラが呼ばれます。 デフォルトではFlutterError.dumpErrorToConsoleが割り当てられているので、IDE のコンソールにエラーが出力されます。 エラーの内容にもよりますが、アプリは画面が固まったり予期しないデータで動き続けてしまうことがあります。 リリース環境で予期しないデータで動き続けてデータベースを破壊などしたら目も当てられません。そこでアプリでエラーが発生した時に強制終了するのも一つの手かもしれません。 もちろん、致命的なエラーが起きな
どうも、たくチャレ(@takuchalle)です。 以前、[GitLab の CI/CD 機能で Hugo を Firebase Hosting にデプロイする方法を書きました]({{ ref . “gitlab_deploy_firebase_hosting” }})。 今回このブログのリポジトリをGitHubに移行したので、デプロイもGitHub Actionsを使うようにしました。その時に行った作業を紹介します。 GitHub に移行する理由 移行する理由は2つです。 プライベートリポジトリが無料になったから 他のリポジトリも GitHub にあるから統一したかったから 要はこのリポジトリだけGitLabにあるのは不便だったからです。 GitLab から GitHub へのリポジトリ移行方法 GitHubに空のリポジトリがある前提で、次のコマンドを打つだけです。ブログをgitで管理し
どうも、たくチャレ(@takuchalle)です。 アプリの開発をしていると使用しているライブラリのライセンスを表示する必要が出てきます。 Flutterでは非常に簡単にライセンス情報の表示ができます。今回はその方法を紹介します。 Flutter でのライセンス表示方法 Flutterではライセンスを表示する方法がいくつかあります。 showLicensePage 関数を使う showAboutDialog 関数を使う AboutListTitle Widget を使う 自分でカスタマイズする それぞれを順に説明していきます。一番最後にDartPadを使って実際のコードを紹介しますので、確認してみてください。実際の動きが分かると思います。 showLicensePage 関数を使う まず showLicensePage関数の紹介をします。 使い方はすごくシンプルでcontextを渡して呼び
どうも、たくチャレ(@takuchalle)です。 以前、provider を使って超簡単にダークモードに対応する方法を紹介しました。 これはアプリ内でライトモード・ダークモードを切り替える方法でした。 今回紹介する方法は、iOS/AndroidなどOSの設定によってFlutterアプリのライトモード・ダークモードを切り替える方法を紹介します。 といってもFlutterが標準でダークモードをサポートしているのでめちゃめちゃ簡単に対応することができます。 Flutterのダークモード対応 FlutterはMaterialApp Widgetのthemeにテーマの定義を行います。ここでアプリに合わせた色や文字サイズを定義することで、アプリ全体の統一感を出すことができます。 MaterialApp WidgetのコンストラクタにdarkThemeがあるので、ここにダークモードの時のThemeDa
どうも、たくチャレ(@takuchalle)です。 C言語で OpenSSL の SHA256 ハッシュ関数を使ってみました。 その時の作業メモです。 動作環境 Ubuntu 16.04.6 LTS clang version 8.0.0 (tags/RELEASE_800/final) OpenSSL 1.0.2r 実装例 #include <stdio.h> #include <openssl/sha.h> int main(int argc, char *argv[]) { char *message = {"Sample Message"}; unsigned char digest[SHA256_DIGEST_LENGTH]; SHA256_CTX sha_ctx; SHA256_Init(&sha_ctx); // コンテキストを初期化 SHA256_Update(&sha_c
どうも、たくチャレ(@takuchalle)です。 AES で暗号化をする必要が出てきたのでやってみました。 言語は何でもよかったので、Windows/Linux などに簡単にバイナリ配布できるようにGoを選びました。 AES 暗号化 ここでは AES 暗号化に関して詳しく紹介することはしませんので、このあたりの記事などを参考にしてください。 今回は以下の条件で行っていきます。 鍵長 256bit CBC モード CBC(Cipher Block Chaining) モードについて簡単に説明します。 先ほど紹介した記事にもある通り、AES 暗号化は 128bit ブロック単位で暗号化していきます。 一番シンプルなモードは ECB(Electronic Codebook)モードといい、 以下の図のように 128bit ブロック単位それぞれに暗号鍵で暗号化していきます。これだとデータのパターン
たくチャレ「なるほど、シングルトンになってて、インスタンスを取ってくればいいんだな」 Firease Storage のサンプル 一方、Firebase StorageのREADMEは全然情報がなかったので、exampleを見ると次のように書いてあります。 final FirebaseApp app = await FirebaseApp.configure( name: 'test', options: FirebaseOptions( googleAppID: Platform.isIOS ? '1:159623150305:ios:4a213ef3dbd8997b' : '1:159623150305:android:ef48439a0cc0263d', gcmSenderID: '159623150305', apiKey: 'AIzaSyChk3KEG7QYrs4kQPLP1tj
どうも、Flutterを始めてみようと思っている、たくチャレ(@takuchalle)です。 今回はEmacs Advent Calendar 2018の13日目の記事です。 昨日は @tadsan さんの Emacsからの安全なシェルコマンド実行でした!外部コマンドを使うときは参考にしたいと思います! さて、みなさんDartを使ってますか? 僕はいきなりFlutterを使う前にDartの勉強をしてました。A Tour of the Dart Language を[一通り読み進めました]({{ ref . “tour_of_dart_language.md” }})。 その時にサンプルを手元で動かしたかったので、Emacsで開発環境をセットアップしてみました。 dart-mode の導入 dart-modeが便利機能のすべてを提供してくれます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く