60
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KBOYのFlutter大学Advent Calendar 2020

Day 17

Flutter大学専用アプリの技術構成

Last updated at Posted at 2020-12-17

こんにちはKBOYです。Flutter大学というFlutter入門のためのYouTubeと、質問サポートや共同開発のためのFlutter大学コミュニティを運営しています。

2020年の7-9月に、Flutter大学コミュニティの人たち共同でサロン専用アプリの開発を行いました!

スクリーンショット 2020-12-17 12.17.01.png

Contributorsのところを見るとわかると思いますが、ここまで27人の方がコントリビュートしてくれました。

ということで今回は、このアプリの技術構成を紹介したいと思います。

全体構成

スクリーンショット 2020-12-17 12.32.28.png

こんな感じで、アプリケーションとしては、大きく3つあります。

  • 入会Web
  • 管理画面
  • サロン生用iOS/Androidアプリ

もちろん、Flutter大学ですので、全部Flutterで作られています。
入会Webと管理画面はFlutter Webです。そしてネイティブアプリももちろんFlutter。

ちなみにGithubのリポジトリとしてはfunctionsもあるので4つです。

  • flutteruniv/salon_app
  • flutteruniv/salon_app_web
  • flutteruniv/salon_admin_web
  • flutteruniv/salon_functions

僕もFlutter Webを仕事で使ったことはなかったので、かなり可能性を感じるいい機会でした。この開発で手応えを掴み、合同会社KBOYとして現在はFlutterWebでWebアプリを開発しています。

では、それぞれのアプリで使っている技術について紹介していきます。

入会Web

https://kboyflutteruniv.com のLPはワードプレスなのですが、赤い「サロンに入会する」ボタンを押したところからはFlutter Webで作られた入会Webに遷移します。

スクリーンショット 2020-12-17 12.40.35.png

「サロンに入会する」を押すと、以下のような画面になります。

スクリーンショット 2020-12-17 12.44.00.png

パスワードを作成し、メールアドレスの確認をFirebase Authの機能で行います。
正しく確認ができたら、決済画面にいきます。

↓この決済で使っているのは、Stripe Checkoutという機能です。クレジットカード決済のUIを簡単に実装できる便利な機能です。ただ、この画面に遷移させるために、JSのコードを実行するくらいの知識は必要なので、非エンジニアだと実装はキツイかもです。

スクリーンショット 2020-12-17 12.46.30.png

決済が完了したら、

  • Firebase ExtensionsのTrigger Emailを使ってSlackの招待リンクを載せたメールをsendGridで送信
  • GithubAPIをfirebase Functionsから叩いてGithubグループに招待

の2つを行っています。

また、この時点で、サロン生アプリに最初設定したメアドとパスワードでログインが可能になります。

管理画面

↓は開発版の画面です。ダッシュボードでメンバー数やプランの参加者、また、お知らせに追加すると、サロン生アプリにプッシュ通知を打つことができます。

スクリーンショット 2020-12-17 12.56.06.png

この管理画面もFlutter Webなのですが、いくつかのライブラリを使っています。

https://pub.dev/packages/flutter_admin_scaffold
https://pub.dev/packages/flutter_web_router

などなど。

ちなみに、このライブラリはサロン生の susatthiさんが、この管理画面を作る過程でライブラリ化したものです。

ちなみにsusatthiはガチでこの管理画面を作ってくれていて、この開発リポジトリは自動デプロイなども実装されてます。普通に使いやすいし、Flutter Webの勉強にもなる、ナイスプロジェクトです。

readmeの一部↓↓

スクリーンショット 2020-12-17 13.04.35.png

その辺の商用アプリより全然ガチですよね笑

サロン生アプリ

最後に、サロン生アプリを紹介します。共同開発においてほとんどの人はこのアプリ開発に参加しました。

iOS版:https://apps.apple.com/jp/app/id1532391360
Android版:https://play.google.com/store/apps/details?id=jp.kboy.kboyflutteruniv

限定動画を見たり、サロン生一覧を見れたりします。メンバーズマップはなんとなくどこにメンバーがいるか把握できるので、オフ会を開催したいと思った時に便利かなと思います。(東北に人がいないので東北オフ会はしないなどw)

image.png IMG_5961.PNG IMG_5962.PNG

また、このアプリ上でプランの変更や、支払い方法の変更なども可能です。現在は、タイムライン機能を実装中。サロン生の交流を促すようなアプリになったらいいなと思っています。

使っている技術としては、

  • VimeoAPIの利用
  • GoogleMapAPIの利用
  • 基本的なFirebaseAuth, Storage, Firestoreの利用
  • Cloud Functionsに問い合わせてtokenを取得しStripeのカスタマーポータルを表示

などです。

まとめ

以上。今回はFlutter大学のオンラインサロンアプリの凄さをみなさんに知ってもらおうと思い、記事にしてみました。

現在は、Flutter大学以外にも

  • レシピアプリ
  • 音楽再生アプリ
  • 音声マッチングアプリ
  • 体重管理アプリ
  • 位置情報アプリ
  • Flutter勉強アプリ
  • SNSアプリ

などなどの共同開発プロジェクトが走っていて、12月20日に発表会をする予定です。もちろん、順調に進むところもあれば、苦戦しているところもあります。まあ仕事でも共同開発なんて上手くいきませんから難しいですよね。。w

もしアプリが完成しなかったとしても、オンラインサロンで共同開発を経験してもらって、その難しさ、達成した時の嬉しさなどを体感してもらえたら、嬉しいなと思います。

Flutter大学
https://flutteruniv.com

60
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?