WooKoo Blog

물과 같이

분류 전체보기 123

[iOS] - TableView Cell 갯수에 따른 유동적 높이 조절

오늘은 간단한 예제로 Cell 갯수에따라 테이블 뷰 높이를 바꿔보는 걸 해볼려고해요 먼저 프로젝트 생성 후 간단하게 테이블 뷰를 만들어주겠습니다. tableView.backgroundColor = .green tableView.delegate = self tableView.dataSource = self tableView.snp.makeConstraints{ $0.width.equalTo(200) $0.height.equalTo(50) $0.center.equalToSuperview() } 스냅킷이랑 스토리보드랑 막 썼어요!!! (귀차니즘..) 테이블 뷰 그리는 방법은 다 아실거라고 생각하고 다음 고고 그리고 var data = [ "안녕하세요", "재욱이에요" ] 이런 변수를 만들고 버튼을 하나 만들거..

개발/개발 2022.03.29

[iOS] - 채팅할려고 정리하는 Swift 채팅 구현 - Socket.io & Node.JS

Swift에서 Socket.io를 이용해서 채팅을 개발하고 있는데 한국어로 된 자료가 너무 없기도하고 (안드도..) 있더라도 필요한 내용이 없어서 이 포스트도 부족하지만 누군가에게는 함께 보면 좋을거라고 생각해서 나도 정리해본다!!! 먼저 구글에 검색했을 때 나오는 좋은 포스트들의 자료들을 함께 봐주면 된다. 먼저 서버 구현 먼저 하도록 하겠다. 이게 내가 앱개발자라 그런지 몰라도 서버에서 작업해줘야하는걸 몰라서 왜 안되나 삽질을 많이 했다. 노드를 먼저 설치해준다.! https://nodejs.org/ko/download/ 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 설치..

개발/개발 2022.03.22

x84_64, arm64 오류 해결 SPM과 코코아팟 함께 쓸 때

M1 맥북을 사용하는데 SPM은 문제가 없었는데 코코아팟을 사용하니 갑자기 Could not find module 'SnapKit' for target 'x86_64-apple-ios-simulator'; found: arm64, arm64-apple-ios-simulator, at: /Users/jay/Library/Developer/Xcode/DerivedData/Test-cerdaljnbtfvzoeeqtgrnvvofraz/Build/Products/Debug-iphonesimulator/SnapKit.swiftmodule 라는 오류가 나왔다. 시뮬레이터에서는 아이폰 5 이후로 arm64로 빌드가 되는데 이런 오류가 뜨니 아무리 찾아봐도 빌드셋팅에서 아키텍쳐에 arm64로 열라는 말 밖에 없었다. 결..

개발/개발 2022.03.07

[개발] - PNG 와 JPG의 특징

인터넷 보다가 요런게 있길래 한번 정리해보려고한다. PNG - 일반적으로 용량이 JPG 보다 큼 PNG파일은 비손실 압축 방식이라서 원본이 훼손되지 않는다. 글자가 많이 들어간 경우 PNG가 좋아.. JPG 사람 눈에 거슬리지 않을 정도로 원본을 훼손해 압축한다. 하지만 인공적으로 만든 디자인은 PNG 보다 용량이 커질 수 있음 결론 1. JPG가 좀 더 좋은거 같음.. 호환성이라던가 파일용량이 작으니.. 2. 파일 용량이 더 jpg가 일반적으로 작으니 요게 좋음! 3. 배경없이 사용하려면 PNG를 이용해야 투명 배경이 적용됌!

개발/개발 2022.02.08

[Swift] - async/await 살펴보기

Swift 5.5에서부터 async와 await에 대한 문법이 릴리즈 되었습니다. 동기 및 비동기 로직을 작성할 때 편하게 처리를 해줄 수 있는 키워드로 먼저 동기 비동기에 대해서 짧게 살펴보고 키워드들을 사용해보겠습니다. 동기 (sync) 어떤 작업이 있다면 이 작업이 끝날 때까지 다른 작업을 기다리는 것 비동기 (async) 어떤 작업과는 상관없이 나머지 작업들을 바로 실행하는 것 ex) 네트워킹 작업 기존 소스에서 비동기 작업을 할 때 completion Handler를 통해서 특정 메소드가 끝났을 때를 알려줬었죠 API요청 할 때나 그럴 때 만약 error 처리 시 저렇게 그냥 return 시켜버리는 경우가 있는 경우라던가.. 그런 오류처리를 해주더라도 가독성이 너무 안좋아지는 경우가 있어서 이를..

