{"id":28812336,"url":"https://github.com/tpdlshdmlrkfmcla/stop-watch","last_synced_at":"2026-05-03T06:38:04.437Z","repository":{"id":138423037,"uuid":"586151224","full_name":"tpdlshdmlrkfmcla/Stop-Watch","owner":"tpdlshdmlrkfmcla","description":"Flutter 기반의 StopWatch(스톱워치) 앱 개발 프로젝트","archived":false,"fork":false,"pushed_at":"2023-01-08T03:49:10.000Z","size":323,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-24T23:37:25.074Z","etag":null,"topics":["android","flutterappli","stopwatch"],"latest_commit_sha":null,"homepage":"","language":"C++","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/tpdlshdmlrkfmcla.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}},"created_at":"2023-01-07T05:32:36.000Z","updated_at":"2024-09-04T00:23:48.000Z","dependencies_parsed_at":"2023-08-20T14:07:15.879Z","dependency_job_id":null,"html_url":"https://github.com/tpdlshdmlrkfmcla/Stop-Watch","commit_stats":null,"previous_names":["wonttan/stop-watch","wonchihyeon/stop-watch","chihyunwon/stop-watch","mr-won/stop-watch","chihyeonwon/stop-watch","user20252228/stop-watch","tpdlshdmlrkfmcla/stop-watch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tpdlshdmlrkfmcla/Stop-Watch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpdlshdmlrkfmcla%2FStop-Watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpdlshdmlrkfmcla%2FStop-Watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpdlshdmlrkfmcla%2FStop-Watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpdlshdmlrkfmcla%2FStop-Watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tpdlshdmlrkfmcla","download_url":"https://codeload.github.com/tpdlshdmlrkfmcla/Stop-Watch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpdlshdmlrkfmcla%2FStop-Watch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32560906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["android","flutterappli","stopwatch"],"created_at":"2025-06-18T14:40:20.896Z","updated_at":"2026-05-03T06:38:04.407Z","avatar_url":"https://github.com/tpdlshdmlrkfmcla.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stopwatch\n```\n개발 툴 : Flutter\n개발 언어 : Dart\n개발 일시 : 2023-01-07 ~ 2023-01-08\n개발자 : Won Chi Hyeon\n```\n\n### 앱소개\n```\n앱 이름 : StopWatch\n앱 기능 : 타이머를 시작, 일시정지하고 초기화할 수 있습니다.\n          타이머 실행 중에 랩타임을 측정하여 표시합니다.\n          표시된 랩타임은 위, 아래로 스크롤하여 확인할 수 있습니다.\n핵심 구성 요소 : Timer : 일정 시간 간격으로 지정한 동작을 수행하게 하는 클래스\n```\n![image](https://user-images.githubusercontent.com/58906858/211179600-e25aafa3-9166-4830-a524-8ad477b58b46.png)\n\n### 화면 구성\n```\n스톱워치는 화면이 하나인 앱입니다.\n화면에 표시되는 시간은 계속 변화하기 때문에 상태가 있는 StatefulWidget으로 구성하였습니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211133203-5ea38b67-57e4-454a-880d-9be4dce7ec9e.png)\n\n#### 화면 하단 AppBar 생성\n```\n높이 50의 하단 AppBar를 생성하였습니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211133368-0566cc82-58da-4601-b662-3ca8b1b72b10.png)\n\n#### 시작 또는 일시정지 클릭 버튼 생성\n```\n시작 또는 일시정지 클릭 버튼을 floatingActionButton을 생성하였습니다.\n클릭했을 때 작동하는 이벤트 메서드는 나중에 작성합니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211133428-498bc578-b04b-4e16-af8f-e91e71e62bdc.png)\n\n#### 버튼의 위치를 가운데로 설정\n```\n시작 또는 일시정지 클릭 버튼을 floatingActionButtonLocation 프로퍼티를 사용해서 위젯의 위치를 가운데로 지정합니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211133524-638a18b8-d852-4a23-ac75-7353742c1f7b.png)\n\n#### 스톱워치의 시간 영역 생성\n```\n스톱워치의 시간이 들어가는 영역을 생성하였습니다.\n초 단위의 시간과 1/100 초 단위의 시간을 표시합니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211177707-49129dda-329d-4218-b1d9-0519d693f3c1.png)\n\n#### 랩타임을 표시하는 영역 생성\n```\n시간 영역 바로 밑에 랩타임을 표시하는 영역을 생성하였습니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211177798-c3d82304-ded3-4c46-8581-234302ffdf0e.png)\n\n#### 초기화 버튼 생성\n```\n스톱워치의 시간을 0초 00 으로 초기화하는 버튼을 왼쪽 아래에 생성하였습니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211177935-c1991726-fc76-4649-aa9e-42c36286dbb8.png)\n\n#### 랩타임 버튼 생성\n```\n눌렀을 때 랩타임을 생성하는 버튼을 오른쪽 아래에 생성하였습니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211178008-49e3fdbf-9565-4b23-9000-0b5d82813f32.png)\n\n#### 타이머 클래스의 사용과 필요한 변수, 메서드 정의\n```\n타이머 클래스를 사용하기 위해 'dark:sync' 패키지를 임포트하였습니다.\n또 시작/일시정지 버튼의 상태 변환 로직과 동작 로직을 작성하였습니다.\n불리언 타입의 _isRunning 변수의 상태에 따라 아이콘이 달라지도록 작성하였습니다.\n_isRunning이 동작 중 즉 true일 때 1/100초에 한 번씩 time 변수를 1 증가시키면서 pause 아이콘이 나타나도록 하고\n_isRunning이 일시정지 즉 false일 때 타이머를 취소시키면서 play_arrow 아이콘이 나타나도록 설정하였습니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211178904-0fc279dd-7117-4111-aa99-1d37c2166078.png)\n\n#### 시간 표시\n```\n동작 버튼을 눌렀을 때 작성한 _start() 메서드가 작동하여 시간이 바뀌도록 수정하였습니다.\n일시정지 버튼을 눌렀을 때 작성한 _pause() 메서드가 작동하여 타이머가 멈추도록 수정하였습니다.\n큰 숫자는 경과한 시간을 1/100초 단위의 시간을 100으로 다시 나눈 몫을 나타내고 작은 글씨는 1/100초 단위의 시간을 나타냅니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211179171-36a657ca-cc08-468f-b8f3-61f505cdc993.png)\n\n#### 타이머 초기화\n```\n타이머를 취소시키고, 랩타임과 _isRunning의 상태를 초기화하는 _reset 메서드를 작성한 후 \n초기화 버튼의 onPressed 프로퍼티에 적용하였습니다.\n초기화 버튼을 누르게 되면 타이머가 즉시 종료되며 시간은 0으로 초기화되며 동작 아이콘으로 변경됩니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211179320-976c7280-a676-434c-8653-e3e1e5d3ef81.png)\n\n#### 랩타임 기록\n```\n랩타임 버튼을 누르면 실행되는 _recordLapTime() 메서드를 작성합니다.\n랩타임 버튼을 눌렀을 때 현재의 초와 1/100 단위의 초를 넘겨받아서 ~등 시간의 형태로 나타나도록 설정합니다.\n```\n![image](https://user-images.githubusercontent.com/58906858/211179523-fb6daebd-aae6-4cfd-82b9-5793670841a3.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpdlshdmlrkfmcla%2Fstop-watch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftpdlshdmlrkfmcla%2Fstop-watch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpdlshdmlrkfmcla%2Fstop-watch/lists"}