2011-08-08 5 views
9

그래서 나는 정말 멋지고 훌륭하게 디자인 된 iPhone 앱을 굉장히 풍부하게 만들었습니다. 저는 폰툰 보트와 수영복 모델과 헬리콥터에 푹 빠질 것입니다. iPad와 iPhone 모두를위한 범용 앱으로 변환하여 더 많은 현금을 만들고 싶습니다.유니버설 앱 (iPad/iPhone)을 디자인 할 때 우수 사례

필자가 지금하고 있고 게으른 프로그래머로서, 필자가 이미 작성한 코드의 재사용을 극대화하기 위해 대부분을 재사용 할 수 있다는 것을 알았습니다. -하지만 컨트롤러 클래스에서 수정해야 할 작은 것이 항상 있습니다. 또는 코드가 냄새가 나는 것처럼 느껴지는 UI_USER_INTERFACE_IDIOM()에 대한 지속적인 검사가 있습니다.

동시에 iPad 버전이 크게 작성된 iPhone 버전이 아니어야한다고 생각합니다. 다른 UI가 대부분의 경우에 보장되지만, 대화 상자 또는 전체 뷰 계층을 다시 사용하려는 지점이 있습니다.

그래서 커뮤니티에 질문합니다. 최소한의 조정만으로 내 앱을 보편화 할 수 있도록하기 위해 따라야 할 우수 사례는 무엇입니까?

답변

5

M은 분명히 (너무 M⇔C 관계의 대부분을하고) 아이폰과 아이 패드 사이에 공유됩니다.

다른 UI는 다른 의미입니다. V 및 다른 V⇔C입니다.

몇 가지 아이디어 :

  • 당신이 인터페이스 빌더에 경우는 1 아이폰 UI에 대한 펜촉과 아이 패드의 또 다른 하나를 사용하십시오.

  • 자동 인식 마스크 보기에 대해 잘 알고 있어야합니다. 올바른 값을 사용하면 종종보기 레이아웃 코드의 상당 부분을 제거합니다.

  • 수동으로 뷰를 배치하거나 사용자 지정보기를 그리는 경우 절대 값을 사용하지 마십시오. 예를 들어 myView.frame = CGRectMake(0,0, 320, 480)은 iPad에서 제대로 작동하지 않을 수 있습니다.

  • 당신이 ~ipad 또는 ~iphone 적어도 아이폰 OS 3.2, 접미사 장치 별 리소스의 개발 대상이있는 경우. 일반 이름을 사용하여 광고를 게재 할 수 있습니다.

는 : AwesomeView~ipad.xibAwesomeView~iphone.xib
, 당신은 [[AwesomeViewController alloc] initWithNibName:@"AwesomeView" bundle:nil]을 작성할 수 있습니다. 이미지
같은 것 (다음 [UIImage imageName:@"foo"]foo~ipad.pngfoo~iphone.png)

나는이 지점의 대부분이 명백한 확신하지만, 꽤 시간을 절약 할 수있었습니다 나를 위해.

2

내가 발견 한 것은 아이폰 대 iPad의 동일한 UI에 대해 상당히 다른 UI로 끝납니다. 화면의 부동산과 다른 점의 차이는 실제로 다른 접근 방식을 요구합니다. 아무것도 없다면 결국 아이폰보다 아이 패드를위한 별도의 뷰 (스크린)가 적어지게된다. (나는 그런데 헬리콥터 타기를 좋아한다). 당신이 MVC 패턴을 따라 가정

+1

그게 내가 두려워하는 것입니다 : 유니버셜 앱은 사실 두 개의 앱이 하나의 모델로 채워져있어 유지 관리의 악몽이됩니다. – ageektrapped