전체 150

[iOS] cocoaPod으로 라이브러리 사용

라이브러리를 편리하게 사용하기 위해서 node에서는 npm이나 yarn을 python에서는 pip를 사용하는 것 처럼 ios에서는 cocoapod을 이용합니다. 사용방법을 알아보겠습니다. 공식 페이지 1. cocopod 설치 저는 개인적으로 Homebrew에서 cocoapod을 설치해 관리했습니다. // terminal에서 설치 $ sudo gem install cocoapods // Homebrew로 설치 $ brew install cocoapods 2. Podfile 만들고 라이브러리 추가하기 프로젝트 폴더를 터미널로 열고 다음을 입력합니다. cd 명령으로 이동해도 되고 프로젝트 폴더를 terminal 아이콘에 끌어 놓으면 바로 갈 수 있습니다. $ Pod init 이제 프로젝트 폴더에 Podfile..

iOS/Swift 2022.02.11

[iOS] iOS에서 JSON 파일 사용하는 방법

자바스크립트에서는 JSON 파일이 정말 편리하고 좋았는데 iOS에서는 바로 사용을 할 수 없다니 충격이었습니다. 아무튼... struct를 이용해 사용할 JSON 처럼 만들고 변환해 사용해야 합니다. (참고로 JSON을 그대로 Print 해봤더니 byte 크기만 출력 되었습니다.) 1. 구조 잡기 2. 디코딩 다음과 같은 JSON을 가지고 왔다고 가정하고 이를 iOS에서 사용해 보겠습니다. { "Sample1": 1, "Sample2" { "Sample2-1": "sm2-1", "Sample2-2": 22 } "Sample3": [ { "Sample3-1": "sm3-1", "Sample3-2": 32 } ] } 이러한 JSON은 Swift struct로 다음과 같이 표현할 수 있습니다. 1. 구조 잡기..

iOS/Swift 2022.02.09

[iOS] iOS HTTP 통신 허용 방법

웹에서 API를 사용할 때 http통신을 해도 별 문제가 없었지만 iOS에서 http 요청을 보내니 다음과 같은 Error 메세지가 출력 되었습니다. App Transport Security has blocked a cleartext HTTP connection since it is insecure. Use HTTPS instead or add Exception Domains to your app's Info.plist. 애플에서 막아두어서 발생하는 일인데 HTTPS를 사용하는 통신을 하거나 사용할 HTTP를 허용해야 합니다. 일단 저는 API를 사용해야 하니 HTTP를 허용하는 방법을 포스팅 하겠습니다. 1. 먼저 프로젝트의 Info.plist 파일을 엽니다. 2. Information Property..

iOS/Swift 2022.02.09

[IOS] UICollectionView 기본 사용

collectionView의 사용은 tableView와 비슷합니다. cell의 틀을 만들어두고 이를 가져와 사용합니다. cell은 xib또는 스토리보드에서 만들어 사용합니다. 일단 extension을 사용하기 위해 위임을 해주어야합니다. 이 작업을 하지 않으면 작동이 안됩니다. // viewDidLoad에 작성 self.collectionView.collectionViewLayout = UICollectionViewFlowLayout() self.collectionView.delegate = self self.collectionView.dataSource = self 이제 extension으로 다음을 추가하고 원하는 대로 커스텀 하시면 됩니다. (extension이 아니라 그냥 protocol을 채택해도..

iOS/Swift 2022.02.07

[IOS] datePicker() 를 TextField에서 사용과 TextField에 이벤트 추가

스토리보드에서 datePicker Object를 사용하면 화면을 넓게 차지합니다. 그래서 TextField를 클릭하면 datePicker가 나오도록 해보겠습니다. // datePicker 객체 생성 private let datePicker = UIDatePicker() // datePicker를 원하는 유형으로 설정 // 고를 데이터 self.datePicker.datePickerMode = .date // 선택 방식 self.datePicker.preferredDatePickerStyle = .wheels // 언어 설정 self.datePicker.locale = Locale(identifier: "Korean") // 이 코드로 textField에 datePicker를 넣을수 있다. // dateT..

