본문 바로가기

Swift

(8)
Swift Coding Convention에 대한 정리 나를 위한 Swift 코드 스타일에 대해 정리를 해봅시다. 지금 정리하는 내용 외에도 많은 내용이 있지만 우선적으로 중요하다 생각이 드는 내용들을 정리를 해보려 합니다. 네이밍 - 사용하는 곳에 무엇을 위한 기능인지 명확하게 이해하게끔 이름을 만듭니다. - 간결하고 명료하게 할 수 있으면 좋겠지만 그렇지 않은 경우도 많기에 가능한 한 명료하게 이름을 만듭니다. - 동적인 변수나 함수의 네이밍은 -ed, -ing 를 붙이면 좋습니다. UpperCamelCase 단어의 첫 글자를 모두 대문자로 정의하는 방법 Class(객체), Structure(구조체), 열거형(Enumeration), 익스텐션(Extension), 프로토콜(Protocol) 등의 이름을 정의할 때 사용 ex) MainController, ..
[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..
IOS) 간단한 토이프로젝트를 만들어 보다 swift를 배운지 한달 가까이 되어가네요! 맨날 문법이나 인강을 보며 공부하는 건 너무 비효율적이라 생각했고, 하루 무엇이든 만들어 봐야 겠다는 생각이 머릿속에 가득 차 있었거든요. 우선 지금 만들고 있는 앱은 한 개고, 완성이 된 앱은 두개입니다. 벌써 그렇게 많이 했나 생각이 들 수도 있지만.. 이미 완성이 된 두개는 너무 간단한 앱이라..ㅋㅋ 사실 만든지도 좀 지났어요. 이렇게 블로그에 쓸 생각도 크게 없었는데, 문득 내가 만들어본 앱들은 블로그에 꼭 기록해야겠다는 생각이 들어서 쓰게 됐습니다! 이 블로그를 만든 취지도 그런거니까요 ㅎㅎ 1. BMI Calculator(BMI 계산기) 첫번째로 BMI 계산기인데 키와 몸무게를 슬라이더바로 입력받고 계산 버튼을 프레스하면 BMI 수치와 간단한 메세지..
[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..
테이블 뷰 구현 이론 ios에서 가장 많이 사용하는 패턴 중 하나가 Delegate 패턴인데 이걸 이해하는 첫 걸음이 테이블 뷰 구현 방식을 제대로 이해하는 것입니다 테이블 뷰 구현은 보통 다섯 단계로 구분합니다 Step 1. 테이블 뷰 배치 -> 테이블 뷰를 Scene에 배치합니다. Table View Controller를 사용 할 때는 Table View를 배치하는 부분이 자동으로 처리됩니다. Step 2. 프로토타입 셀 디자인, 셀 아이덴티파이어 지정 -> cell을 선택하고 Attributes Inspector에 셀 스타일과 아이덴티파이어 지정 Step 3. 데이터 소스, 델리게이트 연결 -> Table View Controller가 자동으로 처리해 줍니다. 만약 Table View Controller를 사용하지 않는..
스위프트 기본 문법 - 2 // 컬렉션 타입 // Array, Dictionary, Set /* Array - 순서가 있는 리스트 컬렉션 Dictionary - 키와 값의 쌍으로 이루어진 컬렉션 Set - 순서가 없고, 멤버가 유일한 컬렉션 */ // MARK: -Array //빈 Int Array 생성 var integers: Array = Array() // -> Int타입의 Array. 빈 Array를 생성하고 싶으면 제일 뒤에 ()를 생성해주면 됩니다! var integers2: Array = [Int]() // -> 윗 줄의 표현과 동일한 표현이예요! integers.append(1) // -> append는 요소를 추가해 주고 싶을 때 사용해요! integers.append(100) // -> 결과값은 [1, 100] ..
스위프트 기본 문법 - 1 스위프트는 기본적으로 카멜케이스를 사용합니다 함수, 메소드, 변수, 상수 등은 소문자로 시작하는 카멜케이스를 사용 클래스, 구조체, 열거형, 익스텐션 타입은 대문자로 시작하는 카멜케이스 사용 콘솔로그 print 단순 문자열 사용 dump 어떤 인스턴스의 자세한 설명까지 출력 문자열 보간법 String Interpolation 프로그램 실행 중 문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용 \() 상수, 변수의 선언 상수 선언 키워드 let 변수 선언 키워드 var 상수의 선언 let 이름: 타입 = 값 변수의 선언 var 이름: 타입 = 값 값의 타입이 명확하다면 타입은 생략 가능해요. let 이름 = 값 var 이름 = 값 let constant: String = "차후에 변경이 불가..