목록전체 글 (39)
clyne의 개발 기록
필자는 수학통계학부를 졸업했다. 개발일을 직업으로 삼으며, 기본적인 CS 지식이 필요하다고 느낄 때가 많았고, 그 지식을 하나하나 쌓아나가고자 한다. 찾아보니 CS 지식과 관련하여 참고할 만한 자료는 인터넷에 널려있고, 이제 내가 내 방식대로 하나씩 흡수해나가면 될 것 같다. 그 과정을 블로그에 업로드해보려 한다. 2021년 08월 01일 부터 시작! 최초 참고자료 https://github.com/minnsane/TeachYourselfCS-KR/blob/main/README.md
오늘은 프로그래머스 2020 카카오 블라인드 채용 코딩테스트의 '문자열 압축' 문제를 Swift로 풀이해보도록 하겠습니다. 문제의 출처는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자..

안녕하세요 iOS 개발자 CNOO 입니다~ 최근 iOS 관련 포스팅이 없었죠? ^^; 오늘 저희가 드디어 애플 스토어에 앱 심사 1차 결과를 받았습니다 :) 역시 예상대로 1차 심사에서 통과하는건 무리가 있었나보네요.. 그래도 생각보다 적은 사유여서 아직은 버틸만 합니다. 그럼 저희의 리젝 사유를 공유드릴게요 저희는 총 4개의 리젝 사유가 있었어요 2. 3 Performance: Accurate Metadata 2. 5 Performance: Software Requirements 4. 2 Design: Minimum Functionality 5. 1.1 Legal: Privacy - Data Collection and Storage 이렇게 4개였는데요. 자세한 사유와 조치내용을 공유드리겠습니다. 먼저,..
안녕하세요. iOS 개발자 CNOO 입니다! 오늘은 간단하게, 아이폰의 Top Notch 및 Bottom Notch의 높이를 구하는 코드를 작성해보도록 하겠습니다. 노치란?? static func bottomNotchHeight() -> CGFloat { if #available(iOS 11.0, tvOS 11.0, *) { return UIApplication.shared.delegate?.window??.safeAreaInsets.bottom ?? 0 } return 0 } static func TopNotchHeight() -> CGFloat { if #available(iOS 11.0, tvOS 11.0, *) { return UIApplication.shared.delegate?.window??..

안녕하세요! iOS 개발자 CNOO입니다!! 오늘은 UILabel 안에 있는 Text의 가로 길이와 세로 길이를 구하는 방법에 대해서 공유드리고자 합니다. UILabel의 크기를 동적으로 변경해야하거나, 동적으로 Inset을 주기 위해, 텍스트의 가로 길이를 구해서, UILabel의 width를 변경하기도 합니다. 저는 사용하기 쉽도록 UILabel의 확장함수로 getTextWidth 를 만들어서 사용하고있습니다. extension UILabel { func getTextWidth() -> CGFloat { if let text = self.text, let font = self.font { return text.size(withAttributes: [NSAttributedString.Key.font :..

안녕하세요! iOS 개발자 CNOO 입니다~! 오늘은 RxSwift의 오퍼레이터 중, concat에 대하여 알아보겠습니다. 저는 개인적으로, 전수열님의 ReactorKit에서 mutate 함수 리턴할 때, concat을 애용하는 편인데요, concat에 대해서 자세히 알아보고자, 그리고, 제가 공부한 것을 공유드리고자 이렇게 포스팅 하게 되었습니다. RxSwift의 연산자를 처음 공부할 때는 저는 항상 공식문서와 내부 구현함수를 살펴봅니다. reactivex.io/documentation/operators.html ReactiveX - Operators Introduction Each language-specific implementation of ReactiveX implements a set of o..

안녕하세요!!! 오늘도 어김없이 돌아온 iOS 개발자 CNOO입니다!! 오늘 여러분께 소개해 드릴 것은 바로바로~~~~~~~~~ UIAlertViewController에 이미지 넣기 입니다! 선택지에도 넣고, 타이틀 쪽에도 넣고~~ 하는 방법입니당 먼저, 구현된 결과물 부터 보고 시작하도록 하겠습니다. 아래 Alert은 렛터디 내 1:1 쪽지함에서 구현한 Alert의 일부입니다. 요것을 구현해보도록 하겠습니다 ㅎㅎ 1. UIAlertController를 상속받는 MyAlertController 생성 저는 여기서 렛터디의 앞글자를 따서 LTAlertController라고 칭했습니다. 원하시는 것으로 클래스를 생성하시면 됩니다. class LTAlertController: UIAlertController {..

안녕하세요~! iOS 개발자 CNOO입니다!! 오늘은, UIView에 shadow 효과를 넣는 방법에 대해서 알아보겠습니다! UIView를 상속하는 모든 뷰들에 적용할 수 있으니, 원하시는 곳에 구현하셔서 사용하시면 되겠습니다! :) 먼저 구현하고자 하는 결과물부터 보여드리겠습니다~ 스터디 개설하기 버튼을 보시면, 버튼이 붕 떠있는 것 처럼 그림자 효과가 들어가있는 것을 보실 수 있습니다. 구현코드 view.layer.shadowOpacity = 0.4 // 투명도 view.layer.shadowOffset = CGSize(width: 5, height: 5) // 그림자 위치 view.layer.shadowRadius = 10 // 그림자 모서리 꺾임 정도 view.layer.masksToBounds ..

안녕하세요. iOS 개발자 CNOO입니다!!! 제가 안드로이드 개발하면서, 가장 유용하게(?) 썼던 것이 Visibility.GONE 이라는 플래그였습니다. 안드로이드 개발하시다가 iOS개발을 시작하시면, VISIBILITY.GONE 이 없어 당황해하시는데요 오늘은 iOS에서는 어떻게 해야하는지 알아보도록 하겠습니다. iOS에서는 isHidden 이라는 프로퍼티로, 뷰가 보일지, 가릴지를 결정합니다. 자 , 그러면 이러한 뷰에서, UIView2.isHidden = true 로 UIView2를 가리고, view1과 view3 사이를 좁혀주면 되는데요. 이게 가능하다면, 이렇게 하시면 금방 될것이고... UIView2.snp.updateConstraint { $0.height.eqalTo(0) } 문제는, ..

안녕하세요. iOS 개발자 CNOO 입니다. 오늘은 시계방향 및 반시계방향으로 회전하는 애니메이션에 대해서 작성해보려고 합니다.왜냐면... 제가 개발할 때, 반시계방향 회전때문에 고생했던 기억이 있어서.... 여러분은 그러지 마시라고 공유드립니다. 먼저, 결과물을 보고 시작하겠습니다. 이미지 뷰 회전 결과 180도 ~ 45도 까지의 버튼을 눌러 한바퀴 도는 예제입니다. 버튼이 눌리는 것을 보여드리기 위해, Ripple효과를 추가했는데, 이것은 이번 포스팅에서 다루지는 않을거예요! (혹시 원하시는 분 있으시면 리플 효과에 대해서도 포스팅을 작성해보겠습니다 ㅎㅎ) 자, 그럼 코드를 보겠습니다. 1. 뷰 생성 및 배치 (뷰들을 세팅하고, 클릭 이벤트를 넣는 등의 작업에는 RxSwift, RxGesture, T..