본문 바로가기

All

(42)
[iOS] 웹뷰에서 숫자 키패드로 뜨지 않을 경우 해결방법 웹뷰(WebView)에서 아래와 같이 input 태그를 작성했음에도 기대했던 숫자 키패드(Number Keypad)가 뜨지 않을 경우가 있었다. 특이한 점은 iOS 13에서는 잘 동작하였지만 iOS 12에서 발생하는 것으로 확인되었다. 원인은 iOS 12.2 부터 inputmode를 지원한다는 것이다. inputmode에 decimal을 명시하면 iOS 12.2 부터는 decimalPad가 뜨게 된다. 하지만 그 아래 버전에서는 decimalPad가 뜨지 않았다. 대체할 해결 방법은 의외로 간단했다. 방법을 찾는 것이 어렵... pattern attribute를 지정함으로써 해결할 수 있었다. "[0-9]*" 와 "\d*" 두 패턴 모두 잘 동작하는 것을 확인하였고 둘 중에 원하는대로 사용하면 문제가 없..
Who am I? 염염 (Flip) 자동차와 미니언즈를 좋아하는 iOS 개발자입니다. 기본 소양은 물론 최신 트렌드를 놓치지 않는 지속적인 발전을 지향합니다. 프론트부터 백엔드까지 관심이 많습니다. 사용자에게 최고의 경험을 제공하기 위해 고민하는 것을 좋아합니다. 🚀 Technology Stack iOS - Swift, Objective-C Web - HTML, CSS, jQuery, React.js Server - Java, Spring Framework, EJB Database - Oracle, MySQL 🏢 Career 카카오 - iOS Developer (2019.11 ~ ) 카카오톡 iOS 앱 개발 신한은행 - iOS Developer (2018.01 ~ 2019.10) 신한 SOL iOS, Hybrid 앱 개발..
[iOS] Keyframe Animation으로 애니메이션 구현하는 방법 순차적으로 애니메이션이 실행되어야 한다면 아래와 같이 UIView Animation 을 중첩하여 구현할 수 있습니다. UIView.animate(withDuration: 1.0, animations: { self.animate1() }, completion: { finished in UIView.animate(withDuration: 1.0, animations: { self.animate2() }, completion: { finished in UIView.animate(withDuration: 1.0, animations: { self.animate3() }) }) }) 중첩이 많아 가독성이 떨어져 보입니다. 애니메이션이 추가될 수록 더 악화될 것입니다. 이 코드는 아래처럼 animateKeyfram..
[iOS] UIView Animation으로 애니메이션 구현하는 방법 특정한 시간 동안 한 개 혹은 그 이상의 뷰들의 변화에 애니메이션을 주는 것에 대해 알아보겠습니다. 오늘은 그 중에서도 타입 메소드로 선언된 UIView.animate 를 살펴보겠습니다. class func animate(withDuration duration: TimeInterval, animations: @escaping () -> Void) 파라미터 animations 에 원하는 속성의 최종값을 설정하면 현재값에서 최종값으로 변하는 애니메이션이 실행됩니다. UIView가 제공하는 속성중에서 애니메이션을 지원하는 속성은 다음과 같습니다. frame bounds center transform alpha backgroundColor 기본적인 구현 방법은 아래와 같습니다. let newFrame = CGR..
[iOS] 코코아팟(CocoaPods)에 직접 만든 라이브러리 올리기 CocoaPods이 아직 설치되어 있지 않다면 먼저 지난 포스팅 참조해주세요. [Tip] 코코아팟(CocoaPods) 설치하기 코코아팟을 설치하고 외부 라이브러리를 불러와보겠습니다. 코코아팟 CocoaPods 설치 코코아팟이 설치되어 있지 않은 경우 터미널에서 다음 명령어로 설치해줍니다. $ sudo gem install cocoapods 프로젝트에 적용.. onelife2live.tistory.com 프로젝트 생성부터 차례대로 나가보겠습니다. 코코아팟 라이브러리 프로젝트 생성 $ pod lib create {프로젝트명} 자신이 생성할 라이브러리의 성격과 맞는 답변을 선택합니다. What platform do you want to use?? [ iOS / macOS ] > iOS What language..
[iOS] 코코아팟(CocoaPods) 설치하기 코코아팟을 설치하고 외부 라이브러리를 불러와보겠습니다. 코코아팟 CocoaPods 설치 코코아팟이 설치되어 있지 않은 경우 터미널에서 다음 명령어로 설치해줍니다. $ sudo gem install cocoapods 프로젝트에 적용 프로젝트 경로로 이동하여 코코아팟을 프로젝트에 연동합니다. 이 명령어를 실행하면 의존성을 관리할 Podfile이 생성됩니다. $ pod init Podfile 설정 Podfile에 원하는 라이브러리를 입력하여 설정합니다. (vi로 수정해도 됩니다!) $ open Podfile 라이브러리에 대한 정보는 https://cocoapods.org 를 참조하여 주세요! target 'YYBottomSheet_Example' do use_frameworks! pod 'YYBottomShe..
[iOS] 앱 실행시 일어나는 일들 (App Launch Sequence) 앱 기동시 어떤 작업들이 어떤 순서대로 실행되는지 알아보도록 하겠습니다. 앱을 실행하는 과정에는 복잡한 몇 가지 단계들을 거칩니다. 대부분은 UIKit이 자동으로 관리해줍니다. 앱이 실행되는 동안, UIKit 은 커스텀 작업들을 실행시키기 위한 Delegate 메소드들을 호출합니다. 아래의 그림은 앱이 실행될 때부터 초기화될 때까지의 과정들을 나타냅니다. 앱은 사용자가 명시적으로 실행하거나 시스템에 의해 암시적으로 실행됩니다. Xcode가 제공하는 main 함수는 UIKit의 UIApplicationMain() 함수를 호출합니다. (UIApplicationMain() 는 Int32 를 return하는 함수이지만 이 함수는 return을 절대 하지 않습니다.) UIApplicationMain() 함수는 U..
[iOS] Xcode 빌드 시간 줄이는 방법 느려지는 컴파일 타임을 좋아하는 사람은 아무도 없을 것입니다. 컴파일 타임은 개발 속도에도 꽤나 큰 영향을 끼칩니다. 이번에는 컴파일 타임을 조금이나마 향상시키는 방법에 대해 알아보도록 하겠습니다. 1) 컴파일 타임을 정확하게 측정해보기 컴파일 타임을 개선하기 위해서는 먼저 프로젝트가 얼마나 컴파일 시간이 소요되는지 알아야 합니다. 컴파일 타임을 측정하기 위해서 아래의 명령어를 터미널에 입력합니다. defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES 샘플 프로젝트를 통해 측정한 시간을 살펴보겠습니다. 컴파일 종류 컴파일 시간 일반 빌드 0.025s 클린 빌드 2.636s 초기화 빌드 6.032s 일반 빌드는 시간이 매우 짧습니다. 수정된 파..