목록전체 글 (39)
clyne의 개발 기록

안녕하세요! iOS 개발자 CNOO입니다. 오늘은 iOS WebKit에 대해 알아볼건데요, 애플에서 기본으로 제공하는 WebKit을 import하고 시작해봅시다. 먼저, 스토리보드나, Xib파일에서 WebKit을 검색해줍니다! 네. WebView는 Deprecated되었다 하니, WebKit View를 사용해봅시다. 이 것을 ViewController에 연결한 뒤에, (스토리보드) 위와 같이 로드해주면 되는데요, 제가 두시간동안 헤맸던 부분은 바로 Javascript interface부분이었습니다. iOS 웹킷은, 안드로이드의 웹뷰와는 달리 WKWebViewConfiguration의 userContentController 라는 변수에다가 WKUserContentController객체를 만들어서 넣어주어야..

안녕하세요 모바일 개발자 CNOO 입니다~ 오늘은 APK 서명과 관련된 터미널 명령어들을 총 정리해볼거예요! cd/Library/Android/sdk/build-tools/28.0.3 위와 같은 경로로 이동해보시면, (저는 28.0.3 버전이 설치되어있어서, 여기로 왔는데, 다른 버전이어도 상관없습니다.! 최소버전이 따로 있는지는 잘 모르겠네요.. ^^;;) jarsigner 라는 파일이 있습니다. 이 녀석이 이번에 우리를 도와줄 녀석입니다. 자 그럼 명령어를 입력해봅시다! 1. 서명 키 확인 jarsigner -verify (-verbose) (-certs) (apk파일) 명령어는 다음과 같아요! -verbose랑 -certs를 괄호쳐놨는데, verbose 옵션을 추가하시면, 각 파일마다(?) 어떻게 ..

안녕하세요~ 모바일 개발자 CNOO 입니다. 오늘은 APK파일이 어떤 인증서로 서명되어있는지랑, apk빌드당시 manifest와 gradle설정은 어떻게 되어있는지 보는 방법에 대해서 공유하고자 합니다~ 자, 먼저 터미널을 여시고~~ 1. apk앱 내 manifest 및 gradle 설정 등 보기 cd/Library/Android/sdk/build-tools/28.0.3 위와 같은 경로로 이동해보시면, (저는 28.0.3 버전이 설치되어있어서, 여기로 왔는데, 다른 버전이어도 상관없습니다.! 최소버전이 따로 있는지는 잘 모르겠네요.. ^^;;) aapt라는 파일이 있습니다. 이 녀석이 이번에 우리를 도와줄 녀석입니다. 자 그럼 명령어를 입력해봅시다. ./aapt d badging (APK파일) 으아 엄청..

안녕하세요~! 모바일 개발자 CNOO 입니다. 오늘은 Android에 대해서 포스팅해보려 합니다! 회사에 안드로이드 개발자가 부재인 기간동안에는 제가 직접 안드로이드 개발을 병행하곤 했었는데요 (병행해도 월급은 고정이라는 불편한 진실 ㅡㅡ;) 한때 ADB로 앱 설치 디버깅하는 방법을 몰라서 굉장히 헤맸던 기억이 있어, 이번에 포스팅으로 정리해보려 합니다. 1. ADB가 있는 경로로 이동 ADB 명령어로 앱을 설치하면, 우리가 apk파일을 폰에서 설치할 때 실패하는 등 오류의 원인을 파악할 수 있다는 것이 가장 큰 장점입니다. 터미널 창을 켜주시고, cd Library/Android/sdk/platform-tools 위와 같은 경로로 들어가보시면, adb라는 파일이 있을 것입니다. 저기에 있는 adb로 기..

