インターン生がノーコードでアプリ開発!〜FlutterFlow 成長記録〜 vol.8

こんにちは!しゅんせいです!

僕は、ITベンチャーの株式会社GenAi(以下、GenAi)でインターン生として働いています!

このシリーズでは、エンジニア経験が全くない僕が、GenAiの菅原さん(以下、師匠)に指導を受けながら、アプリ開発を学ぶ過程を記録していきます。

以下は、師匠が書いたFlutterFlow(ノーコードアプリ開発ツール)に関する記事です。FlutterFlow自体の概要を知りたい方はこちらをご覧ください!

FlutterFlowのススメ

以下の予定で、師匠に出された課題をこなしていく形で進んでいるので、皆さんも一緒に手を動かしてみてください!

vol課題概要
vol.0自己紹介カード基本Widgetの役割
vol.1メモアプリActionの追加
vol.2匿名掲示板アプリFirebaseとの連携
vol.3匿名掲示板アプリPage Parameters/Page State/On Page Loadなど
vol.4掲示板アプリAuthenticationの設定、Conditional Visibility
vol.5掲示板アプリUXの改善(Validation,Padding)
vol.6スレッド付き掲示板アプリ複雑なデータモデル(ERD)、Action Output
vol.7スレッド付き掲示板アプリレスポンシブ対応(Responsive Visibility、Responsive Text)
vol.8経費申請アプリAPI call、Googleログイン
vol.9経費申請アプリCustom Action、Custom Function

本記事では、社内用の経費申請アプリを作成します。API Callを用いてSlackとFlutterFlowで作ったアプリを連携させます!

振り返り

前回はレスポンシブ対応について学びました。

前回までの要点

  • 基本的なレイアウトはColumn、Row、Stackで作成可能
  • Widgetには様々なActionを追加可能
  • Backend Queryでバックエンドのデータを取り出せる。
  • Page Parametersで、遷移後のページにデータを渡せる。
  • Page Stateでページ内での変数を作成できる。
  • On Page Loadで、ページのロード時にActionを設定できる。
  • Firebaseでは匿名ログインを簡単に実装できる。
  • Conditional Visibilityで、条件に合わせて表示設定ができる。
  • ValidationでTextFieldに入力する内容の制限
  • 複雑なデータはERDで整理する。
  • Action Outputで、Action内で作成したデータを同一Action内で使用できる。
  • Responsive VisibilityやResponsive Textでレスポンシブ対応できる。←New!!

経費申請アプリ作成!

師匠から要件を頂いたので、早速作っていきます!

各ページのレイアウト共有

ログイン画面です。

Googleアカウントでのログインを実装しています。

入力ページです。

申請者にはユーザーネームが自動表示され、立替の有無の選択を必須としています。 また、説明とレシート・領収書の両方が入力されていないと確認へ進めないようValidationを設定しました!

申請内容確認ページです。

入力ページの内容をParametersで引き継いでいます。

ユーザーページです。

ユーザーネームの変更や申請履歴の確認ができます!

申請履歴の詳細ページです。

確認ページと同じレイアウト、内容です。こちらはQuery Collectionでデータを持ってきています。

ログインページ〜Googleログイン〜

GoogleログインのActionは、Googleログインのポップアップが表示されるものです。 簡単に実装できると思ったのですが、思った以上に面倒だったので共有します!

FlutterFlowの公式ドキュメントです。

Initial Setup | FlutterFlow Docs
Google Sign-In | FlutterFlow Docs

公式ドキュメント通りとなるので説明は割愛し、簡単に手順をまとめておきます。

  1. これまで通りFirebaseとFlutterFlowでAuthenticationを設定
  2. SHA-1キーを生成
  3. Config Filesを再生成
  4. Firebase consoleで、Googleをプロバイダに追加
  5. Firebase consoleとGoogle cloud consoleの承認ドメインに、Test modeとRun modeのドメインを登録

Slackに送信するActionを実装〜API Call〜

API は、Application Programming Interfaceの頭字語です。これにより、製品またはサービス (この場合、構築しているアプリ) は、その実装に関する多くの情報を共有することなく、安全なチャネルを通じて他の製品やサービスと通信できるようになります。

引用元:https://docs.flutterflow.io/data-and-backend/api-calls

SlackとFlutterFlowでの設定手順は以下の通りです。

Slack

  1. Slack APIでアプリを作成
  2. Scopeを設定
  3. アプリをワークスペースにインストール
  4. アプリをチャンネルに追加

FlutterFlow

  1. API Call作成
  2. Headersを追加
  3. Variablesを作成
  4. Bodyを作成
  5. Actionを追加

まずは、Slackの設定をします!

Slack APIでアプリを作成

下記のリンクからSlack APIを開き、Create New Appをクリック!

Slack API: Applications | Slack

From scratchを選択。

App Nameを入力、ワークスペースを選択し、アプリを作成。

Scopeを設定

OAuth & Permissionを選択。

下にスクロールし、Bot Token ScopesのAdd an OAuth Scopeをクリック。

Chat Writeを選択。

User Token Scopesも同様に設定。

App homeを開き、App Display NameのEditをクリック。

App Display Nameを設定

アプリをワークスペースにインストール

Install to Workspaceをクリック。

アプリをチャンネルに追加

追加したいチャンネルのメンバーを表示し、インテグレーションからアプリを追加。

以上でSlackでの設定は完了です!
次は、FlutterFlowでの設定を見ていきます。

API Call作成

API CallsのAddをクリックし、Create API Callを選択。

API Call Name を入力。Method TypeはPOSTを選択。API URLはhttps://slack.com/api/chat.postMessageと設定。

Slackの他のAPI URLはhttps://api.slack.com/methods?filter=chatから確認できます!

Headerを追加

Add Headerをクリック

モザイク部分には、さっき作成したBot User OAuth Tokenを入力します。

Variablesを作成

VariablesでSlackに渡したい変数を作成します。

Bodyを作成

Bodyの形式はJSONを選択。

必要なArgumentsが指定されているので、それに合わせてBodyを入力しています!

Actionを追加

申請Buttonを押すとSlackに投稿されるようにします。

ActionはBackend/Database→API Callから作成したAPI Callを選択します。

これで、FlutterFlowとSlackの連携が完了しました!

まとめ

今回は経費申請を作成し、Googleログイン、API Callを学びました。

API Callを学んだことでかなり実用性のあるアプリを作成することができそうです!

今回の記事では紹介しなかった部分でCustom Action・Custom Functionを使って実装した箇所があるので、次回はCustom Action・Custom Functionを紹介します。

株式会社GenAiについて

株式会社GenAiは、新規事業としてのアプリケーション開発(MVP開発)を最速で実現することで、日本の様々な企業の挑戦を支えているITコンサルのスタートアップです。

ローコードツールや生成AIなどの新規技術を積極的に取り入れた開発スタイルで、少数でも最速の価値提供を実現しています。 現在GenAiでは、一緒にチャレンジしたいエンジニア志望の方を募集しています!

ご興味ある方はまずはカジュアルにお話ししてみませんか?以下からご応募お待ちしております!

ポテンシャル採用 | アプリ制作をサポートいただける開発エンジニアを募集! - 株式会社GenAiのシステムエンジニアの採用 - Wantedly
▍業務内容 ・アプリ制作 ・アプリ開発の案件サポート ▍必須条件 ・何らかのWEB言語を理解できる方 ・アプリ開発に興味がある方 ・3ヶ月...

コメント

タイトルとURLをコピーしました