일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 책후기
- Info.plist
- roundingMode
- delegation
- 독후감
- Navigation
- IOS
- viewcontroller
- Codegen
- Structures and Classes
- @available
- NotificationCenter
- contentInset
- View Life Cycle
- xcode
- NumberFormatter
- human interface guidelines
- UIResponder
- 아이폰
- SWIFTUI
- 야곰아카데미
- 부트캠프
- Modality
- 독서후기
- Mock
- mvvm
- SWIFT
- Failed to register bundle identifier
- 스타트업주니어로살아남기
- 스위프트
- Today
- Total
목록전체 글 (143)
호댕의 iOS 개발
LinkedList를 Queue 타입으로 구현해보자! 먼저 Queue 타입이 뭘까? Queue는 컴퓨터의 기본적인 자료구조로 먼저 들어온 순서대로 처리를 해주게 된다. (선입선출, FIFO - First In First Out으로 대기열을 구현하는 것이다) 만약 Queue 타입에 데이터를 넣게 되면 아래 그림처럼 가장 마지막에 들어오게 된다. 11번째 데이터처럼 가장 마지막에 들어오게 되는 것이다. Queue에서 데이터를 빼주게 되면 처음 들어온 것이 가장 처음 나가게 된다. 즉, 가장 먼저 들어 온 1번 데이터가 가장 먼저 나가게 되는 것이다. 그럼 이런 Queue 타입을 위한 LinkedList를 구현해보자. 일단 LinkedList의 경우 Array List와는 다르게 요소(Node)와 요소(Nod..
애플의 '손쉬운 사용' 설정에 들어가면 'Larger Accessibility Sizes' 을 조절할 수 있다. 일단 Accessibility의 경우 모든 사람들이 애플의 디바이스를 편하게 사용할 수 있도록 지원하는 기능이다. '손쉬운 사용'(= Accessibility)의 경우 VoiceOver, Dynamic Type 등의 기능을 제공하고 있다. 이 중 'Larger Accessibility Sizes'의 경우 시력이 나쁜 사람들을 위해 글씨의 크기를 설정할 수 있는 곳이다. 만약 UI 요소가 adjustsFontForContentSizeCategory를 true로 해놓고 Font style을 system이 아닌 스타일 설정을 해놓았다면 'Larger Accessibility Sizes' 설정에 따라..
저번 주와 이번 주 프로젝트를 진행하고 활동학습을 하며 정말 많은 내용을 배울 수 있었다. 일단 Accessibility와 동시성 프로그래밍에 대해 배웠고, 이외에도 팀원들과 함께 프로젝트를 진행하며 평소 코드를 작성하며 생각하지 못했던 부분까지 고민해볼 수 있었다. 그럼 이번 주는 뭘 배웠는지 정리해보도록 하자. Accessibility 새롭게 알게 된 내용 VoiceOver로 나오는 언어는 맥북 언어에 따라 달라진다. (왜 시뮬레이터 언어를 따라가지 않는 것일까?) 이미지의 경우 isAccessbilityElement를 true로 설정해줘야 accessibility에 접근할 수 있다. Hit area is too small로 버튼이 너무 작다는 warning이 나오면 button에 Image Inse..
프로젝트에서 contentConfiguration을 통해 데이터를 넣어줬는데 이 방법은 iOS 14 이후로 지원하는 방식이었다. 즉, Deployment target을 낮추면 컴파일 오류가 발생했다. 그래서 일단 device의 OS 버전에 따라 다른 코드를 적용할 수 있도록 수정해주었다. if #available(iOS 14.0, *) { print("ios 14이상 메서드 불림") var content = cell.defaultContentConfiguration() content.image = UIImage(named: expositionItem.imageName) content.text = expositionItem.name content.secondaryText = expositionItem.sh..
JSON은 무엇일까? JSON은 Javascript Object Notation의 줄인 말이다. 그럼 분명 나는 Swift로 개발을 공부하고 있는데 왜 Javascript에서 객체를 표기하는 방법을 배워야 하는 것일까? 그 이유는 단순하다. 최근 JSON을 데이터를 전달하고 저장하는 대표적인 방법으로 사용하고 있기 때문이다. 컴퓨터의 데이터는 전부 0과 1로 구성이 되어 있는데, 컴퓨터 간에 데이터를 전달하려면 서로 0과 1을 해석하는 방식이 동일해야 한다. 그래서 HTML과 유사한 XML이라는 방식을 사용하기도 했다. 하지만 데이터를 주고 받을 때 사람도 보다 읽기 쉽도록 하길 원했고, 현재는 사람도 읽기 편한 JSON을 대부분 사용하게 되었다. JSON 데이터의 표기 방법 {} : 객체 (딕셔너리) ..
화면을 전환하려면 Storyboard에서 ctrl 키를 누르고 연결만 시켜주면 된다. 이후 Action segue를 원하는 방식으로 설정해주면된다. 예를 들어 버튼을 눌렀을 때 다음 화면으로 넘어가고 싶다면 버튼에서 ctrl 키를 누른 상태로 넘어가고 싶은 화면에 드래그해주면 되는 것이다. 하지만 스토리보드는 협업을 할 때 버전에 영향을 많이 받고, 동시에 하나의 스토리보드를 작업한다면 꼬여버리는 문제가 있다고 알고 있다. 따라서 현업에선 각자 작업을 하는 스토리보드를 따로 두고 있다고 들었다. 여기서 문제가 발생한다... 스토리보드 파일을 따로 두면 기존에 segue를 직접 연결시켜주는 방식은 사용할 수 없는 것이다... 그래서 이 땐 코드로 화면을 전환해줄 필요가 있다! 이전에 버튼을 예로 들었으니 ..
방학에 푹 쉬고 다시 시작하는 첫 주이다. 방학 때 공부를 많이 못한 것은 아쉽기도 하지만 다시 체력을 보충하고 다시 공부에 전념할 수 있도록 마인드 셋팅을 할 수 있었다는 것에 대해선 만족한다. 이번 주는 iOS 개발을 하면서 중요한 'TableView'에 대해 학습했다. 아직 어려운 부분이 많지만 팀원들과 함께 공부하며 TableView의 기본적인 메서드와 호출 순서에 대해 어느정도 감을 잡을 수 있었다. 스스로도 계속 적용해보려고 노력하면 익숙해지겠지...? 21.12.06 TableView dataSource -> 데이터를 전달 delegate -> 테이블 뷰가 수행하는 행동, 모습을 전달 didSelectRowAt 메서드를 통해 어떤 섹션에 어떤 로우에 이벤트를 받았는지 알 수 있다. 이벤트가 ..
이번 주는 NumberFormatter, ARC, App Life Cycle에 대해 중점적으로 배웠다. ARC ARC는 뭘 자동으로 해주는 것일까? 컴파일 타입에 retain을 통해 reference count가 올라가고 release를 통해 reference count가 내려가는 것에 대한 코드를 자동으로 넣어준다. 이를 통해 reference counting이 0이 되면 메모리에서 해제시킨다. (deinit을 호출한다) 그렇다면 ARC 이전에는 어떻게 메모리 관리를 해줬을까? MRC를 사용해서 직접 retain과 release 코드를 작성해주고 reference count를 올리고 내려줬다. 따라서 이 때는 참조 카운트를 개발자의 실수로 잘못 더해주거나 빼주는 경우도 있었다. ARC를 이해해야 하는 ..