Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bernardjezua/kamisato-records
Kamisato Records: A Mini Slam Book App Design Using Flutter
https://github.com/bernardjezua/kamisato-records
dart flutter genshin-impact mobile-app slambook
Last synced: 2 months ago
JSON representation
Kamisato Records: A Mini Slam Book App Design Using Flutter
- Host: GitHub
- URL: https://github.com/bernardjezua/kamisato-records
- Owner: bernardjezua
- Created: 2024-07-26T20:47:54.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-26T21:41:40.000Z (6 months ago)
- Last Synced: 2024-10-12T02:44:46.691Z (3 months ago)
- Topics: dart, flutter, genshin-impact, mobile-app, slambook
- Language: Dart
- Homepage:
- Size: 34.8 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kamisato Records
## Code Description
![Startup Screen](docs/startup.png)
This Flutter application is a slambook application that allows users to add and view details of their friends. I revolved around the theme of Genshin Impact, which is similar to my previous exercise. The application uses Flutter's `Navigator` for the backend routing and navigation, and `ThemeData` for frontend styling of UI elements (primaryColor, scaffoldBackgroundColor, textTheme, appBarTheme, and inputDecorationTheme).
## Features
1. **Style Experimentation**: From the previous exercise, I decided to try out a light blue colored theme for the entire UI. Most containers, buttons, and columns have adjusted styles like rounded corners, centered icons, and text.
2. **Custom Font Integration**: I imported the Lexend font using the Google Fonts package to replace the default font (Flutter.dev, 2024).
3. **RegEx & Catching Same Names**: Implemented a RegEx checker for _whitespace only cases_ `(e.g. " ")` of Names and Nicknames and catch for submitting forms that have the same name already. It can be assumed that one person cannot have the same name.
4. **Dynamic List Generation**: I utilized the `ListView.builder` to dynamically generate the current list of friends.
5. **Friend Summary Screen**: Created a `FriendSummary` stateless widget to display detailed information about a selected friend.
6. **Backend Routing**: Added navigations and centered its `Navigator.pushNamed` functions around the `DrawerWidget` in `drawer.dart`. The `SlamBookForm` is responsible for adding friends using `widget.friendsList.add`.### Routing Layout
![Routing Layout](docs/routing.png)
### How to Run Code
- Open Command Prompt or Windows Powershell.
- Navigate to the project directory.
- Run the following lines:
```sh
cd kamisato
flutter emulator --launch "Pixel_API"
flutter run
```### Sample Run
## References
- Dalwadi, D. (2022, June 24). Flutter Navigation Guide - Push(), Pop() with all required method variants. Medium. https://darshan-dalwadi.medium.com/flutter-navigation-guide-62edb5ab04ec
- GeeksforGeeks. (2020, June 2). Routes and Navigator in Flutter. GeeksforGeeks. https://www.geeksforgeeks.org/routes-and-navigator-in-flutter/
- Google for Developers. (2023). Python Regular Expressions. https://developers.google.com/edu/python/regular-expressions
- Kumar, A. (2024, March 19). Resolving the “type ‘Null’ is not a subtype of type ‘String’” Error in Flutter. DevOps Support. https://www.devopssupport.in/blog/1834-2/
- Ntu.edu.sg. (2018). Regular Expression (Regex) Tutorial. https://www3.ntu.edu.sg/home/ehchua/programming/howto/Regexe.html
- Soni, S. (2021, November 3). How to use custom fonts in Flutter. LogRocket Blog. https://blog.logrocket.com/use-custom-fonts-flutter/