IOS May 21, 2018

Content Mode : Scale to Fill, Aspect Fit, Aspect Fill 차이 정리

Words count 1.2k Reading time 1 mins.

  • 비율 무시! 귀여운 고양이가 옆으로 퍼져버렸습니다.
  • ImageView의 Width와 height에 이미지를 늘리고 우겨넣습니다.
  • 디자인 가이드로 정해진 레이아웃과 이미지가 아니...
Read article

IOS May 21, 2018

Content Mode : Scale to Fill, Aspect Fit, Aspect Fill 차이 정리

Words count 1.2k Reading time 1 mins.

  • 비율 무시! 귀여운 고양이가 옆으로 퍼져버렸습니다.
  • ImageView의 Width와 height에 이미지를 늘리고 우겨넣습니다.
  • 디자인 가이드로 정해진 레이아웃과 이미지가 아니면 이렇게 이미지를 괴롭히면 안돼요.

  • 비율 유지! 원본의 비율을 그대로 유지합니다.
  • 이미지는 절대 ImageView 밖으로 나가지 않습니다.
  • ImageView 내부에서 밖으로 나가지 않는 선에서 최대치의 값을 갖습니다.
  • 비율이 맞지 않는경우 내부에 여백 이 생기게...
Read article

IOS May 19, 2018

iOS 앱 업데이트 (강제 업데이트, 선택 업데이트) 기능 구현 예제

Words count 10k Reading time 9 mins.

새로운 버전의 앱이 출시되면 AppStore에 등록되고, 설정 -> Apple ID -> iTunes 및 App Store -> 자동 다운로드(업데이트) 가 켜져있다면 보통 새벽시간에 자동 업데이트가 됩니다.
하지만 사용자가 자동 업데이트 기능을 꺼두었다면?

새로운 앱 버전의 출시를 알 수 없습니다.

가장 큰 문제는, 기존 배포버전에 치명적인 버그가 있을때 Hot-fix 배포를 하더라도 자동업데이트 옵션 미사용 사용자들에게는 새로...

Read article

IOS May 17, 2018

Google Analytics example(구글 애널리틱스를 이용한 앱 운영)

Words count 5.6k Reading time 5 mins.

iOS앱을 만들어서 많은 사용자를 보유하려면 사용자가 어떤 기능을 좋아하는지(얼마나 많이 사용하는지), 사용하지 않는 기능은 무엇인지(사용률이 적은 기능)이 무엇인지 알고 계속 개선해 나가야 합니다. 하지만 iOS앱은 AppStore에 업로드하면 개발자의 손을 떠나게 됩니다.

그렇다면 사람들이 어떤 기능을 자주 쓰는지, 필요로 하는지 어떻게 수집을 할까요?
지표 수집툴을 사용합니다. 대표적으로는 Google Analytics가 있습니다. 그 외에...

Read article

IOS May 14, 2018

iOS앱 고도화 - Firebase Remote Config를 사용한 앱 운영방법

Words count 3.2k Reading time 3 mins.

Firebase Remote Config란, 앱 업데이트를 게시하지 않고도 앱의 동작과 모양을 변경할 수 있도록 도와주는 서비스입니다. 앱의 실행시점에 서버에서 Config를 읽어오는 비교적 쉬운 개념이지만. 이를 활용해서 다양한 응용동작을 할 수 있습니다.

비슷한 서비스로는 NHN Entertainment의 Toast Cloud - Launching이 있습니다.

  1. 최신 업데이트 버전을 가져와 현재 설치된 버전과 비교하여 업데이트를 유도할 수 ...
Read article

IOS May 14, 2018

Storyboard autolayout 환경에서 Keyboard Event로 Height 처리하기

Words count 3.7k Reading time 3 mins.

TextView 또는 TextField를 이용해 사용자로부터 텍스트를 입력받는 화면에서는 키보드가 나타납니다.
키보드가 나타나면 그만큼 컨텐츠를 보여줄 수 있는 화면의 Height는 줄어들게 되고 그 중 일부는 키보드 밑으로 말려들어가 보이지 않게 되는 문제가 생길 수 있습니다.
따라서 키보드가 나타날 때 아래의 뷰를 키보드 위로 올려주는 구현이 필요합니다.

스토리보드와 오토레이아웃을 사용하면서 iOS 11 이후 등장한 SafeArea에 대한 대응...

Read article

IOS May 13, 2018

[Swift] Date to String, Date <=> String 객체간 변환

Words count 1.2k Reading time 1 mins.

Date와 String의 변환은 매우 자주 사용하면서도 할 때마다 뭐였지 하고 다시 찾아보곤 합니다.
또 Obj-C만 사용하다가 Swift로 넘어오면서 한번 정리하고 갑니다. 참고로 swift4 입니다


let dateString:String = "2018-05-13 15:05:40"

let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy-MM-dd HH...
Read article

IOS May 12, 2018

[Swift] Optional이란? 옵셔널 이해하기

Words count 3.7k Reading time 3 mins.

