iOS 개발자 지망생

고정 헤더 영역

글 제목

메뉴 레이어

iOS 개발자 지망생

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 분류 전체보기 (73)
    • 알고리즘 (22)
    • C언어 (3)
    • SWIFT (34)
    • autoLayout (13)

검색 레이어

iOS 개발자 지망생

검색 영역

컨텐츠 검색

SWIFT

  • [iOS] frame에 대한 간단한 이해

    2021.08.20 by 옹홍

  • [IOS] DispatchGroup으로 여러 비동기 실행의 마지막을 잡는법

    2021.08.12 by 옹홍

  • [Swift] escaping closure

    2021.08.02 by 옹홍

  • [Swift] capturing Closure

    2021.08.02 by 옹홍

  • [SWIFT] Protocol Comparable, Equatable

    2021.07.17 by 옹홍

  • [Swift] Enum 타입의 CaseIterable, CustomStringConvertible??

    2021.07.17 by 옹홍

  • [Swift] Singleton in Swift, 싱글톤 어떻게 만들까?

    2021.07.17 by 옹홍

  • [iOS] FireBase를 이용한 간단한 Chat app 만들기(2) - 회원가입

    2021.06.24 by 옹홍

  • [iOS] FireBase를 이용한 간단한 Chat app 만들기(1) - Timer로 애니매이션

    2021.05.09 by 옹홍

  • [iOS] UITextfield로 검색하기

    2021.05.09 by 옹홍

[iOS] frame에 대한 간단한 이해

프로젝트를 하다보니 정말정말로 커스텀뷰를 많이 만지게 된다. 그때마다 정말 빠져서는 안되는 frame이라는 개념이다. frame의 설명은 프레임 직사각형인데, 이 뷰의 위치와 사이즈를 설명하는 것이다. 하지만 여기서 중요한 것은 in its superview's coordinate system이라는 것이다. 즉. 프레임 부모뷰를 바탕으로 위치를 정하는 것이라고 볼 수 있다. frame은 CGRect 인데, 위치와 크기를 알려주는 네모라고 일단 생각하고 있다. 그리고 CGRect라고 되어있다는 것은 결국 origin 과 size를 갖는다는 의미와 같다. 결국에는 x좌표, y좌표, width, height을 가진다. 그렇다면 위의 2개의 설명을 합쳐보자면! x좌표, y 좌표는 부모뷰 내에서의 좌표시스탬이라고..

SWIFT 2021. 8. 20. 21:35

[IOS] DispatchGroup으로 여러 비동기 실행의 마지막을 잡는법

프로젝트를 하면서 부족한 부분을 하나하나 채우고 있다. 일단 Network, Closure에 대한 개념이 약하기도 했다. 그리고 현재 지금 나의 상태에서 가장 필요한 개념이었던 것! 그래서 URLSession과 Closure 공부를 어느정도 마쳤다. 프로젝트에서는 Alamofire를 쓰기 때문에, Alamofire와 어떻게 NetworkService, NetworkError 등등을 효율적으로 짤 수 있는지 고민중이다. 그래도 이것저것 계속 찾아보고 코드를 보고 하니 약간 좀 익숙해지는것 같기도하다. 그러던 와중, querystring, network service, network Error 등등을 어떻게 폴더링하는지 알게 되었고 추후에 남길 예정이다. 프로젝트가 마무리가 되면 회고록도 써야겠당. 출처: ..

SWIFT 2021. 8. 12. 19:03

[Swift] escaping closure

Escaping Closure Escaping Closure이라고 어디선가 탈출한다는 의미이다. 그렇다면 어디서 탈출하는 것일까? 라는 생각을 해본다면, 함수 라이프사이클이라고 생각하면 난 편했다. 일반적으로 nonescaping 클로저에서는 함수 body에서 호출되고 있는 클로저는 항상 함수가 끝나기 전에 실행된다. 결국 함수 라이프사이클 내에서 실행된다고 볼 수 있다. nonescaping func performNonEscaping(closure: () -> ()) { print("start") closure() print("end") } performNonEscaping { print("closure") } 이 코드에서 보자면, performNonEscaping()에서는 클로저를 파라미터로 받고있다..

SWIFT 2021. 8. 2. 02:21

[Swift] capturing Closure

Closure 1. Capture 클로저 캡처란 클로저가 매개변수나 지역변수가 아닌 주변 외부의 context를 사용하기 위해 주변 외부의 context를 참조하는 것이다. 캡처는 말 그대로 가져온다는 의미이다. 참조로 가져오니 어떻게 생각하면 원본을 가져오는 것과 의미가 동일하다. 동일한 주소값을 참조하고 있으니, 결국 캡쳐한 값을 변경한다면, 원본의 값도 같이 변경된다. 간단한 예제로는 var num = 0 let c = { num += 1 print("Check point #1: \(num)") } c() print("Check point #2: \(num)") 위에서 클로저 안에서 num의 값이 변경되고 있다. 이렇게 되면 클로저 c가 num을 캡쳐하고 있는 것이다. 그렇기 때문에, num의 값을..

SWIFT 2021. 8. 2. 02:17

[SWIFT] Protocol Comparable, Equatable

