12월, 2022의 게시물 표시

iOS Using CocoaPods

이미지
운영 체제: macOS Ventura 13.0.1 사용 버전: Xcode 14.2, Swift, SwiftUI ​ iOS Using CocoaPods를 알아보겠습니다. CocoaPods는 Xcode의 라이브러리를 관리하기 위한 도구입니다. Podfile이라는 문서에 의존성들이 기록됩니다. ​ ​ 공식 사이트에 가면 설치 방법을 알려줍니다. https://guides.cocoapods.org/using/getting-started 터미널을 열고 아래 명령어를 칩니다. sudo gem install cocoapods 설치가 완료되었습니다. 설치가 다 되면, 프로젝트가 있는 디렉터리로 갑니다. 거기서 터미널을 열고 pod init을 합니다. 요런 Podfile이 생깁니다. Podfile을 더블클릭해서 열어줍니다. 원하는 것을 적어줍니다. 저는 Admob을 사용해 볼 거라서 pod "Google-Mobile-Ads-SDK'를 적었습니다. 원래는 pod install만 하면 됩니다. AdMob은 --repo-update가 필요해서 뒤에 붙였습니다. 완료가 되면 다음과 같이 나옵니다. 이제 Xcode에서 xcodeproj를 사용하지 않고, xcworkspace를 열어서 사용합니다. 그리고 제 Xcod...

iOS RoundedRectangle get clipped

이미지
운영 체제: macOS Ventura 13.0.1 사용 버전: Xcode 14.2, Swift, SwiftUI ​ iOS RoundedRectangle get clipped를 알아보겠습니다. ​ 테두리가 잘릴 때에 어떻게 해야하는지 알아봅시다. overlay를 사용해서 테두리에 둥근 사각형이 생기도록 만들었습니다. 근데, 이렇게 하면 이상하게 테두리가 잘립니다. 왼쪽과 오른쪽을 보시죠. .stroke를 .strokeBorder로 변경해 줍니다. 아무래도, 배경 선을 그리는 방식이 다릅니다. stroke는 테두리 밖에서 선을 그리고, strokeBorder는 테두리 위에 걸쳐서 선을 그립니다. ​ ​ 끝. 카테고리: iOS

Algorithm Subarray zero sum

이미지
알고리듬 Subarray zero sum을 알아보겠습니다. ​ [-4, 7, -2, 2, -7, 12, 0, 4, 9] 다음과 같은 배열이 있을 때, 0이 되는 배열의 일부분은 (7, -2, 2, -7), (-2, 2), 0 이렇게 3 가지 경우가 있습니다. 이것을 코드로 어떻게 구할 수 있을까요? ​ Hash 함수를 이용합니다. Python의 Dictionary는 Hash를 이용합니다. ​ 7 + 0 = 7을 이용하면 됩니다. 즉, 무엇인가 더했을 때, 동일한 값이 나온다면 0을 더한 것과 같다는 뜻입니다. 아래 코드를 보면, Dictionary에 이전에 봤던 값들을 넣습니다. 그러다가 무엇인가 더하고 빼기를 진행했는데, 이 값이 Dictionary의 Key 값으로 존재한다면 0을 더한 것으로 판단하면 됩니다. 끝. 카테고리: Algorithm

Algorithm Sliding window algorithm

이미지
알고리듬 Sliding window algorithm을 알아보겠습니다. 슬라이딩 윈도우는 배열을 다룰 때 사용합니다. 배열에서 구간을 늘렸다가 줄였다가 하면서 값을 찾는 겁니다. ​ ​ 다음과 같은 배열이 있습니다. 여기서 14가 되는 값이 있는지 찾아볼 건데요. 이때 사용하는 게 sliding window입니다. 두 개의 index를 만듭니다. 0부터 시작해서 값을 더합니다. 1은 14 보다 작으므로 end를 하나 더 늘립니다. 8은 14 보다 작으므로 end를 하나 더 늘립니다. 10은 14 보다 작으므로 end를 하나 더 늘립니다. 22는 14 보다 큼으로 start를 하나 더 늘립니다. 21은 14 보다 큼으로 start를 하나 더 늘립니다. 14를 찾았습니다. 이렇게 영역을 넘기며 찾는 게 Sliding Window입니다. Python 코드로 봅시다. 끝. 카테고리: Algorithm

Algorithm Two pointer algorithm

