전체 카테고리 227

[Swift] AVFoundation 카메라 만들어보기(기초)

UIImagePickerController를 이용해서 아주 손쉽게 카메라를 띄우고 사진을 가져오는 방법이 있지만 더 많은 컨트롤을 할 수 있는 AVFoundation을 다뤄서 만들어 보도록할거에여 AVFoundation으로 할 수 있는 것은 카메라, 비디오, 오디오, 녹음, 미디어에셋을 커스텀 하게 만들 수 있어요 간단한 원리라고하면 Device에서 어느 장치를 쓸건지 input을 만들어서 동작하는 Session에 넣어주고 넣은 input이 있으면 그에따른 output도 있겠죠? output도 설정해서 Session에 달아주면 되는식이에요 요약하자면 input, output을 session에 설정한다! 코드로 보면서 이해해볼까요 (간단해서 볼것도 없네요.. ㅎ) class TestCamera: UIVie..

iyOmSd/Title: Swift 2020.12.24

[Swift] Socket 라이브러리 비교 CocoaAsyncSocket vs Socket.IO

대표적인 소켓 라이브러리에요 (아마도..?) 소켓을 사용할 때 원하는 기능을 고려해서 선택해서 쓰면 될것 같아요 소켓이란.. 간단하게 HTTP통신은 클라이언트가 요청을 보내는 경우에만 응답하는 단방향 통신이고 실시간연결이아니라 필요할 때만 통신해서 데이터를 가져오는 방식이죠 소켓은 특정 Port를 통해서 연결을 유지하고 실시간으로 양방향 통신을 할 수 있는 방식이에요 실시간통신에 유리하죠 일반적인 소켓은 TCP/IP, UDP 프로토콜을 이용하지만 웹소켓은 HTTP Layer에서 작동하는 소켓이에요 기본적으로 HTTP(80), HTTPS(443)포트를 사용하구요 웹소켓 프로토콜은 WS, WSS가 있어요 CocoaAsyncSocket Objective-C로 구성되어 있고 GCD기반 비동기 소켓 라이브러리에요..

iyOmSd/Title: Swift 2020.12.23

[Swift Algorithm] 프로그래머스 42861 섬 연결하기

programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 문제를 간단하게 요약하면 각 노드를 모두 연결 할 수 있는 간선의 최소 가중치를 구해라 라는 문제에요 방문하는 문제와 결이 달라요 되게 어려운 문제지만 크루스칼 알고리즘과 Union Find 알고리즘 개념을 알고나면 접근하기 쉬워지는 문제에요 Union Find 란 여러개의 노드가 존재 할 때 연결된 노드들을 같은 집합 구성원으로 묶어주는 알고리즘이에요 [1,2], [2,3], [3,4], [5,6] 이런 집합이 있다면 위와 같이 그려 볼 수 있겠죠? 2번과 4번이 같은 집..

[Figma] Variants 컴포넌트 그룹 만들기

Variants가 뭐나면.. 하단탭으로 예를 들자면 이런 탭아이콘을 만드려면 아이콘 2개를 가져와서 각각 컴포넌트에 넣어줘서 만들어야하지만 Variants를 사용하면 하나의 컴포넌트로 해결 할 수 있어요 속성을 컨트롤해서 구분할 수 있어요 네이밍이 중요하구요 왜 중요한지는 아래에 보면있어요 컴포넌트의 속성(on/off)를 줘서 변경 할 수 있어요 먼저 컴포넌트의 개념을 알고가야 할 것 같아요 2번째에있는 4조각난 다이아몬드표시를 누르면 지정이 되구요 보라색이뜨면서 저 모양이 뜰거에요(조각난 다이아몬드) 이렇게말이죠 그 다음 복사를 해보세요 (맥북)옵션키를 누르고 드래그 혹은 커맨드+C ~ V 커맨드+D 등 알고있는 복사 단축키구요 ㅎㅎ 보면 새로 복사한 컴포넌트는 텅빈 다이아몬드가 그려져있죠?? 이게 자..

디자인/Figma 2020.12.12

[Figma] 화면간 이동 프로토타입 만들기

이번주제는 간단한 주제에요 앱에서 버튼을 누르면 다음화면으로 가는 그러한 동작을 시뮬레이션 할 수 있는 기능이에요 아트보드가 우선 2개이상이 필요하겠죠?? 이동시킬 화면과 이동화면! 오토레이아웃을 누르면 오른쪽화면으로 이동되도록 해볼게요 왼쪽화면의 오토레이아웃을 클릭하고 디자인창이아니라 프로토타입창 을 클릭을 하면 사각형에 ㅇ 하나가 나타날거에요 드래그해서 이렇게 끌어다 놓으면 해당 컴포넌트를 어떻게 할때 동작하고 어떤 인터렉션이 동작할건지 설정할 수 있어요 설정했다면 오른쪽위에서 플레이 버튼을 눌러서 확인하고 여러 화면이 있다면 시작 지점을 설정할 수 있어요 오른쪽 프로토타입창에서 혹은 아트보드에서 왼쪽위에 재생표시를 드래그해서 지정할 수 있어요

디자인/Figma 2020.12.12

[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