Protocol Comparable과 Equatable은 연산자 오버로딩을 통해서 구조체의 인스턴스, enum 안의 요소들끼리의 대소구분이 가능하게 만드는 프로토콜이다. 전 게시물 enum의 예제에서 이어서 나가볼 생각이다. https://pastapeter.tistory.com/72 [Swift] Enum 타입의 CaseIterable, CustomStringConvertible?? Enum으로 case를 나누고 이것저것 하려니, CaseIterable, CustomeStringConvertible이라는 개념을 확인하게 되었다. CaseIterable 일단 CaseIterable은 프로토콜이다. 이 프로토콜을 채택한다면?? 간단히 이야기.. pastapeter.tistory.com enum Compas..

SWIFT 2021. 7. 17. 20:07

[Swift] Enum 타입의 CaseIterable, CustomStringConvertible??

Enum으로 case를 나누고 이것저것 하려니, CaseIterable, CustomeStringConvertible이라는 개념을 확인하게 되었다. CaseIterable 일단 CaseIterable은 프로토콜이다. 이 프로토콜을 채택한다면?? 간단히 이야기하자면 CaseIterable type을 사용할 경우 우리는 타입의 allCases property라는 것을 사용하면서, collection처럼 접근할 수 있다는 것이다. enum CompassDirection: CaseIterable { case north, south, east, west } print("There are \(CompassDirection.allCases.count) directions.") // Prints "There are 4..

SWIFT 2021. 7. 17. 19:19

[Swift] Singleton in Swift, 싱글톤 어떻게 만들까?

공부하던 도중 singleton에 대해 궁금한 점이 생겨서 작성하게되었다. 특히 내가 만드는 Singleton은 어떻게 작성해야할까? 아무래도 Singleton in Swift이니 가장 먼저 봤던 것은 apple document였다. apple document가 말하는 singleton은 다음과 같다. 클래스의 글로벌하게 액세스가 가능하고, shared 하고 있는 instance를 제공한다는 것이다. 우리는 우리가 만든 싱글톤을 가지고, 어떤 리소스(property)나, 서비스(method)에 통일된 접근 포인트를 만들수 있다. 근데 결국 이 싱글톤은 모든 앱에 다 쉐어되고있는 것이다. 예를 들어서 우리가 음악플레이어를 만드는데 있어서, 볼륨을 줄이고 올리고 하는것은 뮤직플레이어 앱에서 전체가 다 공유하..

SWIFT 2021. 7. 17. 18:02

[iOS] FireBase를 이용한 간단한 Chat app 만들기(2) - 회원가입

정말 오랜만에 쓰는 ios 관련 글이네요! 간단한 chat app(1)에서는 간단 애니메이션 구현이었습니다. 이번에는 이제 firebase를 적용시켜서 회원가입하는 것을 구현해볼 것입니다. Firebase로 프로젝트를 이미 만들었다고 가정을 하겠습니다. 1. 터미널에서 먼저 pod init을 해서 podfile을 만들고, firebase와 firestore을 깔아야합니다 그리고 podfile을 닫고, 이제는 터미널에 pod install을 해주는 것이죠!! 그렇게 되면 이제 xcodeproj 파일이 아닌, xcodeworkspace가 생깁니다. 이제부터 시작이죠! firebase 페이지에 보면, pod install이 완료되면 초기화 코드를 추가하라고 합니다. 이렇게 말이죠!! 그렇다면 저희도 AppDe..

SWIFT 2021. 6. 24. 18:08

[iOS] FireBase를 이용한 간단한 Chat app 만들기(1) - Timer로 애니매이션

안녕하세요!! 오늘은 제목을 애니메이션으로 만들기 편으로 한번 글을 써보려고합니다. 애니매이션은 기본적으로 어떤것일까 생각을 해보면 초등학교때로 돌아가게 됩니다. 공책에 졸라맨을 그려놓고 맨위에서 아래로 떨어트리고 마지막에 죽는 장면을 그려놓고 맨 끝에서 맨앞으로 촤라락 넘기면서 했던 기억이있는데, 이게 결국 애니메이션의 원리라고 할 수 있죠 우리는 그러니깐!! Timer를 쓰면된다 이겁니다.!! for letter in titleText { Timer.scheduledTimer(withTimeInterval: 0.1 * charIndex, repeats: false) { (timer) in self.titleLabel.text?.append(letter) } charIndex += 1 } 우선적으로 이..

SWIFT 2021. 5. 9. 13:13

[iOS] UITextfield로 검색하기

UITextfield는 말그대로 안에 Text를 넣을 수 있는 그런 기능을 가진 애입니다 이렇게 생긴애죠 apple document를 보자면 UITextField는 안에 Text를 넣을 수 있다고 써져있습니다. 좀더 애플 다큐먼트를 보면 onscreen keyboard에서 여러가지 keyboard를 설정할 수 도 있고, target action mechanism 과 delegate를 할 수 있다고 써져있습니다. target action은 특정 타겟(메세지의 수신자)에게 신호를 보내면, 그에 따른 액션을 수행하는 그런 매커니즘입니다 더 자새한 내용은 여기에 있습니다. developer.apple.com/library/archive/documentation/General/Conceptual/CocoaEncy..

SWIFT 2021. 5. 9. 12:23

추가 정보

인기글

최신글

페이징

이전
1 2 3 4
다음
TISTORY
iOS 개발자 지망생 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바