{"id":20331437,"url":"https://github.com/gracefullight/flutter-study","last_synced_at":"2025-10-07T13:22:10.632Z","repository":{"id":83204088,"uuid":"318982427","full_name":"gracefullight/flutter-study","owner":"gracefullight","description":"How to create flutter app?","archived":false,"fork":false,"pushed_at":"2020-12-26T17:09:46.000Z","size":110,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-04T12:32:39.046Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gracefullight.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-06T08:06:25.000Z","updated_at":"2023-03-08T13:21:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"ad0c6a8d-3aa9-4617-a752-caa843c4dd69","html_url":"https://github.com/gracefullight/flutter-study","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gracefullight/flutter-study","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gracefullight%2Fflutter-study","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gracefullight%2Fflutter-study/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gracefullight%2Fflutter-study/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gracefullight%2Fflutter-study/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gracefullight","download_url":"https://codeload.github.com/gracefullight/flutter-study/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gracefullight%2Fflutter-study/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278780957,"owners_count":26044646,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-14T20:20:12.240Z","updated_at":"2025-10-07T13:22:10.627Z","avatar_url":"https://github.com/gracefullight.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter-study\n\n```bash\nflutter doctor # 설치 제대로 되었는지 확인\nflutter run # emultator 내 앱 실행\n```\n\n## pros\n\n- 공식 문서가 잘 되어있음\n- VSCode 로 개발 가능\n- `setState`\n- `material` 내장\n- 내장 포매터\n\n## cons\n\n- `private` keyword 없음\n  \u003e Unlike Java, Dart doesn’t have the keywords public, protected, and private. If an identifier starts with an underscore (\\_), it’s private to its library. For details, see Libraries and visibility.\n- `no-new` [flutter/flutter#25924](https://github.com/flutter/flutter/issues/25924)\n  \u003e The new keyword became optional in Dart 2.\n- `'===' operator is not supported` `==` 로만 사용, 구조체 비교시 `identical` 사용\n  \u003e In general, consider carefully whether overriding operator == is a good idea. It can be expensive, especially if the properties it compares are themselves comparable with a custom operator ==. If you do override equality, you should use @immutable on the class hierarchy in question.\n- 생성자를 `const` 로 선언 시에 레퍼런스를 공유함\n- `..` [Cascade notation](https://dart.dev/guides/language/language-tour#cascade-notation-)\n  ```dart\n  // 인스턴스의 setter 를 바로 호출\n  final Paint paint = Paint()\n    ..isAntiAlias = true\n    ..strokeWidth = 10.0\n    ..color = Colors.blue[500]\n    ..style = PaintingStyle.stroke;\n  ```\n- 문법이 낯설음, Java + JS 느낌인데 TS 처럼 Strict 하지는 않은 느낌 (변경될 수 있음)\n  ```dart\n  setState(() { }); // 화살표?\n  _value = 'Change: $value'; // single quote 템플릿?\n  // 생성자\n  class Dummy {\n    final String data;\n    Dummy({this.data});\n  }\n  ```\n\n## questions\n\n- native 와의 접점에서 RN 대비 사용성이 있는가?\n\n## ref\n\n- https://github.com/Solido/awesome-flutter\n- https://medium.com/flutter\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgracefullight%2Fflutter-study","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgracefullight%2Fflutter-study","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgracefullight%2Fflutter-study/lists"}