이미지
알고리듬 Two pointer algorithm을 알아보겠습니다. ​ 투 포인터 알고리듬은 두 개의 인덱스를 이용해서 값을 구하는 것입니다. ​ 예를 들어 어떤 배열이 있을 때, 두 원소의 합이 특정한 값을 가지는 것을 찾을 때 사용할 수 있습니다. 두 수의 합이 9가 되는 값이 배열에 있는지 찾아봅시다. ​ 포인터 두 개를 사용합니다. 하나는 맨 앞에 다른 하나는 맨 끝에 놓습니다. 두 포인터의 합을 구합니다. 13입니다. 13은 9 보다 큽니다. end의 값을 하나 줄입니다. 10은 9 보다 큽니다. end의 값을 하나 줄입니다. ​ 8은 7 보다 큽니다. start의 값을 하나 늘립니다. 9를 찾았습니다. 한 가지 중요한 점은 위와 같은 방법으로 값을 구하려면 배열의 정렬이 필수입니다. ​ Python 코드로 알아봅시다. 끝. 카테고리: Algorithm

iOS Make color assets

이미지
운영 체제: macOS Ventura 13.0.1 사용 버전: Xcode 14.2, Swift, SwiftUI ​ iOS Make color assets를 알아보겠습니다. 앱 내에서 사용하는 색깔을 asset으로 만들어서 관리하고 넣는 걸 해보겠습니다. ​ File - New - File...을 누릅니다. Asset Catalog를 선택합니다. 적당한 이름으로 만듭니다. 저는 Colors로 만들었습니다. 방금 만든 Colors.xcassets를 누르고 오른쪽 +를 누른 후, Color Set을 누릅니다. Any Appearance의 값은 Light 일 때라고 생각하면 됩니다. Dark는 말 그대로 Dark입니다. 글자 색을 만들고 싶어서 TextColor라 이름을 정했고, 변경하고 싶은 색깔을 선택하고 Input Method, Red, Green, Blue 등을 조작하여 색깔을 정합니다. 이 색깔을 편하게 사용할 수 있게 extension을 만듭니다. ​ File - New - File...을 누릅니다. Swift File을 누릅니다. 적당한 이름으로 만듭니다. import SwiftUI를 해줍니다. extension Color를 해주고, static let으로 textColor를 만듭니다. 이제 color를 사용할 곳으로 갑니다. foregroundColor에 바로 우리가 만든 .textColor를 사용하면 됩니다. 실행해 봅시다. 끝. 카테고리: iOS

iOS Show date in a text

이미지
운영 체제: macOS Ventura 13.0.1 사용 버전: Xcode 14.2, Swift, SwiftUI ​ iOS Show date in a text를 알아보겠습니다. ​ 날짜를 텍스트로 표현하는 방법을 알아봅시다. 글자에 표현할 Date를 만듭니다. 그러면 이렇게 나옵니다. ​ 그런데, 너무 길잖아요. 나는 연, 월, 일만 필요한데 하면 조정이 필요합니다. ​ Date에 formatted를 사용합니다. https://developer.apple.com/documentation/foundation/date/formatstyle/datestyle 위에서 원하는 date 스타일을 고르면 됩니다. omitted는 생략합니다. numeric은 숫자로 표시합니다. abbreviated는 축약형으로 보여줍니다. long은 전체 모두 보여줍니다. complete는 요일을 포함하여 전체 모두 보여줍니다. ​ ​ ​ ​ time 스타일은 아래를 참고해서 선택합니다. https://developer.apple.com/documentation/foundation/date/formatstyle/timestyle omitted는 생략합니다. shortened는 오전, 오후, 시간, 분을 나타냅니다. standard는 오전, 오후, 시간, 분, 초를 나타냅니다. complete는 오전, 오후, 시간, 분, 초, 타임존까지 나타냅니다. 실행해 봅시다. 끝. 카테고리: iOS

Python Make a 2 Dimensional array with init value

이미지
사용 버전: Python 3.7.9 ​ 파이썬 Make a 2 Dimensional array with init value를 알아보겠습니다. 파이썬의 2 차원 배열을 초깃값과 함께 만드는 방법을 알아봅시다. ​ 일차원 배열은 만들기 쉽습니다. 그냥 곱하기를 사용하면 됩니다. 그런데, 2 차원부터는 조금 복잡합니다. 저렇게 곱하기로 만들게 되면, 분명, (1, 1)을 7로 변경했을 뿐인데, (0, 1), (2, 1)도 모두 7로 변해버립니다. ​ 2 차원 배열은 아래처럼 만듭니다. 배열 하나를 만들고 거기에 배열로 감싸고 for 문을 돌립니다. [ [3] * 3 for _ in range(3)] 끝. 카테고리: Python