Mobile SDK

Visual Studio Tools for Apache Cordova in Visual Studio 2015 RC

May 3, 2015 ANDROID, Cordova, CSS, CSS 3, HTML, HTML5, iOS, JavaScript, jQuery, Mobile, Mobile Frameworks, Mobile SDK, Mobile Services, Mobile-Development, PhoneGap, Visual Studio 2013, Visual Studio 2015, Visual Studio Tools for Apache Cordova, VisualStudio, VS2013, VS2015, Windows, Windows 10, Windows 7, Windows 8, Windows 8 apps development, Windows 8.1, Windows Phone, Windows Phone Development, Windows Phone Store, Windows Store, Windows Store Development No comments

IC790359

Microsoft has announced that with Visual Studio 2015 – Apache Cordova tools will be integrated within the main install bundle. Using Apache Cordova Tools for Visual Studio you will be able to develop cross-platform mobile applications using single codebase for iOS, Android and Windows Phone.

With support for native device capabilities (e.g. camera, accelerometer, contact), offline scenarios and popular JavaScript frameworks (e.g. Angular, React and Backbone), the Tools for Apache Cordova contain everything web developers need for building cross-platform mobile apps using Visual Studio.

What’s new in Apache Cordova Tools for VS2015-RC

  • Grunt, Gulp, Bower and Node-based Workflows –  Starting with the RC release, it’s also much easier for you to build Cordova apps using tools familiar to many web developers.
  • New Templates from Ionic and Onsen UI – Ionic and Onsen UI templates are provided as optional to enable developers to try out the new frameworks. Each framework provides a variety of starting points to suit the most common project types. 
  • Fresh Samples, Tutorials and Documentation

Read more from Visual Studio team blog on Apache Cordova Tools for Visual Studio 2015 RC

If you are using Visual Studio 2013, then you will have to rely on Visual Studio Tools for Apache Cordova CTP3.1 (Add On) to enable cross platform mobile development using Visual Studio 2013 Update 4.

This preview release for Visual Studio 2013 Update 4 and Visual Studio 2015 RC supports building apps for the following device targets:

  • Android 4+
  • iOS 6, iOS 7, iOS 8
  • Windows 8.0 and Windows 8.1 Store
  • Windows Phone 8.0 and Windows Phone 8.1

Benefits of using Visual Studio Tools for Apache Cordova:

When you develop apps using Visual Studio Tools for Apache Cordova, Visual Studio provides these benefits:

  • Easy installation. Manual installation of Cordova involves a lot of work to find, install, and maintain the correct version of all the third-party software required to support native platforms. Visual Studio handles all that for you by including a third-party dependency installer that gets you up and running in the first hour.

  • Plugin management. Cordova plugins provide access to native APIs using a JavaScript interface. Support for custom plugins like those that turn a mobile phone into a barcode scanner are critical to an app’s success. Visual Studio makes it easy to add plugins of all kinds, including core Cordova and custom plugins. You also benefit from IntelliSense for plugins in Visual Studio.

  • Unified debugging experience. Cross-platform development often requires a different tool for debugging each device, emulator, or simulator. Different tools mean different workflows and lost productivity every time you switch devices. With Visual Studio, you can use the same world-class debugging tools for all deployment targets, including iOS devices and emulators, Android devices and emulators, Windows, and the Apache Ripple emulator.

  • Write once, deploy everywhere. The common JavaScript and plugin APIs in Cordova make it easy to write an app using a single code base that deploys to all target platforms—iOS, Android, and Windows. Of course, you can always write platform-specific code if and when you need it.

  • Command line interoperability. The Visual Studio solution directly reflects the file system and is updated in real time. This means that it is easier than ever to use your favorite command line tool with Visual Studio.

  • Multi-Version Cordova support. The Visual Studio solution allows you to select different versions of Cordova at the project level.

Quoting from MSDN Article – Getting Started with Visual Studio Tools for Apache Cordova

TO Learn more USE THE FOLLOWING RESOURCES

Introducing Windows Azure Mobile Services – Cloud Backend Solution For Mobile Apps

August 28, 2012 .NET, All, Azure, Cloud Services, Microsoft, Mobile SDK, Mobile Services, Mobile-Development, Windows Phone, Windows Phone Development, Windows Phone SDK No comments

Microsoft has introduced a new service in Windows Azure platform – Windows Azure Mobile Services makes it incredibly easy to connect a scalable cloud backend to your client and mobile applications. It allows you to easily store structured data in the cloud that can span both devices and users, integrate it with user authentication, as well as send out updates to clients via push notifications.

