project 56

[git] Git-flow 전략과 프로젝트 예시(feat. Kuring)

Git-flow 전략과 프로젝트 예시(feat. Kuring) (포스팅 최초 작성) 2022.06.10(포스팅 수정) 2024.08.29커밋 내역 관리하는 방법 수정   ✅ Kuring에서 사용하는 Git-flow 분석과 Git-flow에 대해서 공부하며, Kuring에서 내가 사용하는 커밋 규칙을 정리하고자 포스팅합니다.  🥕 목차 🥕1. 우아한 형제들 Git-flow 전략에 대해서 알아보기2. Kuring의 Git-flow 전략 분석 (소규모 팀에서의 Git-flow 전략)3. Git-flow 전략을 개인 레포에 적용하고 연습해보기4. git 충돌 해결 방법  ✅ 1. 우아한 형제들 Git-flow 전략에 대해서 알아보기우아한 형제들 기술 블로그를 참고하여 Git-flow 전략에 대해서 공부해 봅..

[SwiftUI] UIActivityViewController를 SwiftUI로

UIActivityViewController를 SwiftUI로히스토리2022.05.31쿠링 사이드에서 공유하기 기능을 SwiftUI에서 사용하기 위한 포스팅2024.12.11해당 포스팅보다 더 좋은 방법을 발견하여 링크 추가 개선한 방법 해당 포스팅보다 더 좋은 방법을 발견하여 링크 추가iOS 공유하기 LPLinkMetadata (UIKit, SwiftUI) 이번 제목도 UIKit스러움이전에도 말했지만, 프로젝트에서 UIKit을 SwiftUI로 코드롤 전환하고 있는데 여기서 만난 문제를 해결하고자 내가 구글링한 단어 그대로 작성했다. 🟠 ActivityItemimport UIKit/// `activitySheet` modifier 를 통해 `ActivityView`를 띄울 때 사용하는 activitys..

[SwiftUI] List accessory (feat. disclosure indicator)

