I've spent the better part of today evaluating what migrating our Symbian software to WP7 would require. I'm guessing others here may be doing the same. Here are some limitations I've found for porting our Symbian app to WP7, but I've found info on WP7 to be a little inconsistent. Anyone here with WP7 experience that can elaborate or correct me on...
Are these correct for WP7?:
- Users may not set custom ringtones (our app exports ringtones )
- No OpenGL-ES
- There is no support for third-party C/C++ on WP7 (unlike either iOS or NDK on Android - Our C/C++ code base would have to be re-coded in a .NET-supported language like C# or Visual Basic) (update: possibly no C# XNA on Nokia WP7 phones.)
- You can't deliver any sort of native code library - everything is compiled to bytecode and run through a JIT-based VM. There are no intrinsics or vector-based instructions in the bytecode dictionary.
- WP7 does not support third-party multitasking or background tasks. (UPDATE: Next release* to support third-party multitasking)
- Third-party apps can not open network socket connections (UPDATE 2: Rumored coming in Q4 2011)
- No support in browser for any streaming - i.e. no HTML5, no Silverlight, no Flash. (UPDATE: Next release* to include streaming in browser) (UPDATE 2: Browser can/will launch a separate media player to play MP4 files.)
- Publishers are limited to a maximum of 5 free apps (UPDATE: $99 to publish up to 5 free apps, $20 each afterward)
- OBEX is not supported
- Only languages supported are: English, French, Italian, German, and Spanish (Q3/Q4 2011 will add Brazilian Portuguese, Japanese, Korean, Russian, and simplified Chinese)
- Currently Apps can only be sold in: Australia, Austria, Belgium, Canada, France, Germany, Hong Kong, India, Ireland, Italy, Mexico, New Zealand, Singapore, Spain, Switzerland, UK and United States
- No performance profiler, no memory profiler.
*Update: Next Release info: According to here:
Hmmm....creating the most carrier-friendly smartphone OS apparently has some side effects.
…my sources tell me that the first mega-patch for Windows Phone has sat undeployed on Microsoft’s servers because the software giant’s wireless carrier partners–contrary to another unfulfilled promise–have refused to OK it for release.
(UPDATE 2: Doug Simmons speculates this is so carriers can fix their in-house software to deal with changes caused by adding cut-and-paste features.
Here's an interesting SDA point:
5e. The Application must not include software, documentation, or other materials that, in whole or in part, are governed by or subject to an Excluded License, or that would otherwise cause the Application to be subject to the terms of an Excluded License.
"Excluded License" is defined as:
“Excluded License” means any license requiring, as a condition of use, modification and/or distribution of the software subject to the license, that the software or other software combined and/or distributed with it be (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. Excluded Licenses include, but are not limited to the GPLv3 Licenses. For the purpose of this definition, “GPLv3 Licenses” means the GNU General Public License version 3, the GNU Affero General Public License version 3, the GNU Lesser General Public License version 3, and any equivalents to the foregoing.
It would be nice if there was a provided list of excluded licenses. "in part redistributable at no charge" takes out a lot of libs.