개발/개발 2022.02.08

Swift 5.1 새로운 문법 정리

SwiftUI를 공부하면서 Swift 5.1에서부터 나온 문법들을 공부하고 조금 정리해둬야 할 것 같아서 중요한 문법들? 을 정리해보려고한다. 1. Omit Return (리턴 생략) 클로저에서 리턴 키워드를 생략을 할 수가 있었는데 이제 함수에서도 반환하는 값이 명확하다면 생략이 가능하다는 것이다! func sum(a: Int, b: Int) -> Int{ a + b } 이런식으로!! 하지만 어떤 값을 리턴해야할지 명확하지 않은 경우에는 에러가 나게 되고 return 키워드를 앞에 붙여줘야합니다. 2. Some 정리중

개발/개발 2022.01.31

[Swift] - Access Control 접근제어자 (open, public, internal, fileprivate, private)

Accesss Control(접근제어) Accesss Control(접근제어)는 다른 소스파일 및 모듈의 코드에서, 코드의 일부에 대한 액세스(접근)을 제한합니다. 이 기능을 사용하면, 코드의 구현 세부사항을 숨기고, 해당 코드를 접근하고 사용할 수 있는 기본 인터페이스를 지정할 수 있습니다. 개별타입(individualtypes)(클래스, 구조체, 열거) 뿐만아니라 해당 타입에 속하는 프로퍼티, 메소드, 이니셜라이저 및 서브스크립트에 대해 특정접근 레벨을 지정할 수 있다. 프로토콜은 전역 상수, 변수 및 함수처럼 특정 컨텍스트로 제한 될 수 있다. 말 그대로 외부 객체에서 객채 내부의 자료의 접근을 컨트롤하는것 *open 접근은 Class에서만 사용 가능. struct와 eum은 public부터 사용 ..

개발/개발 2022.01.21

[iOS] - Testable한 코드를 작성하기

Testable한 코드를 작성 할 줄 아는가?? 아니면 그러한 경험이 있는가에 대해서 누군가 묻는다면 그런 경험을 한 적은 없는 것 같다. 오늘은 어떤 코드를 보고 Testable 하다는지 조금 정리해보려고한다. https://www.swiftbysundell.com/articles/refactoring-swift-code-for-testability/ 이 사이트를 참조해서 정리 및 공부해보았다. 단위 테스트는 앱의 품질을 개선하고 확장성 있도록하는 훌륭한 도구라고한다. * Bitrise : 쉽게 테스트 및 자동 앱배포를 할 수 있게 도와준다는 광고가 붙어있는데 다음에 한번 구경해봐야겠다. 1. 순수 함수 테스트하기 쉬운 코드의 한가지 특징은 순수 함수처럼 동작한다는 것! 어느 환경에서도 일정한 값을 도..

개발/개발 2021.12.19

Swift 모델에 파싱하기

MVC나 MVVM에서 모델에 데이터를 담을 때 api를 이용해서 json 데이터나 xml데이터를 파싱해서 넣어줘야할 필요가 있을 때가 있다. 어떻게 모델에 데이터를 집어넣을 수 있는지 알아보자. 일단 모델의 변수명!!!! 처음에 왜 파싱이 안되고 nil로 떨어지나 했더니 모델을 정의할 때 스트럭처 네임을 내 마음대로 지으면 안된다. (정확히는 스트럭처명은 상관없으나 맵핑되어야할 데이터들의 컬럼명은 json 같아야함!!) { "status": "ok", "totalResults": 20, "articles": [ { "source": { "id": null, "name": "CBS Sports" }, "author": "Brent Brookhouse", "title": "UFC 260 results, hi..

개발/개발 2021.12.03