List accessory (feat. disclosure indicator) ✅ 이번에도 제목이 다소 UIKit스럽다. 저번 포스팅에서도 언급했지만, UIKit을 먼저 공부하고 SwiftUI를 하다보니까, 검색도 UIKit스럽게 하기 때문에! StackOverflow에서는 ZStack을 이용해서 해결하던데, 맘에 들지 않았다. 그래서 처음 생각! init() { UITableViewCell ... } 이렇게 해서 해결해 보려고 했는데, 근데 적용할 만한 메소드가 보이지가 않았다. 결국 StackOverflow처럼 해결해야 했는데 한번 같이 알아보자! ✅ 올바른 case import SwiftUI struct didSelectRow: View { var body: some View { Navigation..

[SwiftUI] List Row 선택하기(TableView didSelectRow)

List Row 선택하기(TableView didSelectRow) ✅ 오랜만이다! 제목이 참 UIKit스러움 제목을 이렇게 작성하게 된 이유로는 내가 1년 정도 UIKit을 사용하면서 이미 사고가 여기에 익숙해진 상태인데, SwiftUI로 List의 Row(UIKit에서 cell)을 선택하는 로직을 작성하는게 잘 아직까지는 어려운 느낌.그래서 내가 구글에 저 키워드로 검색했는데, 딱히 맘에 드는게 안나타나서 직접 정리하려고 포스팅 함. 생각보다 간단한데, 이게 참 어려웠음.우선 UIKit을 사용하다보니 tableView에서는 UITableViewDelegate를 상속받아서 didSelectRow를 구현하면 되었다.그러니까 이와 비슷하게 List의 Row에 onTapGesture를 사용하면 될거라고 생각..

[iOS] Thread 1: "Attempt to insert non-property list object () for key ~

Thread 1: "Attempt to insert non-property list object () for key ~ ✅ 이슈 리포트 오랜만이다. UserDefault를 사용하여 값을 저장할 때 발생하였다. UserDefault의 경우에는 기본적인 타입만 저장 가능한데, 나의 경우에는 struct를 통해서 내가 정의한 타입을 저장하면서 이 문제가 발생했다. 이를 해결하는 방법으로는! UserDefault를 사용할때 encode 및 decode를 이용하여 수행하면 된다! 그렇게 하면 bit로 저장되어서 문제 없이 저장되고 나중에 이것을 꺼내와서 decode하면 원하는 값을 얻을 수 있따.

[iOS] tableViewCell Swipe Action 구현하기

tableViewCell Swipe Action 구현하기 ✅ 이번 시간에는 tableViewCell Swipe Action을 구현해보자 직접 애플 문서를 읽어보는 것을 추천하지만, 이 포스팅에서는 정말 간략하게 어떻게 사용하는 지만 알아보자. 이번 포스팅에서는 1. tableView에서 leading과 trailing swipe를 지원해주는 메소드를 사용하여 구현하는 것 2. editStyle을 메소드를 활용하여 구현하는 것 을 볼 예정이다. ✅ 1. tableView에서 leading과 trailing swipe를 지원해주는 메소드를 사용하여 구현하는 것 func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt i..

[iOS] Indicator customizing (feat. Lottie)

Indicator customizing ✅ 기본 Indicator를 변경해보자. 우선 UIRefreshControl에서도 사용되고, ActivityIndicator에서도 사용된다. 나는 더 예쁜 UI구성을 위해 Lottie를 활용했다. ✅ 위와 같이 코드를 작성하면 된다. let loadingView: AnimationView = .init(name: StringSet.Lottie.loading) let indicatorView: AnimationView = .init(name: StringSet.Lottie.loading) let refreshControl = UIRefreshControl() private func setupAnimationViews() { // main loading view.add..

[iOS] Haptic Feedback에 대해서 알아보자🐣

Haptic Feedback에 대해서 알아보자 이 글을 벌써 두번째 쓰고 있다 ㅎㅎ 다 썼는데 뒤로가기 스와이프해서 글 다 날아가ㅁ ✅ 개요    ✅ Essentials 안에 더 내용이 있는데 쭉 읽어보면 쉽게 이해할 수 있다.장치 상태 확인하라던가, 햅틱 엔진은 싱글톤이 아니라던가 등등  ✅ 코드class HapticManager { static let shared = HapticManager() private var generator: UIImpactFeedbackGenerator? func setupGenerator() { generator = UIImpactFeedbackGenerator() generator?.prepare() } ..

[iOS] 프로그래머스 FLO 과제

[iOS] 프로그래머스 FLO 과제✅  과제 기간 - 2022-02-25 14:55~ 2022-03-03 14:54(7일) ✅ 개발 환경 - 언어 Swift 5 - iOS Deployment Target: 10.0 ✅ 써드파티 - RxSwift 6.5 - SnapKit - Then - Alamofire 5.5.0 - Kingfisher 5.0.0 - RxGesture 4.0.0 ✅ 내장 프레임워크 - AVFoundation ✅ 기능 요구 사항   이분탐색 알고리즘 사용해서 가사 찾는거 최적화하기.     ✅ 과제코드 위치https://github.com/lgvv/FLO ✅ Demo 영상" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스

project 2022.03.06

[iOS] inAppReview(StoreKit)✨

inAppReview(StoreKit)✨ ✅ StoreKit을 활용해보기 애플 공식문서 https://developer.apple.com/documentation/storekit Apple Developer Documentation developer.apple.com ✅ StoreKit 인 앱 구매나 애플 뮤직 등 다른 것들도 지원하지만, 내가 사용할 것은 리뷰 작성하는 부분이다! 🟠 코드 import UIKit import StoreKit class AppStoreReviewManager { /// action count 값이 3일 때 `true` 입니다. static var isReviewable: Bool { UserDefaultManager.inAppReviewCount == 3 } static ..