전체 글 106

삼성 스마트폰, 앱 설치가 비정상적으로 느릴 때 해결방법

갤럭시 스마트폰에서 기본적으로 내장 된 기능 디바이스 케어에서 디바이스 보호를 한 번 이라도 실행하면 앱 설치가 굉장히 오래 걸리게 되는 것을 확인 했습니다. (저 같은 경우에는 플레이스토어에서만 설치가 너무 오래 걸렸습니다.) 앱 설치시에 확인 절차인지 뭔지는 모르겠으나 해당 기능을 임의로 끄는 방법이 따로 없어서 방법은 해당 기능의 데이터 및 캐시를 지우면 최초 실행하기 이전 상태로 돌아가는 것 같습니다. 설정 > 애플리케이션 > (시스템 앱 표시) > "디바이스 보호" 선택 >"저장 공간" 선택 > 데이터 및 캐시 삭제 // 보안과 관련되어 있다고 해도, 이 정도로 경험을 망치는 요소는 치명적인 이슈라고 느껴지네요... - 처음에는 플레이스토어의 프로텍터를 의심했었지만 설치 속도에 영향이 없었습니다..

IT리뷰&강좌 2022.08.08

캐스퍼 터보 시승기(VS. NA모델 비교기)

(사진은 탑승전에 찍는 그거라서 막 찎은 겁니다....놀러간 곳 에서 차 한 번 만 찍어둘걸 그랬네여ㅠㅠ) 카쉐어링을 이용할때 보니 캐스퍼 터보모델이 올라와 있어 비교해보기 위해서 타봤습니다. 사실상 외관이랑 엔진을 빼면 다른 차이는 없었습니다. 1. 외관 캐스퍼의 전면 디자인은 NA 모델은 장난감스러운 플라스틱의 느낌이 살짝 있었고 터보 모델은 멀리서 보면 그런 느낌이 확실히 없고 심플한 느낌입니다. 후면 디자인은은 둘 다 예쁘기도 하고 느낌에서 큰 차이는 없었습니다. 전체적으로 NA는 도형의 크기가 점점 작아지는 패턴(?)이고 터보는 도형의 크기가 균일한 느낌입니다. (사실 크게 막 느껴지는 부분은 아닙니다.) 휠 디자인은 이전에 기본모델(NA, 자연흡기) 시승기때 17인치 휠과 비교하여 나쁘지는 않..

IT리뷰&강좌 2022.07.01

캐스퍼 간단 시승기

본문에 들어가기전에 현대에서 이벤트로 카쉐어링으로 5시간 무료 시승이벤트가 있어서 미리 날을 잡아서 예약을 했는데 새벽에 갑자기 문제가 생겨 차량 점검이 필요하여 다른 차량으로 변경해야 한다는 문자를 보고 아침에 전화를 했더니.... 현재 상황에서는 아반떼로만 변경이 가능하고 또 직접 그 위치로 가야한다고 전달 받았습니다. 물론 이동비용을 택시비 기준으로 제공해준다고는 했지만...저는 그게 의미가 없다보니 이야기를 조금 진행을 했고.....(진상 아닙니다.......) 제공이 가능할거 같다고 하여서 제가 빌린 시간에 저희 집 앞에서 받게 되었습니다. 근데 받고 보니 총 주행거리 30KM의 신차를......받았습니다..... (원래 차량 위치가...여기서 20KM 거리인데....) 0. 어쩌다 보니 완전 ..

IT리뷰&강좌 2022.07.01

[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