iOS/UIKit 2022.02.07

[IOS] dateFormatter( )로 Date( )를 String으로 만들기

보통 원하는 시점을 담고있는데 Date() 객체를 원하는 String으로 바꿔 사용하는 방법을 정리하겠습니다. // DateFormatter를 가져와 커스텀 let formatter = DateFormatter() // String으로 구성 // ex) yyyy 하면 2022가 나오고 yy로 하면 22로 출력되는 방식 formatter.dateFormat = "yy년 MM월 dd일E " // 언어 설정(안해도 한국어로 나오긴 했습니다.) formatter.locale = Locale(identifier: "ko_KR") // String으로 담아 사용 let exString = formatter.string(from: 원하는 Date객체) 원하는 대로 변경해서 사용하시면 되겠습니다.

iOS/UIKit 2022.02.07

[IOS] 이벤트 관찰 NotificationCener

APPLE_공식문서 약간 react의 redux에서 subscribe 같은 느낌을 받았습니다. 미리 NotificationCenter에 특정 이벤트를 지정해두고 이에 맞는 이벤트가 발생하면 그를 수행할 수 있게 해줍니다. 예시 A viewController에서 알림을 등록하고 B ViewController에서 알림을 구독하면 이벤트가 발생했을때 B에서 이를 인식해 selector가 실행됩니다. 알림(이벤트) 등록 NotificationCenter.default.post( // 센터에서 사용할 이름 name: NSNotification.Name("이벤트 이름"), // 전달할 객체 object: 이벤트에서 사용할 객체라고 보면 된다., // 연관되어 넘겨줄 값 dictionary userInfo: ["키"..

iOS/Swift 2022.02.07

[IOS] UserDefaults 로컬 저장소에 저장 및 불러오기

UserDefaults는 Key와 Value로 이루어져 있습니다. (리액트에서 리덕스와 비슷한 느낌으로 사용 가능할듯 싶습니다.) 아니면 웹 브라우저의 LocalStorage와 비슷한 느낌이기도 하네요. 저장할 데이터 만들고 받아오기 -> 저장할 데이터는 내 마음대로 할 수 없음으로 encoding 해주거나 원하는 데이터 형식으로 바꿔주는작업이 필요합니다. (iOS는 왜 데이터를 그냥 쓰게 못 두는거야ㅜㅜ 장점이자 단점이네요) 암튼.. encoding을 다뤄보고 저장에서는 decoding을 해 보도록 하겠습니다. (do-catch 문 생략) 저장 - propertyListEncoder() 이용 // 저장할 데이터의 struct가 다음과 같은 예시라고 가정 struct exampleStruct: codab..

iOS/Swift 2022.02.03

[IOS] Alert 창 다루기

alert창은 사용자에게 질문을 하듯이 사용 가능합니다. alert를 띄우는 방법에 대해 알아보겠습니다. // alert 변수 만들기 // preferredStyle이 .actionSheet이면 아래에서 올라오는 선택 창을 띄울수 있다. let alert = UIAlertController(title: "화면에 띄울 제목", message: "화면에 띄울 메세지", preferredStyle: .alert) // 추가 버튼 만들기 let addButton = UIAlertAction(title: "버튼이름", style: .default, handler: { [weak self] _ in // 메모리 누수 에방 // 등록을 눌렀을 때 실행될 클로저 // alert의 TextField에서 받아온다. 배열..

iOS/UIKit 2022.02.03

[IOS] UIBarButton 커스텀

먼저 UIBarButton을 만들고 동작을 커스텀해 보겠습니다. 이렇게 하는 이유는 원래는 화면에 표시되지 않고 필요할때 사용하기 위해서 입니다. // 버튼 변수 만들기 var someButton: UIBarButtonItem? // action은 버튼 클릭시 호출 메서드 self.someButton = UIBarButtonItem(barButtonSystemItem: .스타일, target: self, action: #selector(@objc함수 지정)) // selector 메서드 정의 @objc func donebuttonTap(){ // 코드 }

iOS/UIKit 2022.02.03