Swift개발 11

[Swift] Singleton Pattern, 싱글톤 패턴

1. 기본 내용 Singleton 패턴의 기본적인 정의는 한 개의 클래스로 만들어진 객체는 단 하나여야 한다입니다. 그래서 하나의 전역 객체를 만들어서 프로그램 전체에서 사용을 합니다. 기본적인 구현방법입니다. class UserInfo { static let shared = UserInfo() private init(){ } } 이렇게 만들어둔 클래스는 프로그램 전체에서 전역으로 사용이 가능합니다. 아래와 같은 방법으로 불러와서 사용이 가능합니다. let userInfo = UserInfo.shared 2. 장단점 장점1. 전역 범위에서 데이터 전달이 편합니다. 장점2. 메모리 관리에 이점이 있습니다. 장점3. 큰 차이는 아니지만 init을 한 번 해두면 접근 시간이 줄어듭니다. 단점1. 여기저기서 다..

Swift개발 2022.05.30

[Swift] DatePicker, Mode 및 Style, Locale 속성 변경하기(코드)

UIDatePicker에서 제공해주는 기본적으로 사용가능한 Mode와 Style이 있습니다. 포맷이나 형식을 더 변경하고 싶은 경우를 제외하고 기본적으로 제공해주는 옵션으로 수정하시는 경우에 대한 예시들 입니다. 1. Style DatePicker에 .preferredDatePickerStyle속성의 값으로 변경합니다. wheels, compact, inline의 속성이 있습니다. -wheels 기본적으로 생각하는 모양입니다. datePickerMode에 맞는 형식을 바로 휠로 돌려서 맞추는 방식입니다. let datePicker = UIDatePicker() . . . datePicker.preferredDatePickerStyle = .wheels -compact 작게 선택한 날짜가 표시되며 터치시..

Swift개발 2022.05.24

[Swift] SnapKit, Autolayout기본적인 기능 사용하기

Storyboard에서 벗어나 코드기반 UI를 만들때 Constraints와 AutoLayout 설정을 간단하게 하기 위한 라이브러리 입니다. 이 정도로도 Autolayout이라고 이야기들 하긴 하지만 너무나도 기본적인 부분이라 이번에는 간단한 사용법만 진행하고 다음에 제대로된 autolayout에 대한 내용과 then과 같이 활용하는 방법의 글을 올리겠습니다. CocoaPods을 이용하여 설치하면 되고 설치 방법은 아래의 링크를 참고 하시기 바랍니다. (버전이 다를 수 있어서 링크로 대체합니다.) https://github.com/SnapKit/SnapKit GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X A Swift Autolayou..

Swift개발 2022.05.20

[Swift]3년차 개발자의 좋은 개발자에 대한 고찰기(?)

안녕하세요 3년 차 iOS앱 개발자 실력이나 전문성은 아직 부족하지만 참여한 프로젝트도 계속 늘어가면서 여러가지 일을 겪다보니 이런 생각들이 듭니다. 그저 한 사람이 스스로 생각하는 방향과 약간의 푸념이 있을 예정입니다.. 1. 개발자도 제품을 만드는 사람입니다. 개발자도 어떤 서비스를 위해서 기획자나 디자이너와 협업을 통해서 나온 도면과 같은 것을 바탕으로 사용자에게 제공할 제품을 만든다고 생각합니다. 극히 일부의 사람에게는 뭔가 대단한 일이라 생각되는 경우도 있어 보입니다. 재미있는 일이고 지속적으로 자기 계발이 필요한 일하기 즐거운 분야이지만 어떠한 일과 비교해서도 절대 더 대단한 일은 아니라고 생각합니다. 2. 많은 분들이 순서 없이 최신 기술, 좋은 코드에 너무 매달린다. 결국 사용자에게 제공되..

Swift개발 2022.05.17

[Swift]class, struct 간단 비교

1. class - 참조 타입 - ARC로 관리 - 상속 가능 2. struct - 값 타입 - 변수에 할당 할때마다 새로운 구조체로 할당 아래와 같이 class와 struct이 있다고 할때 class class_ex{ var a : Int = 0 deinit{ print("참조 없음") } } struct struct_ex{ var a : Int = 0 } class는 참조 방식이므로 Cclass.a의 값을 변경하면 같은 class를 참조하는 다른 변수들도 영향을 받고 struct는 값 방식이므로 값을 변경해준 Astruct.a와 Bstruct.a는 2,1로 각각 바뀝니다. var Aclass = class_ex() var Bclass = Aclass var Cclass = Aclass Cclass.a..

Swift개발 2022.05.17

[Swift]GoogleMap API, 현재 지도뷰의 중심 좌표 가져오기

GMSMapViewDelegate의 Protocol Reference를 불러와 사용합니다.(아래에는 GMSMapViewDelegate의 모든 Protocol Reference 확인이 가능합니다.) https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_map_view_delegate-p idleAtCameraPosition은 애니메이션 또는 제스쳐가 완료 된 후, 유휴(idle)상태 일때의 실행됩니다. 간단하 예시 코드입니다. extension으로 추가 하였습니다. extension ViewController: GMSMapViewDelegate{ // 현재 뷰의 중심 Location func mapView(_ ma..

Swift개발 2022.05.16

[Swift]if let VS. guard let, nil coelescing operator(nil병합 연산자)

if let, guard let, nil 병합 연산자를 이용한 Optional Unwrapping을 알아보겠습니다. 예시 코드는 이전의 이모지 문자 인코딩을 이용하여 하겠습니다. 1. if let - 조건의 Optional의 값이 nil인지 확인 하여 분기 처리 - 지역변수로만 사용 가능 // nonLossyASCII > utf8 func enc(_ inputStr:String) -> String{ let data = inputStr.data(using: .nonLossyASCII, allowLossyConversion: true)! // Optional변수의 값이 nil인 경우에는 eles를 실행 if let outputStr = String(data: data, encoding: .utf8){ ret..

Swift개발 2022.05.16

swift) Int를 UILabel에 띄어주는 법(Int to String, "\()")

UILabel에 쓸때 Int값을 표시해주고 싶은데 예전의 방법으로는 안되어서 제대로된 방법 찾는게 힘들어 졌습니다. 그래서 제가 알아본 방법으로는 Int를 String으로 변환해주거나 \(Int값의 변수명) 이 두가지 방법으로 했습니다. 가장 먼저 Int to String으로 변환하는 방법입니다. var num1: Int = 5 var num1Text: String = ""//변환해서 넣어줄 위치 numText1 = NSString(format:"%2X",num1) as String //String으로 변환 UILabel.text = numText1 //UILabel에 띄어주기 UILabel.text = NSString(format:"%2X",num1) as String //변화한 것을 바로 띄어줄때 이..

Swift개발 2019.06.05