5월, 2018의 게시물 표시

iOS WebView Bottom Navigation Icon 적용

이미지
지난 포스트 에서 iOS Navigation Controller를 이용해서 WebView에  Bottom Navigation을 구현해보았다. 하지만 버튼이 사파리의 그것과 달리 텍스트로 보여지는데 텍스트 대신 아이콘으로 변경해보자. 우선 아이콘을 준비해야 하는데 Icons8 사이트에서 4 가지 버튼(Back, Forward, Reload, Home)에 맞는 아이콘을 다운받도록 하자. icons8.com에서 다운받는 방법은  https://icsdd.blogspot.com/2018/05/blog-post_24.html  참조. 필자가 다운받은 아이콘은 다음과 같다. 이제 Xcode를 실행하고 지난 포스트에서 만든 프로젝트를 열고 좌측 Project navigator의 Assets.xcassets를 선택한다. <사진 1>과 같은 모습이다. <사진 1> <사진 2> <사진 3> <사진 4> <사진 2>와 같이 다운로드한 아이콘들을 탐색기에서 끌어다가 Xcode의 Outline View로 놓으면 <사진 3>과 같은 모습이다. 우측 Set Viewer를 보면 추가한 아이콘들이 1x로 표시되는데 <사진 4>와 같이 아이콘을 Drag&Drop으로 2x 또는 3x로 이동할 수 있다. <사진 5> <사진 6> 이제 스토리보드를 열어서 각각의 버튼에 아이콘을 설정해보자. <사진 5>와 Back버튼을 선택하면 우측 Attribute inspector > Bar Item > Image 항목의 드롭다운 목록을 열어보면 이전에 추가한 아이콘들이 보인다. Back버튼으로 사용할 아이콘을 선택하고 나머지 Forward, Reload, Home버튼도 동일한 방법으로 아이콘을 설정해준다. 정상적으로 아이콘설정을 마쳤다면 <사진 6>과

iOS WebView Bottom Navigation 구현

이미지
iOS UIWebView를 이용해서 웹앱을 만들고 Safari처럼 하단에 네비게이션 기능을 구현해 보자. Navigation Controller의 Bottom Bar를 이용해서 뒤로가기, 앞으로가기, 새로고침, 홈으로 가기  4개의 기능을 만든다. 특히 아이폰은 안드로이폰에서 제공하는 뒤로가기 버튼이 없기 때문에 웹앱의 경우 사용자들이 불편함을 많이 호소하는데 뒤로가기 뿐만 아니라 일반적으로 브라우저에서 제공하는 앞으로가기, 새로고침, 홈으로 가기 기능을 추가한다면 사용자들이 더 편리하게 앱을 사용할 수 있을것 같다. 우선 Xcode > File > New > Project... 로 <사진 1>과 같이 Single View App으로 프로젝트를 하나 생성한다. <사진 1> <사진 2> <사진 2>는 스토리보드 화면이다. 우측 유틸리티 영역의 하단 필터바에서 webview로 검색을 하면 화면과 같이 2개의 웹뷰가 나타난다. 하나는 Web View이고 다른 하나는 Webkit View이다. 보이는 바와 같이 Web View는 deprecated 라고 표시된다. 예전부터 사용되어 오던 UIWebView인데 더 이상 사용되지 않는다. 좀 더 개선된 Webkit View를 Drag&Drop으로 View영역에 넣고 레이아웃을 적당히 설정한다. 우측 상단의 Assistant Editor를 열어서  ViewController.swift파일을 열고 CTRL키를 누른채 Web View를 마우스로 끌어다가 놓으면 <사진 3>과 같이 다이얼로그창이 열린다. Name을 webView로 입력하고 Connect버튼을 누르면 변수가 자동으로 생성된다. <사진 3> <사진 4>와 같이 ViewController에 WebKit을 import하고 viewDidLoad함수에 웹뷰 초기설정을 해준다. 이제 디바이스나

무료 이미지/아이콘 다운로드

