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

이번 주는 프레임워크와 라이브러리, POP를 중점으로 학습했다. 또한 프로젝트에서 동시성 프로그래밍을 녹여보기 위해 노력했다. 아직 동시성 프로그래밍은 다른 사람에게 설명해줄 정도로 명확하게 알지는 못하는 것 같아 추가적인 학습의 필요성을 느꼈다. 그럼 이번 주는 뭘 배웠을까? 프레임워크와 라이브러리 구분을 할 수 있는 기준점: 이게 없어도 iOS 앱을 만들 수 있는가? (필수적인가) 프레임워크: 없으면 만들 수 없다 -> 기반이 되는 코드의 묶음 (ex: UIKit, Foundation) 라이브러리: 없어도 만들 수 있다 -> 모듈화된 기능으로 가져와서 쓸 수 있다. 그렇다면 RXSwift는 프레임워크일까? 아니면 라이브러리일까? ‘RxSwift is a library for composing asyn..

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 메서드를 통해 어떤 섹션에 어떤 로우에 이벤트를 받았는지 알 수 있다. 이벤트가 ..