전체 글

    Swift Package Manager 생성 방법

    안녕하세요 오늘은 제가 자주쓰는 익스텐션을 저장하고 개인프로젝트에 활용하려고 SPM을 만들어 보게 되었습니다 그럼 빠르게! 살펴보겠습니다 ### 1. Package 생성 먼저 xcode를 실행하고 File -> New -> Package 를 선택해줍니다 ### 2. Package 이름 정하기 이제 패키지 이름을 정해야하는데 이름은 다른 라이브러리와 겹치지 않게 미리 검색해보시고 정하시는걸 추천드립니다 ### 3. 패키지 파일 정리 및 Package.swift 수정 저는 패키지 테스트코드는 작성할 생각이없어서 Test관련된 부분은 모두 정리했습니다 ### 4. 정리된 Package.swift 사진 지원하는 플랫폼과 버전을 명시해 줍니다. 폴더를 Foundation과 UIKit 두가지로 구분해서 추가해 두었..

    WKWebView를 아라보자

    예전부터 WKWebView에 대해서는 관심을 가지고 있었는데, 잘(?) 다루는 방법에 대해서 자료가 좀 적기도하고 네이티브에서는 궂이? 잘쓰려고 하지않기에 등한시 했던 부분이 있습니다 하지만 카카오같은 곳에서 세션을 발표할때 웹뷰의 비동기 동작이나 통신을 어떻게 하는지 꿀팁을 소개해 주셔서 능력이 닿는한 파해쳐 보려고 합니다 https://tech.kakaopay.com/post/ifkakao2022-ios-webview/ [if kakao 2022] 카카오페이 iOS 웹뷰 소개, 그리고 세션에서 못다한 이야기 | 카카오페이 기술 블로그 if(kakao)2022 카카오페이 iOS 웹뷰 소개 및 리팩토링 이야기 세션에서 못다한 이야기를 공유합니다. tech.kakaopay.com ### Script - N..

    Const, Final 언제 사용하는 걸까?

    플러터 UI 그리는걸 따라해보고 있자니 const를 써야할때와 안써야할때가 궁금해서 찾아봤다 공통점 한번 할당한 변수는 재할당이 불가능하다 차이점 전제로 컴파일 타임과 런타임의 차이를 이해할 필요가 있다 final(런타임에 정하고 변화 x) 동적으로 메모리에 할당이라고 말한다. 즉 컴파일 타임에는 변수할당을 하지 않고 런타임시에 변수할당을 한다. 덕분에 컴파일 타임에서 확인할 수 없는 값들을 변수에 할당할 수 가 있게된다. 컴파일 타임에서 확인할 수 없는 값(런타임시 확인가능한것)으로는 DateTime.now()가 있다. void main(){ final d = DateTime.now(); } const( 컴파일 타임에 한번 정하고 변화 x ) 컴파일 타임에 변수선언이 이루어진다. 덕분에 런타임시 특별히..

    Tuist 프로젝트 Xcode Cloud 적용(feat. Environment Variable, Tuist, cocoaPods, dSYM upload, App Distribution)

    # 프로젝트 기본 구조 본론에 들어가기전에 레저에빠지다 프로젝트 구조에 대해서 간단히 말씀드리면, 현재 저희는 Tuist를 이용해 프로젝트파일을 관리하고 있고, SPM과 Carthage를 쓰면 module을 찾을수 없다는 에러를 계속 마주하게되어 온몸을 비틀고 에러를 해결해보다가 일단은 cocoaPods를 이용해 외부의존성을 컨트롤 하고있습니다 따라서 프로젝트파일을 구성하게 되는 순서는 1. tuist generate -n 2. pod install 위와 같이 터미널에서 진행되고, 하나하나씩 기다렸다가 실행하기는 번거롭기 때문에 makefile을 이용해서 make generate라는 명령어를 통해 tuist generate -n pod install open appName.xcworkspace 위와같이..

    응애개발자 -> 개발자

    응애개발자 -> 개발자 개발 공부를 시작하고, 포트폴리오를 만들고, 취업에 성공해서 iOS개발자로 살게된지 1년이 약간 넘었습니다. 그동안 많은 어려움과 주변 분들의 감사한 도움과 함께 저만의 작품을 갖게 되는 시간이였습니다 이번에 테스트코드를 처음으로 프로젝트에 추가하며 알게되었는데 소스코드가 어느새 4만줄이 넘더군요 ㅎㅎ 그동안 많은 일들이 있었습니다. 수많은 리팩토링시도, 새로운 프로젝트, 데이터분석, UI 디자인 등등... 이중 에서도 가장 흥미가 많이 느껴졌던 것은 리팩토링 시도 였습니다. 예전의 코드를 개선하고 개선하다보면 뭔가... 성장했다 라는 느낌이 뚜렷하게 느껴지는 것 같습니다. 제가 처음 리팩토링 시도할때 어렴풋이 분리를 이렇게 하는건가? 라고 생각하고 쓴것과 지금의 제가 분리는 이렇..

    다형성(Polymorphism)과 추상화(Abstraction)의 관계

    최근 인터뷰를 몇번 보면서 부족한 점을 많이 느끼게 되는 것 같습니다. 그중에 기억에 남은 질문이 오늘의 주제입니다. 서칭을 하며 언뜻 보기에는 두 개념이 같은 말을 하고있는게 아닌가 했었는데 같은 생각을 하셨던분이 정리해주신걸 보고 좀 명확해진 것 같아 공유하려고 글을 쓰게 되었습니다 https://wlaxhrl.tistory.com/78 OOP의 추상화(Abstraction)와 다형성(Polymorphism)의 관계 최근에 OOP에 대해 공부를 하다 혼란에 빠졌었는데, 나름 결론이 나서 기록. '나름' 결론이기 때문에 주의해주세요. 의견은 자유롭게 코멘트로 달아주세요. 혼란을 불러일으킨 요소 - 존 호프만의 wlaxhrl.tistory.com