본문 바로가기
728x90
반응형

전체 글251

iOS) SwiftUI 내 맘 정리#1 (feat: Animation , Circle & Capsule , DragGesture) 안녕하세요. 후르륵짭짭입니다. 최근에 Udemy에서 SwiftUI Masterclass 2023 강의를 듣고 있습니다. 1만 5천원에 판매하고 있어서, 회사 돈 말고 그냥 제 돈으로 구매했습니다. 시간이 많았으면 SwiftUI를 천천히 공부하면서 알아 갔을 건데, 그럴 시간이 없어서 강의를 구매 했습니다. 앞으로 강좌 섹션에서 배운 것을 두서 없이 정리하려고 합니다. ** Animation ** SwiftUI Masterclass는 SwiftUI의 장점인 Animation을 많이 사용하는 것 같은데요. 그래서 그 부분을 좀더 작성해보려고 합니다. VStack(spacing:20) { // MARK: HEADER VStack(spacing: 0, content: { Text(textTitle) .font(.. 2023. 3. 5.
ReactNative) ReactNative 취미 시작 (feat: Component, FlexBox) 안녕하세요. 후르륵짭짭입니다. 최근에는 Javascript에 취미를 가지고 싶어서 ReactNative 강의를 통해서 공부를 하고 있습니다. 앞으로 Javascript는 너무 기본적인 언어라 생각하여 지금이라도 취미를 가져 나중에 제게 도움이 될 것 같아서 앱 개발자인 저에게 좀 더 친숙 할 수 있는 React Native로 공부를 시작하게 됐습니다. (요즘에는 나의 노동력으로 돈을 버는게 쫌 회의적이라서 ㅠ ㅠ.) ** React Native 시작하기 ** - Sample 프로젝트 생성 - 설치를 원하는 디렉토리에 가서 sudo npm install -g expo-cli를 하면 react Native에서 개발할 수 있는 환경을 제공하는 expo를 설치하게 됩니다. 그런 다음 expo init 을 작성하.. 2023. 3. 1.
IOS) Framework 서브모듈 배포 (feat: Submodule + Cocoapod) 안녕하세요. 후르륵짭짭입니다. 지금까지 모듈화 하는 방법에 대해 작성했었습니다. 어떻게 Framework를 생성하고 어떤 점에서 문제가 있는지 작성했다면, 이번에는 사내에 모듈을 배포하는 총 3가지 방법에 대해서 작성하려고 합니다. (참고로 Pod 배포는 Submodule로 Private 하게 작업하여 작성하였습니다.) ** 서브 모듈 작업하기 ** 서브모듈이란 메인 프로젝트 밑에 다른 프로젝트를 넣는 방식입니다. 즉, A와 B가 서로 연결 되어 있는 겁니다. https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-%EC%84%9C%EB%B8%8C%EB%AA%A8%EB%93%88 Git - 서브모듈 gitmodules 파일에 있는 URL은 조건에 맞는 사람이면 누.. 2023. 2. 10.
IOS) Umbrella Framework 생성 및 배포(feat : CoCoaPods) ** 관련 사이트 ** 2022.11.27 - [Xcode/Swift - PlayGround] - PlayGround) Framework를 통해 모듈화 작업하기 2022.12.17 - [Xcode/Swift - PlayGround] - PlayGround) Framework UnitTest 생성 해보기 2023.01.29 - [Xcode/ERROR] - ERROR) Custom Framework에서 3rd Party Lib의 Protocol을 사용할 때 주의 점 (ex: Undefined symbol: _$s9Alamofire7AFError ) 안녕하세요. 후르륵짭짭입니다. Moya의 Target Type이 Property가 Enum으로 되어 있어서 원인 모를 이유 때문에 Build Error가 발생했습.. 2023. 1. 29.
ERROR) Custom Framework에서 3rd Party Lib의 Protocol을 사용할 때 주의 점 (ex: Undefined symbol: _$s9Alamofire7AFError ) 안녕하세요. 후르륵짭짭입니다. 이번에는 Framework를 만드는 중에 Build 에러가 발생해서 해당 건에 대해 작성해보려고 합니다. ( 저의 추측성 글 입니다. ) ** 발생 원인 ** Moya Framework를 포함하여 Framework를 발행 후, 다른 프로젝트에서 해당 Framework를 주입후 사용하려 하니 Build 에러가 발생 Framework Project를 Main Project에 주입시켜 Build하면 해당 오류가 발생하지 않음 해당 원인에 대해 생각해보니, Project에서 빌드하면 한번에 Framework와 Main Project 내부에 있는 코드들을 한번에 Build하게 됨 반면 Framework를 다른 프로젝트에서 Build 후 주입하는 방식은 다른 프로젝트에서 Linking.. 2023. 1. 29.
일상) 2023년 입문자들을 위한 PS5 게임 추천(남자) 안녕하세요. 후르륵짭짭입니다. 앞으로 정기적으로 IOS 개발과 별개로 PS5 게임에 대해 올리려고 합니다. 오늘은 첫 글이니 지금 까지 했던 게임 33개 중 제가 생각하는 TOP 5 영화같은 게임을 추천해보려고 합니다. 정말 강하게 추천하는 게임이고 안해보면 손해 볼 게임들 입니다. ** 라스트 오브 어스 시리즈 ** 정말 명작이라고 생각합니다. 많은 사람들이 2편은 내용이 최악이다라고 하는데, 저는 게임성과 게임이 가지고 있는 다크한 분위기는 정말 다른 게임은 따라오기 힘들다고 생각합니다. 영화같은 연출, 그리고 게임성, 그래픽 모두 하나 빠지지 않고 최고의 게임이라 생각이들고 해보지 않았다면 당장하는 것을 추천 드립니다. https://www.youtube.com/watch?v=CxUN_B8kQck .. 2023. 1. 23.
PlayGround) PropertyWrapper와 Dependency Injection 안녕하세요. 후르륵짭짭입니다. 이번에는 PropertyWrapper에 대해서 알아보려고 합니다. SwiftUI를 사용하다 보면 @ViewBuilder , @Binding 등 "@"가 들어가는 anotation을 볼 수 있습니다. 이런 것들이 PropertyWrapper라고 하는데, 공통적인 로직을 처리할 때 사용하면 좋습니다. ** PropertyWrapper를 사용하는 방법 ** 위 사진 처럼 Struct나 Class와 같은 Instance에 @propertyWrapper를 붙여 주면 "wrappedValue"가 없다는 오류가 나오게 됩니다. 그러면 Fix를 눌러주면 wrappedValue가 생기게 되고 Value 부분에 원하는 타입을 넣어주면 됩니다. @propertyWrapper struct Cha.. 2023. 1. 23.
IOS) TestFlight로 앱 배포하기와 오류들 (feat : X86 제거) 안녕하세요. 후르륵짭짭입니다. 이번에 사내에서 작은 프로젝트를 진행하고 있는데, 외부로 부터 Test를 의뢰할 일이 생겨서 TestFlight로 배포를 해봤습니다. ** TestFlight 배포 ** 일단 Test Flight를 배포하기 위해서는 애플 계발자 등록을 해야합니다. (유료입니다,,,) 2020.12.24 - [Xcode/Apple] - Apple) Solution - your enrollment in the apple developer program could not be completed at this time Apple) Solution - your enrollment in the apple developer program could not be completed at this time .. 2023. 1. 12.
PlayGround) Combine 체험기#2 안녕하세요! 후르륵짭짭입니다. 다시 Combine으로 돌아 왔습니다. 이번에는 Combine의 Operator들에 대해서 정리하고 주의할 점들에 대해 정리하고 마치려고 합니당! ** Operator ** - Map - Map은 특정 타입으로 내려온 값을 다른 타입으로 변형할 때 사용합니다. 더보기 func test_map(){ let publishSubject = PassthroughSubject() publishSubject.flatMap { elementList -> AnyPublisher in return elementList.publisher.eraseToAnyPublisher() } .map { element -> String in return "Hello \(element)" } .sink {.. 2023. 1. 8.
728x90
반응형