본문 바로가기
반응형

프로그래밍300

[iOS] NSPredicate 24시간 범위 검색 조건 만들기(NSDate) 일정 관련 앱을 만들면서 정말 다양한 시간, 날짜 포맷에 대해 학습을 하게 되었다. 아이폰/안드로이드 모두 서비스를 하는 경우 날짜 포맷의 통일을 위해 UNIX의 Timestemp값을 사용하게 되는데 때문에 서버 API는 long형으로 내려 주게 되어 있었다. CoreData를 사용하면서 테이블에 해당하는 Attribute를 설계할 때 일정의 시작일자와 종료일자를 Double형으로 잡아두었다. 애초에는 달력을 그리고 이것 저것 하느라 별 고민이 없다가 실제 구현이 들어가면서 산적한 문제들에 봉착하였다. 예전 웹개발을 할 때는 MS-SQL을 주로 사용했는데 조금만 생각하면 풀 수 있는 문제들도 미처 그 생각까지 접근을 못해 아까운 시간만 낭비하고 밤새 낑낑 거리면서 코딩을 했던 기억이 난다. 일정을 등록할.. 2017. 4. 29.
[iOS] Event Kit 이용하여 일정 등록 하는 방법 일정 관리 앱을 만들다 보면 앱 자체에서 생성된 일정을 아이폰이나 아이패드 일정앱에 등록하고 싶을때가 있다. 프로젝트 진행시 요구사항으로 나왔던 기능이라 아이폰 개발 관련 도서를 뒤져서 찾아보니 과연 관련 프레임워크가 있다. EKEvent 프레임인데 역시 사용권한에 대한 수락이 있어야 가능하기에 권한 부여 하는 방법과 일정으로 등록되는 세부 항목에 대해서 살펴 볼 필요가 있다. Event Kit Framework는 캐린더 데이터베이스에 접근할 수 있게 하며 이벤트와 미리 알림, 알람을 관리할 수 있도록 설계되었다. 미리 알림을 iOS 어플리케이션에 통합하기 위해서는 EKCalendar, EKEventStore, EKReminder, EKAlarm클래스들에 대해 학습이 필요하다. EKEventStore는 .. 2017. 4. 26.
[iOS] 음력 변환(LunarSun Convert) 클래스 일전에 SKT Cake iOS프로젝트에 참여를 할 때 맡았던 부분은 캘린더(일정) 부분이었다. 안드로이드 앱이 이미 만들어져 있는 상태라 안드로이드 앱을 보면서 만들었는데 음력을 주기적으로 표시를 해주고 있었다. 당시 음력 계산에 대해서는 구현을 해본적이 없어 살짝 당황했었다. 웹 기반에서는 자바스크립트 리소스가 상당히 많았지만 iOS Objective-C형태로 구현된 리소스를 찾기가 만만치 않았는데 여기저기 떠도는 리소스를 찾아서 적용을 해보면 의외로 완벽한 음력 계산 리소스는 많지 않았다. 대체로 구현된지 오래되었고 특정 연도까지만 계산을 하는 방식이기도 했다. 우연히 검색을 통해서 찾게 된 클래스가 있어 공유를 하고자 한다. GitHub 경로 --> https://github.com/vantoan8.. 2017. 4. 25.
[iOS] Hex String to NSData 금융권 프로젝트를 하다 보면 보안키패드 적용은 거의 필수적이다. 보안 키패드의 경우는 서버와 클라이언트가 서로 싱크가 맞아야 복호화가 가능하기 때문에 서버 세션에서 Security Key를 만들어 관리를 하게 된다. 따라서 클라이언트는 동일 세션으로 서버와 통신을 지속해야하고(별도 HTTP세션을 만들어서 하면 안됨) 세션이 바껴서 키패드 Security Key가 변경되지 않도록 하는 것도 중요하다. 서버에서 생성된 보안키를 API를 통해 얻어 올 수 있는데 그 값이 Hex형태로 내려온다. 따라서 Hex를 String으로 변환하는 과정이 필요하다 NSData 카테고리를 별도로 만들어 사용하면 된다. 파일 전체 #import @interface NSData (HexString) +(id)dataWithHex.. 2017. 4. 24.
[iOS] UIWebView WebKit속성 설정 /User-Agent변경 지난번 프로젝트 때의 이야기이다. 웹뷰를 이용한 하이브리드 앱 개발이었는데 iOS에서 특정 기능이 작동하지 않는다고 하여 고심 중이었는데 모바일웹 페이지에서 사용하는 jQuery에서 명령어를 오프라인캐시에 저장을 해서 사용하는데 iOS에서는 해당 기능이 작동하지 않는 것 같다고 하였다. 인터넷 검색을 해보니 과연, 변경하는 방법이 있었다는... 여지껏 UIWebView를 사용하면서 한번도 설정해보지 않았던 속성을 설정하는 방법이 있었다. NSUserDefaults 클래스에 registerDefaults를 이용하여 WebKit 속성을 설정하는 방법에 대한 설명이다. 우선 [[NSUserDefaults standardUserDefaults] dictionaryRepresentation] 를 이용해서 어떤 속.. 2017. 4. 24.
[iOS] Objective-C 특수문자 정규표현식 유지 보수하던 앱에서 이모티콘 입력을 못하게 막아 달라는 부탁을 받게 되었다. 특수문자(일반적인 숫자, 영문/한글이 아닌)는 입력이 가능 해야 하고 이모티콘 문자열에 대해서만 입력이 되지 않도록 해야 한다고 한다. 입력 문자가 이모티콘인지 아닌지 체크하는 정규표현식과 현재 입력 키보드가 이모티콘 키보드인지를 체크하는 로직을 추가하였다. 일반적인 본문에는 이모티콘도 입력이 가능하며 제목이나 이름, 이메일 주소등에는 이모티콘이 입력되지 못하도록 작업을 추가하였다. 다양한 경험을 해 볼 수 있어 좋은 경험이 된 프로젝트. NSRange와 정규표현식을 이용한 문자열 체크 로직이다. Objective-C 함수. + (BOOL) checkValidateString:(NSString *)string { if (!st.. 2017. 4. 21.
반응형