중국에는 iOS, Android, Windows Phone 개발자가 몇 명이나 있나요?
iOS(66.9%) 및 Windows Phone(45.4%)용 개발을 원하는 개발자가 점점 더 많아지고 있습니다. Android 개발의 인기가 감소했습니다. 새로운 플랫폼인 Windows Phone은 여전히 개발자들 사이에서 매우 인기가 높습니다.
Umeng에서 다루는 개발자/개발자 데이터에 따르면 개발자 애플리케이션 분포는 Android 75.62%, iOS 60.52%, IOS 및 Android 듀얼 플랫폼이 40.11%입니다. 많은 개발자는 제품을 계획할 때 여러 플랫폼을 고려한 다음 하나의 플랫폼을 선택하여 제품을 먼저 출시합니다. 크로스 플랫폼 개발도 개발자의 기술력에 대한 도전이다
윈도우 폰은 마이크로소프트가 2010년 출시한 스마트폰 운영체제다. 최신 버전은 윈도우 폰 8.0이다. 아래에서는 Windows Phone 7.5(Mango 및 Tango)를 개발자 관점에서 여러 측면에서 차이점을 비교합니다.
1. 하드웨어
iOS와 Windows Phone 시스템은 모두 비공개 소스 운영 체제이며 Microsoft와 Apple 모두 자체 하드웨어 솔루션에 대한 엄격한 요구 사항을 가지고 있습니다. OEM이 생산해야 하고 통신 칩은 퀄컴이 사용하지 않는 것이 차이나모바일이 맞춤형 애플폰을 선보일 수 없는 중요한 이유다.
Microsoft의 경우, Microsoft의 모든 CPU 솔루션은 Windows Phone 7.5를 실행하는 거의 모든 장치가 Qualcomm MSM8255T를 사용합니다. Windows Phone 8을 실행하는 현재 출시된 장치는 기본적으로 둘 다 Qualcomm Snapdragon S4 듀얼을 사용합니다. 코어 프로세서.
Apple과 Microsoft가 하는 일은 개발자와 사용자에게 큰 이익이 됩니다. 개발자의 관점에서 보면 기기의 하드웨어가 통합되고 테스트가 용이해집니다. 사용자 입장에서는 장비의 품질이 보장되며, '내가 사용할 수 있는 소프트웨어를 다른 사람이 사용할 수 없다'는 현상이 발생하지 않습니다.
안드로이드는 오픈소스이기 때문에 주요 기기 제조사들은 삼성의 엑시노스, 엔비디아의 테그라 등 자체적인 하드웨어 솔루션을 보유하고 있으며, 이러한 많은 CPU 솔루션 중에는 더 많은 아키텍처 버전이 나누어져 있습니다. , 일부는 ARM9를 기반으로 하고 일부는 ARM A15를 기반으로 합니다. 이로 인해 Android 플랫폼 하드웨어를 통합할 수 없게 됩니다. 비록 "백가지 학파"의 장면은 좋지만 개발자에게는 소프트웨어 테스트가 매우 중요합니다. 불리한. 일부 Android 소프트웨어를 개발하려면 수십 대의 Android 기기가 필요할 수 있습니다. 때로는 한 기기에서 작동 문제가 발생하면 많은 코드를 수정해야 할 수도 있습니다. 사용자 입장에서는 기기를 먼저 구매하면 충분하다. 사용하다 보면 '네 갤럭시 S3는 이 게임을 할 수 있는데 왜 내 One X는 안 되는 걸까'라는 현상이 자주 발생한다.
2. 운영체제 커널
iOS는 Unix를 기반으로 하며 Apple의 Mac OS X와 유사하지만 Android는 Linux를 기반으로 하고 있으며 둘은 완전히 동일하지는 않습니다. 플랫폼은 유닉스 계열(Unix-like) 시스템이라고 통칭할 수 있습니다. 7.0 및 7.5 시대에도 Windows Phone은 Windows Mobile에서 사용하는 Microsoft 자체 임베디드 운영 체제인 Windows CE(Compact Edition)를 계속 사용했습니다. Windows Phone의 슬라이딩 성능은 Mango 및 Tango에서 우수하지만 멀티 코어 프로세서와 같은 몇 가지 새로운 기능이 있습니다. , HD급 화면 등은 지원하지 못하므로 마이크로소프트가 윈도우 폰 8 - 윈도우 NT 6.2, 윈도우 RT(윈도우 8 ARM 버전, 태블릿에 사용)에도 윈도우 8과 동일한 코어를 직접 사용한다.
따라서 Microsoft는 세 가지 주요 플랫폼의 핵심 통합을 어느 정도 달성했습니다. 개발자에게는 C# 백엔드 + XAML 프런트엔드가 간단해졌으며 WPF와 유사한 개발 모델은 Microsoft 플랫폼의 향후 개발 모델이 될 것입니다. .가장 최근의 선택!
iOS와 Windows Phone의 커널은 개방형이 아니며, 보안 측면에서도 Android보다 우수합니다. 하지만 개발자 입장에서는 시스템이 개방형이 아니기 때문에 많은 인터페이스를 사용할 수 없으며 당연히 일부 인터페이스도 사용할 수 없습니다. 그것들은 시스템과 다르기 때문에 밀접하게 관련된 기능을 구현할 수 없습니다. 현재 iOS의 좋은 점은 이를 사용하는 사람이 늘어나고 이를 크랙하는 전문 해커 조직도 있어 일반 사용자와 개발자가 시스템을 심층적으로 맞춤 설정할 수 있다는 점입니다. , 시스템을 자유롭게 배포할 수 있습니다. 이런 점에서 Android의 장점은 더욱 분명해집니다. Android 애플리케이션을 개발하는 것은 완전히 무료이며, 자신의 휴대폰에 배포하는 데에도 비용이 들지 않습니다. 물론 온라인에 게시하는 것도 비교적 무료입니다. 안드로이드에서는 할 수 없는 일들이 생겨났고, 다른 두 플랫폼에서는 할 수 없는 소프트웨어가 개발됐고, 국내 모바일 애플리케이션 개발대회도 안드로이드 플랫폼에서만 작업하면 된다.
3. 개발 조건
3대 플랫폼용 애플리케이션을 개발하려면 사전 준비 사항을 이해해야 합니다. 물론 안드로이드가 가장 저렴하고 어떠한 구성도 허용됩니다. 컴퓨터, Eclipse 및 Android SDK는 기본 개발 요구 사항을 충족할 수 있습니다. 고정된 시장이 없으며 개발자 계정이 필요하지 않습니다. 그러나 이는 개발자의 수입에 부정적인 요소입니다. 소프트웨어에 의존하는 것은 거의 불가능합니다. 기껏해야 광고일 뿐입니다.
Windows Phone에는 PC, Visual Studio(개발자를 위한 무료 버전의 Express가 있습니다), Windows Phone SDK가 필요하며 Microsoft Marketplace에 게시하려면 일반 개발자 계정도 필요합니다. 개발자 계정은 연간 $99이지만 .edu.cn으로 끝나는 대학 이메일 주소를 얻을 수 있으면 무료로 학생 계정을 신청할 수 있습니다. 그러나 Windows Phone 소프트웨어의 수익 공유도 좋습니다. 개발자: Microsoft. = 2:8, 애플은 3:7이다.
iOS 개발은 좀 더 까다롭습니다. Mac OS를 실행할 수 있어야 합니다. 사용자 요금과 Microsoft와 유사한 학생 계정이 부족하여 일부 사람들은 낙담합니다.
4. 소프트웨어 실행 방법
iOS와 Windows Phone 플랫폼에서는 각 프로그램에 보안 강화를 위해 다른 프로그램과 분리된 SandBox(샌드박스)가 있으며, Windows Phone과 iOS도 마찬가지입니다. 실제 백엔드가 없으므로 시스템 최적화를 잘 수행하여 소프트웨어의 원활성을 보장할 수 있습니다. Android에는 실제 배경이 있기 때문에 새로운 Android 시스템의 업데이트와 함께 휴대폰이 느려지는 경우가 있습니다. 비록 원활성은 향상되었지만 여전히 충분한 리소스를 소비하므로 Android 휴대폰의 하드웨어 성능이 계속 향상되기를 바랍니다. 다른 두 플랫폼에는 필요하지 않은 하드웨어 수준을 개선하여 사용자 경험이 향상된다는 것입니다.
Android와 Windows Phone 중 하나는 Java를 사용하고 다른 하나는 C# 또는 VB.NET을 사용합니다. 해당 작업에는 Java가 지원되는 가상 머신과 유사한 플랫폼이 필요하며 C# 및 VB.NET이 필요합니다. .NET Framework 및 CLR을 사용하지만 iOS 프로그램은 C/C++ 작동 메커니즘과 유사한 Objective-C를 사용하므로 효율성이 더 높을 수 있습니다.
다양한 시스템 운영 메커니즘의 경우 개발자는 애플리케이션이 해당 시스템에 적합하고 그 특성에 부합하는지 확인하기 위해 다양한 메커니즘에 대해 다양한 개발 계획을 세워야 합니다.
5. 개발 언어 및 개발 효율성
(1) 일반 애플리케이션의 경우
iOS 플랫폼은 C에서 개발된 언어인 Objective-C를 사용합니다. 객체 지향 언어는 iOS 애플리케이션 개발에 사용되는 것 외에도 Mac OS X 데스크톱 애플리케이션 개발용 언어로도 사용될 수 있습니다. 그러나 언어 스타일은 표준 C와 매우 다르며 특정 사항이 필요합니다. 적응 시간은 중국의 전문 교육 과정 부족과 함께 개발자의 개발 효율성에 영향을 미칠 수 있습니다. 또한 일부 사람들은 iOS 플랫폼에서 C#을 사용하여 개발하기 위해 Mono-Touch를 사용합니다.
안드로이드 플랫폼은 자바(Java)를 사용한다. 자바(Java)는 크로스 플랫폼으로 리눅스, 윈도우, 맥 OS X에서 거의 아무런 지장 없이 이식 및 실행이 가능하지만, 자바 실행 효율성은 매우 뛰어나다. 안타깝게도 프로그램 실행 속도가 느리기 때문에 Android 플랫폼에서의 애플리케이션 경험이 iOS만큼 좋지 않은 경우가 많습니다. 하지만 자바를 배우는 사람도 많고, 안드로이드 학습 수업도 인기가 많다. 학습과 시작이 매우 쉬울 것이고, 개발 효율도 iOS보다 높다.
7.0과 7.5 시대에는 Windows Phone 플랫폼은 개발에 C#과 VB.NET 언어만 사용할 수 있었고 Sqlite 데이터베이스를 지원하지 않았습니다. 8.0 출시 이전의 시스템은 성숙하지 않았습니다. 8.0 시스템에서는 개발을 위해 C#과 VB.NET을 계속 사용할 수 있을 뿐만 아니라 지역화된 개발을 위해 C/C++를 사용할 수도 있고 일부 클래스 라이브러리를 직접 작성하여 사용할 수도 있습니다. . .NET 플랫폼은 운영 효율성이 떨어진다고 다들 생각하지만, Windows Phone과 같은 Microsoft 자체 플랫폼에서는 여전히 Microsoft의 최적화가 이루어지고 있으며, 저는 Windows Phone을 사용해 왔고 아무런 지연도 경험하지 못했습니다. 게다가 C#은 이들 언어 중에서 가장 개발하기 쉽고 사용하기 쉬우며, Windows 8과의 뛰어난 조합과 함께 Microsoft 플랫폼에서의 개발이 더욱 편리해질 것입니다.
(2) 게임의 경우
iOS와 Android 모두 OpenGL을 사용하여 3D 게임을 디자인합니다. OpenGL은 오픈 소스이며 여러 곳에서 사용되며 현재 iOS와 Android가 차지하는 비중이 큽니다. , OpenGL을 배우는 것은 상대적으로 쉽습니다.
Microsoft는 개발자가 사용할 수 있도록 DirectX 기반의 XNA 아키텍처를 채택했으며, 우리가 일반적으로 플레이하는 데스크톱 게임 중 DirectX 프레임워크를 사용하지 않는 게임은 거의 없습니다.
6. 개발 전망
현재 AppStore는 약 700,000개의 애플리케이션을 출시했으며, Android 애플리케이션은 600,000개에 도달했습니다. 신규 개발자에게는 상대적으로 부담이 크며 Windows Phone은 그 이상입니다. 마켓플레이스에는 100,000개 이상의 애플리케이션이 있으며, 새로운 모바일 개발자에게 더 많은 기회를 제공하려면 아직 갈 길이 멀습니다.