전체 카테고리 232

[Figma] 프레임 정렬, Auto Layout

디자인을 할때 중요한것중에 정렬이 빠질순없죠 (제맘대로 중요하다고..생각...햇어요) iOS개발자한테는 너무 익숙한 Auto Layout!! 맞아요 그개념이에요 제약사항을 걸어두면 위치가 바뀌어도 제약에 맞게 움직여요 오토레이아웃을 하기전에 우선 기본 정렬을 살펴볼게요 디자인창 위 쪽에 이러한 모습 딱봐도 뭔지 알정도로 잘 만들어놨네요 ㅎㅎ 하나씩 눌러보세요 원하는위치에 붙어요 이때 기준점은 자신의 부모프레임을 기준으로 정렬됩니다! 하나의 프레임이 어떻게 움직여도 부모프레임 안에서 정렬되는거에요 탁구공을 상자에 넣고 흔들면 공은 상자안에서만 움직이듯이.. (비유가 맞는지모르겟네요 ㅎㅎ..) 이제 오토레이아웃에 대해서 볼게요 제약사항을 준수한다..! 예를 들어 한 프레임을 부모프레임과 중앙으로 정렬해놓는다..

디자인/Figma 2020.12.12

[Figma] 피그마 기초 사용법

피그마를 많이들 사용한다고하네요 디자인툴로 XD, Figma, 스케치등 다양한 툴중 하나에요 누가 어떤작업을하는지 실시간으로 보면서 소통할 수 있다는것! 이 제일 큰 장점일 것같아요 개발자들도 접속해서 같이 볼수있어요 onwer권한제한이 유료버전이고 수정권한이나 보는권한정도는 팀원과 공유하면서 사용 할 수 있어요 앱과 웹으로 둘다 사용할 수 있구요 깔지않아도 되기때문에 어디에서나 사용할 수 있는 접근성이 좋은것같아요 프로젝트를 만들고 처음 화면을 보면 빈화면이 있고 회색화면이 작업할 공간이되구요 왼쪽에는 컴포넌트간의 관계나 에셋을 볼 수 있고 오른쪽에는 디자인을 위한 다양한 속성과 클릭시일어나는 모션, 코드로 보여주는 기능이 보여요 그림을 그릴꺼면 도화지를 깔아야해요 그렇듯 작업을 하기위해서 아트보드(?..

디자인/Figma 2020.12.12

[Swift Algorithm] 프로그래머스 49189 가장 먼 노드

programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 간단하게는 1번에서부터 먼 거리에있는 노드를 찾는 문제에요 뭔가 bfs를 사용해야할거같죠..? 막상 하려니 감이안오네요 ㅎㅎ bfs는 큐를 사용하니까 큐를 이용해서 구현해볼거에요 해결 방법 제가 생각한 원리로는 1번에서 시작하면 인접한 노드는 [2, 3] 가있고 거리가 1이다를 저장할거에요 큐를 두개만들고 하나는 꺼내는용 하나는 결과 저장용이에요 (2, 1), (3, 1) 이 두개를 두개의 큐에 저장해두고 꺼내는용큐:(2, 1), (3, 1) 저..

[Swift Algorithm] 프로그래머스 60059 자물쇠와 열쇠 (2020 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 방법 자물쇠를 3배씩 영역을 늘리고 키를 90도씩 돌리니까 4가지의 키모양이 나올거에요 왜 3배를 늘리나면 이렇게 한칸씩 이동하면서 키를 넣어봐야해요 그렇기때문에 영역을 확장시켜주고 이렇게 움직이면서 딱 맞는 순간이 있다면 성공한 케이스가 되기때문이죠 문제조건을 잘봐야해요!! 저도 풀다가 놓친부분이 있어서 다시 봣어요.. 조건 돌기끼리는 만나면 안됌 키와 자물쇠의 크기는 다를 수 있음 (키 2번으로 5.1 겹치는 부분범..

[Swift] AutoLayout 코드작성방법 (Visual Format Language, NSLayoutAnchor, NSLayoutConstraint)

오토레이아웃을 코드로 작성하는 방법에는 3가지가 존재하는데요 사용법을 공부해보려고해요 같은 레이아웃을 다양한 방법으로 만들어볼건데요 aView(파랑) bView(빨강)이 있고 파란뷰가 좌우 간격 8, 위로20 파란뷰 20 아래에 빨간뷰가 좌우 30 파란뷰, 빨간뷰 모두 크기는 100 간단한 제약사항을 맞춰볼거에요 하기전에 기본 설정은 빼먹으면 안돼요 ㅎㅎ view.addSubview(aView) view.addSubview(bView) aView.translatesAutoresizingMaskIntoConstraints = false bView.translatesAutoresizingMaskIntoConstraints = false aView.backgroundColor = .blue bView.back..

iyOmSd/Title: Swift 2020.11.27

[Swift] Hugging, Resistance

오토레이아웃 관련 프로퍼티인데요 이렇게 기본적으로 가지고 있는속성이에요 이게 뭘까..? 쓸 때가 있을까..? 네 그럼요 ㅎㅎ 우선 이 두개를 알기전에 intrinsicContentSize 를 알고가야해요 파파고: 뷰 자체의 특성만 고려한 수신 뷰의 자연적 크기. 뷰자체의 순수한 크기에요 frame과 뭐가다른가요? intrinsicContentSize는 get-only 프로퍼티라 수정이안돼고 frame은 수정이가능하죠 frame영역을 수정했다고해서 intrinsicContentSize의 값이 달라지지않아요 서로 의존하고 있지않죠 뷰의 본래 사이즈를 알 수 있어요 예시 [leftLabel][rightLabel] 이렇게 존재하고 각 오토레이아웃은 왼쪽 오른쪽 0 으로 같게, 중앙으로 잡았다면 빨간 표시가 뜰거..

iyOmSd/Title: Swift 2020.11.25

[Swift] Optional 옵셔널

스위프트를 공부하면 ? ! 같은 기호들을 보게되죠 이게 뭐냐면 옵셔널이라는 개념인데요 개념을 공부해보고 한번 비슷하게(?) 구현해보려구요 Enum타입이고 값 또는 nil을 wrap한 표현이레요 옵셔널이란 값이 있거나 없을 수도 있는 Enum형(열거형)타입이에요 let shortForm: Int? = Int("42") let longForm: Optional = Int("42") let number: Int? = Optional.some(42) let noNumber: Int? = Optional.none print(noNumber == nil) // Prints "true" Optional 타입을 짧게 T? 로 줄여서 사용할 수 있어요 또한 옵셔널은 Enum타입에 case로 some, none 이 존재해..

iyOmSd/Title: Swift 2020.11.25

[Data Structure] Bubble, Selection, Insertion Sort (Swift)

아주 기본적인 정렬들을 공부해볼게요 대표적으로 거품정렬(Bubble Sort) 선택정렬(Selection Sort) 삽입정렬(Insertion Sort) 이렇게 3가지가 있구요 각각 특징과 구현을 해볼거에요 거품정렬 정렬과정 인접한 두 원소의 대소를 비교해서 자리를 교환하면서 정렬해요 시간복잡도 O(n^2) func bubbleSort(arr: [Int]) -> [Int] { var arr = arr for i in arr.indices { // i번 시도 for j in 1.. arr[j] { // 스왑 let temp = arr[j] arr[j] = arr[j-1] arr[j-1] = temp } } } return arr } 선택정렬 정렬과정 Index 0부터 차례대로 해당 순서에 원소 넣을 위치를..

[Swift Algorithm] 프로그래머스 68646 풍선 터트리기 (월간 코드 챌린지 시즌1)

programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 풀이과정 문제 이웃된 값들중 큰값이 삭제 단 한번만 작은값을 삭제할 수 있고 삭제되지않는 풍선의 수를 구해라 현재 비교하려는 값이 삭제되지않는 경우 -> 어찌햇던 마지막에 양옆을 비교했을때 그 양옆의 수보다 작아야함 (셋중에 젤 작아야 남길수 있음) x번째를 남기고싶다면 [0.. n^2 실패... 마지막 현재 확인숫자 기준으로 왼쪽최솟값과 오른쪽 최솟값을 비교해서 그 둘보다 커야함 n^2으론 절대 불가능하니 n으로 해야했고(1,000,000^2 시간초과) 배열을 만들어서 왼쪽부터 비..

[Swift] Notification Center, Notification Queue

Notification Center의 post는 동기적으로 동작하죠 post a post b 를 했다면 a의 옵저버함수가 끝날때까지 b를 실행하지 않아요 옵저버함수가 실행이 오래걸린다면 마냥 기다릴순 없으니..! 비동기적인 API가 있는데요 바로바로 Notification Queue!! 가 있는데 한번 사용해보려구요 ㅎㅎ Notification Center의 버퍼다! 다른건 아니고 NotificationCenter에 들어오는 post를 관리해주는거라고생각해요 이벤트 등록을 할때 Notification Center를 이용해서 옵저버를 등록하거든요 ㅎㅎ 기본적인 사용법은 let center = NotificationCenter.default let queue = NotificationQueue.default..

iyOmSd/Title: Swift 2020.11.20