일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- xcode
- View Life Cycle
- roundingMode
- human interface guidelines
- 독서후기
- 부트캠프
- IOS
- 책후기
- delegation
- 스위프트
- viewcontroller
- NumberFormatter
- SWIFT
- Navigation
- Failed to register bundle identifier
- Structures and Classes
- contentInset
- 아이폰
- 스타트업주니어로살아남기
- Codegen
- 독후감
- @available
- Info.plist
- SWIFTUI
- NotificationCenter
- Mock
- 야곰아카데미
- mvvm
- Modality
- UIResponder
- Today
- Total
목록Software Engineering/iOS (76)
호댕의 iOS 개발
DateFormatter의 비용이 크다는 피드백을 받게 됐다. 사실 DateFormatter를 사용하면서 크게 고려하지 않던 부분이었는데 이번 계기로 찾아보게 됐다. 그래서 다음과 같은 참고 자료들을 찾을 수 있었다. https://sarunw.com/posts/how-expensive-is-dateformatter/ How expensive is DateFormatter | Sarunw If you are working on iOS for long enough, there is a chance that you might have known that DateFormatter is expensive, but what is costly about DateFormatter? Let's find out in t..

프로젝트를 진행하다보면 종종 키보드를 활성화했을 때 키보드 때문에 뒤에 있는 컨텐츠의 일부가 아예 보이지 않는 문제가 발생하곤 한다. 화면 위에 키보드가 활성화되어 아무리 뒤에 있는 View를 스크롤 하더라도 보이지 않는다... 😱 이는 사용자가 자신이 작성한 내용을 확인할 수 없기 때문에 사용자 경험을 매우 안 좋게 하는 요인이라고 생각한다. 그렇다면 이럴 땐 어떻게 해야할까? 일단 이 때는 키보드의 높이만큼 컨텐츠가 위로 올라가야 하지 않을까? 라고 생각하고 방법을 찾아보았다. 그 전에 키보드가 활성화되었고, 키보드가 비활성화되는지 알 수 있는 방법이 필요했다. 이는 이미 만들어져 있는 Notification Center를 사용하면 해결됐다. 내가 사용한 것은 UIResponder에 있는 타입 프로퍼..

TextField는 기본적으로 만들게 되면 테두리가 존재한다. 이런 식으로 말이다. (참고로 상품 설명의 경우 TextView를 통해 구현했다) 하지만 만약 해당 텍스트 필드에 작성한 내용이 특정 조건을 충족하지 못할 경우 빨간 선으로 테두리를 그리고 싶으면 어떻게 해야할까? 코드는 아주 간단하지만 헤멨던 것이 있어 작성해본다. 일단 코드 먼저 살펴보면 다음과 같다. textField.layer.borderColor = UIColor.systemRed.cgColor textField.layer.cornerRadius = 5 textField.layer.borderWidth = 0.5 코드는 아주 간단하다. 하지만 여기서 textField.layer.borderWidth = 0.5 이 코드가 없다면? 당연..

야곰 아카데미 불타는 토요 스터디에서 진행한 Keychain 관련 공부입니다. 🔐 Keychain은 뭘까? 참고문서: https://developer.apple.com/documentation/security/keychain_services 일단 Keychain은 사용자 대신 작은 단위의 데이터를 안전하게 저장하는 공간을 의미한다. 여기서 작은 단위의 데이터는 인증서, 비밀번호, 인적사항 등의 데이터를 말한다. 이때 keychain service API는 키체인이라는 암호화된 데이터베이스에 사용자의 데이터를 저장하는 매커니즘을 가지고 있다. 단 iOS에서는 하나의 디바이스에 하나의 keychain만 존재하며 번들 단위(앱 단위)로 keychain을 관리하게 되며, MacOS에선 임의로 키체인을 생성할 수..

캡쳐를 할 수 있는 도구나 gif 편집 도구를 보면 다음과 같은 것들을 볼 수 있다. 위 사진처럼 이미지를 자르지 않고 비율 그대로 이미지의 크기만 줄이고 싶다면 어떻게 해야할까? 일단 코드를 먼저 살펴보자. extension UIImage { func resize(multiplier: CGFloat) -> UIImage { let newWidth = self.size.width * multiplier let newheight = self.size.height * multiplier let size = CGSize(width: newWidth, height: newheight) let render = UIGraphicsImageRenderer(size: size) let renderImage = rend..

앱을 사용하다 보면 앱에 필요한 이미지를 업로드를 올릴 일이 발생한다. 흔히 사용하는 카카오톡에서도 그렇고 당근마켓에 팔 물건을 올리기 위해서도 앱에 사진을 올려야 한다. 그렇다면 이럴 때는 뭘 사용해서 사용자가 이미지를 올릴 수 있도록 해야 할까? 일단 이미지를 올릴 수 있도록 하는 것부터 알아보자. UIImagePickerController 일단 사진첩이나 직접 찍은 사진의 이미지를 불러올 수 있도록 하는 것은 UIImagePickerController를 활용할 수 있다. A view controller that manages the system interfaces for taking pictures, recording movies, and choosing items from the user's me..

(fileManager 학습을 위해 Application Support, Documents, tmp에 파일을 생성해봤습니다) FileManager를 사용하면 Xcode에서 손쉽게(?) 파일을 생성하고 내부 컨텐츠를 수정 및 추가도 할 수 있다. 삭제 또한 가능하다. 그럼 어떻게 FileManager를 통해 파일을 생성하고 관리하는지 알아보자~~ ⌨️ 알아두면 좋을 단축키 cmd + shift + . → 숨김 파일 보기 cmd + shift + g → 폴더 찾기 폴더 생성 → touch 파일명.확장자 / echo “내용" > 파일명.확장자명 🗂 파일 위치 Application Support 라이브러리는 일단 숨김 파일로 되어 있기 때문에 사용자로 들어가서 cmd + shift + .를 해줘야 한다. doc..

일단 라이브러리의 사용법을 작성하기 전에 라이브러리가 뭔지 살펴보자 프레임워크 VS 라이브러리 프레임워크: 이게 없으면 iOS 앱을 만들 수 없다. (ex: UIKit, Foundation) 라이브러리: 이게 없이도 iOS 앱을 만들 수 있다. 하나의 모듈화된 기능으로 가져와서 사용할 수 있다. 즉, 라이브러리는 iOS 앱을 만드는데 도움을 주는 도구이나 필수적인 도구는 아닌 것이다. SwiftLint도 컨벤션을 지키기 쉽도록 하는 하나의 라이브러리이다. 또한 라이브러리를 사용하기 편리하게 도와주는 것이 의존성 관리 도구이다. Xcode에선 주로 다음과 같은 의존성 관리 도구를 사용한다. Cocoa Pods Carthage Swift Package Manager 위의 의존성 관리 도구의 경우 다음 기회에..