2009년 9월 16일 수요일

아이폰 프로그래밍 10계명

 

아이폰/아이팟 터치 프로그래밍은 PC나 맥에 비하면 많은 제약이 있습니다만 휴대폰에서의 프로그래밍에 비

하면 개발 환경은 비교할 수 없을 만큼 편리합니다. 프로그래밍 환경이 맥 용 프로그래밍을 개발하는 것과 유사하고 실제 개발환경도 통합되어 있기 때문에 차이가 없는 것처럼 느껴집니다.

 

하지만 실제로 개발해보면 차이가 많아서 공부해야 할 것이 많다는 것을 금방 알게됩니다. 그리고 시뮬레이터에서 테스트하는 것과 실제 디바이스에서 동작하는 것이 다르다는 것도 알게되고 마우스로 터치를 시뮬레이션 하는 것도 차이가 있다는 것을 깨닫게 됩니다.

 
휴대 기기에서 개발하는 것은 PC에서 개발하는 것과는 큰 차이가 있다는 것을 인정하고 개발 방법을 다르게 해야겠지요. 그러면 어떻게 해야 할까요? 예전에 스마트 폰을 개발하면서 중요하다고 생각한 것에 최근에 아이폰 용 프로그램을 개발하면서 정리한 원칙 10가지를 나열해 봤습니다.
 
1. 만들고자 하는 프로그램의 기능을 명확히 하라
 
2. 이미지 디자인이 아니라 기능 디자인에 집중하라
 
3. 자신의 아이디어와 비슷한 앱은 반드시 있다. 사전 조사하고 비교하여라.
 
4. 가장 중요한 핵심 기능에 개발을 집중하라
 
5. 기능 스펙을 개발 초기에 결정하지 말고 개발 하면서 스펙을 완성 하라
 
6. 첫 번째 릴리즈 이후에도 사용자의 피드백을 받아 끊임 없이 개선하라
 
7. 공들여 개발한 기능이라도 중요 기능을 방해하면 과감히 제거하거나 숨겨라
 
8. 개발자 관점이 아니라 사용자 관점에서 불편한 것은 최대한 제거하라
 
9. 개발 중에 실제 아이팟/아이폰에서 테스트를 할 수 있게 실행이 되는 버전을 만들고 실행 시켜보라
 
10. 개발 중인 버전을 항상 들고 다니면서 실제 사용하는 상황을 만들어 테스트를 하라

긴 설명을 덧붙일까 싶었지만 짧은 것 나름의 매력도 있어서 설명을 덧붙이지 않았습니다. 궁금하신 것이 있으면 덧글을 달아주세요.

@모루

댓글 8개:

  1. 임베디드 시스템 개발하는것과 역시 비슷하네요..

    자원이 작으니만큼 기능을 정확하게 구현하는거랑..

    시뮬레이터와 실제 머신에서의 차이는...;;

    답글삭제
  2. @희야 - 2009/09/25 23:25
    실제 구성은 임베디드 시스템이죠. 배터리로 동작하는 ARM 코어 기반의 시스템. 모든 제약 사항은 그대로 존재하고요. 심지어 힙 크기도 20MB 정도 밖에 안됩니다. 항상 메모리에 신경써야 하지요.

    답글삭제
  3. 6. 첫 번째 릴리즈 이후에도 사용자의 피드백을 받아 끊임 없이 개선하라

    8. 개발자 관점이 아니라 사용자 관점에서 불편한 것은 최대한 제거하라

    특히 공감이 가는 부분이네요^^

    답글삭제
  4. 웹서핑하다 궁금해서 여쭤봅니다.

    아이폰 관련 어플리케이션은 개발은 무조건 mac상에서만 가능한건가요?

    일반 윈도우 기반에서 개발 할 수는 없는것인지요?

    답글삭제
  5. @꼬꼬마 - 2010/02/19 15:34
    예, 아이폰 관련 개발은 Mac OS 상에서만 가능합니다. 해킨토시라고 해서 일반 PC에서 Mac OS를 설치해서 사용하는 개발자도 있습니다만 중고 Mac이라도 구입해서 개발하는 것을 권해드립니다.

    답글삭제
  6. 아이폰 책보고 열심히 공부중인데요

    질문 드리고 싶은것이 있는데

    질답 같은건 어디서 이루어 지는지요?

    답글삭제
  7. @비루 - 2010/03/24 15:16
    따로 질문 받는 곳이 없습니다. 그냥 여기에 남겨주시면 제가 답글을 드리겠습니다. 답변이 너무 늦어 죄송합니다.

    답글삭제
  8. 아이폰 개발을 막 시작하려는 초보자입니다.

    목적은 아이폰에 한글 필기 인식 기능을 넣는 것입니다.

    헌데 아이폰에서 문자 입력은 해당 텍스트 입력이 가능한 창에 터치하면

    바로 키보드가 표시되고,,, 뭐 이렇게 되는데..

    ..

    필기인식 기능을 넣으려면 독립적인 프로그램을 띄우는것으로는 안될것 같고.

    혹시 이미 필기 인식 프로그램과 같은것이 나와 있는게 있는지...

    아니면 아이폰 키보드가 뜰때 간섭하여 연동하게 할수 있는 기술이 없는지요?

    이와 관련한(목적의 프로그램을 위한) 팁이나 의견, 답변을 올려주시면

    고맙겠습니다.

    답글삭제