안녕하세요 iOS 개발자 CNOO입니다. 오늘은 merge를 활용하여 버튼 두개의 이벤트를 처리하는 코드를 작성했던 경험을 공유하고자 포스팅하게 되었습니다. 1. 분리된 코드 (리팩토링 전) 아래 코드와 같이, 뭔가 정말 비슷하게 동작하는데.... 하나의 코드로 리팩토링 할 수는 없을까 고민하고 삽질해보았습니다. 먼저, 분리된 코드 먼저 보시죠 어차피 같은 이메일 보내기 동작인데, 두 번이나 쓸 필요는 없겠죠?? 2. merge된 코드 (리팩토링 후) 자! 여기서 우리는 merge라는 operator를 활용하여, 하나의 코드로 작성해보겠습니다. 아! 그 전에, merge가 어떻게 동작하는지, 간단히 마블 다이어그램부터 보고 가실게요 merge operator의 마블다이어그램 출처: .ReactiveX 홈..
안녕하세요~iOS 개발자 CNOO 입니다. 오늘은 RxSwift를 이용하여 UITextField, UITextView의 글자수를 제한하는 방법을 알아봅시다~ 1. Delegate 방식기존에 Delegate 방식으로 이벤트를 받아 처리하는 것은 아래와 같이 했었죠!닉네임 입력창의 글자 수 제한을 8자로 제한하는 코드입니다.이 방법은 많이 익숙하실 것이고, 검색하면 많이 나오는 코드죠!( 저도 어딘가에서 복사 붙여넣기 해서 만든 코드인거같네요...) 2. RxSwift 를 이용한 처리델리겟 방식도 처음엔 엄청 편하고 그랬는데,RxSwift 공부하면서 코드가 더 깔끔해져서 이제는 Rx코드만 쓰네요 ㅋㅋ아래는 인증번호 입력창을 6자로 제한하는 코드입니다. 이 코드는 어디서 배껴온건 아니고 제가 직접 짰어요!Rx..

startWith!!! Observable 시퀀스 앞에 원하는 값을 programmically 추가해주는 유용한 기능을 한다!! 구성하고 있는 화면 중에 아래와 같이 스터디장이 일일 공부시간을 수정하는 화면이 있는데, 코드는 다음과 같이 짰다. intPicker는 시간을 선택하는 UIPickerView고, minPicker는 분을 선택하는 UIPickerView이다 intArr에는 시간이, minArr에는 분이 10 ~ 50까지 들어있다!! 여기서 시간과 분을 모두 바꿔주어야만 combineLatest스트림에 EventControl이 전달되기 때문에 문제를 겪고 있었다. 이렇게, programmically 선택을 해주어도, 스트림에 전달되지는 않았다 ㅠ_ㅠ 그래서 열심히 삽질한 결과!!! 구세주 star..

모든 라이브러리가 그렇듯, 우리는 RxSwift를 공부하면서 가장 먼저, 그리고 가장 최우선적으로 참고해야하는 곳이 바로 공식 사이트 입니다. 그러나!!!!!! 이미 RxSwift를 공부하시기 시작한 분은 다른 포스팅에서 숱하게 보셨을테니... 저는 RxSwift를 공부하면서 스스로 깨달았던 부분들에 대해서 포스팅해보려 합니다. (그래도 공식사이트 링크 정도는 남겨두도록 하겠습니다 ㅎㅎ 저도 자주 들어가보곤 하니까 링크 하나 있으면 편하겠네요~ http://reactivex.io/ 기본적으로 공식사이트에는 아래와같이 An API for asynchronous programming with observable streams 라고 적혀있는데요.. 이 문장의 의미를 최대한 심플하게 이해하실 수 있도록 예제를 ..
안녕하세요 iOS 개발자 CNOO입니다. 3년동안 iOS개발을 하면서, 매번 MVC 패턴으로 설계되어있는 소스만 유지보수 하다보니, 현업에서 근무하는 동안 RxSwift의 필요성을 딱히 느끼지 못했던 것 같습니다. 풀타임으로 근무하고있는 현 회사에서는 마음대로 구조를 바꾸거나, 보안취약점 등의 이유로 제가 만든 작은 모듈 하나도 마음대로 붙이지 못해서 그런걸수도 있겠네요.. (금융업계다보니 개발하기에 굉장히 폐쇄적인 환경입니다 ㅠ_ㅠ) 개발자는 계속 공부하고 발전해나가야한다는 생각이 있어, 친한 동생이 창업한 작은 스타트업의 iOS 개발도 함께 진행중입니다. (렛터디 라는 소규모 스터디 플랫폼입니다. ㅎㅎ 관련 소개는 다른 카테고리를 참조해주세요~) 공식 오픈을 앞두고있는 신생 스타트업이라, 최신 라이브..