전체 글 68

연관된 PickerView 두 개를 사용하고 싶다면? - iOS

// viewDidLoad에서 delegate, dataSource 준수 override func viewDidLoad() { super.viewDidLoad() regionPickerView.delegate = self regionPickerView.dataSource = self } // 하나의 PickerView 안에 보여줄 Picker 갯수 지정 func numberOfComponents(in pickerView: UIPickerView) -> Int { return 2 } // 각 picker 마다 몇 개의 데이터를 보여줄 것인지 지정 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int..

iOS 2023.02.28

iOS 새싹 1기와 2기의 만남! (새싹인들의 iOS Con - feat. 청년취업사관학교)

안녕하세요! 나른한 코딩입니다. 벌써 청년취업사관학교에서 진행하는 새싹(SeSAC) 과정이 끝난지 어언.. 7개월정도 되었네요 ㅠ.ㅠ 최근에 새싹 2기 친구들과 함께 참여하는 컨퍼런스를 열게 되었고, 감사하게도 발표까지 할 수 있게 되었습니다! 새싹으로 모인 사람들이 기획하고 주최한 컨퍼런스의 시작부터 발표, 네트워킹 까지.. 그 과정을 블로그에 기록해보려고 합니다. 새싹인들만 모여서 고오급 정보를 주고받았다는 그 소문의 iOS Con 후기 지금부터 시작합니다. 팔로팔로미 . . . 컨퍼런스 준비 새싹 1기 진행 당시 '나중에 2기, 3기가 지속된다면 1기 친구들이 나서서 '새싹 컨퍼런스'를 만들어보자.' 는 이야기를 했었습니다. 그게 실제로 이루어질 지는 몰랐는데 진짜가 되어버렸네요..? (오히려 좋아..

기타 개발관련 2022.10.15

Alamofire에서 자주 사용하는 print 문들 (response data, request url 출력하기)

import Alamofire let url: Stirng = "" // 요청할 base url 작성 let networkHeader: [String: String] = [:] // 필요로 하는 헤더 작성 let params: [String: String] = [:] // 필요로 하는 파라미터 작성 Alamofire.request(url, method: .get, parameters: params, encoding: URLEncoding.httpBody, headers: networkHeader).responseObject { (response: DataResponse) in // request URL 출력하기 print("* REQUEST URL: \(String(describing: response...

기타 개발관련 2022.09.05

collectionView 안 텍스트 길이에 따라 동적으로 cell 사이즈 조절하기

문자열의 사이즈에 cell의 상하좌우 inset을 더한 만큼을 cell을 그릴 때마다 width로 동적으로 할당하도록 flowLayout을 설정하였다. 코드는 아래와 같다. extension ViewController: UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let topBottomInset: CGFloat = 10 let leadingTrailingInset: CGFloat = 20 let cellH..

Trouble Shooting 2022.08.22

[iOS] 디바이스 회전을 감지하는 notification

Trouble - 특정 라이브러리를 사용시, 화면이 회전되면 cell이 옆으로 밀리는 이슈가 있었다. - 라이브러리의 고질적인 문제로 라이브러리를 뜯어 고치지 않는 이상 해결이 불가능하였다. Shooting - 그래서 생각한 방법은 두가지 이다. 1. 화면 회전을 막는다. 2. 화면 회전을 감지하여 화면이 회전되는 시점에 데이터를 refresh 해주는 작업을 해준다. 만약 기회의도가 화면 회전이 가능하도록 되어있다면 특정 기능에 문제가 생긴다고 하여 기능을 막아버리는 것은 옳지 않다. 그래서 아래 코드의 some code... 부분에 데이터를 가지고 뷰를 refresh 해주는 코드를 추가하여 해결하였다. (그 반대의 경우라면 회전을 막으면 깔끔) 화면 회전을 감지하는 옵저버를 추가하는 코드는 다음과 같다..

Trouble Shooting 2022.08.16

[Xcode] firebase analytics 등 debug창 로그 출력을 끄고 싶을 때

Firebase를 사용하는 상태에서 프린트문을 찍어서 체크하고 싶을 때 Firebase 로그 출력문에 묻혀 원하는 결과물을 찾기 힘들 때가 있다. 그럴 때 두 가지 방법 정도가 있는데, - 하나는 Firebase의 추적을 끄는 것이고 - 하나는 아래와 같이 scheme에 인자를 추가하여 추적은 계속하되 로그만 찍히지 않게 하는 방법이 있다. 1) 프로젝트 상단의 target 클릭 2) Edit Scheme 클릭 3) 아래의 두 arguments 추가 -noFIRAnalyticsDebugEnabled -FIRDebugDisabled ( - 가 붙어있어야 합니다.)

