YATA

YATA는 macOS용 자작 앱으로 Yet Another Telegra.ph App을 의미하는 약어이다. 약 2달 반 정도 개발하면서 생각나는 것들을 정리해본다.

YATA

첫 버전 기능 명세 정리

UI 디자인을 하기 전에 어떤 기능을 넣을지 생각을 해봤다. Telegra.ph 웹 서비스 및 API를 사용하면서 첫 버전에는 다음과 같은 기능을 제공하는 것으로 정리했다.

  • 계정 관리 기능
  • 글 목록 보여주기
  • 글 편집기
    • 문단 스타일 지원
    • bold, italic, link 지원

웹에서는 이것보다 더 많은 기능을 제공하지만, 이후 버전에 하나씩 추가하는 것으로 생각했다.

UI 디자인

UI 디자인은 충동구매로 1년 유료 사용 결제를 한 Sketch로 한번 시도해봤다. 아무리 좋은 도구라도 역시 디자인을 모르는 막 손에게는 과분한 도구일 뿐이었다. 인터넷에서 공개된 Sketch용 macOS 디자인 템플릿을 구해 주섬주섬 디자인해보았다.

UI Prototype

특이하게 Apple의 UI Design Resources에서 macOS용 디자인 리소스를 배포하지 않는다. macOS app은 이렇게 차별대우를 하다니!!

Storyboard 없이 UI 구현 도전 그리고 실패

Swift Korea 슬랙에서 devxoul 님의 영향(?)으로 Storyboard 없이 UI 구현하기를 시도해봤다.

Storyboard 없이 메뉴와 메인 윈도도 띄워봤다.

Menu와 Main Window

툴바도 코드로만 구현해봤다.

툴바

이렇게 도전은 했으나, Storybaord를 사용하는 것으로 돌아갔다. 참고할 것이 부족하고, 문제 상황 해결이 너무 어려웠다.

Apple에서 Cocoa 라이브러리에 대한 문서화가 상대적으로 부실하다. 예를들면 SplitView 사용하기 위해 Cocoa 라이브러리 문서를 찾아봤으나, 설명이 부실하거나, 빠진 것도 있다. 오히려 릴리즈 노트와 샘플 코드가 더 도움이 되었다.

CotEditor

이번에 작업하면서 CotEditor의 소스를 많이 참고했다. Swift 3.1로 Cocoa 라이브러리를 사용해서 구현하였고, 텍스트 편집기라 유사한 점도 있기 때문이다.

Acknowledgement 창 구현은 CotEditor의 있는 html을 이용했다.

acknowledgement

기능 구현 전에 감사 인사말부터 구현했다. ^___^

Storyboard를 이용하여 메인 윈도우 뼈대 구현

Storyboard를 이용하여 메인 윈도우의 뼈대를 구현했다. Telegra.ph API 구현한 것과 얼기설기 엮어 대충 내용을 뿌려주는 수준이다.

초기 메인 윈도우

이제 App을 만들어가는 느낌이 나기 시작한다.

Comments