Using the cordova command line you can pull down project templates, add targeting frameworks, install plugins and launch the emulators to test your code. It pretty amazing what little tools you need to get started with a phonegap app. Whilst using the command-line and editing files in notepad++ is fun and takes me back to my development roots I know that once I start dealing with the monolithic projects I'm used to then I'm going to start to want to use a serious IDE.
To my surprise and delight I found that Microsoft has release the visual studio add-on Multi-Device Hybrid Apps for Visual Studio CTP2.0. As they say on the download site "With Apache Cordova™ integration, Multi-Device Hybrid Apps for Visual Studio provides the ability to build once and deploy to a variety of devices and platforms".
During the install process it will download a list of non-microsoft software you need to build phonegap apps. The list is actually pretty interesting:
- Joyent Node.js
- Git CLI
- Google Chrome
- Apache Ant
- Oracle Java JDK 7
- Android SDK
- SQLLite for Windows Runtime
- Apple iTunes
I can only assume iTunes is needed to play podcasts to listen to whilst your creating your cross platform apps.
Once you have it installed there is a walkthrough to help you Create Your First Multi-Device Hybrid App.
For testing purposes you can test in the ripple client for google chrome that will emulate a number of devices, the android emulator or if you have a mac handy you can install vs-mda-remote then build & test in the ios emulator there. It would be great to test all devices from one machine but apparently apple licencing wont allow that.
I had some issue running the default template at first but then I realised a restart was required to make sure all the software was installed correctly.
When I went to build I got the error "The target "CompileTypescript" does not exist in the project." I was able to fix this by adding an empty Target to the file Microsoft.MDA.Targets.
Since this is a preview I'm sure they will sort these things out before the final release.