iOS / Android 크로스 플랫폼 개발 [닫기]


113

저는 한동안 Java로 Android 앱을 개발해 왔으며 이에 대한 처리를 시작하고 있습니다. 그러나 iOS 버전에서 시작하려면 처음부터 모든 것을 코딩해야합니다. 이는 바람직하지 않습니다.

사용 가능한 크로스 플랫폼 솔루션이 무엇이고 실제로 얼마나 잘 작동하는지 궁금합니다. 저는 웹 애플리케이션에 대해 생각하고 있습니다. 아마도 jQuery Mobile 또는 Titanium 또는 Adobe Flash / Flex / Air를 사용하는 것 같습니다. 또한 아직 투자해야 할 Mac이 없습니다.

그래서 내 질문 :

  1. iOS / Android (및 / 또는 기타 장치)에 대해 어떤 크로스 플랫폼 개발 환경이 있습니까?

  2. 이 도구에 대한 경험은 어떻습니까? (이것은 내가 정말로 알고 싶어하는 것입니다)


1
앨리스 터, 당신은 이런 종류의 질문을 한 첫 번째 사람도 아니고, 대답을 원하는 첫 번째 사람도 아닙니다! :) 내가 엇갈린 리뷰를 들었던 PhoneGap과 더 많은 쿠키 커터이지만 좋아 보이는 Red Foundry를 잊지 마십시오. 아직 크로스 플랫폼이 아닙니다.
makdad

1
PhoneGap도 사용할 수 있습니다. 나는 그것을 사용하고 당신이 그것을 위해 가라고 조언했습니다. Android의 PhoneGap에서 개발 한 애플리케이션을 사용하여 exe 파일 (iOS 용 IPA)을 생성하는 조항이 있습니다.
Jayprakash Dubey 2014 년

이제 2016 년이 끝나고 크로스 플랫폼 도구 환경이 변경되었으므로이 질문에 대한 업데이트를 제공하고 싶습니다. 나는 당신이 선택한 프로그래밍 언어와 당신의 팀이 다음과 같은 xp를 가장 많이 가지고있는 곳에 달려 있다고 말하고 싶습니다. 1. JavaScript : Phonegap Performance는 모바일에서 나쁘기 때문에 네이티브 컴포넌트와 함께 도구를 사용하지만 애플리케이션 로직을 위해 JS를 사용하는 것이 좋습니다. 옵션은 V-Play ( v-play.net/apps ) 또는 React ( reactnative.com )입니다. 2. C # : Xamarin은 당신의 친구입니다. 3. C ++ : Qt ( qt.io ) 와 같은 C ++ 프레임 워크를 사용합니다. 면책 조항 : 저는 Qt를 기반으로하는 V-Play의 배후에서 일하고 있습니다.
Christian Feldbacher

답변 : Flutter , iOS 및 Android에서 기록적인 시간 내에 네이티브 인터페이스를 제작하기위한 Google의 새로운 모바일 UI 프레임 워크입니다.
naXa

유망한 활성 haxe.org 프로젝트도 있습니다.
Eugene Gr. Philippov

답변:


104

면책 조항 : 저는 크로스 플랫폼 프레임 워크를 만드는 Particle Code 회사에서 일합니다. 이 공간에는 수많은 회사가 있습니다. 매주 새로운 것이 등장하는 것 같습니다. 좋은 소식 : 선택의 폭이 넓습니다.

이러한 프레임 워크는 서로 다른 접근 방식을 취하며 대부분은 근본적으로 서로 다른 문제를 해결하도록 설계되었습니다. 일부는 게임에 집중하고 일부는 앱에 집중합니다. 다음과 같은 질문을합니다.

무엇을 쓰고 싶습니까? 엔터프라이즈 응용 프로그램, 개인 생산성 응용 프로그램, 퍼즐 게임, 1 인칭 슈팅 게임?

어떤 종류의 개발 환경을 선호하십니까? IDE 또는 일반 ol '텍스트 편집기?

