Git Product home page Git Product logo

flutter_liff_maps's Introduction

flutter_liff_maps

fvm flutter --version
Flutter 3.10.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 9cd3d0d9ff (6 days ago) • 2023-05-23 20:57:28 -0700
Engine • revision 90fa3ae28f
Tools • Dart 3.0.2 • DevTools 2.23.1

ローカル環境での実行および開発の進め方

FVM を導入する。

brew tap leoafarias/fvm
brew install fvm

.fvm/fvm_config.json に Flutter SDK のバージョンが指定されているので、下記のコマンドを実行する。

fvm install
fvm flutter pub get

VS Code を使っている場合は、.vscode/settings.json の設定により、FVM の Flutter に同梱されている Dart SDK が使用されるようになっている。VS Code 以外を使用している場合は所望の通りに対応する。

ローカルホストの 8080 番ポートでデバッグ実行する。

fvm flutter run -d  web-server --web-port 8080 --dart-define-from-file=dart_define.json

ngrok をインストールする。

brew install ngrok

https://dashboard.ngrok.com/ にアクセスしサインアップした後に、認証を行う。

ngrok config add-authtoken <your-auth-token>

ngrok でローカルホストの 8080 番ポートを一時公開(fvm flutter run しているターミナルとは別ターミナルで実行)する。

ngrok http 8080

ngrok を起動したターミナルで表示されている Forwardinghttps://<ランダム値>.ngrok.io(または https://<ランダム値>.ngrok-free.app)の URL を LINE Developers コンソールから、LIFF > LIFF アプリ詳細の Endpoint URL に指定する。

上記の設定を済ませた上で、開発マシンで http://localhost:8080(Flutter Web のローカルホストの Web サーバ)にアクセスすると、LINE ログインが済んでいない場合は LINE ログインを促され、ngrok が払い出した URL にリダイレクトされる(ngrok の "You are about to visit..." のページが表示された場合は、自分の開発マシンの ngrok から払い出されたリンクであることを確認して "Visit Site" を押下して進む)。そうすると Flutter Web の画面が表示される。

ローカルで Flutter アプリのソースコードを編集したら、fvm flutter run -d web-server --web-port 8080 をしたターミナルで R キーを押下してホットリロードすると、再起動した LIFF アプリもその編集内容が反映されるようになるので、そのようにしてデバッグすると良い。

環境変数や API キーなどの設定

現在のところでは、Flutter および Firebase Functions の開発・ビルドを行う上で下記の設定が必要となっている。

  • dart-define.json.template をコピーして dart-define.json を作成し、YOUR-LIFF-ID-HERE の部分を実際の LIFF ID に差し替える。
  • web/index.sample.html をコピーして web/index.html を作成し、YOUR-API-KEY-HERE の部分を実際の Google Maps API Key に差し替える。
  • functions/keys/service_account_key.json を作成し、Firebase プロジェクトのサービスアカウントキーを反映する。
  • functions/.env.sample をコピーして functions/.env を作成し、YOUR-LINE-CHANNEL-ID-HERE の部分を実際の Channel ID に差し替える。

複合インデックスの設定

このアプリでは、指定した公園 ID に対応するチェックイン一覧を取得するために、複合インデックスを作成する必要がある。

Flutter Web では、複合クエリのインデックスを自動で作成するための URLリンクがコンソールに表示されることはないので、手動で対応する必要がある。

たとえば、下図を参考に手動で設定することができる。

Cloud Firestore composite index

主な機能一覧

  • 自分の近くにある公園を探すことができる。
  • チェックインすることができる。
  • 公園ごとにチェックインした人が見える。
  • 友人がチェックインしたら通知が来る。

flutter_liff_maps's People

Contributors

kosukesaigusa avatar tokku5552 avatar ryotaewamoto avatar

Watchers

nissy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.