- Download the SDK (free), which includes Visual Studio (For Windows Phone) Express IDE. It also includes an emulator tool. http://create.msdn.com/en-us/home/getting_started Obviously only runs on Windows. - To deploy to your phone, you'll need to become an app hub member ($99 per year). Or there's numerous ways to unlock your phone for app deployment (if you search hard enough). And then you can just deploy from within Visual Studio to a USB connected device. http://msdn.microsoft.com/en-us/library/ff928362(v=vs.92).as...
There's probably more to it, but I personally have yet to deploy a WP7 app to a device. I've written a few test apps though.
Also, found this blog (first in a series of a few) that attempts to develop an app using Visual Studio (for WP7 dev), Mono Touch (for iOS dev) and Mono Droid (for uh, Android dev)... Might be of interested to some: http://nicksnettravels.builttoroam.com/post/2011/04/04/Windo... And the rest of his articles are easier to get to via the archives - http://nicksnettravels.builttoroam.com/archive.aspx#Mobile
What I was more impressed with, they handle signing your xap for release as well; it's all automatic (slightly less so on Android, much less so on iOS).
Hopefully my original post inspires someone to try this with all the platforms. I'm particularly aware of the requirements to create accounts and registrations, the size of downloads, how limited your choice of host environments is etc.
The next fun step is how do you get your hello world onto a friend's device without using a cable or requiring them to be in your presence.
I have to pay to load applications I wrote myself on my own device?
This is even more ridiculous than just locking down the platform. This is a slap in the face. Good thing WP7 is failing to reach the mass market so far. I seriously hope it stays that way.
It's even worse like this. What they are doing is essentially making an undesirable situtation, then capitializing on that by offering you a slightly less shitty solution (which is still far from reasonable):
"Hey, you could buy a $100/y dev account, but we're so incredibly generous that we'll allow you to run a few programs at a premium of $10!"
They are charging for something that should be one of the most essential freedoms of a computing device. This is insane, no matter how you try to sugar-coat and excuse it.
Will we reach the point where smartphone (or smartphone like devices in the future) are considered computers and we can use them freely? I hope so. It might happen. It might not. What we can count on is there will always be the choice on the market for those who require that choice. Not everyone does. I have a Windows Phone. I've never been bothered by not being able to install my own software. I also have an HP Touchpad with Android and WebOS, the two freest OSes on the market right now. Never sideloaded. I don't need to.
My point? Your outrage is misplaced, for several reasons listed above. People often talk about consumer choice, but the rubber meets the road when consumers willingly make an informed decision (in my case) that the crowd doesn't understand. I bought a Palm Pre not because of the freedom, but because of the UX. I bought a Windows Phone for the same reason. Sometimes a smartphone is just a smartphone. You might not understand my choice, but I do and that's what counts in the end.
Citing examples like feature phones and gaming consoles isn't helpful, either. Just because nobody complained in the past doesn't make it okay. Also, as the quite active homebrew scene around most consoles proves, there is value in being able to run your own stuff on gaming consoles. You might remember the deep shit that Sony got themselves into when they decided to turn off OtherOS on the PS3 for no reason whatsoever.
Anyways, I think consoles - while owning quite a few myself - are a thing of the past. They're eventually going to die. The coming next generation might be the last we see.
(Well, except Windows making installing VS and the Zune software almost impossible, but that's just what happens with Windows. On a clean install. After installing all the updates it wanted. Of which half failed the first time. And rebooting. And rebooting again. But none of that is related to Windows Phone, except that as Apple doesn't make tools for their competitors OSes, Microsoft doesn't either.)
http://developer.apple.com/library/ios/#technotes/tn2250/_in...
How I become a team (of one) admin, or where to find this "iOS Provisioning Portal" are of course left out.
I can understand the hoops if you want to sell your app on the official Apple store, but I think it would be very reasonable to allow devs to create and sideload apps. It's your device, your risk. That seems like a post-Jobs compromise that everyone could live with.
Even installing Xcode was a nightmare for me. It was a brand new Mac so there were a whole bunch of system updates. I told it to go ahead and do those. In App Store I found Xcode and said to install that. You don't get any indication of progress at all. A while later I came back to the machine to discover it wants to reboot, so I let it.
Can't find Xcode anywhere so I look back in the App Store. There is an install button but clicking it has no effect. My best guess is that it never occurred to anyone at Apple that a 1.8GB download could be interrupted by a reboot (from Apple's own system update tool) and that being able to continue would be useful. I had to do lots of Googling before figuring out I wasn't the only one and I could do a manual Xcode download from Apple's developer site. Then it took a lot of faffing around to figure out /Developer versus /Applications and how things were looking for it. I'm still not sure it is right, why I have to create symlinks but at least everything works.
For me the single most amusing thing about Macs and the legendary attention to detail is how the first thing I did was use Finder to go into Applications. Despite being on a 1920x1200 screen the default Finder window size is smaller than the Applications view so there were both horizontal and vertical scrollbars to look around the contents. Why can't the icons auto-arrange based on window width? If using a fixed area, why default to a window size smaller than the fixed area? Why default to postage stamp sized window on such a large screen?
Never in my wildest dreams would I've guessed that the actual programming would be the easiest part.
Remember your first iPod?
Chances are you were forced to use something called iTunes. Now people do not think twice about iTunes.
But back then there was just no sensible reason, from the user's perspective, not to let a user add/remove music from an iPod without jumping through an additional hoop. People had to spend countless hours deciphering the protocol in order to build programs that could do what iTunes did: add/remove music.
Out of the box, the iPod was literally unusable without first installing some Apple software.
No matter how wonderful the design of an Apple device, the hoop jumping just becomes increasingly tiresome. I'm too tired to do the Apple dance.
Adding to that, when iTunes came out, most people didn't put any thought into ID3 tags. When they imported their music, their library became one big mess.
So much for ease of use for end users.
The thing was iTunes wasn't designed to be a music loader, it's a music manager. This became evident when they introduced smart playlists.
A few of my friends had Nomads, they were large, heavy and the UI was archaic in comparison.
This is back when you had to figure out which Mp3 encoder you wanted to use.
Why can't the iPod work without iTunes? (It can, but only with a lot of work.)
Oh and anything that involves the file system is not friendly for a surprisingly huge number of users.
"User friendliness" in this case also includes developers, who could easily write a program that interacts with the device. For example, any media player could be used to synchronize music (if it supports that feature).
On the device, tap the menu button, then tap "Xterm"
Type in 'nano helloworld.py'
Enter the text 'print "Hello, World!"'
Ctrl-x, ctrl-s to save the file
Enter 'python helloworld.py' and press enter
Of course, as Maemo is based on Debian, you can easily install Ruby, PHP or even a C compiler.WP: Despite a modest launch and a limited distribution in terms of markets, Nokia's N9 model has reached sales estimated between 1.5 and 2 million devices. According to Nokia's own quarterly report and analyst company Canalys analyses, the combined deliveries of the comparable Lumia devices summed to approximately 1.2-1.5 million in the last quarter.
Oh, and they switched to rpms from debs, I think. I can see how that would make you think they were unrelated:)
They had a 'dev only' successor to it, the n950 but I think the chances of nokia releasing another is slim at best.
Download AIDE from play market
Enable apps from untrusted sources
Start coding
Run your app!
AIDE really is a fantastic achievement, i had a play about with it when my laptop died a few weeks back and i was itching for some coding! It's a fully-fledged development environment with code completion, refactoring and many other cool features. Something surreal about writing android apps on an android device! Installing xcode is staggeringly more pleasant
than installing eclipse in my experience
People saying that don't really know what they are talking about. Installing Eclipse involves these steps:1) install Java, which on my Ubuntu is just "sudo aptitude install openjdk-6-jdk" and that's it
2) download an archive from Eclipse.org and unzip it somewhere
3) there is no step 3
Installing the Android plugin is equally easy. Then there's always IntelliJ IDEA which is probably the best IDE and comes with Android integration built in. The community version was recently open-sourced too.
Last time I checked, Java SDK or Eclipse didn't want my A/S/L.
But if you already are a mac user then you already have an Apple ID. It is absurd to say that you need it to download Xcode.
Or do you mean it's a pain setting up the Android SDK within Eclipse? This could certainly be more stream lined (though I think it's fairly simple to setup as well).
The Apple dance takes a couple minutes to do and costs $99/year.
"Downloading the Android SDK" is actually a dozen
steps of installs, updates, add-ons, setting up
emulator devices and so on.
That's not true. The first time I did it, it took me something like 10 minutes. I must say that I was already familiar enough with Eclipse to install the plugin without much struggling (though it can't get any easier, unless it came built-in). Beginners should also try out IntelliJ IDEA which comes with Android integration built-in. The Apple dance takes a couple minutes to
do and costs $99/year.
That's also not true. It took me somewhere between 2 and 3 hours. And you don't have to pay $99 for getting the Hello World on your phone, but you do have to fuck around with certificates for signing the binary and you also have to read a lot of documentation.These are the Android SDK instructions, and each step can point to multiple others: http://developer.android.com/sdk/installing.html
As for the Apple dance, can you point me to the URL or actual documentation I can follow to get all the certificates, admin and whatever else it wants? All I can find is doc saying I need to do it, but nothing saying how to do it!
The provisioning portal is supposedly at http://developer.apple.com/ios/manage/overview/index.action but it won't let you in until you hand over money for annual membership.
Still pretty lame to still be faxing payment info in 2012.
You either got lucky or did the Apple dance a lot more recently than some of us. When I did the Apple dance, I had to wait more than a month before my application to be a developer was "approved", then it took weeks to figure out how to get the certificate stuff working. Even after I got it working it was fragile - my ability to put an app on the phone was never something I could expect would just work - it would spontaneously break with a cryptic error for no apparent reason.
Apple have it right once you have installed xcode. And if you only want to run in the simulator, you do not need to worry about certs.
They both could improve, but are also light years ahead of BB.
It involves downloading one archive, unpacking it, running the SDK manager, checking checkboxes for target platforms you want to develop for and waiting for a couple of minutes, until it downloads. You can also set-up emulator devices for the different platforms.
That's quite a short of complications you speak of.
Don't even get me started on emulators. AVD Manager is a joke.
10 PRINT "HELLO WORLD"
RUN
They might sell a few more Mac desktops this way but I can't see it being a large number in the grand scheme of things.
One of the reasons I bought an Android instead of an iPhone was because I can develop for it using the computer I already have.
For Apple to support development on other platforms, as far as I can see the only practical option would be to provide an alternative to the simulator which runs a variant of iOS inside a virtual machine. While this is certainly technically feasible to do, and you could make the argument that they should provide such a tool, it does involve a lot more than simply porting a few user-space tools to run on a different OS. Android also benefits in this regard from using Java, which already has compilers available for all major platforms.
It is also worth nothing that the Android emulator, at least last time I checked, is extremely slow to the point of being unusable. When I was developing for Android I found the only realistic option was for me to test on a real device. The speed of the iOS simulator is one of the main things I prefer about iOS development in comparison to Android.
I think it would be a moderately difficult engineering task, but certainly not outside Apple's capabilities. Ultimately it's a question of whether or not Apple sees benefits in doing so, which I suspect they don't.
It's also interesting to note that back in the dying days of NeXT, when they realised they weren't going to make much money from hardware, they switched to a software-only approach and actually did a port of all the Cocoa frameworks to Windows NT, and you could write Cocoa applications and have them run on windows. So it's not impossible to do this, but given the amount of changes that have happened to the APIs since that time it would probably be easier to go down the VM route.
Even if it cost them a fair amount of money to port it all over, they're Apple so they have the money in the bank. Plus I can imagine the ROI would be fairly significant when you consider how many more people could get into casual iOS development and then potentially make it into a full time thing.
Xcode and the entire stack behind it do not run on Windows or Linux. It would take a team of engineers months to pull it off, then another team to continuously support it. In those months, the feature set of Xcode and the compilers will have improved again and there would never be a stable version for a different platform.
Porting Xcode to Windows or Linux would probably be the worst idea Apple ever made.
Whilst I'm sure it's not a trivial task something tells me that there is more to this than technical limitations.
Apple doesn't need to port their software to Windows or Linux at all but simply allow to use OSX in an emulator. Even this is forbidden by Apple (it's not a surprise).
I think it was a huge mistake of Apple to allow iOS development on Macs only. If they hadn' make this mistake almost all people would develop for iOS mobile devices now, and Android wouldn't have had any chance to win. In some sense Steve Jobs himself was the main reason that Android became so successful :-)
> In addition, the cost of a Mac for development ($599 for a mini) is not stopping anybody,
It has stopped me. I have a pretty good PC, and I never accepted that I would have to buy an additional Mac solely to fed my iphone. It's a waste of room and money. For that reason I use Android.
Personally I have a pretty close and loving relationship with my workstation. That's why it needs to be a laptop.
I can't stand being tied to a physical location and working through remote desktop is too painful to bother, feasible if something is burning, but not otherwise.
People have written Apps to help you work around how difficult it is (eg TestFlight), but even then your beta testers have to download & sign up for some random 3rd party app, then request your app just to be able to test it. Compare that to Android: enable 3rd party apps via the settings menu, then email them the app.
There's instructions on how to do this at: http://nachbaur.com/blog/building-ios-apps-for-over-the-air-...
Although it saves you from having to email large files, you do still need to collect your users' UDIDs and add them to your provisioning profile (embedded in the app).
It has been a while for me but from what I can recall you are ready to go once you download the blackberry IDE. There may be an eclipse plugin for that now so you don't have to download the whole monster.
This whole process is part of RIM's DNA. A year ago when they were doing the whole Playbook thing it repeated: http://blog.jamiemurai.com/2011/02/you-win-rim/
Quite frankly I know many former Blackberry users but I don't know a single current one. I have no idea why anyone would even consider the platform.
Eclipse and Java work on all 5 computers. XCode works on only one. And because that OS X machine is a desktop, I barely ever use it, which is why I bought an Android instead of an iPhone.
However, at least I could make it run on all 5, by means of VMWare. That's not an option I have with XCode.
https://play.google.com/store/apps/details?id=com.aide.ui...
I've only done some simple hello world type programs, but I was impressed.
Android: Download Eclipse (Windows, Linux or Mac) and the Android SDK (Windows, Linux or Mac) - no accounts or registration needed for either of these. In your phone menus enable development and connect via USB. In Eclipse make your hello world project, and hit Run or Debug. Enjoy.
Apple: You must buy a Mac. In the App Store (requires an account) or the developer site (requires an account and registration) download Xcode. Create your project. Connect the phone via USB. Right click to enable it for development and then do some song and dance with Apple to get permission to use "your" device for development. (I haven't yet worked out the exact dance required and how much it costs.)
I don't know what it looks like for WP7 but assume it is substantially similar to Apple.