image

Image Courtesy: Microsoft Azure site

image

mobile-services-diagram

Image Courtesy: ScottGu’s blog

Mobile Services are available for Windows 8 apps, but subsequent preview releases will extend support to iOS, Android, and Windows Phone.

Read the Windows Azure blog or Scott Guthrie blog for more information or visit Windows Azure Mobile Services dev center to get started.

Video – Getting Started with Windows Azure Mobile Services by ScottGu

 

References:

Scott Guthrie blog

Windows Azure blog 

Windows Azure Mobile Services dev center

Introducing Monocross – A cross-platform MVC pattern for mobile development in .NET/C# and Mono

April 9, 2012 .NET, All, ANDROID, Frameworks, iOS, iPhone, Microsoft, Mobile Frameworks, Mobile SDK, Mobile-Development, Mono, OpenSource, Windows Phone, Windows Phone 7 2 comments , , , , , , , , , , , ,

I am evaluating different cross platform mobile development solutions. This is just a quick introduction to a framework I came across.

What is cross platform mobile applications?

A mobile application developed in such a way that it will work or run on most of the mobile platforms such as Android, iOS, Windows Phone, Blackberry etc.

What is Monocross?

MonoCross is a refinement of the Model-View-Controller (MVC) pattern for mobile development using .NET, C# and the Mono Framework.

The pattern enables cross-platform portability of business logic and data access code, (Model + Controller), while supporting full, native and/or platform-specific presentation (Views).

Read the MonoCross Roadmap for Platform support.

For more information on using the pattern, see: UsingMonoCross

 

Source: MonoCross project home http://code.google.com/p/monocross/

Mobile Application Development

April 7, 2012 All, ANDROID, CSS 3, HTML, HTML5, iOS, iPhone, JavaScript, JQuery Mobile, Mobile Frameworks, Mobile SDK, mobile web, Mobile-Development, Windows Mobile, Windows Phone, Windows Phone 7 1 comment , , , , , , , , , , , , , ,

Mobile Applications are rapidly developing segment in the global mobile sector. Developing mobile applications targeting different mobile platforms such as Windows Phone, iOS, Android, Blackberry and Bada(Samsung’s Proprietary OS) is the trend setter now.

Quoting from Wikipedia

Mobile application development is the process by which application software is developed for small low-power handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones or smart phones. These applications are either pre-installed on phones during manufacture, downloaded by customers from various mobile software distribution platforms, or web applications delivered over HTTP which use server-side or client-side processing (e.g. JavaScript) to provide an "application-like" experience within a Web browser.

[Wikipedia]

Why is it so different from other application development?

Or

Why do we need to give special care when doing mobile development?

Mobile devices have certain limitations in terms of hardware, they have limited screen display, limited space for applications to operate and network capabilities. These limitations will vary in different models as the Mobile ecosystem is very large and there is innumerous amount of devices in the world. So we need to give special care in developing the mobile applications ensuring the compatibility across all the platforms.

Some of the things we need to consider when we do mobile development are:

  • Small screen size and mobile ecosystem – This makes it difficult or impossible to see text and graphics dependent on the standard size of a desktop computer screen.
  • Lack of windows/ multi-tasking – On a desktop computer, the ability to open more than one window at a time allows for multi-tasking and for easy revert to a previous page. Historically on mobile web, only one page can be displayed at a time, and pages can only be viewed in the sequence they were originally accessed. Latest mobile platform releases such as iOS, Android and Windows Phone are supporting multi tasking capability, which allows you to run more than one applications parallel, yet only one application can be displayed on the screen.
  • Navigation – Most mobile devices do not use a mouse like pointer, but rather simply an up and down function for scrolling or touch inputs, thereby limiting the flexibility in navigation.
  • Hardware and Resource limitation – all the upcoming mobile devices are having Dual Core or Quad core mobile processors with decent amount of memory. But still if you need you device to function well and be responsive, you should develop application in such a way it will be using low memory foot print.
  • Targeting Or Supporting wide variety Mobile Platforms/ Execution environments – this is the most complicated or important feature set we should be taking in to consideration when developing an application. Android, iOS, BlackBerry, HP webOS, Symbian OS, Bada from Samsung, and Windows Mobile support typical application binaries as found on personal computers with code which executes in the native machine format of the processor (the ARM architecture is a dominant design used on many current models).

Also read this article on 7 Limitations when designing for mobile: http://baymard.com/blog/mobile-design-limitations 

