본문으로 건너뛰기

하이피치(highpitch)

자신감 있게 온라인 프레젠테이션을 할 수 있도록 만들어주는 발표 연습 서비스

해당 프로젝트에 대한 iOS 진행과정에 대해 궁금하다면 Book - higpitch ios 이식하기 를 확인해주세요!

개발 언어프레임워크플랫폼개발 기한팀 구성
SwiftSwiftUImacOS(14.0)2023.06 - 2023.12총원 8 개발(4),디자인(3), PM(1)

프로젝트 개요

애플의 STT 프레임워크 Speech를 활용하여 음성에 대한 습관어 및 말빠르기와 같은 발표력 향상을 위한 실시간 피드백과 분석을 제공하는 macOS기반 발표 연습 서비스

주요 역할

SwiftUI를 활용한 SwiftData 처리 중심의 프로젝트 설계

SwiftUI를 활용해 SwiftData 데이터 공유를 원활하게 하기 위한 구조 설계

  • Presentation, Manager, Models, DesignSystem 등 역할 별 레이어 분리
  • ObservableObject기반의 Manager 객체를 통한 데이터 공유처리
  • Multi Window (Menubar Extra, Settings, WindowGroup, Feedback Panel) 간 데이터 공유처리
  • protocol을 활용한 디자인 시스템, Extension 및 modifier를 활용한 공통 모듈 코드 개발 (View, Date ...)
  • 앱 배포 관리, 데이터 모킹 및, 프리뷰 기반 테스트 환경(Schema) 구성

Menubar Extra를 통해 서비스를 접근할 수 있도록 기능과 상태 확인을 위한 UI 구현

  • MenubarExtra를 통해 개별 연습항목에 접근하는 네비게이션 처리
  • 연습하기 기능 UI 구현
  • 연습분석 시 StatusBar 상에서 갱신되는 로딩 UI 구현

AppleScript를 활용한 Keynote와 프로젝트 연동

AppleScript와 Apple Event를 활용하여 Keynote앱과 상호작용할 수 있는 기능 구현

  • 현재 열려있는 Keynote 정보 가져오기 및 발표자 모드 실행 기능 구현
  • 프로젝트와 Keynote 연동을 통해 프로젝트 연동 및 Keynote 파일 실행 기능 구현

외부 앱 및 전체화면 시 오버레이되는 STT 데이터를 활용한 실시간 피드백 UI 구현

발표 중의 음성 인식상태를 확인할 수 있도록 Speech와 NSPanel을 활용한 오버레이 UI 구현

  • Speech와 ObservableObject를 활용한 음성 인식(말 빠르기, 습관어)에 따라 상태를 보여줄 수 있는 UI 설계 및 구현

음성 분석 후 생성 된 스크립트 및 영상 타임라인 간 데이터 연동 및 사용자 이벤트 처리

연습 분석 된 영상과 데이터, 스크립트 간 연동을 통해 영상 재생에 따른 이벤트 처리 구현

  • 영상 재생에 따른 스크립트 포커싱 처리
  • 스크립트 및 분석 데이터(습관어 사용지점, 말빠르기 구간) 클릭 시 특정 타임라인의 영상 재생

기술스택

  • Speech
  • ScreenCaptureKit
  • SwiftData
  • HotKey
  • AppleScript
  • ReturnZero(STT SDK) • SwiftUI
  • FireBase(GA)

링크