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 で作り直しています