일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- delegation
- IOS
- human interface guidelines
- NotificationCenter
- Structures and Classes
- SWIFT
- Navigation
- 스타트업주니어로살아남기
- xcode
- 부트캠프
- View Life Cycle
- 책후기
- UIResponder
- NumberFormatter
- Modality
- 독서후기
- contentInset
- 야곰아카데미
- Codegen
- 독후감
- 아이폰
- @available
- roundingMode
- viewcontroller
- Failed to register bundle identifier
- 스위프트
- Mock
- Info.plist
- SWIFTUI
- mvvm
- Today
- Total
목록분류 전체보기 (144)
호댕의 iOS 개발

최근 Rx를 통해 items를 Bind하거나, DiffableDataSource, Compositional Layout을 통해 리스트를 구현하다보니 TableView를 정석(UITableViewDataSource를 사용하는 방법)으로 구현하는 방법이 가물가물했다. 진짜 한동안 안쓰다 보면 머리 속에서 희석되는... 그래서 다시 사용한 김에 정리를 해보고자 한다. 기존 rx를 사용한 방식은 쉽게 tableView에 item을 넣어줄 수 있다. viewModel.list.observe(on: MainScheduler.instance) .bind(to: tableView.rx.items( cellIdentifier: String(describing: ProjectTableViewCell.self), cellT..

특정 아이템을 다른 외부 SNS로 공유하거나, 전달할 때, 복사할 때 AcitivityViewController를 사용할 수 있다. 이외에도 즐겨찾기, 북마크, 찾기와 같은 작업을 수행할 수 있다. iPad에선 반드시 popover를 통해 ActivityView를 present해야 하며, iPhone과 iPod touch의 경우 modal로 present를 해줘야 한다. ActivityViews의 H.I.G 문서 보기 시스템에선 다양한 프린트를 포함한, 메시지, 에어플레이 등 다양한 기본 활동을 제공한다. 이는 재정렬될 수는 없다. 사용자 정의 Activity를 표현할 때에는 간단한 이미지를 지정해줘야 한다. 이는 아이콘을 통해 표현이 되어야 하며 그림자를 포함하지 않고 적당한 투명도와 Antialias..

반복문, 조건문, 함수를 사용하다보면 제어 전송문을 사용하게 된다. 그래서 이를 총 정리해보고자 한다. 🌀 break Switch 문 해당 케이스에서 실행하는 문장이 없는 경우 break를 사용함 만약 작성을 하지 않는다면 이와 같은 에러가 발생한다. 'case' label in a 'switch' must have at least one executable statement 'default' label in a 'switch' must have at least one executable statement var num = Int.random(in: 1...100) var array = ["Hello", "Jobs", "Swift", "Cook"] switch num % 4 { case 0: print(..

일단 라이브러리와 프레임워크는 개발을 하면서 반드시 사용해본 개념일 것이다. 최소한 프레임워크는 누구든 사용해봤을 것이다. 그렇다면 라이브러리와 프레임워크는 무엇일까? 🆚 라이브러리와 프레임워크 프레임워크 프레임워크는 Playgrounds 파일을 새롭게 생성하거나, 프로젝트를 생성하기만 해도 볼 수 있다. Xcode를 다뤄봤다면 무조건 봤을 UIKit이나 Foundation이 바로 프레임워크이다. 프레임워크는 앱을 구현하기 위해 필수적인 것들이다. 즉, 레고를 예로 들자면 다양한 크기의 레고 블록인 것이다. 우리는 이런 레고 블록이 없다면 아예 레고를 만들 수 없을 것이다. 직접 플라스틱을 녹여 만들지 않는 한 말이다. 프레임워크의 경우도 앱을 만들기 위해선 반드시 import를 해서 해당 프레임워크를 ..

이는 앨런 Swift 문법 마스터 스쿨을 듣고 정리한 글입니다. 앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정) - 인프런 | 강의 Swift문법을 제대로 이해, 활용해보고자 하는 철학을 바탕으로 과정이 설계되었습니다. 코딩에 대해 1도 모르는 비전공자를 시작으로 네카라쿠배에 입사할 수 있는 초고급 수준까지 올리는 것을 www.inflearn.com 🧺 Collection은 뭘까? 그렇다면 Collection은 뭐라고 정의할 수 있을까? 이는 여러 개의 데이터를 효율적으로 관리하기 위한 자료형이라고 볼 수 있다. 즉, 다양한 데이터를 담아 용도에 따라 사용할 수 있도록 하는 바구니 역할인 것이다. Swift에선 Collection으로 크게 Array, Dictionary, Set..

Swift Language Guide와 앨런 Swift 문법 마스터 강의를 바탕으로 작성한 글입니다. 앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정) - 인프런 | 강의 Swift문법을 제대로 이해, 활용해보고자 하는 철학을 바탕으로 과정이 설계되었습니다. 코딩에 대해 1도 모르는 비전공자를 시작으로 네카라쿠배에 입사할 수 있는 초고급 수준까지 올리는 것을 www.inflearn.com Generics — The Swift Programming Language (Swift 5.7) Generics Generic code enables you to write flexible, reusable functions and types that can work with any type, s..

기존 프로젝트를 다시 MVVM + RxSwift로 리팩토링하면서 다시 Networking 작업을 하고 있다. 저번에는 네트워크와 관련된 테스트 코드를 짜지 못했었는데 이번에는 Stub을 이용해 네트워크에 연결되지 않는 상황에서 테스트를 할 수 있도록 구현했다. (일단 여기선 RxSwift만을 사용하고 기타 Moya나 Alamofire같은 네트워킹 관련 라이브러리는 사용하지 않았습니다) 여기서 사용하는 Stub은 테스트 더블이라 볼 수 있다. 즉, 테스트를 직접 진행하기 어려운 경우, 이를 대신해 테스트를 진행할 수 있는 객체를 따로 생성하는 것이다. 🤔 테스트 더블을 사용한 테스트 이유 그럼 네트워크 관련 테스트에서 Stub을 사용하는 이유는 뭘까? 네트워크를 사용할 때보다 테스트 속도가 빠르다 네트워크..

4장에서는 각 객체 간의 협력에 대해 중점으로 이야기를 한다. 종종 공식문서를 보며 문맥(Context)이라는 단어를 접할 수 있었는데, 이 책에서는 객체의 행동 방식이 협력이라는 문맥(Context)에 의해 결정이 된다고 하고 있다. 이전 장에선 객체의 행동이 상태보다 중요하다고 했다면 이번 장에서 가장 중요한 것은 객체 간 협력이라고 하고 있다. 즉, 객체를 설계할 때 중요한 것은 다음과 같다는 것이다. 협력 > 행동 > 상태 🤝 협력 협력의 본질은 요청과 응답의 연쇄적인 흐름이다. 만약 물건을 주문하고 택배로 받는 상황을 고려해보자. 여기선 손님, 상점, 택배 3개의 객체로 구성이 되어 있다. 손님이 상점에게 물건을 주문하고 택배 요청 상점은 이에 응답하여 택배에 상품 배송 요청 택배는 이에 응답하..