For Technical point of view we can differentiate mobile applications in to three categories

1. Native Applications

Native applications developed against native platform APIs and It would be having full(or limited for some platforms) access to the device capabilities. Each of the platforms for mobile applications also has an integrated development environment which provides tools to allow a developer to write, test and deploy applications into the target platform environment.

Examples are using Applications developed using Native/Platform Mobile SDK’s such as iOS SDK, Android SDK, Windows Phone SDK etc.  Windows Mobile, Android, HP webOS and iOS offer free SDKs and integrated development environments to developers. These applications will be able to utilize or interact with all device capabilities.

 

Five reasons for developing Native Applications:

  • Performance
  • Offline Mode
  • Findability / Discoverability ( through a central location such as Apple’s AppStore , Google’s Market, Windows Phone Market etc)
  • Device Attributes
  • Monetization

The disadvantage is obviously the development cost. No two mobile platforms can share the same mobile application, and there are too many Mobile operating systems (or platforms) existing in the market. If you develop a mobile application to market it widely, you need to develop that in  Symbian, Mac iPhone, Android, Blackberry and Windows mobile.

2. Mobile Web Applications  / Browser based Applications

Mobile Web applications are web sites that are scaled down/optimized to display on a mobile web browser. Mobile web applications are developed in such a way keeping in mind less payload delivery per each request. These applications are typically a scale down version of actual website which you can browse over any desktop browser such as Internet Explorer, Chrome, Firefox and Opera.

Every action mobile web application makes a round trip to server.

The advantages of having mobile web application is that:

  • Server Driven – we have full control on the website. and we can customize it any time, so that user will get the latest look and feel.
  • Targeting multiple platforms & connectivity – most of the mobiles and smartphones have a browser.  One-third of humankind currently has access to the Internet through a mobile device. That makes it easy to deliver our applications in any platform.
  • It enables services to take advantage of mobile device capabilities such as clicking on a phone number to call it or add it to the device address book. It can provide location-sensitive content. Location technologies can enable location-sensitive information be provided to a user. This can reduce the steps required for the user to reach useful content, and so makes it accessible with the least amount of effort.
  • For users, they don’t have to download an application or any maintenance updates, but instead “call up” a URL via their mobile browser which instantly delivers the most up-to-date application to their device.
  • Cross platform compatibility.
  • low development cost.

and the disadvantage is the bandwidth limitations and the limitations of Mobile websites, which does not access your Phone’s components like your Address book, Camera, etc.

The Mobile Web refers access to the world wide web, i.e. the use of browser-based Internet services, from a handheld mobile device, such as a smartphone, a feature phone or a tablet computer, connected to a mobile network or other wireless network.

Traditionally, access to the Web has been via fixed-line services on large-screen laptops and desktop computers. The shift to mobile Web access has been accelerating with the rise since 2007 of larger multitouch smartphones, and of multitouch tablet computers since 2010.

Both platforms provide better Internet access and browser- or application-based user Web experiences than previous generations of mobile devices have done.

Mobile Web access today still suffers from interoperability and usability problems. Interoperability issues stem from the platform fragmentation of mobile devices, mobile operating systems, and browsers. Usability problems are centered around the small physical size of the mobile phone form factors (limits on display resolution and user input/operating). 

[Wikipedia]

3. Hybrid Mobile Applications

Hybrid Mobile Applications are Applications that use BOTH browser interfaces and native mobile components. With HTML5 and JavaScripts, now the browsers are becoming capable of accessing a phone’s built in features like contacts, camera etc.

There are mobile frameworks based on HTML5 and JavaScript’s that would be able to access the device features such as Accelerometer, Compass, Contacts, Camera and device file system etc. Some popular such mobile frameworks are PhoneGap, Appcelerator’s Titanium etc. These frameworks helps in developing applications that would able to target most of the mobile platforms such as “iOS”, “Android”, “Windows Phone”, “Symbian” and “Blackberry”.

Appcelerator Titanium is a platform for developing mobile, tablet and desktop applications using web technologies.

Key to successful Hybrid Apps:

  • Make the experience feel like a native application.
  • Take advantage of the enhanced features.
  • Don’t simply release a hybrid version of the mobile web site.
  • Optimize performance

 

Mobile world is growing and you can see lots of opportunities for innovation. If you are a fan of building mobile applications go ahead and develop something that is in your dreams and leave it over to the rest of the world to carry forward.

 

Resources for Developing mobile applications:

