목록프로그래밍 (88)
개발자 블로그
길게 설명 안한다. 이거 모르는 흑우 아직 없제? 여기서 예언 하나.. 당신은 분명 속으로 'x발..'이라고 말했을꺼다. 내말이 맞지? ㅋ 응~ 내 얘기야.. 이 것 때문에 오늘 삽질 존나게 했네.. ㅅㅂ
뭐 대부분의 문제가 그렇겠지만, 이 문제 역시 바보 같은 나의 실수 때문에 발생한 문제였다. RecyclerView.Adapter의 getItemCount() 함수만 호출 안되는 것이 아니고, 다른 override 함수들인 onCreateViewHolder(), onBindViewHolder() 함수 역시 모두 호출이 되지 않았다. 브레이크 포인트를 걸어보고, 로그를 찍어봤지만 역시 호출이 안된다는 것이 확인됐다. 구글링을 해보면 LayoutManager 설정을 빼먹은게 아니냐는 글이 많고, 실제로 가끔 겪는 실수이긴한데, 이번에는 그 문제가 아니었다. 그리고 LayoutManager 설정을 빼먹었을 때는 Logcat 메시지에 아래 이미지처럼 친절하게 알려준다. 이번에 getItemCount()를 비롯해..
약간 강박 같은게 있어서 책을 보면 맨 처음부터 끝까지 건너 뛰지 않고 읽는 편인데, 이건 중간을 많이 건너 뛰고 읽었다. 책 제목이 길긴 하지만 어쨌거나 아래 사진에서 보여지다시피 "유니티"에 대한 책이다. 하지만 난 "1인 개발자"에 초점을 맞추고 관련된 부분만 읽었다. 유니티 관련된 내용은 전에 다른 책으로 봤으니깐. 유니티 입문자라면 지금 리뷰 쓰는 이 책보다는 "(그림으로 이해하고 만들면서 익히는) 유니티 교과서" 책이 좀 더 낫지 싶다. ☞ 교보문고 - 1인 개발자를 위한 처음 시작하는 유니티유니티 프로그래밍을 포함해서 1인 게임 제작부터 판매까지 다루고 있지만 책 두께는 그리 두껍지 않다. 페이지는 360페이지. 이 말은 다루는 내용이 깊지 않다는 얘기. 1인 게임 개발과 관련해서 좀 많은 ..
국내에는 출시되지 않은 UWP 책을 구입했다. 아마존을 통해서. WPF도 그렇고, UWP도 그렇고, 국내 윈도우 클라이언트 프로그램 시장은 다 죽었는가보다. 책 조차 출시되지 않는걸 보면. 아마도 대부분 웹으로 옮겨갔겠지.사실 뭐 나도 UWP로 밥 벌어먹고 사는 입장은 아니다. WPF는 간간히 호작질할 때 쓰긴 하는데 UWP는 써본적도 없다. 그럼에도 불구하고 굳이 UWP 책을 산건 윈도우 클라이언트 프로그래밍이 좋기도 하고, 책 수집 자체에 목표가 있기도 하고 뭐 그렇다.주문은 아마존에서 했다.택배 도착. 배송은 딱 1주일 걸렸다. 배송 상태는 썩 좋지 않았다. 그나마 뽁뽁이 들어있어서 책은 이상 없더라. 이렇게 지난번 WPF 책에 이어서 UWP 책도 소장하게 되었다. 헤헤. 원서라서 읽는데 시간이 좀..
배터리 최적화 예외 목록에 등록하기 위해서 "ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" 인텐트를 실행했을 때 뜨는 대화상자다.혹시나 해당 권한 요청을 고려하는 개발자에게 도움이 될까 싶어서 추가한다.여기서 허용을 하게 되면, 배터리 최적화 예외 목록에 "최적화 하지않음"으로 추가 된다. 참고로 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 인텐트를 실행하기 위해서는 REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 퍼미션이 필요하다. 그리고 (중요) 해당 퍼미션이 선언 된 앱은 Google Play에 앱을 등록할 때 거부될 수도 있다. 해당 퍼미션이 앱 사용에 있어서 반드시 필요한 경우에만 승인을 해준다고 한다. 자세한..
권고(?)라는 표현이 맞을지는 모르겠다. 그냥 강제사항이라고 보면 될 것 같다.SMS 앱.. 그러니깐 문자메시지 앱이 아닌 앱의 경우에는 RECEIVE_SMS 퍼미션을 제거해야 된다. 자세한 내용은 아래 링크를 참조.https://support.google.com/googleplay/android-developer/answer/9047303?hl=ko 내가 대응한 부분은 본인확인을 위한 인증코드를 자동입력 해주는 부분이다. 게임 앱이기 때문에 SMS 관련된 기능은 전혀 없지만 처음 게임 시작할 때 본인확인 하는 부분에서만 사용하고 있었다. 일단 RECEIVE_SMS 권한은 제거 해야 된다. 그리고 인증코드 자동입력은 새롭게 추가된 "SMS Retriever API"를 사용하면 퍼미션 선언 없이도 기존처럼..
메인으로 쓰는 키보드는 아니다. 메인으로 쓰는 키보드는 삼성전기에서 만든 DT-35다. 출시된지 엄청 오래된 키보드지만 아직도 이걸 메인으로 쓰고 있다.로지텍 K120 키보드는 부모님 집에 있는 컴퓨터에서 사용중이다. 특별한 기능은 없는 그냥 보통의 키보드다. 저가형.. 이라고 해야 맞겠지?자세한 내용은 아래 링크 참고.☞ 로지텍 K120 상품정보 (클릭)키보드 레이아웃은 이렇다. 개인적으로는 별로 좋아하는 키 배치는 아니다. 엔터키가 큰 옛날 스타일의 키 레이아웃을 선호한다. 아니.. 고집한다.. 라고 해야 맞는 표현일 것 같다. Esc 키가 안쪽으로 들어가있는것도 마음에 안들고. 뭐 키보드 레이아웃은 개인의 취향에 속하는 영역이니깐 그냥 여기까지만 하고..키보드 자체만 놓고 봤을 때는 1만원이라는 가..
웹사이트 또는 블로그를 운영중인 사람이라면 "리퍼러(Referrer)"가 무엇인지는 이미 알고 있을거라고 생각한다. (잘 모르면 아래 링크 클릭!)위키백과 - HTTP 리퍼러간단하게 말하면 방문객이 어떤 경로로 유입되었는지 알 수 있는 정보다. 웹사이트 관리자라면 잘 알고 있을것이고, 지금 글을 작성하고 있는 티스토리 블로그에서도 관리자 페이지를 통해 이 정보를 볼 수 있다.아래 이미지는 티스토리 블로그의 관리자 페이지 > 통계 > 경로 > 유입로그를 캡처한 화면.저기서 빨간색으로 표시한 것은 web을 통한 방문이 아니라 스마트폰의 구글 검색 위젯을 통해 들어온 유입니다.내가 구현하려고 하는 것도 저것과 비슷한거고. 리퍼러를 추가하려는 Activity. 단순한 도움말 화면이다. 여기에 리퍼러를 추가하려는..
"iOS"(아이폰)에서 구글 애드몹(Admob)을 사용할 때 발생하는 에러에 대한 에러코드와 설명. 안드로이드는 광고 요청 실패에 대한 에러코드 설명이 공식 문서에 있던데 iOS 버전은 따로 없는건지 아니면 내가 못찾은건지 모르겠다. 일단 안드로이드 버전은 아래 링크에서 확인 가능하다. Android onAdFailToLoad 에러코드 - 바로가기 참고로 아래 에러코드들은 내 앱에서 발생한 에러들만 확인한거라서 전체 목록은 아닐 수 있다. 에러코드 설명 1 Request Error: No ad to show. 2 Request Error: A network error occurred. 11 App is in background and background loading is disable. Ignoring..
최근에 아이폰 앱을 업데이트 하는 과정에서 겪은 문제다. 제목이 너무 길어질까봐 CFBundleVersion Mismatch 하나만 썼는데, 아마 CFBundleShortVersionString Mismatch 경고도 함께 떴을꺼다. 일단 에러는 아니다. 그렇기 때문에 그냥 냅둬도 문제는 없지만 괜히 찝찝하니깐 해결하는 방법을 알아보자.그 전에 아래는 애플에서 받은 메일. 내용을 요약하면, "메인 앱과 쉐어 익스텐션 버전이 불일치한다. 앱 업로드는 성공했다." 정도 되겠다. 이번에 Share Extension을 추가했는데, 원래 메인 앱(이걸 정확히 뭐라고 지칭해야 되는지 모르겠네..)과 버전이 다르기 때문에 발생한 경고였다. 업로드 하기 전에 Validate 할 때는 아무 말이 없더니.. 진작 알려주든..
일반적으로 윈도우에서는 TTF, 맥(Mac)에서는 OTF 폰트를 쓴다는건 익히 알려져있지만 안드로이드 기기에서는 무슨 폰트를 써야 되는지 명확한 설명을 찾아보기 어려웠다. 각 포맷 자체에 대한 설명, 곡선을 그리는 방식의 차이에 대한 글은 봤지만,, 일반 사용자 입장에서는 별로 와닿지 않는 내용일테고. 정작 중요한건 "기기에서 어떻게 보이느냐?"가 아닐까 싶다.시간이 없는 바쁜 분들을 위해서 결론부터 말하면, 안드로이드에서는 OTF 폰트를 사용하기를 추천한다. 안드로이드 테스트를 하기 전에 먼저 윈도우에서 TTF, OTF 두 폰트를 비교해보자. 아래 사진 중 위에가 TTF, 아래가 OTF 폰트다.글자 크기가 큰 텍스트는 차이가 거의 없어보이지만, 크기가 작은 텍스트는 확실히 TTF 폰트가 더 보기 좋아보..
업데이트 한지는 한참 지났는데.. 이제서야 쓴다. 처음 아이폰 앱 개발을 시작했을 때의 개발환경은 Xcode8, swift3였다. iOS11 출시와 함께 xcode9, swift4가 정식으로 출시 되었고, 최근에 앱을 업데이트 하면서 Xcode와 swift 언어도 업데이트 해보았다.사실 뭐 인터넷으로 자료를 찾아볼 때 이미 swift 버전이 올라갈 때 마다 문법도 굉장히 달라진다는건 알고 있던터라 여기저기서 에러를 뿜어댈거라는건 미리 예상하고 있었다. 그리고 xcode 버전업은 이번이 처음이긴하지만, Android studio에서 당했던(?)걸 생각해보면 이거 역시 깔끔하게 돌아갈거라고는 생각하지 않았고, 불행히도 예상은 적중했다.일단 xode9과 swift4의 일반적인 변경 사항은 아래 링크와 영상을 ..
기획자, 디자이너의 도움없이 개발자 혼자서 앱을 만든다는건 참 어려운일 같다. 아니 정확하게는 앱을 만드는건 어렵지 않은데, 이쁘게 만든게 어려운 것 같다. 근데 이 "이쁘게"가 절대적으로 중요하다. 기능이 아무리 뛰어나다고 해도 일단 디자인이 구리면, 사용자들은 아예 설치 조차 안한다. 나 역시 나홀로 개발자라서 디자인 관련된 작업들도 모두 혼자서 다 하고 있는데, 지금까지 몇 개의 프로그램을 만들면서 도움받았던 디자인 관련 사이트들을 정리해봤다. 나 처럼 디자이너 없이 혼자 고군분투하면서 앱을 개발하고 있을 나홀로 개발자들에게 도움이 되었으면 좋겠다.총 21개의 사이트를 소개하려고 한다. 단순 나열하기에는 좀 많은 것 같아서 아래처럼 카테고리를 나눠봤다.색 관련아이콘 관련이미지 관련디자인 가이드기타 ..
앱을 사용하다가 백그라운드로 전환 된 후에 시간이 한참 지나면 시스템이 메모리 확보를 위해서 앱을 종료 시킨다. 다시 앱이 Active 상태로 전환 될 때 정상적인 동작을 위해서는 onSaveInstanceState 함수를 오버라이딩해서 필요한 멤버변수의 값을 저장하는 등의 필요한 조치를 해야 된다. onCreate에서는 인자로 넘어온 Bundle값을 체크해서 다시 멤버변수의 값을 복원해주는 등의 작업을 해야 되고. 사실 코딩하는건 간단한데, 테스트 하는게 쉽지가 않다. 시스템이 앱을 kill 시키는 경우를 만들어야 되는데 사용자가 제어할 수 있는게 아니니깐.내가 가지고 있는 안드로이드 책에는 DDMS에서 프로세스를 종료시키면 된다고 써있는데.. 막상 해보면 앱이 완전히 종료되어 버린다. 사실 [개발자 ..
Visual Studio 2015에서 발생한 문제고, C# winform을 사용해서 프로그래밍을 하는 과정에서 발생한 문제다.대충 검색해보니깐, Visual Studio가 아닌 다른 응용프로그램에서도 발생하는 문제인 것 같다. 화면을 캡쳐해두지 않아서 비슷한 이미지를 찾아서 첨부했다.다만 내 경우에는 "매개 변수 이름"이 "key"가 아니고, "context"였다. 전체 메시지는값은 null일 수 없습니다. 매개 변수 이름: context 내가 만든 프로그램에서 다국어 버전을 위해서 Language는 한국어와 영어 이렇게 두 개를 지원하는데, Language 항목을 "영어"로 변경한 다음에 실행하려고 하면, 위에 첨부한 에러 메시지가 떴다. 재미있는건 Localizable 항목을 False로 변경한다음에..
안드로이드 오레오(8.0, API26)에서 ProgressDialog가 Deprecated 되었다. iOS에는 원래 이게 없어서 만들어 썼었는데.. 안드로이드에서는 있던 걸 Deprecate 시켰다. 아니 왜?? 이유를 찾아보니..ProgressDialog가 모달(Modal) 대화상자기 대문에 사용자와의 상호작용성을 떨어트리기 때문이란다. 아예 ProgressBar를 화면에 추가하던지, Notification을 통해서 구현하라고 한다. 아래는 그 내용. (출처)This class was deprecated in API level 26. ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instea..
안드로이드 새 버전이 출시 되었다. 이번에는 알파벳 O로 시작할 차례. 이미 공개된지 오래지만, 이름은 오레오(Oreo)다.그동안 앱 업데이트를 조금 소홀히 했더니 검색 순위에서도 엄청 밀리고.. 유입보다 삭제가 더 많은 지경에 까지 이르렀다,, 개발한다고 끝나는게 아니구나. 블로그도 새로운 포스팅 작성 안하면 유입이 점점 줄어들던데 앱 개발도 별로 다르지 않은 것 같다.targetSdkVersion을 올리는건 조심해야 된다. 예전에 안드로이드 마시멜로 버전이 출시 되었을 때 한 번 달라진 권한 모델 때문에 피를 본 경험이 있다. 이 때의 기억이 트라우마로 남은건지.. 버전을 올릴 때 마다 늘 걱정이 된다..-_-;;안드로이드 오레오(Android 8.0)에서 달라진 동작들은 여기서 확인 할 수 있다. ..
안드로이드 마시멜로 버전이 출시되었을 때, 변경된 권한 모델로 인해서 꽤 많은 피(?)를 본 경험이 있다. 그래서 그런지 새로운 안드로이드 버전이 출시 될 때마다 '권한'과 관련된 변경사항은 특별히 더 신경을 써서 챙겨본다.과거 마시멜로 권한 관련 에피소드는 아래 링크를 참조2016/10/20 - [전업개발자 이야기] - 첫 번째 앱을 출시했다가 다시 내리기까지.. 이번에 새롭게 출시 된 안드로이드 오레오(Oreo, 8.0) 버전에서도 '권한'에 대한 변경이 있다. (원문 보기 : https://developer.android.com/about/versions/oreo/android-8.0-changes.html?hl=ko#rmp)간단하게 설명하면, 안드로이드 마시멜로(6.0)부터 누가(7.1) 까지는 ..
이런 모양의 패턴을 정확하게 뭐라고 부르는지 모르겠다,,-_-;; 아니 정확한 명칭이 있기는한가? 모르겠네,,그래도 그냥 "투명 배경 패턴" 이라고 하면 다들 뭔지 알긴할꺼다. 아래 이미지 처럼 하얀색과 회색의 사각형이 반복적으로 나타나는 패턴. 이걸 이미지 리소스를 사용하지 않고, swift 코드로 생성하는 방법을 소개하려고 한다. 아래 코드는 그냥 투명 배경 패턴 이미지를 생성해서 UIImageView에 배경 패턴으로 설정하는 코드다. func setMosaicPattern() { // 투명 배경 패턴 이미지 생성 let image = createPatternImage(blockWidth: 10) // 배경색으로 설정 imgView.backgroundColor = UIColor(patternImage..
한 번의 리젝 이후 다행이 리뷰는 무사히 통과했다. 리젝 후에도 리뷰에 걸린 시간은 동일했다. (좀 더 빠를 줄 알았는데,,)개발한 앱을 릴리즈 하기 위해서는 크게 1. 개발자 등록 2. 프로비저닝 프로파일 생성 3. iTunes Connect에서 앱 등록 4. 리뷰 이렇게 네 개의 단계를 거쳐야 한다. 개발자 등록은 등록비를 지불하는 절차다. 달러화로 결제하는 줄 알았는데 원화 결제였다. 변경이 된건가 싶다. 예전에는 구글 플레이 스토어에서 앱 구매하는것도 달러였다가 원화로 바뀐 것 같던데,, 외화 결제 전용 카드를 만들어놨는데 쓸데가 없다. 아, 구글 개발자 등록할 때 딱 한 번 사용했구나. 그나마 체크카드라 연회비는 안나가서 다행이다. (해외결제 전용 체크카드 관련 글)글이 또 주제를 벗어났구나. ..
역시 한번에 통과 안되는구나..-_-;메타 데이터에 문제가 있었다. 정확하게는 첨부한 다섯장의 스크린샷 가운데 두 개의 스크린샷이 문제가 되었다. 저작권에 문제가 되는 이미지가 포함되었다는게 그 이유였다.앱은 이미지 카테고리에 포함되는 앱이었는데 성격상 음악과 밀접한 관련이 있어서 앨범 커버 이미지가 스크린샷에 포함되었는데 그게 문제였다. 그렇다고 내 앱이 앨범 커버 이미지를 직접 포함하고 있는건 아니었고..아까 말했듯이 이미지 관련된 앱이다보니깐 갤러리에 저장된 이미지를 보여주는 기능이 있는데 샘플로 사용된 이미지가 앨범 커버 이미지라서 그렇게 되었다. 스크린샷에 포함된 앨범 이미지는 썸네일 형태로 작게 보여주는 것이라서 별 문제가 안 될 것이라고 생각했는데, 애플에서는 그렇게 판단하지 않은 것 같다...
여기에 오랜만에 글 쓰는 것 같다. 얼마전에 다국어 버전과 관련한 글을 쓰기는 했지만,, 사실 전업개발자와는 조금 거리가 있는 내용이었다. 오늘 쓸 글은 그냥 아이폰 앱을 처음으로 릴리즈 한 기념으로 짧게 써보려고 한다. 그동안 글이 끊긴 이유는 실제로 개발일을 잠시 손에서 놓고 있었다. 너무 개인적인 이야기라서 여기에 적기는 좀 그렇고.. 그냥 대충 얘기하면 잠시 방황을 좀 하다가 왔다. 다시 전업 개발 일을 하면서 뭘 할지 고민을 하다가 아이폰 앱을 개발하기로 했다. 신규는 아니고 전에 안드로이드로 출시한 앱을 아이폰 개발 공부도 할겸 아이폰 버전으로 만들어봤다. 안드로이드와 비교하면, 초보 개발자가 "일정수준"의 앱을 구현하는데 있어서는 안드로이드보다 쉬운 것 같았다. 프레임워크에서 좀 더 많은 일..
MS의 Windows와는 다르게, iOS나 안드로이드는 하위 버전에 대한 호환성을 별로 지원하지 않는 듯 하다. 특히 iOS쪽이 좀 더 심한 것 같은데, 이 부분은 그래도 애플에서 OS업데이트를 오랫동안 지원해줘서 크게 문제는 안되는 것 같다.반면 안드로이드는 삼성나 LG같은 대기업에서 제조한 플래그쉽 모델조차 OS 업데이트는 두 번이 최대인 것 같다. 일단 지금 내가 사용중인 G2도 킷캣이랑 롤리팝 이렇게 두 번의 업데이트가 전부였다. 그리고 얼마 전에는 G4의 누가 업데이트를 하지 않겠다고 밝혔다가 여론이 악화되자 다시 번복하는 일도 있었다. (안되는데는 이유가 있다.)관련기사 - LG전자, 'G4'·'V10' 최신 업데이트 지원한다(종합) 개발하는 앱의 성격에 따라서 조금씩 다르기는한데, 내 경우에..
안드로이드만 하다가 iOS 앱을 개발하려니 파일 시스템에 대한 개념 부터 참 새로웠다. 안드로이드는 이미 익숙히 알고 있던 개념이라서 배우는데 어려움이 없었는데, iOS는 iCloud도 있고.. 디렉토리에 따라 용도가 이미 정해져있기 때문에 아무 디렉토리나 마음대로 쓰면 안된다. 아이폰 앱 개발 초보자라면 일단 아래 가이드 문서를 본 다음에 시작하도록 하자.File System Basics - https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html타이틀에 이미 적었듯이, Documents..
아이폰 앱 개발을 위해서 사용하는 개발툴인 XCODE의 테마를 변경하는 방법에 대한 내용이다. 안타깝게도 Android Studio 처럼 프로그램의 전체 테마를 변경할 수 있는건 아니고, 에디터와 콘솔의 색상만 변경할 수 있다. XCODE의 기본(Default) 테마는 아래 첨부한 이미지처럼 하얀색을 기본으로 한다. 테마는 [Preference]의 [Fonts & Colors] 항목에서 변경이 가능하다.위 사진 좌측에 보이는 것들이 선택가능한 테마의 목록이다. (참고로 'Darcula'는 내가 따로 설치한 테마라서 기본 상태에서는 존재하지 않는다.)이 목록 중 어두운 계열의 테마는 Civic, Dusk, Midnight이다. 각각의 적용 모습은 아래와 같다. 1. Civic이건 나머지 테마와 비교해서 폰..
static uitableview라고 한건 정확하게는 content로 "Static Cells"를 사용하는 테이블 뷰, 그러니깐 테이블 뷰의 항목(Cell)들이 디자인 타임에 정의되는걸 말한다. 보통 "설정" 화면 같은 경우에 여기에 해당된다고 하겠다.기본적으로는 섹션이 하나 생기고 그 섹션에 Table View Cell들이 추가되는 형태가 된다. 섹션을 추가하려면 아래 첨부한 이미지에 보이는 것 처럼 Table View의 속성 중 "Sections" 항목의 값을 변경시켜주면 된다.사실 이렇게 포스팅을 작성할 필요도 없을 정도로 너무 간단한건데.. 나는 테이블 뷰의 Section도 Cell처럼 하나의 오브젝트라고 생각해서 Object Library에서 찾느라고 한참 헤맸다. 당연히 Object Libra..
디자인 타임에 폰트를 설정하는 방법은 너무나도 간단하다. 그냥 레이블 선택 한 다음에 폰트를 설정해주면 그걸로 끝.런 타임에 폰트를 적용하는 방법 역시 어렵지 않다. 폰트 객체 생성한 다음에 레이블의 '.font'에 대입해주면 끝. 개괄적인 내용은 아주 훌룡한 튜토리얼이 있어서 링크로 대체한다. (영어지만 그냥 이미지만 보면서 따라해도 쉽게 할 수 있다.)관련글 ☞ Common Mistakes With Adding Custom Fonts to Your iOS App 프로그램 소스 코드는 아래와 같다. let myLabel = UILabel() let fontSize = UIFont.systemFontSizelet newFont = UIFont(name: "font_family_name", size: fo..
이미지 위에 텍스트를 그리는 경우, 외곽선(Stroke)을 그리는 방법에 따라서 그려진 결과 이미지의 텍스트 품질에 영향이 있다. 예전에 C#에서 프로그래밍 할 때는 투명배경에 그릴 때와 불투명배경에 텍스트를 그릴 때 비슷한 품질의 차이가 있었는데, 그 때 생각이 나네. 텍스트의 외곽선을 선택적으로 그린다고 했을 때, 구현하는 방법에 따라서 아래 두 가지 방법을 생각해볼 수 있을 것 같다.1. if 조건문을 이용해서 필요한 경우에만 그려주는 경우 2. NSStrokeWidthAttributeName 속성값을 이용하는 경우2번 방법을 이용하는 경우는 width 값을 0으로 주면 결국에는 외곽선을 안그리는 결과를 가져온다. 2번 같은 방법은 코드에서 조건문이 사라지기 때문에 개인적으로 선호하는 방법이다. (..
어떻게 보면 지난번에 작성한 아래 글에서 이어지는 내용이 될 듯 하다. 2017/01/02 - [전업개발자 이야기] - 달력에서 토요일을 파란색으로 표시하는게 국제표준이 아니었구나.. 다국어 버전과 로컬라이징은 의미에 차이가 있다. 다국어 버전은 앱에서 사용하는 언어를 여러 국가의 언어로 만든 앱을 말하는 것이고, 로컬라이징(Localizing)은 현지 문화 특성에 맞게 현지화 하는 작업을 말한다.구글 플레이나 앱 스토어의 장점은 언어만 지원한다면 전 세계의 사용자들을 대상으로 내가 만든 앱을 배포할 수 있다는 것이다. 나도 사용자를 더 늘리기 위해서 디폴트 언어를 영어로 하고, 한국어 버전을 추가해서 앱을 개발한다. 언어외에 다른 리소스나 프로그램 로직에서 달라지는 부분은 없다.이렇게 '현지화' 작업 ..
iOS 앱 개발 시 ImageView에 적용 가능한 ContentMode의 속성에 따른 이미지 표시 방법을 정리 해봤다. 한글로 늘리기, 자르기 정도로만 알고있어서 영어 단어만 봐서는 정확하게 어떻게 표시하는건지 감이 잘 안잡힌다.참고로 UIImageView가 가지고 있는 속성은 아니고 UIView의 속성인 듯 하다. 근데 일반 뷰에서도 쓸 일이 있긴한가..?? 아직 아이폰앱 개발 뉴비라서 잘 모르겠다. 쉽게 외우는 나만의 방식은 제일 밑에서 소개하겠다.상하로 길고 크기가 큰 원본 이미지를 해당 이미지보다 크기가 작은 정사각형의 UIImageView 컨트롤에 표시하는 방식으로 진행했다. 일단 아래 이미지가 샘플 이미지다. 블로그에 첨부한다고 리사이즈를 해서 작은데 테스할 때 사용한 이미지는 당연히 원본 ..