프로그래밍 언어에 대해 강한 감정이 있습니까? 내가 익숙한 프레임 워크 중에서 ActionScript, C ++, C #, Java, Lua 및 Ruby 중에서 선택할 수 있습니다.

우리 회사는 게임 공간에 더 가깝기 때문에 Titanium, PhoneGap 및 Sencha와 같은 JavaScript + CSS 프레임 워크를 많이 사용하지 않았습니다. 하지만 게임 지향 프레임 워크에 대해 조금 말씀 드릴 수 있습니다. 게임 및 리치 인터넷 애플리케이션은 크로스 플랫폼 프레임 워크가 빛을 발할 수있는 영역입니다. 이러한 애플리케이션은 시각적으로 고유하고 네이티브 UI와의 혼합에 덜 중요하기 때문입니다. 찾을 수있는 몇 가지 프레임 워크는 다음과 같습니다.

  • Unity www.unity3d.com 은 3D 게임 엔진입니다. 제가 작업 한 다른 개발 환경과는 정말 다릅니다. 3D 모델로 장면을 만들고, 스크립트를 객체에 첨부하여 동작을 정의합니다. JavaScript, C # 또는 Boo로 스크립팅 할 수 있습니다. iOS, Android, Windows, OS X 또는 콘솔에서 실행되는 3D 물리 기반 게임을 작성하려면이 도구가 적합 할 것입니다. 3D 자산을 사용하여 2D 게임을 작성할 수도 있습니다. 이에 대한 좋은 예는 인디 게임 Max와 Magic Marker입니다., Unity로 작성된 2D 물리 기반 사이드 스크롤러입니다. 잘 모르겠다면 확인해 보는 것이 좋습니다 (특히 가족에 자녀가있는 경우). Max는 PC, Wii, iOS 및 Windows Phone 7에서 사용할 수 있습니다 (단, Unity는 WinPhone을 지원하지 않기 때문에 후자 버전은 포트 임). Unity에는 3D 에셋과 텍스처가 포함 된 샘플 게임이 포함되어있어 매우 복잡한 환경에 적응하는 데 정말 도움이됩니다.

  • Corona www.anscamobile.com/corona 는 Lua 스크립팅 언어를 사용하고 iOS 및 Android를 지원하는 2D 게임 엔진입니다. Corona의 판매 포인트는 몇 줄의 코드로 매우 빠르게 물리 기반 게임을 작성할 수 있다는 것이며, iOS 앱 스토어에있는 수많은 Corona 기반 게임은 성공의 증거입니다. 환경은 매우 희박하여 일부 사람들에게 어필합니다. 시뮬레이터와 디버거가 함께 제공됩니다. 선택한 텍스트 편집기를 추가하면 개발 환경이 있습니다. 기본 SDK에는 버튼 또는 목록 상자와 같은 UI 구성 요소가 포함되어 있지 않지만 구독자는 CoronaUI 추가 기능을 사용할 수 있습니다.

  • Particle SDK www.particlecode.com 은 게임에 대한 배경 지식이있는 약간 더 일반적인 크로스 플랫폼 솔루션입니다. MVC 애플리케이션 모델을 사용하여 Java 또는 ActionScript로 작성할 수 있습니다. WYSIWYG UI 편집기가있는 Eclipse 기반 IDE가 포함되어 있습니다. 현재 Android, iOS, webOS 및 Windows Phone 7 장치 용 빌드를 지원합니다. 웹용으로 Flash 또는 HTML5를 출력 할 수도 있습니다. 이 프레임 워크는 원래 포커 및 백개 먼과 같은 온라인 멀티 플레이어 소셜 게임용으로 개발되었으며 복잡한 로직을 가진 2D 게임 및 앱에 적합합니다. 프레임 워크는 2D 그래픽을 지원하며 2D 물리 엔진을 포함합니다.

주의 :

오늘 우리는 Titanium 크로스 플랫폼 프레임 워크의 제작자 인 Appcelerator가 Particle Code를 인수했다고 발표했습니다.

...

2012 년 1 월 1 일부터 [ Particle Code ]는 더 이상 [ Particle SDK ] 플랫폼을 공식적으로 지원하지 않습니다 .

