전체 글

    2. View에 관하여 (Frame, Bounds)

    View에 관하여. iOS는 사용자에게 Window와 View를 통해 버튼, 사진과 같은 무언가를 보여준다. View는 무엇이고, 어떻게 표현할까? View를 구성 할 때 View를 여러개 사용하여 뷰 계층 구조(View Hierarchy)를 만든다. 부모뷰(Parent View)- 자식뷰(Child View) 혹은 슈퍼 뷰(Super View)- 자식뷰(Sub View)라고 불리는 관계를 만든다. 하나의 View는 부모 뷰가 되고 여러개의 자식 뷰를 가질 수 있다. subViews를 통해 내가 가진 subView들을 코드를 통해 호출 할 수 도 있다. let myViews = view.subviews 뷰는 어떻게 그려질까 뷰가 보여질 위치(x,y)와 뷰의 크기를 결정해주면 화면에 보여지게된다. view..

    Swift GuideLines - 5.Naming(defaultParameter)

    일반적인 사용을 단순화 할 수 있다면, defaulted parameters를 사용하세요. 일반적으로 사용되는 파라미터가 default로 사용될 수 있습니다. 예를들어 아래의 경우 default parameter를 사용해서 가독성을 높일 수 있습니다. let order = lastName.compare(royalFamilyName, options: [], range: nil, locale: nil) 가독성높이기 (, options: [], range: nil, locale: nil 값들을 default로 넘겨버림) let order = lastName.compare(royalFamilyName) Bad extension String { /// ...description 1... public func co..

    Swift GuideLines - 4.Naming

    정리하면 이렇다. 1. 보편적인 단어를 써라 2. 사용자가 사용할 때 예상하지 못할 것 같은게 있으면 주석으로 작성을 해라 O(n^2)복잡도 같은것. 3. 클래스 내에서 동일한 이름으로 함수를 작성 할 때는 동일한 기능을 작성해라 4. 클래스 내에서 동일한 이름인데 반환값이 다른 짓은 하지 말아라 5. 주석을 작성 했을 때 유창하게 읽히게 파라미터 이름을 구성해라 Term of Art (아는 사람만 아는것) noun - a word or phrase that has a precise, specialized meaning within a particular field or profession. 명사 - 특정 필드나 전문영역에서 정확하고 특별함을 갖는 단어나 구절. 일반적인 단어가 의미를 더 잘 전달한다면 ..

    Swift 기본 문법 - 15. Closure

    15. 클로저 막상 ios개발을 해보니 생각 보다 엄청 많이쓰이는 문법이다. 단순하게 생각해서 그냥 익명함수로 생각하겠다. 얘는 파라미터로 함수를 주고 받을 때 많이 사용된다. 예를 들어 데이터를 fetch하는 함수가 있을 때, 데이터를 성공적으로 받았을 때 실행 시킬 함수를 @escaping으로 받는 경우가 있다. @escaping은 그냥 callback 함수라 생각해도 될 것 같다. @escaping을 파라미터로 받는 함수가 끝난후 실행될 함수.? 코드를 보면 이런거다. func fetchUser(withUsername username: String, completion: @escaping(User) -> Void) { REF_USER_USERNAMES.child(username).observeSin..

    Swift GuideLines - 3.Naming-mutating/nonmutating

    처음에 강의를 들었을 땐 무슨내용인가 했는데 mutation/ nonmutation에 따라 이름을 다르게 작성해야한다는 규칙이 있을 줄을 몰랐다. 값복사인지 참조복사인지에 따라 동사, 명사, 접미사, 접두사를 붙이라는데 외우고 싶진않다... 코드를 작성할 때 이 글을 보면서 익숙해지지 않는이상 쓰기 힘들 것 같다. 부수효과(side-effect)를 기반해서 function과 method의 네이밍을 하세요. side-effect가 없는 것은 명사로 읽혀야함. eg. x.distance(to: y), i.successor() side-effect가 있는 것은 동사로 읽혀야 함. eg. print(x), x.sort(), x.append(y) mutating/ nonmutating method의 이름을 일관성..

    Swift 기본 문법 - 14. 접근제어

    14. 접근제어 아마 자바의 public private 처럼 접근을 제어하는 기능이 swift에도 존재를 하는 것 같다. 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능이라고 한다. 접근제어를 사용하는 이유는 객체지향에선 캡슐화, 은닉화를 구현하는 이유는 외부에서 보거나 접근하면 안 되는 코드가 있기 때문이다. 전체 코드가 노출될 가능성이 있을 때 접근제어를 사용한다고 한다. 14.2 접근수준 클래스, 구조체, 열거형, 프로퍼티, 메서드, 이니셜라이저, 스브스크립트 각각에도 접근수준을 지정할 수 있습니다. open, public, internal, fileprivate, private 다섯 가지가 있습니다. 14.2.1 공개접근수준 - public public키워드로 지정된 요소는 어디서든 쓰일 수..

    1. 계산기 코드로 보는 MVC 패턴

    1. 처음 시작 코드 - 기본적인 View와 이벤트를 연결한다. // // ViewController.swift // calculatorMVC // // Created by Taehoon Kim on 2022/02/01. // import UIKit class ViewController: UIViewController { // Properties // 계산기의 계산결과를 보여줄 label 뷰 let display: UILabel = { let label = UILabel() label.backgroundColor = .systemBlue label.textColor = .white label.textAlignment = .right label.font = UIFont.systemFont(ofSize: 2..

    Stanford iOS 한글자막 강의 - MVC 패턴

    [무료] Stanford iOS 한글자막 강의 - 인프런 | 강의 한글링의 첫번째 프로젝트 아이오에스는 현재 iTunes에서 공개된 Stanford - Developing iOS 9 Apps with Swift 강의를 번역하였습니다., - 강의 소개 | 인프런... www.inflearn.com iOS의 기본개념을 정리하고 싶어서 들은 강의다. 오래된 강의지만 막연하게 머릿속에 있는 기초 개념들을 정리하기에 좋은 강의이다. 강의를 들으면서 글로 작성해보고 싶은 부분을 정리 할 예정이다. MVC 패턴은 무엇일까? MVC은 코드를 작성하기 위한 디자인 패턴이다. 각각의 단어의 앞 글자만 따서 만든 단어다. Model은 앱이 실질적으로 무엇을 동작하는지를 정리해 놓은 영역으로 View와 독립적으로 작성해야한다..