{"id":26440085,"url":"https://github.com/samedhrmn/flutter-works","last_synced_at":"2025-03-18T09:19:23.922Z","repository":{"id":48855256,"uuid":"291344429","full_name":"SamedHrmn/flutter-works","owner":"SamedHrmn","description":"This repo contains my personal Flutter practices.","archived":false,"fork":false,"pushed_at":"2021-09-18T20:02:12.000Z","size":48921,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-12T07:38:15.354Z","etag":null,"topics":["firebase","flutter","mvvm","provider","tensorflowlite"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SamedHrmn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-29T20:30:08.000Z","updated_at":"2023-12-24T20:14:34.000Z","dependencies_parsed_at":"2022-09-03T15:10:07.065Z","dependency_job_id":null,"html_url":"https://github.com/SamedHrmn/flutter-works","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamedHrmn%2Fflutter-works","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamedHrmn%2Fflutter-works/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamedHrmn%2Fflutter-works/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamedHrmn%2Fflutter-works/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SamedHrmn","download_url":"https://codeload.github.com/SamedHrmn/flutter-works/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244189807,"owners_count":20412991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","flutter","mvvm","provider","tensorflowlite"],"created_at":"2025-03-18T09:19:23.372Z","updated_at":"2025-03-18T09:19:23.900Z","avatar_url":"https://github.com/SamedHrmn.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter-works\n##### This repo contains my personal Flutter practices. Projects and contents are as follows: \u003cbr\u003e\n* \u003ch3\u003e firebase-work\u003c/h3\u003e This project created for practicing firebase firestore crud operations with Provider state management. I used MVVM architecture simply. File structures as following:\n\u003cpre\u003e\n     lib--                                        App Features:\n         |                                            - Sign In,Sign Up Firebase\n         |__model                                     - CRUD operations for mottos.\n                |__motto_model.dart\n         |__repository                            \n                |__my_respository.dart\n         |__service\n                |__firebase_auth.service.dart\n                |__firestore_service.dart\n         |__utils\n                |__locator.dart\n         |__view\n                |__home_page.dart\n                |__login_page.dart\n                |__register_page.dart\n                |__router_page.dart\n         |__view_model\n                |__motto_view_model.dart\n         form_screen.dart\n         main.dart\n\u003c/pre\u003e\u003cbr\u003e\n* \u003ch3\u003e flask-connection\u003c/h3\u003e This project occurs of two parts. Part one as flask_api converting a rgb image into black-white format and return as a respone. And part wo as flutter_client show this responses. For example:\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003cimg src=https://user-images.githubusercontent.com/60006881/124906606-e8bfe500-dfef-11eb-8edf-72daee16b793.png width=300\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003cimg src=https://user-images.githubusercontent.com/60006881/124907805-4143b200-dff1-11eb-9ead-3f40e9f67fcc.png width=300\u003e\u003cbr\u003e\n\n* \u003ch3\u003efood_app_design\u003c/h3\u003e This project created for Flutter design practicing. I used *curved_navigation_bar* and *carousel_slider* package.\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003cimg src=\"https://user-images.githubusercontent.com/60006881/117586861-8c416600-b123-11eb-810d-3acba12aa261.png\" width=\"300px\"\u003e\u003c/img\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003cimg src=\"https://user-images.githubusercontent.com/60006881/117586873-9b281880-b123-11eb-8e3f-5bb449917dc7.png\" width=\"300px\"\u003e\u003cbr\u003e\n\n* \u003ch3\u003egeneric_http_model_basic\u003c/h3\u003e This project implements generic type model for http responses. For requests I used jsonplaceholder service. File structures as following:\n\u003cpre\u003e\n     lib--                                        \n         |                                            \n         |__model                                  \n                |__base_model.dart\n                |__post_model.dart\n                |__user_model.dart\n         |__service\n                |__base_service.dart\n                |__jsonplaceholder_service.dart\n         |__view\n                |__jsonplaceholder_view.dart\n         |__view_model\n                |__jsonplaceholder_viewmodel.dart\n         main.dart\n\u003c/pre\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Generic models handled by IBaseModel and IBaseService class.\n\n```dart\nabstract class IBaseService {\n    Future\u003cdynamic\u003e get\u003cT extends IBaseModel\u003e({String path, IBaseModel model});\n}\n\nabstract class IBaseModel\u003cT\u003e {\n    Map\u003cString, Object\u003e toJson();\n    T fromJson(Map\u003cString, Object\u003e json);\n}\n```\n\u003cbr\u003e\n\n* \u003ch3\u003emethod_channel_notification\u003c/h3\u003e This project use method channel and access native kotlin code for show in app notification. Flutter method channel requests handled by this code below side of Kotlin,\n ```kotlin\nprivate val CHANNEL = \"notification\"\nMethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result -\u003e\n        if (call.method == \"showNotification\") {\n            showNotification()\n            result.success(\"Service is started !\")\n        }\n        if(call.method == \"removeNotification\"){\n            removeNotification()\n            result.success(\"Notification removed !\")\n        }\n    }\n}\n ```\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;In Flutter side we created MethodChannel instance and invoke methods that must be written.showNotification and \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;removeNotification must be implemented in native side.\n ```dart\n showNotification() async {\n  var response =\n      await MyHome.platformChannel.invokeMethod('showNotification');\n  setState(() {\n    _response = response;\n  });\n}\n\nremoveNotification() async {\n  var response =\n      await MyHome.platformChannel.invokeMethod('removeNotification');\n  setState(() {\n    _response = response;\n  });\n}\n```\n\u003cbr\u003e\n\n* \u003ch3\u003epose_detection\u003c/h3\u003e This project detect some body parts and apply a bunny filter for head via use PoseNet model. *tflite* and *camera* plugin was used for this. Model loading code section is like this below,\n```dart\nloadModel() async {\n    String model = await Tflite.loadModel(model: AssetConstants.POSE_MODEL_TFLITE);\n    setState(() {\n      _model = model;\n    });\n  }\n```\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cimg src=https://user-images.githubusercontent.com/60006881/124915178-eb273c80-dff9-11eb-8308-ec2bc4a4a1d0.png width=300\u003e\u003cbr\u003e\n\n* \u003ch3\u003evokal_baglama_detection_tflite\u003c/h3\u003e This project detect my vocal sound and my baglama instrument sound. A custom .tflite model created via Google Teachable Machine was used for this project.\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cimg src=https://user-images.githubusercontent.com/60006881/124917778-e87a1680-dffc-11eb-80fc-b0320e7ef38a.png width=70%\u003e\u003cbr\u003e\n\n* \u003ch3\u003eweather_bloc\u003c/h3\u003e This project was created from https://bloclibrary.dev/#/flutterweathertutorial tutorial. Weather app , it was used https://www.metaweather.com for weather data. File structures as following:\n\u003cpre\u003e\n     lib--                                        App Features:\n         |                                            - BloC state management\n         |__models                                    - Refresh view and fetch api data\n                |__weather_model.dart                 - Dynamic theme\n         |__repositories                           \n                |_weather_api_client.dart\n                |_weather_repository.dart\n         |__view\n                |__city_selection_screen.dart\n                |__weather_screen.dart\n         |__viewmodels\\blocs\n                |__theme_bloc\n                        |__theme_bloc.dart\n                        |__theme_event.dart\n                        |__theme_state.dart\n                |__weather_bloc\n                        |__weather_bloc.dart\n                        |__weather_state.dart\n                        |__weather_event.dart\n         |__widgets\n                |__combined_weather_temperature.dart\n                |__gradient_container_widget.dart\n                |__last_updated_widget.dart\n                |__location_widget.dart.dart\n                |__temperature_widget.dart\n                |__weather_condition_widget.dart\n         main.dart\n\u003c/pre\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003cimg src=\"https://user-images.githubusercontent.com/60006881/124932357-ad331400-e00b-11eb-9e2e-0e7ff4d1dab3.png\" width=\"300px\"\u003e\u003c/img\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003cimg src=\"https://user-images.githubusercontent.com/60006881/124932566-dce21c00-e00b-11eb-85fe-930cd54b7e32.png\" width=\"300px\"\u003e\u003cbr\u003e\n\n\n\u003ch2\u003eLicence\u003c/h2\u003e\nMIT License\n\nCopyright (c) 2021 SamedHrmn\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamedhrmn%2Fflutter-works","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamedhrmn%2Fflutter-works","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamedhrmn%2Fflutter-works/lists"}