본문 바로가기

분류 전체보기

(11)
Swift Coding Convention에 대한 정리 나를 위한 Swift 코드 스타일에 대해 정리를 해봅시다. 지금 정리하는 내용 외에도 많은 내용이 있지만 우선적으로 중요하다 생각이 드는 내용들을 정리를 해보려 합니다. 네이밍 - 사용하는 곳에 무엇을 위한 기능인지 명확하게 이해하게끔 이름을 만듭니다. - 간결하고 명료하게 할 수 있으면 좋겠지만 그렇지 않은 경우도 많기에 가능한 한 명료하게 이름을 만듭니다. - 동적인 변수나 함수의 네이밍은 -ed, -ing 를 붙이면 좋습니다. UpperCamelCase 단어의 첫 글자를 모두 대문자로 정의하는 방법 Class(객체), Structure(구조체), 열거형(Enumeration), 익스텐션(Extension), 프로토콜(Protocol) 등의 이름을 정의할 때 사용 ex) MainController, ..
Xcode ) 외부 라이브러리 Warning 없애는 방법 어제 Xcode를 이용해서 개발을 하던 중 오류가 발생해서 오류메시지를 확인하려 하던중 외부 라이브러리에서 50개가 넘는 Warning 메시지가 표시되어 있었다. 대부분 iOS 버전이 업데이트 되면서 deprecated되었다고 알리는 Warning이었지만 대부분 크게 중요하지 않고 정작 확인해야하는 에러메시지는 가장 밑에 위치하고 있으니 한참을 스크롤해서 확인해야 한다. 심지어 Warning 메시지가 하나같이 아래로 펼쳐져 있어 더 난감했었다. 이런 경우에 Warning메시지를 없애는 방법을 알아보자 inhibit_all_warnings! target 'MyApp' do # Comment the next line if you don't want to use dynamic frameworks use_fra..
[Swift] 키보드 뷰에 가려지는 버튼 움직이기 나는 키보드에 가려진 뷰를 보여주게 할 때는 항상 view의 origin.y 값을 수정하여 보여주게 했다. 근데 만약 view 자체를 통째로 옮기는 것이 아니라 다른 방법을 쓰고 싶어 기록 겸 글을 쓰게 됐다. 1. 옵저버 생성 먼저 키보드가 show, hide 되는 이벤트를 알려줄 옵저버를 생성한다. 이 과정은 view를 움직이든, 버튼을 움직이든 공통되는 과정이다. func moveKeyboardAndView() { NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCent..
FirebaseAuth 기능 구현 로그인 구현 우선 로그인 구현은 간단하다. import Firebase Auth.auth().signIn(withEmail: email, password: password) { result, error in // 에러 대응 if let error = error { print("Occured error in signing in..") return } // 로그인 성공 이후 구현 } 회원가입 구현 회원가입 구현도 비교적 쉽다. Firebase는 회원가입 시 비밀번호의 최소 길이는 6자이다. NSError나 localizedDescription으로 에러 내용을 확인할 수 있다. import Firebase Auth.auth().createUser(withEmail: email, password: passwor..
(Mac) 맥 업데이트후 CocoaPods 설치 에러 해결 방법 [ 각종 에러 기록 ] Failed to extract git version from `git --version` ("xcrun: error: invalid active developer path 얼마 전 몬터레이로 업데이트 후 이러한 에러가 발생하면서 CocoaPods 설치가 되지 않았다. 대충 깃 버전 오류가 발생해서 CocoaPods 설치가 실패했다 이런 말 인것 같은데 찾아보니 해결방법 간단함. xcode-select --install 터미널에 입력 하면 Xcode Command Line Tools를 업데이트 할 것이냐는 알림창이 뜨는데 업데이트 하면 됨. 나는 시간이 좀 오래 걸렸다.
IOS) 간단한 토이프로젝트를 만들어 보다 swift를 배운지 한달 가까이 되어가네요! 맨날 문법이나 인강을 보며 공부하는 건 너무 비효율적이라 생각했고, 하루 무엇이든 만들어 봐야 겠다는 생각이 머릿속에 가득 차 있었거든요. 우선 지금 만들고 있는 앱은 한 개고, 완성이 된 앱은 두개입니다. 벌써 그렇게 많이 했나 생각이 들 수도 있지만.. 이미 완성이 된 두개는 너무 간단한 앱이라..ㅋㅋ 사실 만든지도 좀 지났어요. 이렇게 블로그에 쓸 생각도 크게 없었는데, 문득 내가 만들어본 앱들은 블로그에 꼭 기록해야겠다는 생각이 들어서 쓰게 됐습니다! 이 블로그를 만든 취지도 그런거니까요 ㅎㅎ 1. BMI Calculator(BMI 계산기) 첫번째로 BMI 계산기인데 키와 몸무게를 슬라이더바로 입력받고 계산 버튼을 프레스하면 BMI 수치와 간단한 메세지..
[Swift] 구조체 기본 개념 1. 구조체란? - 스위프트 대부분 타입은 구조체로 이루어져 있습니다 - 구조체는 값(value)타입입니다! - 타입이름은 대문자 카멜케이스를 사용하여 정의합니다 구조체 정의: "struct" 키워드를 사용해요! struc 이름 { 코드구현부 } ! 구조체 프로퍼티 및 메서드 구현 struct Sample { //가변 프로퍼티(값 변경 가능) var mutableProperty: Int = 100 //불변 프로퍼티(값 변경 불가) let immutableProperty: Int = 100 //타입 프로퍼티(static 키워드 사용: 타입 자체가 사용하는 프로퍼티) static var typeProperty: Int = 100 //인스턴스 메소드(인스턴스가 사용하는 메소드) func instanceMeth..
[Swift} Optional 기본 개념 /* Optional */ 값이 '있을 수도, 없을 수도 있음' let optionalConstant: Int? = nil let someConstant: Int = nil -> 에러 발생 옵셔널이 필요한 이유 - nil 가능성을 문서화 하지 않아도 코드만으로 충분히 표현 가능 - 문서/주석 작성 시간을 절약 - 전달받은 값이 옵셔널이 아니라면 nil체크를 하지 않더라도 안심하고 사용 - 효율적인 코딩 - 예외 상황을 최소화하는 안전한 코딩 ? 와 ! !: 암시적 추출 옵셔널 var optionalValue: Int! = 100 switch optionalValue { case .none: print("This Optional variable is nil") case .some(let value): pr..