소개
안녕하세요.
강의 금액이 부담되시는 분들은 강의명을 아래 이메일로 보내주시면 할인쿠폰을 보내드립니다.
apple-developer@kakao.com
iOS 개발의 세계에 발을 들이게 된 지 벌써 10년이 흘렀습니다.
그 동안 다양한 환경에서 100여개가 넘는 프로젝트를 성공적으로 런칭하는 데 참여하였습니다. 이런 다양한 경험을 통해, 실무에서의 깊은 노하우와 통찰을 얻을 수 있었습니다.
이런 지식을 모아 저와 같은 열정을 가진 개발자 분들과 함께 성장하기 위해. 항상 더 나은 방법, 더 효율적인 경로를 연구하며, 그 결과를 강의 형태로 제작하여 여러분들과 공유하고 있습니다.
함께 성장하는 여정에 동행하실 준비가 되셨다면, 저와 함께 시작해봅시다.
강의
수강평
- UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>
- SwiftUI - iOS14 퍼펙트 가이드
- 성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
- 성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
게시글
질문&답변
에러 질문 [UITextField setDataSource:]: unrecognized selector sent to instance 0x107079600"
안녕하세요IBOutlet으로 연결할 때 PickerView를 TextField에 연결했다거나 하는등 잘못 연결된게 있는지 한번 확인이 필요해 보입니다.
- 0
- 2
- 52
질문&답변
Closure_3 Capture List에 참조 타입 값을 작성할 경우에도 deinit 실행되는 이유가 뭘까요?
안녕하세요 nil을 줘도 없어지지 않게 되려면 서로 강한참조 상태가 되는 즉 순환참조 상태로 만들어야 됩니다.그러기 위해서는 SomeClass도 클로저를 강하게 참조하고 있어야 하고클로저도 SomeClass를 강하게 참조하고 있어야 합니다. SomeClass에 다음처럼 프로퍼티를 만들고 var c: TestClass?매소드는 다음처럼 변경해 보세요 lazy var myClosure3 = { [b] in print(b) self.c = b } 그리고 nil로 설정하기 전에 다음처럼 클로저를 실행시켜야 서로 강한참조를 하고 있는 상태가 되어 deinit이 호출 안되는걸 확인하실 수 있습니다. myClass1?.myClosure3()
- 0
- 2
- 61
질문&답변
movieapp 3 46분 실행이 안돼요ㅜㅜ
안녕하세요 https://www.inflearn.com/course/lecture?courseSlug=uikit-ios14&unitId=84359 이 부분 구현되어 있는지 확인이 필요해 보입니다.
- 0
- 2
- 49
질문&답변
콘솔창 print 내용 안 뜸
안녕하세요전체코드를 보여주시면 확인해 보겠습니다.스크린샷으로는 print쓴 곳이 안보이네요
- 0
- 1
- 84
질문&답변
TodoCell UIview 생성 후 연결 시 오류
안녕하세요ai가 자동으로 길게 답변을 달아줬는데 간단히 답변 드리면xcode버그라 그냥 껐다키거나 코드에서 엔터 몇 번 쳐보거나 파일 지우고 다시 만들거나 하면 될겁니다.
- 0
- 2
- 245
질문&답변
테이블 뷰 데이터 업데이트 관련 질문
안녕하세요. 질문하신 의도가 '리로드는 무조건 필요한데 바인딩이 왜 필요한가'에 대한 것이라면, 영상에서 보여지는 것처럼, 특정 상황에서는 데이터 변경만으로도 UI 컴포넌트인 레이블을 갱신할 수 있습니다.edit상황에서 리로드 없이 레이블이 변경되는 것을 보시면 이해가 되실겁니다. 그러나, 새로운 데이터가 추가되거나 기존 데이터가 삭제되는 경우와 같이 테이블 뷰의 셀 개수에 변화가 생길 때는 reloadData()를 호출하여 UI를 갱신해야 합니다. 이는 UIKit에는 데이터 바인딩이 직관적으로 내장되어 있지 않기 때문입니다. UIKit은 주로 명령형 프로그래밍에 기반하고 있으며, 데이터와 UI 간의 동기화를 위해 추가적인 리로드 같은 로직이 필요할 수 있습니다. 데이터 바인딩 개념이 대중화된 것은 2000년대 전후로 비교적 최근이므로 바인딩 개념이 없는 프레임워크가 아직 많습니다.UIKit도 바인딩 개념이 표함되지 않았기 때문에 바인딩을 직접 구현할 수 있긴 하지만(클로저등으로 통해)Combine, RxSwift와 같은 라이브러리를 사용하는게 훨씬 간편하므로 이런 라이브러리를 사용하게 됩니다. 그럼에도 이런 라이브러리들이 데이터와 UI 사이의 강력한 바인딩 기능을 제공하지만, UIKit에서는 여전히 셀의 추가나 삭제와 같은 일부 작업에서는 수동으로 UI를 갱신해야 하는 경우가 있습니다. 바인딩을 쓰는 목적은개발자가 데이터 모델과 UI 업데이트를 수동으로 관리하는 복잡함을 줄이고, 코드의 명확성과 가독성을 향상시키기 위해 도입된 개념입니다. 바인딩이 적절히 구현되어 있다면, 개발자는 주로 데이터 로직에 집중할 수 있으며, UI는 자동으로 갱신되니 로직은 단순명확해 지게 됩니다. 참고로 최신 프레임워크인 SwiftUI는 데이터 바인딩을 핵심 개념으로 삼고 있으며, 데이터의 변화만으로 UI를 자동으로 갱신할 수 있도록 설계되었습니다. 이는 셀의 추가나 삭제와 같은 경우에도 별도의 리로드 과정 없이 UI가 갱신됩니다.
- 0
- 2
- 208
질문&답변
키보드 떠 있는 상태 만들기
안녕하세요 아마 시뮬레이터라 키보드가 안올라온듯 합니다command + k 누르면서 확인하면 될 것 같습니다.(사진)
- 0
- 1
- 144
질문&답변
pageViewController 호출시점
안녕하세요 참고로 아래 매서드를 구현해서 정확하게 페이지 이동완료시마다 이벤트를 받을 수 있습니다. func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)
- 0
- 2
- 244
질문&답변
20:01 쯤에서
안녕하세요 탭으로 코드블록 안으로 커서가 이동하면 엔터치면 됩니다
- 0
- 1
- 190
질문&답변
안녕하세요! 강의 자료 관련 문의 드립니다.
안녕하세요이해하기 쉽도록 문서로 만들어서 수업 자료에 추가 했습니다.화면의 오른쪽 상단에 수업 자료를 눌러 다운로드 해 주세요
- 0
- 1
- 174