{"id":34767964,"url":"https://github.com/yoonah-dev/swift-labroom-for-duna","last_synced_at":"2026-05-21T21:09:48.628Z","repository":{"id":39487137,"uuid":"374489988","full_name":"YoonAh-dev/Swift-LabRoom-For-Duna","owner":"YoonAh-dev","description":"💐 듀나의 아요 본격 삽질 레포 💐","archived":false,"fork":false,"pushed_at":"2025-04-27T13:25:13.000Z","size":961,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-27T14:26:38.703Z","etag":null,"topics":["apple-documentation","examples","ios","swift"],"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/YoonAh-dev.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,"zenodo":null}},"created_at":"2021-06-07T00:12:33.000Z","updated_at":"2025-04-27T13:25:17.000Z","dependencies_parsed_at":"2025-04-27T14:34:19.076Z","dependency_job_id":null,"html_url":"https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YoonAh-dev/Swift-LabRoom-For-Duna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoonAh-dev%2FSwift-LabRoom-For-Duna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoonAh-dev%2FSwift-LabRoom-For-Duna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoonAh-dev%2FSwift-LabRoom-For-Duna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoonAh-dev%2FSwift-LabRoom-For-Duna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YoonAh-dev","download_url":"https://codeload.github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoonAh-dev%2FSwift-LabRoom-For-Duna/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33315138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"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":["apple-documentation","examples","ios","swift"],"created_at":"2025-12-25T07:47:10.836Z","updated_at":"2026-05-21T21:09:48.622Z","avatar_url":"https://github.com/YoonAh-dev.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Swift-LabRoom-For-Duna 🔮\n\n### Advanced Example\n| feature |date |link |description |\n|----|:---:|:----:|----|\n|Custom Photo Picker|21/06/18|[📷](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/PhotoPicker)| - Photos 라이브러리를 사용 \u003cbr/\u003e - PHImageManager를 통해 내가 직접 만든 collectionview에 사진 fetch\n|BSImagePicker Custom|21/06/21|[📷](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/BSPhotoPicker)| - [BSImagePicker](https://github.com/mikaoj/BSImagePicker) 라이브러리 사용 \u003cbr/\u003e - Library내에서 selectionView, button, backgroundColor등 custom\n|FSCalendar|21/06/21|[📅](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/CustomFSCanlendar)| - [FSCalendar](https://github.com/WenchaoD/FSCalendar) 커스텀 해보기 \u003cbr/\u003e - 커스텀에 한계가 존재(다양한 부분 커스텀)\n|Dragged-bottom Card Modal|21/08/01|[📃](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/DraggedModalTest)| - Present half Modal 커스텀 해보기\u003cbr/\u003e - 전체, 중간, 바텀에서 다 다른 Label를 띄우도록 함\u003cbr/\u003e\n|Typing Animation|21/08/07|[⌨️](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/TypingAnimationTest)| - 게임처럼 Typing되는 애니메이션 구현\u003cbr/\u003e - DispatchQueue 사용해서 구현 \u003cbr/\u003e\n|Local Notification|21/11/25|[🕰](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/LocalNotification)| - Local Notification 구현 앱 \u003cbr/\u003e - UserNotifications를 임포트해서 로컬알림 구현 \u003cbr/\u003e - [Example Page](https://onelife2live.tistory.com/33) \u003cbr/\u003e\n|ReSwift|21/12/03|[➡](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/Counting-ReSwift)| - [ReSwift](https://github.com/ReSwift/ReSwift) 라이브러리를 사용해서 단방향 데이터 흐름 구현 \u003cbr/\u003e - 버튼을 누르면 숫자가 올라가고 내려가는 간단한 앱 \u003cbr/\u003e - [ReSwift에서 제공해주는 CounterExample](https://github.com/ReSwift/CounterExample) \u003cbr/\u003e\n|Action-Extension-Shared|22/01/01|[🤲](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/Action-Extension-Shared)| - Share Extension를 사용해서 Main App에 사파리 URL관련 정보를 가져오기 \u003cbr/\u003e - group bundle Id를 사용해서 UserDefault를 AppGroup간에 가능하도록 구현 \u003cbr/\u003e - 내부 앱에서 링크를 누르면 SFSafariViewController를 통해서 이동\u003cbr/\u003e - 정보가 저장되었을 시 내부알림 전송\u003cbr/\u003e\n|CollectionView-SwipeAction|22/01/01|[🌈](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/CollectionView-SwipeAction)| - [Example Video](https://www.youtube.com/watch?v=FU89D_n6d5Y) \u003cbr/\u003e - [WWDC20 Modern Collection Views 설명 티스토리](https://shoveller.tistory.com/entry/WWDC20-Lists-in-UICollectionView) \u003cbr/\u003e - UICollectionLayoutListConfiguration를 사용해서 CollectionViewList를 구현 \u003cbr/\u003e - Section Snapshot를 사용해서 DataSource구현 \u003cbr/\u003e - List Configuration를 사용해서 Layout 구현 \u003cbr/\u003e - List Cell, View Configuration를 사용해서 Cell 구현 \u003cbr/\u003e - iOS 14.0부터 사용 가능 \n|NSCache-Example|22/06/25|[💾](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/NSCache-Example) | - NSCache를 저장해놓을 Singleton 클래스 준비 \u003cbr/\u003e - NSCache를 사용해서 이미지 캐싱 \u003cbr/\u003e\n|MVC-UnitTest|23/03/30|[🧪](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/Account) | - [MVC 패턴에서 UnitTest를 사용해보기](https://yoonah-dev.oopy.io/d9e1cbd7-dbaa-4424-8d52-41f258c49a4e) \u003cbr/\u003e - ViewProtocol, ModelProtocol를 사용해서 종속성 분리 \u003cbr/\u003e - 모델 로직 단위 테스트 진행 \u003cbr/\u003e - MockView를 사용해서 ViewController 단위 테스트 진행 \u003cbr/\u003e - 해당 Protocol를 실제 뷰에 적용해보기\n|Label NSTextAttachment|25/04/27|[🧪](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Advanced/StackViewTest) | - NSTextAttachment를 사용해서 UIView를 UILabel에 텍스트화\n\n### Apple Document Example\n| feature |date |link |description |\n|----|:---:|:----:|----|\n|HealthKit SmoothWalker|21/11/09 - 21/12/06 |[🏋️‍♀️](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Apple%20Document/HealthKit-Practice)| - HealthKit에서 Walking 데이터를 받아와서 보여주는 앱 \u003cbr/\u003e - HealthKit, CareKitUI를 사용해서 건강데이터로 구성한 Chart뷰를 보여줍니다. \u003cbr/\u003e - Support 파일을 만들어서 HealthKit과 CareKit에서 사용하는 함수를 분리합니다. \u003cbr/\u003e - Interface를 분리해서 Data를 구성하는 부분과 UI 구성 부분을 나눕니다. \u003cbr/\u003e - HealthData 파일에서 HealthStore를 따로 관리합니다. \u003cbr/\u003e - Apple Document Sample App([Create a Mobility Health App](https://developer.apple.com/documentation/healthkit/creating_a_mobility_health_app)) \u003cbr/\u003e\n|Sheet Presentation|21/12/07|[⬆](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Apple%20Document/SheetPresentation-Example)| - Sheet를 올리고 나서 저장이 안된 상태로 내릴 때 경고 Alert창을 올립니다. \u003cbr/\u003e - Segue를 사용해서 Present를 구현했습니다. \u003cbr/\u003e - Apple Document Sample App([Disabling the Pull-Down Gesture for a Sheet](https://developer.apple.com/documentation/uikit/view_controllers/disabling_the_pull-down_gesture_for_a_sheet)) \u003cbr/\u003e - [UISheetPresentationController](https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller)를 사용해서 Sheet형태로 뷰가 Present될 수 있게 구현합니다. \u003cbr/\u003e - Sheet 내부에 있는 다양한 속성들을 구현합니다. \u003cbr/\u003e - WWDC21 Sample App([Customize and resize sheets in UIKit](https://developer.apple.com/videos/play/wwdc2021/10063/?time=237)) \u003cbr/\u003e\n|Modern-Collection-Views|22/01/01 ~|[🏙](https://github.com/YoonAh-dev/Swift-LabRoom-For-Duna/tree/main/Apple%20Document/Modern-Collection-Views)| - 다양한 CollectionView를 구현합니다. \u003cbr/\u003e - WWDC20 Lists in UICollectionView를 따라서 만들었습니다. \u003cbr/\u003e - iOS 14.0이상부터 사용 가능한 UI \u003cbr/\u003e - Apple Document Sample App([Implementing Modern Collection Views](https://developer.apple.com/documentation/uikit/views_and_controls/collection_views/implementing_modern_collection_views)) \u003cbr/\u003e - [Modern cell Configuration WWDC20](https://developer.apple.com/videos/play/wwdc2020/10027) \u003cbr/\u003e - [Lists in UICollectionView WWDC20](https://developer.apple.com/videos/play/wwdc2020/10026/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoonah-dev%2Fswift-labroom-for-duna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoonah-dev%2Fswift-labroom-for-duna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoonah-dev%2Fswift-labroom-for-duna/lists"}