2011-01-22 3 views
7

곧 중간 규모의 iOS 프로젝트 인 문서 중심 앱을 시작할 예정입니다.크로스 플랫폼 iOS/Mac OS X 목표 -C 개발?

나중에 소프트웨어가 Mac OS X로 포팅 될 수 있습니다. 물론 전체 UI를 변경해야합니다. 그건 내가 묻는 것이 아니야.

크로스 플랫폼 (Mac/iOS 전용) 또는보다 쉽게 ​​이식되는 방식으로 핵심 논리를 작성할 수 있습니까? 이전에이 작업을 수행 한 사람이 있습니까? 아니면 두 플랫폼 모두에서 서로 다른 코드를 작성하는 일반적인 방법입니까?

코드, 프레임 워크, 버전 제어 -에 관한 모든 정보에 대해 감사드립니다. 나는 사실 이후에 내가 구석에 자신을 그린 것을 깨닫기 싫어. 그래서 나는 가능한 한 시작하고 싶다.

+0

이 게시물을 참조하십시오 : http://stackoverflow.com/questions/1939/how-to-articles-for-iphone-development-objective-c –

+4

@Dave Everitt 실제로 * 질문 * 읽었습니까? -이야기. –

답변

9

첫 번째 단계는 MVC 패턴을 고수하는 것입니다. 보기는 iOS와 OS X간에 다시 작성해야하지만 모델 레이어와 컨트롤러의 일부는 다시 사용할 수 있습니다.

Foundation (NSArray 등) 및 Core Data는 iOS와 OS X에서 공유되므로 모델 계층을 관리하는 공통된 Objective-C 코드 (예 : 데이터를 디스크에 저장)를 검색하는 데 아무런 문제가 없어야합니다. 그들로부터 네트워크 등.

하나의 중요한 포인트는 주로보기 레이어에서 직접 모델 레이어를 다루는 long-ish 코드 세그먼트를 작성하는 것에 저항하는 것입니다. 그 long-ish 코드 세그먼트는 그 자체로 모델 계층에서 작동하는 메소드로 추상화 될 수 있습니다. 나중에 OS X 앱에서 해당 코드를 재사용 할 수 있습니다.

예를 들어 표시된 문서를 관리하는보기 컨트롤러를 생성한다고 가정합니다. 그런 다음 편집 작업에 해당하는보기 컨트롤러에 정의 된 동작 메서드에서 모델 레이어의 세부 사항을 직접 파헤쳐 코드를 작성하고 편집 작업을 구현할 수 있습니다. 그런 다음보기 컨트롤러가 창 컨트롤러 (또는 NSDocument 하위 클래스)로 이식 될 때 소스 코드를 약간 변경해야합니다. 오히려 iOS 응용 프로그램의보기 컨트롤러와 OS X 응용 프로그램의 윈도우 컨트롤러에서 해당 메서드를 호출 할 수 있도록 문서 객체 자체 내에서 특정 편집 작업을위한 메서드를 구현할 것입니다.

+0

안녕하세요, 주제에 대한 링크 또는 샘플 코드를 공유 할 수 있습니까?) –

2

그냥, C에서 IOS, OSX, 자바, 안드로이드에 다음 포트를 쓸 수 ...

+1

정확히 내 애플 리케이션 중 하나의 모델 (MVC) 부분으로 해왔다. Plain C는 Mac Classic, OS X, iOS, 안드로이드, PalmOS, webOS의 PDK, Linux의 명령 행 등에서 UI 래퍼를 실행합니다. – hotpaw2

3

당신이 모두 것이다, 주에서, 작품을 만드는 모든 순수 논리와 "모델"수준의 클래스 iOS 및 Mac OS X (코코아 클래스를 사용하는 한), SQLite/Core Data 등 두 시스템에 공통적 인 메소드가 있습니다. 즉, iOS 파일 시스템은 OS X에 대한 제한 사항이 아니며 "문서 중심"응용 프로그램에서 처리해야 할 대상입니다.

그러나 UI 레벨 클래스는 두 시스템에서 완전히 다르며 iOS는 OS X의 다양한 NS 클래스와 비교하여 다양한 UIKit 클래스를 사용합니다. 따라서 공유 할 수는 없습니다 그 수준에서 많이.

두 프로젝트 사이에서 코드를 공유하는 측면에서 하위 수준 개체 등의 "공통"프로젝트를 만들 수 있습니다. 추가 할 수도 있고 iOS 및 Mac OS X 프로젝트 내에서이를 참조 할 수도 있습니다. 상황이 갈라지면 다소 고통 스럽다. 어쨌든 iOS 측에 주로 초점을 맞추더라도 읽을 가치가있는 Clint Harris의 "Easy, Modular Code Sharing Across iPhone Apps: Static Libraries and Cross-Project Reference s"라는이 주제에 대한 좋은 블로그 게시물이 있습니다.

2

나는 이것에 대해 많이 알지는 못하지만, 다른 사람들은 아마도 더 많이 알 것이다.하지만 iOS에서 Mac으로 프로젝트를 이식하려고한다면 어쩌면 UMEKit이 도움이 될 것입니다 ...

+0

흥미로운 링크, 감사합니다. 그러나 인터페이스 개념과 요구 사항 (및 가능성) 및 iOS Touch 장치의 사용 사례는 데스크톱과 너무 크게 다르므로 작은 유틸리티의 경우에는 매우 합리적입니다. 편집 : UMEKit은 대부분의 교차 플랫폼 소프트웨어에서 가장 큰 문제점 중 하나를 구현합니다. 플랫폼의 기본 UI를 무시하십시오. 아주 작은 도구는 괜찮지 만 그 이상은 해가됩니다. – fzwo