기타 개발관련 2022.07.21

깃헙 계정 2개를 한 컴퓨터에서 분리하여 사용하는 방법

깃헙 계정이 여러개 있는데, 한 아이디로 밖에 Clone이나 Push가 안되는 경우를 경험한 적이 있으신가요?? . . . . 우리가 깃헙 상에 즉 쉽게 말해서 인터넷 상에 올려놓은 공간을 원격, 내 컴퓨터에 저장해 놓은 공간을 로컬 이라고 부릅니다. 이 로컬 개발 환경에서 Git을 단독으로 사용한다면 SSH가 없어도 괜찮습니다. 하지만 여러개를 사용한다면, 안전성을 보존해야하므로 외부 Git 서버에서 코드를 Clone하거나 Push할때 SSH 프로토콜을 사용합니다. 깃헙처럼 인터넷을 통해 원격에서 Git 저장소를 호스팅해주는 서비스에서도 SSH 프로토콜을 지원하고 있고, 원격 저장소와 통신할 때 일반적으로 사용하는 방법입니다. SSH란? Git에서도 사용하지만, 원래는 멀리 떨어져있지만 인터넷이나 네트..

기타 개발관련 2022.07.18

[iOS] present를 push처럼, dismiss를 pop 처럼

화면전환 시 애니메이션 방향은 다음과 같아요! present : 아래 -> 위 dismiss : 위 -> 아래 push : 우 -> 좌 pop : 좌 -> 우 present 형식으로 화면을 보여주지만 push 와 같은 방향으로 애니메이션을 보여주고 싶을 때가 있습니다. 그럴 때 CATransition() 을 통해 커스텀 해줄 수 있습니다. 적용한 CATransition의 속성은 다음과 같습니다. duration : 애니메이션 속도 type : 띄워줄 방식 (push, reveal, fade, moveIn) subType : 띄우줄 방향 현재 나의 뷰의 윈도우에 지정한 속성을 가진 transition 객체를 추가한 후 present/dismiss 해주면 마치 push/pop 해준 것 같은 애니메이션과 함께..

iOS 2022.07.11

[Clean Code 를 읽으며] 1장. 깨끗한 코드란

요약 1장 요약 링크 . . . . 생각 이 장에서는 저자가 생각하는 나쁜 코드와 좋은 코드에 대해 이야기하고 있다. * 이 장의 초반에 나오는 '80년대 후반 킬러앱을 구현한 회사' 예시를 보면... 출시 날짜에 쪼들려 코드를 마구 짜게 되었고, 그로인해 버그가 많이 양산되고 기능을 추가할수록 코드는 더욱 지저분해졌고 감당이 불가능하져 결구 회사가 망했다고 한다. "여기서 회사가 망한 원인은 바로 나쁜 코드 탓이였다." 라는 문구가 있다. 과연 나쁜 "코드"의 탓일까?? (코드는 죄가 없어ㅠ.ㅠ) 나는 이 코드를 작성한 개발자들의 탓이라고 생각한다. (저자가 의도한 바에 이것이 포함되어있다고 생각한다) 결국 코드를 작성하는 것은 개발자 즉, 사람이다. 기한을 맞추는 유일한 방법, 빨리가는 유일한 방법은..

기타 개발관련 2022.06.29

Label 안의 attributeText 관련 유용한 NSMutableAttributedString extension - swift

UILabel에 여러개의 attributeText를 적용하다보니 가장 마지막에 작성된 속성만 적용되거나 레이블 선언부 혹은 기타 설정을 해주는 함수에서 코드가 매우 길어지게 되곤한다. let someLabel: UILabel = { let label = UILabel() label.textAlignment = .center label.font = .systemFont(ofSize: 16, weight: .bold) let colorAttribute = [ NSAttributedString.Key.foregroundColor: UIColor.blue] let attributedString = NSAttributedString(string: label.text!, attributes: colorAttribu..

Swift 2022.06.24
반응형