본문 바로가기

전체 글31

GeometryReader, Gesture, AVAudioPlayer로 진동 구현 OE - 2 이진 배열([0, 0, 0, 1, 1, 1])을 받으면 1인 부분에 손가락이 닿으면 진동하는 기능을 구현할 것이다. 시뮬레이터에서는 진동이 기능하지 않기 때문에 진동소리 오디오파일를 재생하는 방식으로 구현할 것이다. 아래는 사용자가 드래그하는 동안 사각형 영역 내부에 있는지 여부에 따라 배경색을 변경하는 간단한 예제이다. // // ContentView.swift // GestureRecMac // // Created by 서정덕 on 2023/04/28. // import SwiftUI struct ContentView: View { @State private var backgroundColor = Color.white @State private var isDragging = false @State p.. 2023. 5. 1.
Watch Connectivity로 폰-워치 통신 구현 OE - 1 기존의 앱은 storyboard를 사용해서 만들었지만 워치까지 이용하기 위해서는 swiftUI로의 이사가 필수였다. 구현할 것은 다음과 같다. 1. watch connectivity를 이용해서 아이폰에서 워치로 메시지 전송 2. 받은 문자열을 워치에서 점자로 변환 3. 변환한 점자를 워치의 크라운을 사용해서 앞,뒤 글씨로 이동하며 읽기 구현 4. 점자의 요철에 따라 점마다 터치시 진동 5. 워치 진동 구현 6. coreML swiftUI로 구현 7. 파이어베이스 연결 8. 추후 백엔드와 연결 1. Watch connectivity 구현 https://kka3seb.tistory.com/682 iOS App에서 Apple watch로 message를 전송하는 방법 iOS App에서 Apple watch a.. 2023. 5. 1.
swiftUI로 게임 만들기(떨어지는 동전 잡기) swiftUI로 게임을 제작해보려고 한다. 동전이 하늘에서 떨어지게 되면 동전을 터치해서 점수를 올리는 게임이다. 제한 시간 동안 동전이 하늘에서 랜덤으로 떨어지게 되고, 떨어지는 동전을 누르게 되면 점수가 올라가는 방식이다. 누른 동전은 1초동안 그 자리에 정지하고 그 후에는 사라지게 된다. struct ContentView: View { @State var balls: [Ball] = [] let ballCount = 5 var body: some View { ZStack { ForEach(balls) { ball in Circle() .fill(ball.color) .frame(width: ball.size, height: ball.size) .position(ball.position) .gestu.. 2023. 5. 1.
SVM을 활용한 뉴스 기사 분석 0. 목표 어절 단위로 형태소분석 되어있는 텍스트파일로 corpus 만든 후 TF-IDF 작성 column은 ㄱㄴㄷ순으로 오름차순 정렬할 것 각 문서를 벡터로 변환한 후 SVM 모델로 카테고리 분류 1. 카테고리 값을 string으로 갖는 list category list 생성 .txt 파일들의 이름이 사전식 정렬을 하면 제대로 정렬되지 않아서 natural sort 함수를 사용했다. # cell 1 import re def atoi(text): return int(text) if text.isdigit() else text def natural_keys(text): ''' alist.sort(key=natural_keys) sorts in human order http://nedbatchelder.co.. 2023. 5. 1.
Git - 1(터미널 명령어) 터미널 명령어 ls: 해당 디렉토리에 있는 폴더, 파일들의 리스트를 출력함 cd 폴더명: 해당 폴더로 이동 상위 디렉토리로 이동하고 싶다면 cd .. 입력 mkdir [새 폴더 이름]: make directory, 새로운 폴더를 생성함 cat [확일할 파일]: concatenate, 파일의 내용을 확인함 rm [삭제할 파일]: remove, 파일을 삭제함 rmdir [삭제할 폴더]: remove directory, 폴더를 삭제함 폴더 내에 파일이 존재하지 않을 때만 삭제 가능함 rm -r[삭제할 폴더]: 파일이 안에 존재하는 상황에서 삭제 하려면 rm 에 -r옵션 붙임(recursive) 폴더와 폴더 내부의 파일까지 삭제함 history: 이전에 사용한 명령어 기록을 번호와 함께 출력 ![번호] 입력하면.. 2023. 5. 1.
Swift 흐름제어 구문 1. 반복문 순회대상에 대해서 동일한 코드를 반복실행. for ~ in : for 루프상수 in 순회대상 { // 실행구문 } // String Type 순회 var lang = "swift" for c in lang.chracters { print("개별 문자: \(c)") } 순회 대상으로 이용가능한 데이터: Array, Dictionary, Set, 범위 데이터, String String은 순회처리를 지원하지 않음. 순회하기 위해서는 .chracters 속성 사용. 루프 상수는 반복마다 개별 아이템을 넘겨받아 재선언됨. 루프 '상수'이기 때문에 값 대입 불가능 루프 상수는 for 블록 밖에서 사용 불가능 루프 상수를 언더바(_)로 대신 사용 가능 while: while 조건식 { // 실행구문 } .. 2023. 5. 1.