PhoneGap (was called by the name Apache Callback, but now Apache Cordova) is an open-source mobile development framework produced by Nitobi, purchased by Adobe Systems. It enables software programmers to build applications for mobile devices using JavaScript, HTML5 and CSS3, instead of lower-level languages such as Objective-C. The resulting applications are hybrid, meaning that they are neither truly native (all layout rendering is done via the webview instead of the platform’s native UI framework) nor purely web based (they are not just web apps but packed for appstore distribution, and have access to part of the device application programming interface).

http://phonegap.com/ 

 

Appcelerator Titanium is a platform for developing mobile, tablet and desktop applications using web technologies. Appcelerator Titanium is developed by Appcelerator Inc.

Appcelerator Titanium Mobile is one of several phone web based application framework solutions allowing web developers to apply existing skills to create native applications for iPhone and Android. Yet, while using the familiar JavaScript syntax, developers will also have to learn the Titanium API, which is quite different from familiar web frameworks such as jQuery.

http://www.appcelerator.com/ 

 

Android Application Development: http://developer.android.com/index.html

Apple iOS Application Development: https://developer.apple.com/

Windows Phone Development: http://create.msdn.com/en-US/

http://msdn.microsoft.com/en-us/library/ff402535(v=vs.92).aspx

Blackberry Application Development:  https://bdsc.webapps.blackberry.com/devzone/

Bada Development: http://developer.bada.com

Symbian Development: http://www.developer.nokia.com/Devices/Symbian/

HP WebOS Development: https://developer.palm.com/

 

jQuery Mobile: Touch-Optimized Web Framework for Smartphones & Tablets

http://jquerymobile.com/ 

Sencha Touch: Sencha Touch was the first HTML5 mobile JavaScript framework for web applications that feel native on Android, BlackBerry, and iOS.
http://www.sencha.com/products/touch 

and more…

and some interesting learning resources

http://baymard.com/blog/responsive-web-design

Windows Phone SDK 7.1.1 Updated to Final

March 27, 2012 .NET, .NET Framework, All, Microsoft, Microsoft SDKs, Mobile SDK, Mobile-Development, VisualStudio, VS11, VS2010, Windows, Windows 7, Windows 8, Windows Mobile, Windows Phone, Windows Phone 7, Windows Phone SDK No comments

Microsoft has released final version of Windows Phone SDK 7.1.1 which includes the support for Windows 8 and 256 MB devices for debugging.  (previously I blogged about the release of CTP version of the same here)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Windows Phone SDK 7.1.1 Update offers developers tools and options to help them develop and test applications for 256-MB Windows Phone devices.

Windows Phone SDK 7.1.1 Update includes the following

  • New 256-MB version of Windows Phone Emulator
  • Updated 512-MB version Windows Phone Emulator
  • and IntelliSense support.

 Download Windows Phone SDK 7.1.1 Update

New iOS 4.3 for iPhone/iPad/iPod Touch released & iOS SDK 4.3 available for development

March 10, 2011 All, General, iOS, iPhone, Mobile SDK, Mobile-Development No comments

Apple earlier announced that they would be releasing iOS 4.3(update for existing iPhone/iPad/iPod Touch)  on March 11th 2011. But they done it again earlier than expected.  Apple has just released the very final version of iOS 4.3 for iPhone 4 (GSM only), iPhone 3GS, iPad 2, iPad, iPod touch 4G/3G.

This version of iOS brings a number of new features for iPhone, iPad and iPod touch users including: ability to to cancel the download of an app, multitouch gestures for iPad (for developers only), Personal Hotspot for GSM iPhone 4, AirPlay for third party apps, option of choosing between mute switch and rotation lock for iPad’s “Side Switch” hardware button, subscription-based payments to iTunes App Store, Nitro JavaScript engine from Safari on OS X, new iTunes Home Sharing features, support for FaceTime on iPad 2, Photo Booth for iPad 2 and other system wide changes and improvements.

To update to iOS 4.3, all you need to do is to connect your iPhone, iPad or iPod touch with your computer via USB and start iTunes 10.2. You will be notified about the update, and  click on “Download and Install” button to get on to the new firmware.

Good news for iOS Developers

Apple XCODE 3.2.6 ( IDE for iPhone app development) & iOS SDK 4.3 for developers are available through http://developer.apple.com

You could get a beta version of XCODE 4.0 (BETA) if you are part of iOS Developer Programs($99 annual fee).

Have fun !!! Thanks APPLE for an early release.