출처

  • Airplay SDK www.madewithmarmalade.com 은 Visual Studio 또는 Xcode에서 개발할 수있는 C ++ 프레임 워크입니다. 2D 및 3D 그래픽을 모두 지원합니다. Airplay는 iOS, Android, Bada, Symbian, webOS 및 Windows Mobile 6을 대상으로합니다. 또한 PSP 용 AirPlay 앱을 빌드하기위한 추가 기능이 있습니다. 내 C ++는 매우 녹슬 어서 많이 사용하지는 않았지만 멋져 보입니다.

학습 곡선 측면에서 Unity는 (저에게) 가장 가파른 학습 곡선을 가지고 있고, Corona는 가장 단순했으며, Particle과 Airplay는 그 중간에 있다고 말하고 싶습니다.

또 다른 흥미로운 점은 프레임 워크가 다양한 폼 팩터를 처리하는 방법입니다. Corona는 Flash 개발자에게 친숙한 동적 확장을 지원합니다. 이것은 사용하기 매우 쉽지만 iPhone과 같은 4 : 3 화면에서 새로운 qHD Android 장치와 같은 16 : 9로 이동할 때 화면 공간을 낭비하게됩니다. Particle SDK의 UI 편집기를 사용하면 확장 가능한 유연한 레이아웃을 디자인 할 수있을뿐만 아니라 개별 화면 크기에 맞게 레이아웃을 조정할 수도 있습니다. 시간이 조금 더 걸리지 만 각 화면에 맞게 앱을 맞춤 제작할 수 있습니다.

물론 자신에게 적합한 것은 개인의 취향과 작업 스타일, 목표에 따라 달라 지므로 이러한 도구를 몇 가지 다운로드하여 시도해 보는 것이 좋습니다. 이 모든 도구는 무료로 사용할 수 있습니다.

또한 공익 광고를 게재 할 수만 있다면 이러한 도구의 대부분은 실제로 개발 중입니다. 마음에 드는 프레임 워크를 찾으면 반드시 피드백을 보내서 좋아하는 것, 싫어하는 것,보고 싶은 기능을 알려주세요. 이러한 도구의 다음 버전에 영향을 미칠 수있는 진정한 기회가 있습니다.

도움이 되었기를 바랍니다.


더 많은 엔터프라이즈 개발을 생각하고 있었지만 재미로 이러한 SDK 중 하나를 살펴 보도록 영감을 주셨을 것입니다.
앨리스 터

각 프레임 워크에 대한 링크가 유용 할 것입니다.
Petrus Theron 2011

2
업데이트 : Particle Code는 Titanium 제조업체 인 Appcelerator에 의해 인수되었으므로 Particle SDK의 운명은 불확실합니다. Airplay는 이름을 "Marmalade"로 변경했습니다.
DocDude 2011

15

MonoTouch와 MonoDroid이지만 이제 Attachmate의 해당 부분에 무슨 일이 일어날지는 누구나 추측 할 수 있습니다. 물론 모노 솔루션을 사용하더라도 여전히 비 크로스 플랫폼 뷰를 생성하고 있지만 아이디어는 비즈니스 로직의 재사용입니다.

http://www.xamarin.com/을 주시 하십시오. 그들이 무엇을 생각해 내는지 보는 것은 흥미로울 것입니다.


12

PhoneGap + jQuery Mobile에서 매우 간단한 것을 만든 경험은 괜찮 았습니다. iOS 용으로 빠르게 할 수있었습니다. 그러나 약간의 변경 없이는 내 Android 휴대폰에서 작동하지 않았습니다. 이 프로젝트는 사진을 찍고 웹 사이트에 게시하는 매우 간단한 앱이었습니다. 그리고 결국에는 진정한 네이티브 앱에 비해 "어색함"을 느꼈습니다.

나는 쉬운 크로스 플랫폼 개발이 없을 것이라고 믿습니다. 나는 브라우저가 당신이 얻을 수있는 것처럼 가깝다고 생각합니다. PhoneGap과 같은 것을 선택함으로써 나는 당신이 단지 한 세트의 문제점을 다른 문제점 세트로 교환하고 있다고 생각합니다.


