見出し画像

Flutterを用いた飲食店レビューアプリの製作日記〜10日目とこれからの方針〜

前回まで

ロゴを作成
開発環境を構築
ログイン認証ページを作成
スプラッシュ画面を作成
レビュー投稿画面,お店登録画面を作成
お店の情報とレビューを見ることのできる画面を作成
マップを表示する
地図を長押しでレストラン投稿画面に遷移するようにした
位置情報をFirestoreに保存した
Googlemapを長押しでマーカーを配置,モーダルボトムシートを表示
登録されたマーカーをマップ上に配置

10日目

最低限の機能の実装完了
前回言っていた、マーカーをタップすることでお店の詳細ページに移動する機能が実装できました。

Marker marker = Marker(
                   markerId: MarkerId(doc.id),
                   position: LatLng(pos.latitude, pos.longitude),
                   infoWindow: InfoWindow(
                       title: doc['name'], snippet: doc['category']),
                   onTap: () {
                     Navigator.of(context).push(
                       MaterialPageRoute(builder: (context) {
                         return RestaurantDetailPage(doc, widget.user);
                       }),
                     );
                   },
               );

onTap:(){ 処理 }とすることで、googlemap上に表示されたマーカーをタップしたときの動作を記述することができました。これでとりあえず最低限の機能の実装はおわりました。

次に、アプリの実際に使ってもらい意見を友人からもらいました。

・お店に駐車場があるかないかなどの情報が欲しい
→入力フォームを増やし、データベースに追加すれば問題ないので実装可能

・お店の支払い方法の情報が欲しい
入力フォームを増やせばいけるが、現在は各種QRコード決済などもありすべてを網羅しするのは難しいので、使用頻度の高いクレジットカード、PayP〇y、L〇NEPayから選択することで対応

・検索機能の実装、できれば価格帯で検索できる機能が欲しい
検索機能は実装するのでその際に実装しようと思っています。

自分が思う現段階の問題

UIがわかりにくい
現段階だと操作方法がわかりにくい。例えば、マップをタップしてマーカーを追加してお店を登録するなど

データベースの読み取り回数
現状では登録されているお店が十数件なので問題はないですが、今後お店のデータが増えてくると読み取りに時間がかかるのと、読み取り回数上限に達してしまう問題が出てきます。

セキュリティ
現状セキュリティが低い。入力されたレビューをそのまま保存しているのでXSSとか問題になりそう

コードが汚い
なんというかコードが汚い。多分FlutterやDartに関しての知識が浅く、簡単に実装できる処理を遠回りにな方法で実装してそう、あと必要のない処理を書いてそう。しっかりとFlutterとDartに関しての知識を身に着ける必要がありそう

これからの方針

UIを見直しつつ、コードを修正していきたいと思います。開発速度は落ちますが、じっくりと進めていこうと思います。新機能の実装はそれ以降にします!

追記

一部使用しているものがFlutter webでは動作をサポートしていないものがあることで現在はweb版をRuby on Rails で作り直しています