Introduction:-

As we all are familiar with the smartphones today covering the era of today's world.As basically there are three platforms :-

Windows Phone

Android Phone

IOS (Apple Phones)

Each of the platform are equally good in certain perspectives and in other some not.now a days there is big competition between them. so lets discuss about different points about windows and android phones.

1.Development Tools:

Android:Android app development is done mostly in Java (in a few cases with C or C++),Declarative screen design in Android is represented in an XML file which gets injected into the corresponding activity code at run time

The first question that concerns every developer during his first steps is “how easy is it to start developping on a platform”. Assuming that you already are a windows user, things are quite easy. You have to download the SDK and the Visual Studio Express (a striped down version of the standard Visual Studio) and you are ready to start. Of course the same stands for Android too, you download eclipse, the eclipse plugin and the Android SDK and again, you are set to go. Both platforms have rich documentation but Android has an advantage to online communities like StackOverflow and mailing lists. The problems begins when you are a linux or a mac user like myself. Eclipse and the Android SDK run on all operating systems and versions, while Visual Studio runs only on Windows Vista and later. The solution of using a virtual machine is rather disappointing.

Android

Windows Phone

Company/ Developer

Google

Microsoft

Programmed in

Mostly Java (in a few cases with C or C++)

C#, VB.NET,Java Script(C++ is not supported officially)

RunTime OS

Android

Windows Phone

Initial release

September 23, 2008

October 21, 2010

Supported platforms

ARM, MIPS, x86, I.MX

ARM,x86

IDE

Eclipse,IntelliJ,NetBeans

VisualStudio

Default user interface

Graphical (Multi-touch)

Graphical (Metro UI)

SDK

Android SDK

Windows Phone SDK

Source model

Open source software

Closed-source

Tools

Android Developers Tools(ADT) plugin for eclipse

Visual Studio Templates and Blend for Visual Studio.

Development OS

Windows,Mac, and Linux Flavors

Best to work with Windows

Language support

Multiple language support

Multiple language support

2.Layout Controls:

Layout Controls

Windows Phone 7

Android Equivalent

Canvas

AbsoluteLayout

Grid

GridView

ScrollView

ScrollView

StackPanel

LinearLayout

3.Basic Controls:

Basic Controls

Windows Phone 8.1

Android Equivalent

TextBlock

TextView

TextBox

EditText

Button

Button

CheckBox

CheckBox

RadioButton

RadioButton

Image

ImageView

ProgressBar

ProgressBar

ListBox

ListView

Map

MapView

WebBrowser

WebView

4.UI Development:

You have your tools set up, now you must start the development. Both platforms are using XML to construct the UI of an application. In fact the similarities are quite suspicious.

WindowsPhone: Windows Phone offers a great drag and drop tool and the UI creation is a straight-forward procedure.

Android: Things are a little bit more complicated on Android. There is a basic drag and drop tool, but it doesn’t do a lot of things (it can’t really), designing the UI for so many different types of Android screen sizes and shapes is -despite the tools and the good documentation- more complicated than having to support a limited and documented set of screens.

5.UI Guidelines:

Another important issue is the design guideline.

WindowsPhone: Microsoft came with the Metro UI. I find it so attractive, and many of my friends who work on the design industry find it splendid, so I have to trust their taste.

Android: What concerns me most is that the design guidelines for Android are constantly changing (can you find anything similar between Android 1 and the Holo theme? I can’t!), you have to redesign your app often (this can be a good thing too) but I believe the Metro UI has come to stay and we won’t see any dramatic changes to the UI or the UX of the Windows Phone applications in the near future.

6.Which programming language is best?

Google made the decision to use Java as the programming language of Android to attract many Java developers. Microsoft did exactly the same, only they used C#. Cloning the good elements and coming to fix Java’s weaknesses, offering extra functionality, C# is a more modern programming language and this is a point for Windows Phone. Do not forget the power of the jars though, as the majority of Java’s extra libraries are very likely to work on Android and this is a big issue if you just think of the Apache Commons’ set of libraries. (I do not want to go deeper into programming language performance war since, let’s face it, testing execution speed of these languages on a 600mhz mobile device has little value). Memory consumption on the other side is a big thing, but Garbage Collectors on both languages do a very good job and it’s up to you to use the phone’s memory conservatively.

