문제

.NET 개발자로서 저는 항상 iPhone의 기존 기술 (C#) 애플리케이션으로 개발할 가능성을 꿈꾸 었습니다.

두 프로그램 모두 Mac과 iPhone SDK가 설치되어야합니다.

Appcelerator Titanium은 내가 시도한 첫 번째 앱이며 일부 iPhone Native API를 JavaScript에 노출시켜 해당 언어를 사용하여 호출 할 수 있습니다.

Monotouch는 Titanium이 무료 인 동안 iPhone 시뮬레이터가 아닌 iPhone에 배치 할 수있는 Beeing으로 399 달러부터 시작합니다.

Monotouch (Monodevelop)는 현재 티타늄에 누락 된 IDE가 있습니다 (그러나 TextMate, Aptana와 같은 편집자를 사용할 수 있습니다 ...)

두 프로그램 모두 결국 기본 사전 컴파일 된 앱을 생성한다고 생각합니다 (또한 .NET 프레임 워크 호출이 Monotouch에서 컴파일 시간에 전제화된다고 생각하기 때문에 iPhone의 최종 앱의 크기에 대해 확실하지 않은 경우).

또한 모든 iPhone API 및 기능의 전체 적용 범위에 대해서는 확실하지 않습니다.

Titanium은 Android 앱 개발을 가능하게하는 이점이 있지만 AC# 개발자로서 여전히 Monotouch 경험이 Visual Studio One과 비슷합니다.

당신은 어떤 것을 선택하고 모노 터치와 티타늄에 대한 당신의 경험은 무엇입니까?

도움이 되었습니까?

해결책

어떤 툴 또는 플랫폼 또는 언어 또는 프레임 워크 또는 어떤 질문이든, 그것은 실제로 무엇에 대해 내려야합니다. 원하다.

If-You-Want-to-Develop-For-Platform-you-you-youy-your youy-your yourdues 조언을 잊어 버리십시오. Objective-C, Xcode 및 관련 사과 비트를 학습하는 데 관심이 있다면 Goferit. 나는했다. 재미 있었지만 나의 iPhone 앱 개발에 관심이있었습니다. 새로운 언어, 프레임 워크 및 IDE를 배우는 것은 단지 보너스 일뿐입니다 (나는이 물건을 좋아합니다). 내가 시작했을 때도 필요했습니다.

나는 Monotouch가 출시 된 이후로 일해 왔으며 그것을 좋아합니다. C#을 대상 C보다 선호하고 Monotouch가 제공하는 .NET (mono) 프레임 워크의 서브 세트에 액세스하는 것을 좋아합니다. Cocoa보다 .NET을 사용하기 쉬운 일이 있습니다 (문자열 조작, 날짜 조작, 아무것 XML 등).

또한 더 이상 참조 계산을 처리 할 필요가 없습니다. 나는 그 수준에서 자원을 추적 할 필요가없는 수년에 망쳐졌습니다. 나는 나 자신을 따라 청소해야한다고 생각하지 않지만, 내가 사용한 다른 모든 현대 개발 플랫폼이 자동으로하는 일을 수동으로하고 싶지는 않습니다. 또한, 노련한 목표 C Devs의 경우에도 참조 카운팅은 쉬운 일이 아닙니다. 언젠가 OS X의 콘솔 출력을 스크롤하여 메모리 관리 문제로 인해 얼마나 많은 앱이 충돌하는지 확인하십시오 (알고 있습니다. 기본적으로 모든 앱에서 발생할 수 있지만 과로한 DEVS가 참여할 때이 상황으로 이어지는 실수를 저지르는 것이 훨씬 쉽습니다. 그의 관심 범위는 12 시간 동안 파괴되었다.

나는 여전히 Objective -C/Xcode를 사용하고 있습니다 - 나는 Apple의 도구를 좋아하는 법을 배웠습니다. 나는 솔직히 그들이 어색하고 약간의 비난을 느낀다. 그러나 여전히 재미있다.

그러나 ... 그럼 나는 이것도 좋아한다 :

public string SomeString { get; set; }

Objective-C (어쨌든 iPhone에서)와 동일한 작업을 수행하려면 부동산을 뒷받침하기 위해 로컬 변수를 선언하고 속성 선언을 작성한 다음 "합성"지침을 사용하여 속성을 귀하를 위해 생성하도록합니다 ( 당신이 지정한 속성 속성에 대해, 당신은 당신을 위해 참조 계산을 관리하는 getters와 setter를 포장하는 속성을 가질 수 있습니다. ~이다 타임 절약이지만 C# Way는 여기에서 명확한 승자입니다).

그것은 Monotouch가 인생을 더 편하게 만드는 방법의 한 가지 예일뿐입니다. 특히 .NET/Java/Python/다른 언어가 메모리 용량으로 손가락을 더럽 힐 필요가없는 다른 언어 (원하지 않는 한). .

iPhone과 관련하여 .NET의 Brining 부분을 제외하고 iPhone 세계로의 Brining 부분을 제외하고 Monotouch 네임 스페이스는 Cocoatouch에 맵핑되므로 Monotouch UiviewController에 대해 혼란스러워하면 Apple의 문서로 이동할 수 있습니다. UIViewController에서. monotouch .net-yizes cocoatouch를 만들지 만 벽에 부딪히지 않을 정도로 충분히 가깝습니다 (Xcode/Objective-C를 사용하는 경우에도 맞지 않았을 것입니다). 매끄럽다.

티타늄은 다릅니다. 그들은 노력하고 있기 때문에 (견딜 수 없는) 여러 플랫폼에 대해 동일한 앱을 작성할 수있는 추상화 레이어를 만들려면 일반적인 단점을 처리 할 것입니다. 완전히 다른 API, 유연성 상실 (동일하게는 Monotouch에 대해서는 말할 수 있지만 동일하게는 그렇지 않습니다. 학위), 기본적으로 완전히 새로운 플랫폼을 배워야합니다 (이것은 Xcode/Objective-C/Cocoatouch를 가져 와서 피하려고하는 것입니다).

나는 또한 JavaScript를 싫어하기 때문에 티타늄에 대해 편견이있을 것입니다. 그러나 그것이 사실이 아니더라도 내가 좋아하는 언어를 사용할 수 있더라도 API는 내 공상을 간질이게하지 않습니다. 또는 내 뭐든지.

선택한 개발 도구에 관계없이 ~ 할 것이다 결국 Cocoatouch에 대해 배워야합니다. Xcode/Objective-C, Monotouch 또는 Titanium이든 무엇 당신에게 모두 무시하거나 갈 것이고, 결국 Cocoatouch 문서를 참조해야 할 것입니다.

iPhone 개발 (내가 가지고있는 것과 다시 할 것임)에 대해 이야기하고 있다면, Apple의 DEV 도구에 대한 대안에 대해 논의하려면 적어도 DEVS가 적어도 일하도록 강력히 격려 할 것입니다. 기본 도구를 사용하는 몇 가지 기본 iPhone 앱을 통해 플랫폼을위한 더 나은 개발자가 될 것입니다. 이 시작 단계를 사용하여 심지어 원하다 무료 Apple 지원 비트 이외의 것을 사용합니다. 당신은 그렇지 않을 수도 있습니다. 나는 Monotouch를 사용해 왔기 때문에 필요하기 때문이 아니라는 것이 아닙니다.

따라서 몇 가지 기본 기준을 요약합니다.

  • 선호도 (언어/프레임 워크)

  • 장치 (비 포폰 플랫폼에 관심이 있거나 언젠가는 생각하십니까?)

  • 편안함 (C#을 좋아하고 알고있는 경우 Objective-C보다 훨씬 잘 알고 있다면 Monotouch와 함께 가지 않을 이유가 없습니다).

그리고 Naysayers가 실제로 그렇지 않으면 듣지 마십시오 사용된 그들이 말하는 기술. 예를 들어, 나는 티타늄에 대해 읽었지만 경험이 없습니다. 나는 단지 선호도 때문에 그것과 관련이 없다는 것을 알고 있습니다. 그것은 "나쁜"것을 만들지 않습니다 - 제가 내 인생에서 원하지 않는 것.

객관적인 C 군중은 인상적으로 열성적 일 수 있습니다. 개방적인 데브가 많이 있지만, 그래서 그렇게합니다. 그래서 Objective-C와 Cocoa와 Blah Blah Blah를 생각하는 많은 사람들은 Devkind가 필요로하는 마지막 개발 도구입니다.

그들을 무시하라.

지원이 걱정된다면 여기에 고려해야 할 사항이 있습니다.

  • 애플은이 쓰레기를 만드는 사람들이기 때문에 최신 상태를 유지할 가능성이 높다.

  • Monotouch는 최신 상태를 유지할 가능성이 높습니다. Mono Peeps는 Microsoft와 함께 놀라운 일을 해왔으며 Apple과 똑같이하지 않을 이유가 없습니다. 나는 그들이하는 일에 의해 날아 갔다. 그리고 5 분 전에 Monotouch가 출시 되었음에도 불구하고 이미 iPhone 3.1에 대한 업데이트가 있습니다. 그들은 이것에 대해 진지하고, 나는 그들이 마술이라고 생각합니다. 그들은 Dev World의 Keebler 엘프입니다. 그들은 비밀 층에 앉아 모든 사람 (모두가 아니라)이 좋아하는 물건을 크랭크하지만 다른 사람도 시도하지 않을 것입니다.

  • 티타늄은 전적으로 고유 한 여러 플랫폼에 대한 앱을 작성하기위한 어색한 통합 API가 될 것입니다. 예, 그것은 전형적인 안락 의자가 엄청나게 미래를 좋아하는 것입니다 ... 나는이 글 머리 기호 항목을 "내 의견입니다 ..."로 돌아가서 변경할 수있는 방법 만 있었다면이 글 머리 기호 항목을 미리 채웠습니다.

이제 닥쳐겠습니다.

당신이 좋아하는 것을 가지고 가십시오. Monotouch는 Apple의 물건에 대한 "안전한"대안입니다. 티타늄이 같은 오래된 oops-high-high level-platform-abstraction-rayer-stuff-does가 다른 많은 기술이 가지고있는 실력이없는 도로를 내려 놓을 까봐 두려워합니다. 그러나 단순한 일을하고 있다면, 특히 베타 기간 동안 무료라는 점을 고려할 때 촬영에 해를 끼치 지 않습니다.

바르게.

정말 지금 닥쳐 ... 나는 이것이 도움이되기를 바랍니다.

다른 팁

이것들은 iPhone 앱을 구축 할 수있는 재미 있고 흥미로운 방법입니다. 그러나 진정으로 빠른 기본 iPhone 개발의 경우 가장 좋은 방법은 무료 iPhone SDK 및 Xcode입니다.

솔직히 말해서, 배우기 가장 어려운 것은 언어 구문이 아니라 프레임 워크 자체의 능력입니다. 그러나 이러한 IDES/언어는 여전히 코코아 (및 코코아 터치)의 일부 규칙을 파악해야하기 때문에 어느 쪽이든 해결해야 할 문제입니다.

나는 이것을 코코아 / 객관적인 c snob이라고 말하지 않지만, C를 알고 있다면 (c# dev로서) 진입 장벽은 없다.

또한, 이러한 신생 번역기/IDES/언어에는 사용할 수없는 수많은 튜토리얼 및 샘플 코드에 액세스 할 수 있습니다.

다른 프로그래밍 언어를 배우는 것은 거의 나쁜 일이 아니며 경험이 풍부한 프로그래머로서 시간 투자는 생각만큼 크지 않을 것입니다.

오픈 소스 프로젝트를 만들었습니다 http://propertycross.com 이를 통해 개발자는 Sencha, Titanium, Xamarin 등으로 구현 된 동일한 응용 프로그램을 표시하여 크로스 플랫폼 모바일 프레임 워크를 선택할 수 있습니다. 이 프로젝트는 최종 사용자 경험, 코드, IDE, 개발자 경험 등으로 광범위한 프레임 워크를 쉽게 비교할 수 있습니다.

나는 이미 알고있는 테크노 사람들과 함께 iPhone Dev에 빠르게 그립을 얻는 수단을 제공한다는 아이디어를 좋아합니다. Java 개발자로서 I Personnaly는 Ispectrum을 사용합니다.http://www.flexycore.com). 또한 IDE, 디버거 및 물건이 함께 제공되므로 Eclipse Java 플러그인의 모든 힘의 이점이 있기 때문에 개발하기가 정말 편리합니다. Java를 기반으로하는 이는 다른 Java 앱에서 이미 기존 코드를 쉽게 재사용 할 수 있습니다. 이는 Java가 iPhone을 제외한 거의 모든 플랫폼 (데스크탑 및 모바일)에 존재한다는 것을 제공 할 수 있습니다. 또한 오픈 소스 프로젝트에는 무료입니다.

나는 이런 종류의 솔루션을 고려하고 싶다. 나는 EMACS로 돌아 오는 아이디어가 마음에 들지 않기 때문이다 :).

나는 이것이 오래된 주제라는 것을 알고 있지만, 현재를 유지하기 위해 Monotouch 및 기타 크로스 플랫폼 프레임 워크처럼 보입니다. SDK 4.0에서 금지 될 예정입니다. iPhone 앱을 작성하기위한 유일한 "안전한"베팅은 적어도 당분간 Xcode 및 Objective-C를 사용하는 것입니다.

C# 프로그래머라면 객관적인 C를 배우기 위해 시간을 투자해서는 안되는 이유 C. 솔직히 말하면 많은 시간이 걸리지 않을 것입니다. 그러나 새로운 언어로 새로운 플랫폼에서 일하는 것이 좋습니다. 항상 새로운 것을 배우면 나를 매료시킵니다.

장치를 타는 방법에는 여러 가지가 있습니다. Apple은 SDK 라이센스에서 장치를 사용하는 유일한 승인 방법은 C, C ++, ObjectiveC 및 JavaScript를 통해서라고 언급했습니다.

이 시점에서 Monotouch 및 Appcelerator Titanium에 구축 된 앱이 App Store에 허용되는 것으로 보입니다. 라이센스 변경 덕분 에이 주제에 대한 많은 두려움, 불확실성 및 의심이 있습니다. 애플은 모든 사람들이 객관적인 행동을하지 않는 것을 두려워했다.

나는 당신이 개발자로서 당신에게 가장 의미가있는 모든 일을 할 것을 제안합니다. C# 및 .NET을 알고 있다면 Monotouch와 함께 가야합니다. ObjectiveC 또는 MAC 플랫폼을 알고 있다면 ObjectiveC는 아마도 갈 길입니다. X를 알고 iPhone에 있다면, X는 먼저 보는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top