일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- url 추적
- transformation.map
- oberve url
- Side Menu
- scrolling tab
- ios
- swift
- 스크롤 탭
- DevelopmentRegion
- detect url
- notifychanged
- 개발자 면접
- Android
- ViewBuilder
- SwiftUI
- UIViewControllerTransitioningDelegate
- convert base64
- pod install
- 기존 앱
- Swift Package Manager
- Tuist
- development language
- GeometryReader
- 상단 탭바
- List
- url 관찰
- base64 변환
- UIPresentationController
- swift #swift keychain #keychain 사용법
- DataBinding
- Today
- Total
목록전체 글 (172)
버그 잡이

ReactorKit을 공부하면서 trasform()이라는 함수를 접하게 되었습니다. "Action으로 Mutation(mutate() -> reduce()) 되어 State가 바뀐다." 이게 제가 이해한 ReactorKit의 기본 동작입니다. transform() 낄 자리가 없어보이는데 도대체 어떤 역할을 하는 함수일까요? Transform() transform()을 이해하기에 없어서 ReactorKit의 전역 변수에 대해서 알아볼 필요가 있습니다. 공식 문서를 보면 ReactorKit은 전역 변수를 정의 하지 않는다고 합니다. Action -> Mutation -> State 플로우에서 전역변수가 낄 자리가 없는거죠. 그런데 Action이 아닌 전역변수의 변화로 인한 Mutation은 어떻게 처리해야할..

기조 상용중인 앱에 아이패드 모드를 지원하게 되었습니다. 관련 작업을 하면서 새롭게 배운점과 느낀점들을 정리해보겠습니다. 1. frame 보다는 Auto-layout을 사용하자. 앱을 보면 팝업, 커스텀 키패드 등이 frame으로 layout이 잡혀 있었습니다. 이는 가로/세로 디바이스 회전시 레이아웃을 깨지게 만듭니다. 간단하게 오토레이아웃으로 변경할 수 있는 View는 오토레이아웃으로 레이아웃을 설정하도록 변경해주고, 변경이 다소 무리인 경우에는 "viewWillTransition()" 이라는 viewController의 override 메서드를 활용하여 문제를 대응할 수 있습니다. 디바이스의 회전을 감지하고 디바이스 스크린 Size를 받을 수 있는 메서드이다. size 값을 활용하면 회전시 화면 대..

앱 스토어를 보면 아래와 같이 앱에 관한 정보가 표시됩니다. 그런데 저는 분명히 App Store Connect 를 통해서 앱을 등록할때, 언어와 지역을 한국으로 설정했는데, 앱 출시 후 확인해보니 언어가 영어(EN)으로 설정 되어 있습니다. 뭐지......? Development Region 구글링을 통해서 확인해보니 앱 스토어 언어 정보로 표시되는 언어는 프로젝트의 "Development Region" 를 따른다고 합니다. Development Region는 기본적으로 영어('en')로 설정되어있습니다. 이는 .xcodeproj 파일에서 수정해줘야합니다. .xcodeproj 파일을 editor로 열고 "developmentRegion"로 검색하면 'en' 으로 설정되어있는 것을 볼 수 있습니다. 1...
가끔 base64 형식의 이미지를 받아서 UIImage로 변환 후 사용할 때가 있습니다. 이때 사용하면 좋은 extension을 소개합니다. extension UIImage { public var base64: String { return self.jpegData(compressionQuality: 1.0)!.base64EncodedString() } convenience init?(base64: String, withPrefix: Bool) { var finalData: Data? if withPrefix { guard let url = URL(string: base64) else { return nil } finalData = try? Data(contentsOf: url) } else { final..
이번에 웹앱을 만들었습니다. 네이티브에서는 웹뷰로 url 을 띄워주는 기능만 있습니다. 화면이 present 되고 탭이 선택되는 등의 액션은 모두 웹에서 url 이동을 통해서 이루어집니다. 그런데, 요구사항으로 특정 url에서는 swipe로 navigation 되는 기능을 빼달라는 요청이 들어왔습니다. 이를 위해서는 웹뷰 내에서 url 이동을 트랙킹 할 수 있어야 합니다. 해결 방법 1. webView의 URL 을 관찰할 수 있는 observer를 추가합니다 self.webView.addObserver(self, forKeyPath: "URL", options: .new, context: nil) 2. obserValue 메서드를 오버라이드 해서 url을 받아봅니다. override func observ..

iOS 프로젝트에서 cocoaPods 를 쓴다면 매번 터미널에서 pod install을 해주는 번거로움이 있습니다. Xcode에서 이 명렁어 치는 과정 (터미널 실행 -> 프로젝트 경로 진입 -> pod install) 을 단축키 하나로 등록할 수 있습니다. Xcode의 Custom Behavior를 사용하는 것으로 방법은 아래와 같습니다. 1. Pod-install.sh 파일 생성 터미널 실행 후 원하는 경로에서 아래 파일을 생성해줍니다. 저는 nano를 써서 "nano Pod-install.sh" 명령어로 파일 생성 후 아래 내용을 복사해서 저장했습니다. #!/bin/sh # Pod-Install.sh # # # Created by Nikunj Modi on 26/09/20. # osascript B..
1. 앱 사용 중 Home 버튼을 누른 경우 2. 앱 사용 중 Lock 버튼을 누른 경우 위 두 경우 모두 앱의 Life-cycle은 background 상태입니다. 저는 Home 버튼을 눌러서 background에 진입한 경우에 특정 팝업을 띄워주길 원했기 때문에 위 두 가지 경우를 구분하고 싶었습니다. func applicationDidEnterBackground(_ application: UIApplication) { if (DidUserPressLockButton()) { print("User pressed lock button") } else { print("user pressed home button") } } private func DidUserPressLockButton() -> Bool ..

주요 특징 1. 65년 만에 최고의 월수출액을 기록 2. 3분기 수출액은 역대 모든 분기 중 최대 실적 2. 반도체, 석유화학, 철강 등 중간재와 디스플레이, 무선, 통신기기, 컴퓨터 등 IT 품목이 모두 두 자리 증가 산업별 특징 반도체 15개월 연속 증가, 역대 두 번째로 높은 월 수출 실적 달성 신규 스마트폰 출시로 인한 계절적 성수기 + 메모리 반도체 고정 거래 가격도 점진적 우상향 중 석유화학, 석유 국제유가 상승과 전방산업의 수요 급증으로 인한 호조세 지속으로 9월 누계 수출액이 작년 연간 수출실적을 넘어섬 위생용품, 포장재 등 비대면 생활을 위한 수요가 지속되고, 건설, 자동차 등 전방산업 경기가 회복되면서 합성수지, 합성고무 수요가 호조세를 보이는 가운데, 국제유가와 함께 석유화학 수출단가..