이 글은, Formal Introduction to mintRedmine에 대한 번역글입니다.
20th Feb 2014, mintRedmine 앱이 서비스를 시작했습니다.
기능들
Redmine을 위한 앱을 만들면서, 우선시 했던 것은 기본적인 사용에 불편함이 없자는 것이였습니다. 웹페이지를 사용하지 않고 앱만으로 모든 기능을 사용할 수 있도록 만들고 싶었습니다. 그래서, 우리는 일상적으로 사용하는 기능들에 대해 정리하고, 우리의 앱을 통해 기능들을 수행할 수 있도록 노력했습니다.
우리는 레드마인의 REST API를 사용했지만, 우리가 필요한 기능임에도 불구하고 API가 지원되지 않는 경우가 종종 있었습니다. 그런 경우에는 우린 HTML을 파싱해서 사용을 했지만, 레드마인의 서버 업그레이드가 되었을 때 앱이 작동하지 않을 것을 대비 해 파싱하는 경우를 최소화했습니다. Redmine은 API에 충실하기 위해 최선을 다해 만들어졌습니다.
그리고 우리는 최대한 레드마인 웹페이지와 동일한 UI로 구성하기 위해 노력을 했습니다. 그래서, 레드마인을 사용하는 유저들이 앱 UI에 따로 익숙해질 필요가 없게끔 만들었습니다.
그리고 우린 Custom한 UI를 사용하지 않았습니다. 안드로이드의 기본 UI Componenet들을 이용해 UI를 구현했습니다.
프로젝트 화면은 작업내역, 로드맵, 이슈 리스트, 지켜보고 있는 일감, 뉴스, 위키페이지로 구성됩니다. 그리고 모든 사이트들은 각각의 작업내역, 프로젝트 리스트, 검색양식, 뉴스 탭으로 구성됩니다.
Textile / Wiki
프로젝트나 이슈에 대한 정보를 표시하는 것은 어려운 일이 아니였습니다. 그러나 Textile 문법으로 적힌 글들을 표시하는 데에 문제가 있었습니다. 만약 Textile처리가 되지 않은 채 글들을 보여줬다면, 나는 앱을 사용하는 필요성을 느끼지 않았을 것입니다. 그래서 우리는 노력을 들여 이 문제를 해결하기로 했습니다. Textile문법으로 변환해서 글들을 보여주도록 결정했습니다.
우리는 우리만의 방법으로 Redmine의 Textile문법으로 변환하는 것을 만들어냈다. 그것은 아직 완벽하지 않습니다. (Table format은 아직 지원되지 않습니다) 그러나 이것은 대부분의 문법들을 지원하며, Description이나 이슈의 history 등이 최대한 웹과 동일하게 보이도록 구현을 했다. 뿐 아니라 위키페이지에도 적용을 했습니다. 덕분에 우리는 앱을 종료하지 않고 위키페이지와 이슈페이지를 사용할 수 있습니다.
Custom Query Support (with Grouping/Search)
우리가 이 앱을 처음 만들었을 때에는, 이슈에 특정한 문제에 부딪혀 힘들었습니다. 레드마인 서비스의 단점 중 하나는 이슈리스트입니다. 그러나 우리는 이런 문제를 강력한 '검색양식'으로 해결하고자 했습니다. 그래서 우리는 쿼리를 만들수 있도록 기능을 추가했으며, 레드마인 유저들을 이 기능을 통해 원하는 이슈를 좀 더 쉽게 찾을 수 있길 바랍니다.
웹에서 사용하는 기본적인 쿼리들을 앱에서도 사용할 수 있습니다. 그리고 그 쿼리를 이용하면 웹과 동일한 이슈리스트를 볼 수 있습니다. 웹과 같이 그룹화 된 목록을 보여줍니다. (그리고 나는 이 기능을 굉장히 유용하고 자랑스럽게 생각합니다)
당신은 또한 앱 자체에 커스텀 쿼리를 만들 수 있습니다. (그러나 이 쿼리기능을 통해 만들어진 쿼리는 서버에 저장되지 않습니다) 이 기능을 통해 웹과 동일한 쿼리를 만들어 낼 수 있습니다.
Issue Creation/Update
우리는 이슈를 브라우징하고 찾는 것에 만족했으며 이슈 생성에 초점을 맞춰보았습니다. 첫번째로 우리가 초점을 맞춘 부분은 이슈에 노트(덧글)을 추가하는 것이였습니다. 모바일이의 특성 상 파일을 업로드하고 노트에 이미지를 넣고 싶을 때 문제가 있었습니다. 파일의 이름을 기억하고 적어야 되는데, 이는 굉장히 불편했습니다. 그래서 우리는 업로드 되어있는 이미지 리스트를 보여주고, 매우 편리하게 이미지를 글에 첨부할 수 있도록 구현을 했습니다.
우리는 이슈를 만들고 수정할 수 있는 기능을 추가했습니다. 모든 필드가 제공됩니다. 물론 Custom field들도 제공이 됩니다.
Quick change
우리는 레드마인 앱을 사용하면서, 일반적으로 이슈를 수정할 때 하나의 필드를 변경하는 경우가 많은 것을 깨달았습니다. 그래서, 우리는 이슈페이지의 모든 필드들을 버튼으로 변경했습니다. 변경하고자 하는 하나의 필드를 클릭하면 그 값을 바로 변경할 수 있도록 변경했습니다. 그리고 우리가 이 앱을 사용했을 때 그것은 굉장히 편리한 경험을 제공했습니다.
Activity / Notification
우리는 컴퓨터 앞에 앉아있을 때에도 앱을 유용하게 사용할 수 있는 방법에 대해 고민했습니다. 컴퓨터 앞에 있더라도 이 앱은 Second display용으로 사용이 가능합니다.
약 5분마다 새로운 작업내역이 있으면 앱의 화면에 보여줍니다. 앱이 화면에 떠있을 경우에는 앱 화면 위에 알림을 보여줍니다.
또한 우리는 레드마인의 새로운 작업내역에 대한 Push Notification을 구현하고 싶었습니다. 그러나 서버에서 새로운 작업내역이 있을 때 Client Application에 알리기 위해서는 서버쪽의 작업이 필요했습니다. 때문에 우리는 앱에서 일정시간마다 새로운 작업내역이 있는지를 확인했으며, 앱을 사용하지 않는 동안 새로운 작업내역이 있을 경우 사용자에게 알림을 받을 수 있도록 구현했습니다.
Widget
이 것은 안드로이드 앱이기 때문에 우리는 안드로이드의 기본적인 기능들을 사용해 편리함을 제공하고 싶었습니다. 위젯은 우리가 원하던 기능이였습니다.
작업내역을 보기 위해 위젯은 굉장히 좋은 방법이였습니다.
Time Tracking
내가 레드마인을 사용할 수 있는 안드로이드 앱을 처음으로 원했던 것은, Time-Tracking 기능을 원했기 때문이였습니다. 실제로 우리가 이슈를 처리하면서, 소요 된 시간을 측정하는데 굉장히 어려움이 있습니다. 그래서 나는 앱을 통해 이 시간을 측정할 수 있길 바랬습니다.
그래서 우리는, Time-Tracking 기능을 추가했습니다. 이 기능에는 Pro feature 라벨이 붙어있습니다. 우리는 이 프로그램을 상용 프로그램으로 제작해 수익을 창출 하고 싶었습니다. 그래서 우리는 이 작은 라벨을 통해 완전히 무료앱이 아니라는 것을 알리고, 모든 기능을 사용하기 위해서는 돈을 지불 하도록 구현했습니다. 물론, 앞으로 이 Pro feature에는 많은 기능들이 추가 될 계획이 있습니다.
Custom Font Setting
안드로이드 앱이기 때문에 이 앱은 다양한 기기에서 구동됩니다. 우리는 모든 기기에서 우리의 앱이 아름답게 보이길 원했지만 안드로이드 기기들은 해상도가 다양하고 사람마다 원하는 글자의 크기들이 모두 다 달랐습니다.
그래서 우리는 글자크기를 조절할 수 있도록 만들었으며 유저가 원하는 정확한 크기를 세팅할 수 있도록 구현했습니다.
Issue List with Custom color
이슈를 좀 더 편리하게 보기 위해 앱 검색양식을 지원하지만, 그것은 충분하지 않았습니다.
그래서 우리는 '상태'와 '유형'에 따라 색을 지정할 수 있도록 기능을 추가했습니다. 유저들이 상태와 유형에 따라 원하는 색을 제공할 수 있도록 했으며, 이 기능을 통해 이슈리스트에서 좀 더 원하는 이슈를 찾을 수 있도록 했습니다.
Like us on Facebook : mintRedmine
Follow us on Twitter : @mintRedmine
Google+ Community
'옛글 > 프로그래밍이야기' 카테고리의 다른 글
프로그래밍 Design Pattern 이해하기 - 2 옵저버 패턴 (0) | 2014.07.30 |
---|---|
객체지향 프로그래밍 도대체 무엇인가? (4) | 2014.07.16 |
'mintRedmine' Project Manager 첫 프로젝트 - 1 (0) | 2014.02.13 |
PM의 자질과 갖춰야할 것 (0) | 2014.02.08 |
초보 PM 이 갖춰야 할 '여섯가지 조건' (0) | 2013.12.19 |