About Today Extension Today Extension을 통해 iOS / MacOS 에서는 위젯을 나타낼 수 있다. 위젯의 핵심적인 기능은 사용자에게 빠른 데이터 제공을 위한 것이지 단계별 작업을 수행하거나 컨텐츠 업로드 / 다운로드와 같은 작업을 수행하는데 적절한 방법이 아니다. Today 위젯은 아래와 같은 작업을 수행해야 한다. 컨텐츠를 항상 최신으로 유지사용자 상호 작용에 적절하게 응답잘 작동해야 함 (메모리 최적화가 제대로 되어 있지 않으면 시스템이 종료함) Today 위젯은 사용자 상호 작용이 빠르고 제한적이기 때문에 사용자가 관심을 갖는 정보를 강조하는 간단하고 효율적인 UI가 필요하다. Today 위젯은 입력을 허용하지 않기 때문에 앱을 통해 위젯의 콘텐츠와 동작을 구성할 수 ..
Text Alignment 오늘은 iOS에서 매우 간단한 텍스트 정렬에 대해 소개 해볼까 합니다. 물론 스토리보드 상에서 UILabel의 텍스트 정렬을 지정할 수 있지만, 어플리케이션을 사용하면서 동적으로 텍스트 정렬을 하려면 어떻게 해야 할까요? 바로 코드를 확인해 보도록 하겠습니다. func textAlignmentSetting() { Label.textAlignment = .center // center, justified, natural, left, right } 이걸로 끝입니다.주석에 적혀있는 것처럼 각 정렬 방법이 존재하며 코드로 필요에 따라 알맞게 사용하면 되겠습니다.
2016년 9월 7일부터 Appstore Improvements 라는 이름으로 애플의 앱스토어 대청소가 시작되었습니다.아래의 가이드를 참고하시어 앱스토어에 앱을 올려놓으신 개발자 분들은 미리미리 준비하시는 것도 나쁘지 않을 것 같습니다. 앱스토어 개선 1.어떤 종류의 앱이 영향을 받을까? 모든 영역에 걸쳐 앱스토어에 등록되어 있는 앱들은 예상되로 잘 작동하는지, 최신의 리뷰 가이드라인을 따르는지, 너무 오래되지 않았는지를 평가받게 된다. 2.앱에서 문제가 발견되면 어떤 일이 생기나? 앱스토어 팀이 직접 연락을 취해 필요한 조치들을 전달해줄 것이다. 그러나 앱 실행과 함께 크래시가 발생하는 앱들은 즉시 앱스토어에서 제거될 것이다. 3.얼마나 기한이 주어지나? 앱스토어에 앱을 유지하고자 한다면 30일 이내에..
Navigation bar 숨김 시 swipe back 불가 iOS 앱을 개발할 때 navigation controller를 사용하지만 네비게이션바를 직접 만들어 사용하고 싶을 경우 기본으로 제공되는 네비게이션바를 숨김처리 하는 경우가 많다. 네비게이션바를 숨기는거야 쉽기 때문에 별 문제가 되지 않지만, 한가지 거슬리는 점이 발생한다. 필자는 손으로 쓸어서 뒤로가기를 무척이나 좋아하며 자주 사용한다. 하지만 네비게이션바를 숨김처리 하면 이 스와이프를 통해 전 페이지로 돌아가는 동작이 작동하지 않는다. 네비게이션바를 숨기면서 이 동작을 다시 사용하고자 하면 아래의 코드를 Root view의 viewDidLoad 내에 입력해 주면 된다. override func viewDidLoad() { super.vie..
NSLocalizedString에 변수 사용 iOS 앱을 개발하면서 항상 염두해두어야 할 것이 바로 현지화. 즉 Localization이다. 코드 상으로 특정 문구를 나타낼 때에는 이 Localization을 습관적으로 항상 적용해 두는 것이 여러모로 좋은데 이 때 사용하는 것이 바로 NSLocalizedString이다. NSLocalizedString의 사용법은 조금만 검색해봐도 많이 나오기 때문에 여기서는 별도로 설명하지 않겠다. NSLocalizedString을 사용하면서 항상 궁금했던 부분이 만약 특정 값이 계속 변하는 String의 경우에는 어떻게 적용시켜야 하는가였다. 답은 의외로 간단했다. 우선 코드를 보도록 하자. String.localizedStringWithFormat(NSLocaliz..
CLLocation을 주소로 변경하기 iOS에는 CLGeocoder라는 클래스를 통해 주소를 좌표로, 좌표를 주소로 변경할 수 있는 기능을 제공하고 있다. 예를 들어 MKMapView에서 유저가 선택한 위치의 좌표(위도/경도)를 가지고 오는 작업은 쉽게 검색해볼 수도 있고 구현해 볼 수도 있지만, 그 좌표에 해당하는 주소를 가져오려고 어떻게 해야 할지 막막해진다. 이 때 사용하는 것이 바로 CLGeocoder이다. 먼저 간단한 코드를 보도록 하자. func convertToAddressWith(coordinate: CLLocation) { let geoCoder = CLGeocoder() geoCoder.reverseGeocodeLocation(coordinate) { (placemarks, error)..
싱글톤 패턴(Singleton Pattern) 싱글톤 패턴이란? 소프트웨어 디자인 패턴에서 싱글톤 패턴(Singleton Pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글톤 패턴이라고 한다. Singleton 패턴의 용도는 프로그램 내에서 단 하나의 인스턴스만을 생성해야 하는 상황, 즉 예를 들자면 환경설정을 관리하는 클래스 혹은 Connection Pool, Thread Pool과 같이 관리되어야 하는 상황에서 적용되는 디자인 패턴을 의미한다. 싱글톤 구현 일반적인 Singleton 패턴의 형태는 다음과 같다. 여기서 중점적으로 보아야 할 것은 생성..
- Total
- Today
- Yesterday