이미지
개발자가 디자이너 없이 혼자서 개발을 진행하면 가장 큰 애로사항 중 하나가 이미지나 아이콘이 필요할때이다. 예전에는 구글이나 네이버등 검색엔진에서 검색 후 가져다 썼지만 요즘은 디지털컨텐츠에 대한 저작권 문제로 고발을 당하거나 벌금을 내야 할수도 있기 때문에 주의를 해야 한다. 하지만 인터넷 검색을 잘 하면 무료로 사용할 수 있는 것들이 있는데 오늘은 Icon8( https://icons8.com/ )이라는 사이트의 무료 아이콘 사용법에 대해서 알아본다. <사진 1> <사진 1>이 icon8.com의 메인페이지인데 무려 68,600개의 무료 아이콘이 있다고 한다. 검색창에서 검색을 하거나 상단 메뉴의 Icons 메뉴를 누르면 <사진 2>의 화면을 볼수 있다. <사진 2> 좀 둘러보니 쓸만한 아이콘들이 제법 많고 이 곳에서 원하는 아이콘도 찾았다. 게다가 아이콘을 다운로드하기 전에 색상, 크기, 텍스트, 오버레이, 포맷 등 간단하게 편집까지해서 다운로드를 받을수 있다. 그럼 간단히 색상과 크기정도 편집해서 다운로드 받는 방법에 대해서 알아보자. 원하는 아이콘을 선택하면 <사진 3>과 같이 우측 상단에 아이콘이 표시된다. <사진 3> 기본적으로 iOS Fill 스타일이 적용되어 있는데 다른 스타일을 원하면 아이콘의 우측 목록에서 선택하면 적용된 모습을 볼 수 있다. 아이콘 바로 밑에 포맷과 크기를 선택할 수 있는데 "PNG 50 px"를 누르면 <사진 4>와 같이 포맷과 크기를 변경할 수 있는 모달창이 뜬다. "More sizes"를 누르고 원하는 크기를 입력한 후 우측 체크버튼을 클릭하면 설정이 끝나고 모달창이 닫힌다. <사진 4> <사진 5> <사진 6> <사진 6>은 편집이 끝난 화면이다

cURL error 60: SSL certificate: unable to get local issuer certificate

이미지
Google GCM Push notification을 발송하기 위해 PHP curl을 이용해 직접 https://android.googleapis.com/gcm/send 로 발송할때는 이상없이 잘 동작했지만, Google FCM으로 변경하면서 좀 더 쉽고 빨리 작업을 마치려고 Yii Framework의 Understeam/yii2-fcm extension을 설치해서 Push notification을 발송했더니 다음과 같은 error가 발생했다. cURL error 60: SSL certificate: unable to get local issuer certificate  error log를 보니 guzzlehttp라는 패키지에서 https 통신을 할때 SSL 인증서문제가 발생하는 듯 하다. 해결책은 다음과 같다. <사진 1> https://curl.haxx.se/docs/caextract.html 에서 "cacert.pem"파일을 다운로드해서 적당한 경로에 저장하고 php.ini 파일에 ";curl.cainfo = "라인을 찾아서 주석을 해제하고 curl.cainfo 라인이 없으면 적당한 위치에  추가한 후 cacert.pem파일의 경로를 입력하고 Apache 를 재시작하면 해결된다.

swift compiler error : could not build objective-c module 'Firebase'

Google Firebase를 이용해서 Apple iOS 기기로 푸시 메시지를 보내기위해 작업중이다. Firebase에 iOS 앱을 추가하고 안내에 따라 진행을 하는 중 마지막 단계인 Firebase 코드를 추가하니 AppDelegate.swift파일의 import Firebase 라인에서 다음과 같은 에러가 발생했다. could not build objective-c module 'Firebase' google과 stackoverflow 검색을 해보니 역시나 많은 질문과 답변들이 있고 해결책들은 대동소이하지만 다음과 같다. Quit Xcode. Delete project's temp files located at  ~/Library/Developer/Xcode/DerivedData Delete  ProjectName.xcworkspace Delete  Podfile.lock  file and  Pods  folder Run  pod install . Open the newly created  ProjectName.xcworkspace  file and build. 이와 같은 방법으로 여러 차례 시도해 보았지만 해겨이 되지 않았는데 여기서 중요한 것은 6번이다. Xcode를 실행할때 Dock이나 Spotlight를 통해서 직접 실행하면 안되고  반드시 Finder에서 해당 프로젝트내에 있는 ProjectName.xcworkspace 파일을 더블클릭해서 Xcode를 실행해야 한다는 것이다. 이렇게 실행을 하니 오류가 바로 해결되고 빌드가 정상적으로 이루어졌다.

Apple App Store Distribution

이미지
열심히 만든 iOS앱을 애플 앱스토어에 배포하기란 여간 귀찮고 힘든일이 아니다. 개인적으로 안드로이드앱을 구글플레이에 배포하는 과정에 비하면 딱 열 배쯤 힘들지 않을까 생각한다. ^^;; 하지만, 한 가지 좋은 소식은 과거(7-8년 전)에 비해 등록 및 심사 절차가 조금은 쉽고 빨라진 듯 하다. 앞으로 더욱 쉽고 간편해질 것이라 기대해본다. <사진 1> <사진 2> <사진 3> <사진 4> <사진 5> <사진 1>은 애플 개발자 프로그램등록이 정상적으로 완료되고 개발자사이트에 로그인하면 첫 화면이다. 가장 오른쪽에 있는 "iTunes Connect"를 누르면 <사진 2>의 화면이 보이고 여기서 다시 "Go to iTunes Connect"버튼을 누르면 <사진 4> 화면이 보이고 좌측 상단 "+"버튼을 누르면 나오는 메뉴의 "신규 앱"을 누른다. 그럼 <사진 5>와 같이 "iOS 앱에 사용할 수 있는 번들 ID가 없습니다."라는 대화창이 뜬다. "여기에서 등록하십시오."를 누른다. <사진 6> <사진 6>과 같이 "iOS Certificates"라는 화면이 보이는데 나중에 앱을 등록하기 위해서 인증서가 필요한데 지금은 넘어가고 좌측 메뉴의 "Identifiers > App IDs"를 누른다. 인증서를 요청하는 방법은 두 가지 방법이 있다. 하나는 Xcode에서 요청하는 것이고 다른 하나는 <사진 6> 화면의 "Certificate Signing Request"를 눌러서 수동으로 진행하는 방법이다. Xcode를 통해서 진행하는 것이 더 편할것 같다. <사진 7>