일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아이폰
- IOS
- View Life Cycle
- Modality
- SWIFTUI
- NotificationCenter
- Structures and Classes
- Navigation
- Mock
- Info.plist
- xcode
- UIResponder
- SWIFT
- 독서후기
- human interface guidelines
- viewcontroller
- Failed to register bundle identifier
- roundingMode
- mvvm
- contentInset
- 부트캠프
- 야곰아카데미
- NumberFormatter
- 독후감
- 스위프트
- 스타트업주니어로살아남기
- delegation
- Codegen
- @available
- 책후기
- Today
- Total
목록Software Engineering (137)
호댕의 iOS 개발

reverse()와 reversed() 메서드 모두 배열을 뒤집는 메서드들이다. 🤷🏻♂️ 그렇다면 이 둘은 어떤 차이가 있을까? # reverse 먼저 Apple Developer 문서를 살펴보자! reverse()에 대한 문서를 보면 이렇게 나와 있다. Reverses the elements of the collection in place. collection의 요소를 그 자리에서 뒤집는다는 것이다. 공식문서에선 reverse()의 시간 복잡도를 이렇게 말하고 있다. Complexity: O(n), where n is the number of elements in the collection. 그렇다면 왜 O(n)의 시간 복잡도를 갖는 것일까?? reverse() 가 어떻게 배열을 뒤집는지 그림을 보면..

야곰의 피가 되고 살이 되는 잔소리~ # 마스터가 목표가 아니다! 캠프를 진행하면서 마스터하는 것이 목표가 아니다. 뭘 모르는지, 뭘 깊게 공부할 지 알아가는 과정이다.즉, 어떤 방식으로 탐구하면 좋을지 알아가는 과정이 필요하다. (공부의 자세!) 먼저 관심있는 부분에 대해 어떻게 공부하면 좋을지 깊게 공부해보고, 다른 사람들이 공유한 것을 살펴보는 것도 좋다.(개발자 Conference나 Semina가 많은 이유) 모든 것을 익히지 못한다고 부담을 너무 갖진 말자. 다른 사람들이 공부한 것을 공유받는 것도 적극 활용하자! 학습한 내용 # 프로토콜 프로토콜은 타입이 갖출 기능들의 청사진이다. 즉, 하나의 기능 요구사항이다.(여기서 프로토콜은 상속한다고 표현하지 않고 '채택한다’라는 표현을 사용한다.) 그..

최근 프로젝트를 하면서 View Controller 간 데이터를 전달하는 방법에 대해 공부하고 있습니다. 아직 데이터 전달 방법을 하나씩 알아가고 있는 중이라 하나씩 정리를 해보도록 하겠습니다 ☺️ 일단 스토리보드에 View Controller 2개를 생성해주고 각각 본인의 ViewController 소스파일에 연결해주었습니다. 첫번째 뷰(초록색)의 텍스트 필드에 데이터를 입력하고, 데이터 전달 버튼을 누르면 두번째 뷰(주황색)의 Label에 전달되는 방식으로 구현해보겠습니다. // 첫번째 ViewController import UIKit class MainViewController: UIViewController { var text: String = "" @IBOutlet weak var textFie..

이 글은 아래 링크를 토대로 작성한 글입니다. https://learnappmaking.com/notification-center-how-to-swift/ How To: Using Notification Center In Swift NotificationCenter in Swift is useful for sending data from one part of your app to another. How does it work? Find out in this tutorial! learnappmaking.com 프로젝트에서 ViewController 간에 데이터를 전달하면서 NotificationCenter를 사용했다. 하지만 NotificationCenter에 대해 정확히 알고 있단 생각이 들지 않아 이 ..

우리는 코드를 설명할 때 다양한 방법을 사용할 수 있다. 보통 다음과 같은 방법을 사용할 것이다. 코드를 직접 보여주며 설명한다. 줄글로 설명한다. 도표를 사용해 설명한다. (시각화, 도식화, 추상화) UML은 여기서 3번에 해당하는 방법이다. 그렇다면 왜 UML을 언어라고 표현한 것일까? 그 이유는 바로 UML이 커뮤니케이션을 위해 구조화하고 양식화하는 방법이기 때문이다. UML은 시스템이 디자인 된 것을 표준화된 방식으로 도식화하는 것이다. 즉, 도식화를 활용하여 시스템이 어떻게 디자인했는지 전달(커뮤니케이션)하는 방법인 것이다. UML Diagrams는 크게 2가지로 구분할 수 있다. 그렇다면 구조 다이어그램과 행위 다이어그램에서 가장 대표적인 다이어그램을 하나씩 살펴보자. 구조 다이어그램 Clas..

(TDD, Unit Test, Stack, Queue, NotificationCenter, ViewController 간 데이터 전달) 이번 주도 많은 것들을 배웠다. 프로젝트를 진행하면서 Model의 코드를 작성할 때 이 코드를 어떻게 점검해야되나 고민했었는데 Unit Test를 배웠다. # Unit Test -> TDD를 위한 보조 수단이다. 정해둔 동작 방향이 정확히 작동하는지 검증하는 절차로 기능별, 단위별 테스트를 해보는 것! 그렇다면 테스트 케이스가 많을수록 좋은 것일까? 적절한 것이 좋다 (최소한 요구사항에 있는 조건은 모두 넣어야 하고 엣지 케이스를 추가해주면 좋다) 다만 테스트 케이스가 많아질수록 요구사항 자체가 변하면 수정하기가 어려워진다. 왜 Unit Test를 해야 할까? 이는 맥북..

최근들어 직접 스토리보드를 다루며 처음으로 앱 같은 것을 만들고 있다. 맨날 콘솔 로그로만 구현을 하다가 스토리 보드로 시뮬레이터도 돌려보고 하니 훨씬 재미있는 것 같다. 물론 해야할 것들은 점점점~~~ 늘어나고 있긴 하다. (Auto Layout도 공부해야 하고 LLDB도 공부해야 하고 Swift 문법도 좀 더 공부해야 하고..) 오늘 할 일 - JuiceMaker Step 2 프로젝트 리팩토링 - 오토 레이아웃 관련 스크럼 - View의 LifeCycle 관련 공부 # KVO 외부에서 변화를 관찰하고 싶을 때 사용한다 특정 인스턴스의 key에 해당하는 값이 변하는지 계속 지켜보게 된다. 예를 들어 FruitStore의 재고가 변하는지 트래킹을 하고 싶은 경우, 인스턴스 외부에서 값이 바뀌는 것을 알고..

View의 화면 전환 방식에는 Modality와 Navigation이 있고 modal에서도 present modally를 선택하면 full screen, page sheet 등 다양한 방법이 존재한다. 따라서 View LifeCycle에 중점을 두고 화면 전환 방식을 정리해보고자 한다. 이를 확인하기 위한 코드는 다음과 같다. // 첫번째 ViewController class ViewController: UIViewController { required init?(coder: NSCoder) { super.init(coder: coder) print("first init") } override func loadView() { super.loadView() print("first loadView") } o..