{"id":25826511,"url":"https://github.com/rlarjsdn3/uikit-demo-projects","last_synced_at":"2025-02-28T15:34:58.888Z","repository":{"id":271976180,"uuid":"914893380","full_name":"rlarjsdn3/UIKit-Demo-Projects","owner":"rlarjsdn3","description":"⚪️UIKit의 다양한 기능과 기술을 실험하고 학습하기 위한 자잘한 데모 프로젝트 모음집","archived":false,"fork":false,"pushed_at":"2025-02-23T03:32:38.000Z","size":9551,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T04:23:48.218Z","etag":null,"topics":["mini-projects","swift","uikit"],"latest_commit_sha":null,"homepage":"","language":"Swift","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/rlarjsdn3.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":"2025-01-10T14:24:48.000Z","updated_at":"2025-02-23T03:32:42.000Z","dependencies_parsed_at":"2025-02-23T04:23:55.087Z","dependency_job_id":"f1abfb96-266d-4c81-a479-9d7827997431","html_url":"https://github.com/rlarjsdn3/UIKit-Demo-Projects","commit_stats":null,"previous_names":["rlarjsdn3/guess-the-pet-ios","rlarjsdn3/uikit-demos","rlarjsdn3/uikit-demo-projects"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlarjsdn3%2FUIKit-Demo-Projects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlarjsdn3%2FUIKit-Demo-Projects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlarjsdn3%2FUIKit-Demo-Projects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlarjsdn3%2FUIKit-Demo-Projects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rlarjsdn3","download_url":"https://codeload.github.com/rlarjsdn3/UIKit-Demo-Projects/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241175903,"owners_count":19922604,"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":["mini-projects","swift","uikit"],"created_at":"2025-02-28T15:34:58.117Z","updated_at":"2025-02-28T15:34:58.878Z","avatar_url":"https://github.com/rlarjsdn3.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UIKit Demos\n\nUIKit의 다양한 기능과 기술을 실험하고 학습하기 위한 자잘한 데모 프로젝트 모음집입니다.\n각 프로젝트는 특정 주제나 기능을 중심으로 구현되었습니다. 프로젝트 정보는 순서대로 서술되어 있으며, 주요 내용과 특징은 다음과 같습니다:\n\n\n* **[PlaceBook](/01-PlaceBook/PlaceBook)** : 이 프로젝트는 `UIViewControllerAnimatedTransitioning`과 `UIViewControllerTransitioningDelegate`를 활용하여 _커스텀 전환 애니메이션(Custom Transition)_ 을 구현한 예제입니다. 컬렉션 뷰의 특정 이미지를 클릭하면, 상세 화면으로 전환될 때 이미지가 부드럽게 확대되며 커스텀 트랜지션 애니메이션이 실행됩니다.\n\n\u003cdetails\u003e\n\u003csummary\u003e자세히 보기\u003c/summary\u003e\n\n\u003c!-- summary 아래 한칸 공백 두어야함 --\u003e\n| GIF |\n| :--: |\n| ![Simulator Screen Recording - iPhone 16 Pro - 2025-01-14 at 22 43 27](https://github.com/user-attachments/assets/b4a2c312-d5b8-4c55-8a37-f1be1733b346) |\n\n\u003c/details\u003e\n\n\n* **[FlowCoordinator](/02-FlowCoordinator/FlowCoordinator)** : 이 프로젝트는 `FlowCoordinator`를 활용하여 화면 전환을 구현한 예제입니다. `FlowCoordinator`는 뷰 컨트롤러 생성 및 의존성 주입을 담당하는 `ViewControllerFactory`, 코디네이터 생성을 담당하는 `CoordinatorFactory`, 그리고 화면 간 전환을 담당하는 `Router`로 구성되어 있습니다. 이 구조를 통해 뷰 컨트롤러의 화면 전환 로직이 분리되었으며, 결과적으로 코드가 더욱 깔끔하고 재사용성이 높아졌습니다. (참고: [How to implement flow coordinator pattern](https://pavlepesic.medium.com/flow-coordination-pattern-5eb60cd220d5)\n\n\u003cdetails\u003e\n\u003csummary\u003e자세히 보기\u003c/summary\u003e\n\n\u003c!-- summary 아래 한칸 공백 두어야함 --\u003e\n![무제 001](https://github.com/user-attachments/assets/98af3eec-ceed-48cd-9317-61a224f8c38a)\n\n\u003c/details\u003e\n\n\n\n* **[RangeSlider](/03-RangeSlider/RangeSlider)** : 이 프로젝트는 `UIControl`을 서브클래싱하여 `RangeSlider`를 컨트롤을 구현한 예제입니다.  (참고: [How To Make a Custom Control Tutorial: A Reusable Slider](https://www.kodeco.com/7595-how-to-make-a-custom-control-tutorial-a-reusable-slider)\n\n\u003cdetails\u003e\n\u003csummary\u003e자세히 보기\u003c/summary\u003e\n\n\u003c!-- summary 아래 한칸 공백 두어야함 --\u003e\n![무제 001](https://github.com/user-attachments/assets/98af3eec-ceed-48cd-9317-61a224f8c38a)\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frlarjsdn3%2Fuikit-demo-projects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frlarjsdn3%2Fuikit-demo-projects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frlarjsdn3%2Fuikit-demo-projects/lists"}