7.Emulator:

WindowsPhone: Speaking of emulators, Windows Phones have a big advantage here. Strangely enough (!), the Android emulator’s speed hasn’t improved over the years and is still tremendously slow. (Yes, years have passed since version 1). Windows Phone emulator works like a charm and starts at the speed of light compared to the Android emulator.

Android: Strangely enough (again) eclipse’s Android plugin and toolset is very buggy and lacks of many features. Also, many developers state that Visual Studio is a much more stable and mature IDE than eclipse, but I’m afraid I’m not in a position to confirm that :)

8.Development Cost:

And here comes another thing: cost. Not counting the cost of the operating system, since you have already paid for it

WindowsPhone: Windows Phone development has extra costs. if you want to publish an application or deploy your app on your device ,You have to pay for the full version of Visual Studio and you have to pay an annual fee (99$) which is now reduce to (19$) only due to summer offer .Good news are that if you are a student, some of these costs are withdrawn.

Android: Android on the other hand, is significantly cheaper. You only need to pay 25$ once, and that is if you want to publish your apps on the Play store. Oh, I forgot, Android headsets are also cheaper, if you want to buy a real device!

9.Tablets:

WindowsPhone: Windows tablet does not run Windows Phone OS but it runs under windowsRT. windowsRT is a "light" version of Windows 8 that is dedicated for tablets. It does not run .exe files but only Windows store applications. But there is the Surface Pro which runs Windows 8 and .exe files. I should mention that 80% of Windows phone APIs are from windows8 APIs. So you can easily share your code between Windows Phone and Windows 8.

Note: Now WindowsPhone store 8.1 Development environment support more in common—a much larger API set, a similar app model and life cycle, a shared toolset, a common UI framework—Windows Phone and Windows Store app developer platforms truly have become one, single development platform.

Android: Android runs on smartphones, also on tablets. From the 3.0 version, Google added a bunch of APIs for larger screens so that apps will be more funny on tablet the mains components added were ActionBar and Fragments.

10.App Store Submission Process:

WindowsPhone: In order to publish windowsphone applications,There are two kinds of accounts: a developer account which will cost you 49$ and an Enterprise account which will cost you 99$(Present 19$ only due to summer special and it may be forever).The validation process will be very strict and take you about maximum 5 days and if your app is rejected, you will get an error report about what you have to change in your app.it don't have malwares in the Windows Phone Marketplace. It's a trusted store!

For more info you may read How to submit windows phone 8 app to windows phone marketplace

Android: In order to publish Android applications, you need to have a Google Play account,that will cost you 25 USD,you have to pass through a validation process which takes only 15 to 30 minutes.Google play has a lot of malwares, that's because of the very fast validation process and the huge number of Android developers.

Note: This post is does not pointing to which platform is winner,but as a developer it is best practices to know about both platform's environment before going to develop apps.You can still discuss with me in the "Comments " section below.

Most of the people have confusion regarding this Question. So I have decided to write something on this topic. Now we will go step by step whats this

What a Platform means to us

The operating system installed on the computer is known to be a platform. Each and every operating system have different structure and format. These operating systems (platforms) differs on the basis of the following factors

Like the way they execute the files.

On the basis of system kernels

The way the optimize the system for best performance and make use of processor

On the basis of different file extensions, etc

For example, Windows operating systems executes .exe files.

Linux here everything is a file. And also here there is no specific extension. Any file can be executable here

similarly, we have Unix and Mac Os that have their own file extensions.

Platform Independent Vs Platform Dependent

Platform Independent means the program that we have developed can run / execute (show results) on any platform. That is on any operating system.

Platform Dependent means the program / software that we have developed can run /execute (show results) on a specific platform. That is on a specific operating system.

Why Java is Platform Independent and C, C++ not !!

The programming language like C and C++ do not generate any intermediate code like bytecode in java. The C and C++ generate directly Native Code which is specific to one platform or operating system. This Native code is known as object code (Machine Code ).

As we also know that Object Code (Machine Code) generation requires some Operating system files to be included which makes it platform dependent.

Whereas in Java we have intermediate code by the name of Byte Code (not a machine code). This can is understandable by JVM (Java virtual Machine) which converts it to the object code (machine Code) . That why in order to run Java code we need JVM installed on the device which makes java Platform independent.