7

크로스 플랫폼 개발을 위해 본격적인 프레임 워크를 사용하지 않으려면 C ++를 옵션으로 살펴보십시오. iOS는 Objective-C ++를 통해 애플리케이션 로직에 C ++ 사용을 완벽하게 지원합니다. NDK를 통한 Android의 C ++ 지원이 성능에 중요한 코드 스 니펫이 아닌 C ++에서 비즈니스 로직을 수행하는 데 얼마나 적합한 지 모르겠지만 사용 사례가 잘 지원되는 경우 시도해 볼 수 있습니다.

물론이 접근 방식은 사용자 인터페이스가 각 플랫폼에 대해 개별적으로 작성되어야하기 때문에 애플리케이션 로직이 프로젝트의 가장 큰 부분을 구성하는 경우에만 의미가 있습니다.

실제로 C ++는 가장 널리 지원되는 단일 프로그래밍 언어 (C 제외)이므로 대부분의 대규모 크로스 플랫폼 애플리케이션의 핵심 언어입니다.


3
Btw, Android는 실제로 C ++로 작성된 활동 만 직접 지원하는 것 같습니다. developer.android.com/reference/android/app/NativeActivity.html
yeoman

4
한 가지주의 사항-NativeActivity에서 Java 액세스가 없습니다 (따라서 타사 라이브러리 통합 또는 SDK 액세스가 없음). 많은 목적에 적합하지 않게 만듭니다.
rbgrn

6

이 개발 영역에 대해 방금 살펴보기 시작했지만 기본 차이점이 있다고 생각합니다. 일부 도구는 원래 코드를 유지하고 일부는 네이티브로 이식합니다.

예를 들어, PhoneGap은 작성한 HTML / CSS / JS 코드를 그대로 유지하고 앱으로 인정하기에 충분한 iOS 코드로 래핑하는 반면 Appcelerator는 XCode 프로젝트를 제공하므로 iOS에 익숙하지 않은 경우 그 정말 폰갭 이상 당신에게 어떤 혜택을 제공하지 않습니다,하지만 당신이 경우 DO 조금 알고, 그것은 조금에게 더 큰 코딩 노력 후 기본 버전을 조정할 더 많은 능력을 당신을 줄 수 있습니다.

저는 appcelerator를 직접 사용하지 않았지만 몇 주 전에 팀원 중 한 명이 약 24 시간 만에 전체 iPad 앱을 만드는 프로젝트에서 작업했습니다.

그리고 예, 실제로 애플에 제출하려면 Mac을 가져와야합니다.하지만 이것이 기본 작업 플랫폼이 아니라면 저렴하게 사용할 수 있습니다.


3

카푸치노 또는 PhoneGap .

지름길을 찾는 것이 시간을 절약하거나 비슷한 최종 제품을 제공하지 못하는 경우도 있습니다.



3

LUA를 사용해 본 적이 있다면 IOS 및 Android에서 실행되는 앱을 만들 수있는 Corona SDK를 사용해 볼 수 있습니다.

https://coronalabs.com/

나는 그것을 다운로드하고 일부를 엉망으로 만들었습니다. LUA는 일반적인 스크립팅 언어의 번거 로움 / 제한없이 스크립팅 언어를 배우기 매우 쉽습니다 ....


2

우리가 지난 18 개월 동안 사용 해왔고 그로부터 여러 게임을 출시 한 BatteryTech도 있습니다. http://www.batterypoweredgames.com/batterytech

모든 C ++, Android 및 iOS 지원, 모든 사용자에게 전체 소스가 제공됩니다. 새로운 v2에는 lua 바인딩이 포함되어 있습니다.


3
2012 년 5 월 30 일 기준 : 5 명 이하의 개발자를위한 라이선스 $ 200. 5 이상 $ 800. 오픈 소스 프로젝트에 사용할 수 없습니다.
Roger Dahl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.