Swift가 갖는 Optional이라는 개념은 변수의 값이 nil일 수 있다는 것을 표현하는 건데요, 반대로 Optional이 아니라면(non-optional) 해당 값은 nil이 될 수 없음을 의미합니다. Objective-C를 사용해왔다면 Optional이라는 표현이 너무나도 당연해보일 수 있지만, Swift에서는 Optional은 말 그대로 옵션(선택적) 이며 기본값은 non-Optional 입니다.

Optional 변수의 선언은 ? 키워...

Read article

IOS May 06, 2018

iOS 앱에서 광고 수익 얻기 (Admob 애드몹 설치, 부착, 예제)

Words count 4.5k Reading time 4 mins.

모바일 어플리케이션에 광고를 부착할 수 있는 다양한 플랫폼이 있다. 그중에서도 Google의 Admob을 이용한 방법을 소개합니다.

https://www.google.co.kr/admob 구글 애드몹 페이지

구글 계정으로 로그인 할 수 있습니다.

우선 애드몹 페이지에서 광고를 붙일 앱을 설정합니다. 앱 추가 버튼을 통해 추가할 수 있습니다.


광고를 부착할 앱이 기존에 스토어에 등록되어있던 앱인지, 새로 만들 앱인지 선택합니다. 저는 아직 스토어...

Read article

IOS May 03, 2018

Interface Builder IBOutlet연결에 Strong과 Weak 어떤것을 써야할까?

Words count 4.5k Reading time 4 mins.

Interface Builder를 사용하는 프로젝트에서 View를 코드상에서 제어하기 위해 IBOutlet으로 스토리보드 <-> 코드 를 연결하게 됩니다.
Ctrl키를 누르고 View를 .m 또는 .h 파일로 가져오면 다음과 같이 IBOutlet 연결 팝업이 뜹니다.

여기에서 아마도 Property명 또는 Action명을 입력 후 Connect 버튼을 눌러 커넥션을 생성하셨을텐데요.
혹시, 아래쪽의 Storage 영역을 확인해보신적이 있으신가요?

아마도...

Read article

IOS May 01, 2018

[Objective-C] NSXMLParser로 XML Object Mapper 구현하기 (공공데이터 Response 파싱하기)

Words count 21k Reading time 19 mins.

data.go.kr에서 다양한 공공데이터 정보를 얻을 수 있습니다. 단순 데이터 파일 또는 Open API형태로 제공하고 있어서 이를 이용해 다양한 서비스를 구현할 수 있습니다.
지역 미세먼지 농도, 날씨 예보, 수질 정보 등등 정말 다양한 정보를 얻을 수 있는데요, 스터디용도로 이 API 중 하나를 선택해서 앱을 구현중입니다.

가장 최신으로 등록된 API를 찾아보니 곧 6월 13일 지방선거를 앞두고 선거정보, 후보자 정보 Open API가 추가...

Read article

IOS May 01, 2018

[Objective-C] reflection(리플렉션), Introspection(인트로스펙션) Runtime 메소드 사용하기

Words count 2.3k Reading time 2 mins.

Objective-C에서 자바의 Reflection 에 해당하는 기능을 Introspection(인트로스펙션) 이라고 합니다.
이 기능들은 <objc/runtime.h> 헤더 파일에 선언되어 있으며, C 함수로 작성되어 있습니다.

사용할 수 있는 메소드는 애플 개발자 센터 가이드에서 확인 가능합니다.
애플 개발자 센터 Runtime 개발 가이드
가이드 문서에서 확인할 수 있듯이 수십여 가지의 메소드로 다양한 인스트로펙션 기능을 제공하고 있...

Read article

IOS April 25, 2018

XCode Server를 이용한 CI(continuous integration)

Words count 6.7k Reading time 6 mins.

CI란 continuous integration의 약자로 지속적 통합을 뜻한다. 작업을 작은 단위로 쪼갠 뒤, 작은 단위로 개발, 지속적으로 통합하는 과정을 통한 개발 방법으로 코드 품질향상, 배포주기 단축을 목표로 한다.

iOS 앱은 실행파일(.ipa) 하나를 Export 하는데에 인증서, 프로비저닝 등 빌드 과정에 관여하는 변수가 많아 CI를 적용하기가 까다로운 편이다.

작년까지만 해도 JenkinsXcode Plugin을 붙여 빌드를 ...

Read article

IOS April 25, 2018

[Objective-C] GCD를 이용한 싱글톤 객체 생성하기

Words count 1.4k Reading time 1 mins.

싱글톤 패턴은 하나의 프로그램(정확히는 프로세스)에 하나의 인스턴스만을 사용하기 위해 사용한다.
iOS 프로젝트에서는 주로 앱 전반적인 데이터를 저장하고 관리하는 매니저 객체로 많이 사용하게 된다.

C++ 또는 Java 에서도 Singleton 패턴을 많이 사용해왔는데, 보통 Singleton을 아래와 같은 방법으로 만들었을 것이다.

  • 생성자를 private 로 만든다
  • 내부에 private static 객체를 생성한다
  • getInstance() 메...
Read article

IOS April 18, 2018

