일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Swift
- ios framework
- embed&sign
- 알고리즘
- Problem Solving
- C++
- protocol 기본구현
- Cpp
- Unreal static Framework
- 깃 명령어
- unreal dynamic framework
- Unreal iOS Framework
- Unreal iOS
- IOS
- Algorithm
- 리눅스 명령어
- 2차원배열
- 동적할당
- 깃허브 사용법
- PS
- 백준
- new int
- 깃허브
- 깃헙
- git status
- where Self
- github
- 인프런
- Git
- 깃허브 가이드
- Today
- Total
목록전체 글 (31)
Get Up & Code, MacKin Talk
일부 Delegate 등 시스템 제공 API를 몇 가지만 둘러보더라도 @available 과 같은 속성이 정의된 메소드들을 많이 접할 수 있습니다. Xcode를 통해 개발을 하는 경우, @available 속성을 통해 특정 클래스, 메서드, 프로퍼티 또는 기타 코드 구성 요소의 사용 가능한 플랫폼 버전을 명시적으로 표시할 수 있으며, API의 버전 관리를 보다 세밀하게 제어하고, 버전 호환성을 지켜줄 수 있습니다. 함수 위에서 @available을 작성하면, Xcode IDE의 도움을 받아 선택적으로 해당 속성을 지정할 수 있습니다. @available(, introduced: , deprecated: , message: ) 플랫폼, 도입 버전, 폐지 버전, 등 여러 가지를 나타낼 수 있습니다. //..
일반적인 iOS App을 개발할 때, SPM이나, Cocoapod 등의 의존성 관리도구를 많이 사용하듯 게임 엔진도 비슷합니다. 기능 중 일부 기능을 3rd나 오픈 소스 등 외부 소스를 사용해 기능 구현에 사용합니다. 라이브러리 또는 프레임워크라 불리는 형태로 타겟 앱에 추가하죠. Unreal Engine을 통해서 나오는 ipa 파일도 결국은 Xcode를 통해 나오는 결과물과 별반 다르지 않다는 점에서 결과물이 비슷하다는 건 인풋도 비슷하다는 거 아닐까요. 물론 내부의 실행파일의 구조 등은 일부 다르지만요. 일반 Swift로 작성된 iOS 앱과 다른 점이라고 한다면 Unreal Engine에서는 iOS Framework를 적용하기 위해서 Framework를 적용하기 위한 Build.cs 를 작성하고, i..
프로토콜과 그 기본 구현을 활용해 중복을 피할 수 있다. Swift에서는 프로토콜의 익스텐션을 활용할 때 where 절을 사용해 타입 지정 방법을 제공 해당 익스텐션이 적용될 수 있는 타입의 범위를 제한할 수 있도록 해준다. 예시로 extension AProtocol { // methods... } 프로토콜을 정의할 때 특별한 타입 제약을 지정하지 않은 경우, 그 프로토콜은 어떤 타입에서든 채택할 수 있음. - 클래스, 구조체, 열거형 등 extension AProtocol where Self: UIView { // methods... } 특정 타입에만 프로토콜을 적용하고 싶은 경우 where Self: UIView Aprotocol을 확장하되, 그 확장의 범위는 UIView의 서브 클래스인 타입에만 ..
서드파티 로그인 또는 앱간인증을 진행하다보면 info.plist 파일에 상단 키워드들을 작성하게 된다. 둘 모두 개발중인 앱이 다른 앱과의 상호 작용을 위해 사용하는 URL 스킴을 정의하나, 이 둘은 사용 목적과 방식에서 차이가 있다. 1. CFBundleURLSchemes(외부에서 호출될 현재 앱의 URL Scheme) 앱이 외부에서 호출될 수 있는 URL Scheme을 정의. 이 설정을 통해 앱은 다른 앱이나 웹 페이지로부터 특정 URL Scheme을 사용하여 직접 호출될 수 있다. 예를 들어, "luyan://" URL Scheme을 앱에 설정하면, 다른 앱이나 브라우저에서 이 URL을 호출하여 현재 앱을 열 수 있습니다. CFBundleURLSchemes를 사용하면 앱은 외부 요청을 받아 특정 ..
앱 개발하는 과정에서 대부분 혼자만의 코드로만 프로젝트를 구성하지 않습니다. Github 등 오픈소스나 유료 소스를 바탕으로 특정 기능에 대한 구현을 빌리는 경우가 많습니다. 다수에 의해 검증된 코드들이 많다보니 직접 코드를 구성하는 것보다 성능이 좋은 경우도 많습니다. 이렇듯 외부에 의존성을 두게 되면 일반적으로는 코코아팟 cocoapod, 카르타고, spm 등 의존성 관리도구를 활용하게 됩니다. 일반적으로는 외부 소스나 프레임워크의 사용에 에러나 큰 문제가 없겠지만, 해당 프레임워크가 dynamic framework로 제공되는 경우, 하단과 같은 에러를 만나기도 합니다. dyld: Library not loaded: 뭐. 말 그대로 라이브러리가 로드되지 않았다는 뜻이겠죠. 해당 키워드의 원인은 여러 ..
iOS를 개발하면서, 타겟 버전이나 플랫폼 조건 등에서 #if, #endif 등 컴파일 조건 구문을 익숙하게 봐오셨을 거라 생각합니다. 사용법을 보기 전에 #if로 시작하고, #endif로 끝나는 구문이 어떤 건지 자세히 알아보면 좋을 것 같습니다. 이렇게 컴파일 단계에서 조건을 추가하기 위해 사용되는 구문을 Compiler Control Statement라고 부릅니다. Compiler Control Statement의 역할은 타겟이 컴파일되는 과정에서 컴파일러의 작동 양상을 바꿀 수 있도록 해줍니다. 크게 보자면 총 3가지로 나눌 수 있고, 각각은 하단과 같습니다. (물론 각각에 대해서도 플랫폼, 버전 등에 따라 많은 조건들이 있네요.) 1. conditional-compilation-block 2. ..
목차 1) iOS ~16.0 2) iOS 16.0 < (version) 3) 기타 참고 1) iOS ~16.0 일반적으로 iOS Device의 Screen Size를 얻기 위해서 다음과 같은 로직을 많이 써왔다. UIScreen.main.bounds.size.height UIScreen.main.bounds.size.width 코드 작업 중 Xcode IDE에 의해 main이 deprecated 될 거라는 경고문을 안내받았다. 경고문에 안내하듯 Context에 의해 찾아진 UIScreen 인스턴스로 대체하라는 방식대로 코드를 작성하라고 안내하고 있다. ex) view.window.windowScene.screen 2) iOS 16.0 < (version) StackOver Flow에서 관련된 질의글을 찾..
CocoaPods => Swift 및 Objective-C Cocoa 프로젝트 종속성 관리자 타 의존성 관리도구로 카르타고나 spm(swift package manager)이 있다. 이 중 spm은 Apple에서 지원해주는 First Party에 해당한다. 하지만 아직은 SPM을 지원하지 않는 많은 라이브러리들이 있기 때문에 SPM이 아닌 cocoapods도 필요하다고 판단이 되어 도입하였다. 하단 페이지에도 설명되어 있지만, 설치 방법은 간단하다. sudo gem install cocoapods 터미널 창을 열고, cocoapods 설치를 위한 명령어를 실행하면 된다. 대표사진 삭제 사진 설명을 입력하세요. Password를 입력하고 나면 위와 같은 ~ 1 gem installed로 끝나게 되고, co..
IM4 : Tips for Learning English Summarize Ben is English teacher. He want his students to get confidence in producing English or increaing their listening ability. so he ask Haha some strategies about improving English skills. And Hana says that the first thing is listening. if we want to communicate in English, we have to understand first. By listening to audio, or sound, then we can learn voca..
안녕하세요. 루얀입니다. :) 12월의 12일입니다. 다들 즐거운 일요일 보내고 계신가요? 오늘은 도서관에 간 김에 책이 한 권 눈에 밟혀서 이렇게 들고 왔습니다. 개발자의 글쓰기 | 위키북스 개발자는 희망하지만 기술 블로그를 잘 못 쓰는 이유가 블로그에 글을 쓰는 방법이 일반적으로 학생 때 배운 글쓰기 방법과 사뭇 다르다며 관련된 내용을 소개해주네요. 대한민국에서 입시 과정을 겪었던 사람이라면.. 아래와 같은 논설문이나 설명문에 대하여 하단과 같은 질의를 하는 문제를 접해보셨을 거라고 생각합니다. '이 글을 왜 쓰는가?' '이 글을 읽는 독자는 누구인가?' '이 글을 읽는 독자에게 무엇을 말하려고 하는가?' '이 글이 주장하는 바는 무엇인가? '이 글이 주장하는 바의 근거는 분명한가?' 사실 저도 동일..