요모조모

2022.09 - 2022.12

팀 구성:

iOS 3명 ⎻ 디자인 1명 ⎻ 서버 2명 ⎻ 기획 (모든 팀원)

본인 역할:

iOS 앱 개발(40%), iOS 파트 리드, 기획

초등학생들이 글을 집중해서 읽을 수 있도록 돕는 교육용 iPadOS 애플리케이션입니다. 요모조모를 사용해서 아이들은 관심있는 기사를 찾고 하이라이팅 기능이 들어간 기사를 보면서 집중하며 글을 볼 수 있습니다.

* 요모조모는 Apple Developer Academy @ POSTECH 1기 우수앱(Highlight App)에 선정되었습니다.

github

사용 기술

UIKit

UI 컴포넌트로 화면 UI 구성 및 Codebase 형식으로 AutoLayout 설정

SwiftUI

마이 페이지 화면 UI 및 메인 화면 사이드바 UI 구현에 사용

SpriteKit

단어 선택 화면에서 터치 애니메이션 구현

TextKit

UILabel 내부에서 특정 문장 가져오는 기능 구현에 사용

Github Action

build Test 실행 자동화

라이브러리(Swift Package Manager)

Lottie

JSON 기반 애니메이션 파일 렌더링 기능 제공

SwiftLint

Terminal에서 커밋 시에 SwiftLint 자동 빌드 기능 구현

본인 개발 내용

⏺ UIHostingController를 사용하여 SwiftUI, UIKit 뷰 통합 구현

⏺ Terminal을 통한 커밋 시에 SwiftLint 자동 빌드 기능 구현

⏺ Github Action을 사용하여 Build Test 진행

⏺ Github Wiki를 사용하여 스프린트 회의, 회고, 팀 룰 문서화 작업 진행

-

매일 10분마다 데일리 스크럼 회의를 진행하여 파트 진행상황 공유

⏺ 앱 내 기사 읽기 화면 제작

-

글의 단락 기준으로 한 문장씩 하이라이트하는 기능 개발

-

TapGestureRecognizer를 사용해서 화면 탭을 통해 다음 혹은 이전 문장으로 넘어갈 수 있도록 개발

-

다음 문장이 화면 밖에 있으면 scrollToRow 메서드가 호출되어 사용자가 불편함없이 기사를 읽을 수 있게 해줌

⏺ 앱 내 중심 문장 찾기 화면 제작

-

NSTextContainer를 이용하여 라벨 내부에서 특정 문장을 가져오는 기능 개발

-

문장이 하이라이트되어서 유저가 선택한 문장을 명확하게 알 수 있도록 UI 수정 진행

요모조모를 통한 성장

UIKit, SwiftUI 함께 사용 / Github Wiki를 통한 문서화

요모조모는 앞서 제가 진행했던 프로젝트와는 다르게 많은 도전이 필요했던 앱이었습니다. iOS 앱만 만들어왔던 제가 처음으로 만든 iPadOS 앱이었습니다. 또한, 문장을 하이라이트하는 기능과, 한 단락 내부의 특정 문장을 가져오는 기능은 처음 도전해보는 작업이었습니다. 해당 작업을 통해 텍스트와 관련된 클래스(NSLayoutManager, NSTextContainer)를 들여다보는 계기가 되었습니다.

무엇보다도, SwiftUI와 UIKit를 함께 사용해보는 첫번째 앱이었습니다. 메인 화면을 둘러싸고 있는 사이드 바를 SwiftUI로 구현하고 메인 화면은 UIKit으로 개발했습니다. 사이드 바는 UIHostingController 클래스를  사용해서 감싸고 해당 객체를 화면에 얹는 방식으로 구현했습니다. UIKit으로 만든 메인 화면은 하나의 화면에 여러 화면을 추가해두고 Hidden를 설정하는 방식으로 구현했습니다. UIPageViewController를 사용해서 구현했다면 해당 방식보다 쉽게 처리할 수 있지 않았을까 하는 아쉬움이 듭니다. 설명한 화면은 Yomojomo 설명 위키 에서 자세하게 보실 수 있습니다.

협업 방식에도 Github Wiki를 사용해서 새로운 도전을 진행했습니다. 이전에는 노션을 사용해서 협업 방식과 스크럼을 기록해왔습니다. 이번 프로젝트에서는 Github에서 제공하는 Wiki를 사용해서 문서화해보는 작업을 진행해보고 싶어서 Wiki를 사용해서 스프린트 회고, 회의 및 iOS 개발 룰을 정리해두었습니다. 해당 Wiki는 팀 EarthValley80 위키 를 통해서 확인하실 수 있습니다.

© Yoon Ah Shin. 2024

  1. 01. 02 Latest Update