[Swift] 열거형 Enum 사용하기

Words count 3.4k Reading time 3 mins.

enum의 선언은 enum 키워드로 합니다.

enum Languaegs : String {
    case Korean = "KR"
    case Japanese = "JP"
}

위 예시 하나로도 Obj-C의 Enum과의 많은 차이점을 느낄 수 있습니다.

Enum에 String을 넣을 수 있다니!!
Obj-C 에서 Enum을 NSString에 매핑하기 위해 얼마나 많은 노오오력이 필요했던가!

사용 예시 1) 서버에서 String...

Read article

IOS April 16, 2018

CocoaPods 똑똑하게 사용하기 (명령어, 사용 예시 소개)

Words count 3.3k Reading time 3 mins.

iOS 프로젝트에서 CocoaPods을 사용하지 않은 프로젝트를 보기 힘들정도로 대부분의 iOS 프로젝트가 CocoaPods를 사용한다.

프로젝트 다운받고 -> `Pod install` -> 앱 실행

너무나도 익숙한 Flow지만 막상 다른 명령어는 뭐가 있는지, Pod installPod update의 차이를 정확하게 이해하고 사용하고 있지 않다.

이번 기회에 CocoaPods 을 정확히 이해하고 사용해보자.

Pod install...

Read article

IOS April 16, 2018

iOS 프로젝트에 cocoapods 적용하기

Words count 2.6k Reading time 2 mins.

iOS 앱을 개발하면서 외부 라이브러리의 필요성을 느끼게 되고, 여러 라이브러리를 사용하다보면 서로 의존성이 꼬이는 문제가 발생할 수 있다.이런 문제를 해결하기 위해 자바에서는 Maven이나 Gradle등의 의존성 관리 툴을 사용한다.
iOS 생태계에도 감사하게 CocoaPods이라는 의존성 관리 툴이 있다.

CocoaPods 외에도 Carthage 라는 툴이 있지만, 사용해본 적 없고 사용중인 프로젝트를 본적이 아직 없다.

맥 사용자라면 일단 ...

Read article

IOS April 15, 2018

iOS Application 개발 시작하기 - 2 (프로비저닝 생성, XCode 프로젝트 설정)

Words count 3.1k Reading time 3 mins.

지난 포스팅 iOS Application 개발 시작하기 - 1 (개발자 등록, 인증서 등록) 에서는 애플 개발자 계정을 만들고 인증서를 등록했다.

이제 앱을 디바이스에서 실행시키기 위해 Provisioning Profile 을 생성하고, Xcode 프로젝트를 생성하는 과정을 다룬다.

앱을 생성하기 위해서 먼저 Apple Developer에서 어떤 앱을 만들건지 App ID를 생성해야 한다.

  • App Name : 앱 이름 ex) YourName
  • ...
Read article

IOS April 15, 2018

iOS Application 개발 시작하기 - 1 (개발자 등록, 인증서 등록)

Words count 3.5k Reading time 3 mins.

iOS앱을 개발하고 AppStore에 등록, 판매하기 위해서 Apple에 개발자 계정을 등록해야 한다. 애플 개발자 계정은 1년에 약 한화로 10만원 정도 된다. Google에 비하면 정말 비싼가격이지만…! iOS 개발자가 개발자 계정 없이 먹고 살 수 없으니 등록하자!

준비물은 약 10만원 정도가 든 카드와, Apple 계정이다

https://developer.apple.com/kr/support/development/

우측 상단의 Account...

Read article

NHN ENT. March 29, 2018

NHNent가 만든 협업 서비스 Dooray

Words count 1.8k Reading time 2 mins.

JIRA : 강력한 스프린트 관리 기능! But, 위키가 쌓이면 쌓일수록 최신화 안되는 문서들이 가득, 문서찾기도 힘듦ㅠㅜ

Line Works : 네이버 메일, 드라이브, 캘린더를 그대로 가져와서 익숙하다!

Dooray : 처음에 배우기 어렵다…. 하지만 익숙해지면 이만한게 없다!! 빠른 문서찾기, 태그! 메신저, 메일, 프로젝트, 드라이브 안되는게 없다!

  • 빌드를 하거나 이슈가 발생했을때 바로바로 업무등록 및 수정 알림!
  • 업무의 우선순위 ...
Read article

SPRING FRAMEWORK March 10, 2017

웹 js, css 정적 파일 버전관리 방법

Words count 6.5k Reading time 6 mins.

WAS가 1개일때는 문제가 없지만 2개, 3개 … N개가 되면 새로운 문제가 발생한다.

크게 2가지 문제로 구분할 수 있다.

  1. 최신 Back-End와 구 Front-End 의 만남

  2. 브라우저 캐싱 <- 사실 WAS가 1개일때도 문제

깨진다. 웹페이지가 깨진다. 바스락. 와장창. js 또는 css를 제대로 가져오지 못하기 때문.

L4로 묶여있는 웹 서버 집단에서 의도적으로 점진적 배포 혹은 일반 배포 단계에서 각 서버의 버전이 불일치 하...

Read article
Load more
0%