May 3, 2015
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.
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.
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.
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
Since the introduction of Swift by Apple( a new programming language for developing iOS apps using xcode) , among iOS developers it has become a myth that Swift is going to replace Objective-C.
I just would like to add my few cents to this view:
MYTH 1: Swift will replace Objective-C immediately
NO, Swift is a new and flexible way of developing iOS apps. Though it has advantage over Objective-C, in terms of performance, stability and simplicity. Objective-C has come so far and lots of apps developers prefers objective-c as their primary language for iOS development. It will take a long way for developers to migrate to Swift.
Apple doesn’t say you should migrate to Swift immediately, they have given you both options. Based on how flexible you are with each of these languages, you can choose to develop iOS apps using:
- a Combination of both (this would me more applicable for existing applications).
Apple has just given you another option for Developing iOS apps. So don’t fear about migrating to Swift immediately.
MYTH 2: Existing apps should be migrated to SWIFT immediately
NO, Apple has given you a new concise language and syntax for iOS application development in fewer lines than traditional Objective-C.
You don’t have to migrate your existing applications to SWIFT, that’s not the intend. You have the flexibility to develop new features and additions to your apps using Swift (without upgrading or converting you code to Swift). Objective-C and Swift can co-exist in application development.
I hope that clarifies some of the confusions.
If you are a beginner and would like to learn about Swift, refer to the following articles:
August 9, 2013
.NET, ANDROID, Blackberry, Extensions, iOS, iPhone, KnowledgeBase, Microsoft, Microsoft SDKs, Mobile, Mobile Services, Mobile-Development, Nokia, Third-Party-Libraries and Frameworks, VisualStudio, VS2010, VS2012, Windows, Windows 8 apps development, Windows Phone, Windows Phone 8, Windows Phone 8.0 SDK, Windows Phone Development, Windows Phone SDK, Windows Phone Store, Windows SDK, Windows Store, Windows Store Development
This is an update blog to my earlier blog about Sending Apple iOS Push notifications using C#.
With that blog – I introduced you to how to send push notification using Open Source library APNSharp, by the developer John Redth. Redth announced that library is already deprecated.
Redth came up with with another open source project called as PushSharp:,published under apache software foundation license.
PushSharp is a server-side library for sending Push Notifications to iOS (iPhone/iPad APNS), Android (C2DM and GCM – Google Cloud Message), Windows Phone, Windows 8, Amazon, Blackberry, and (soon) FirefoxOS devices!. Single library serves the purpose of sending push notifications to multiple platforms. Pretty decent isn’t it?
Here is the basic architecture:
Features of PUsHSHARP
- Supports sending push notifications for many platforms:
- Apple (APNS – iPhone, iPad, Mountain Lion)
- Android (GCM/C2DM – Phones/Tablets)
- Chrome (GCM)
- Amazon (ADM – Amazon Device Messaging)
- Windows Phone 7 / 7.5 / 8 (including FlipTile, CycleTile, and IconicTile Templates!)
- Windows 8
- Blackberry (BIS and BES via PAP)
- Firefox OS (Coming soon)
- Fluent API for constructing Notifications for each platform
- Auto Scaling of notification channels (more workers/connections are added as demand increases, and scaled down as it decreases)
Implementation using PushSharp is straight forward
Here’s some sample code: shared by Redth
//Create our push services broker
var push = new PushBroker();
//Registering the Apple Service and sending an iOS Notification
var appleCert = File.ReadAllBytes("ApnsSandboxCert.p12"));
push.RegisterAppleService(new ApplePushChannelSettings(appleCert, "pwd"));
.ForDeviceToken("DEVICE TOKEN HERE")
//Registering the GCM Service and sending an Android Notification
//Fluent construction of an Android GCM Notification
//IMPORTANT: For Android you MUST use your own RegistrationId here that gets generated within your Android app itself!
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId("DEVICE REGISTRATION ID HERE")
You can get the Push Sharp for your .NET projects from below mentioned links:
Binaries from NuGet: https://www.nuget.org/packages/PushSharp
To install PushSharp, run the following command in the Package Manager Console
PM> Install-Package PushSharp
Source Code from GitHub: https://github.com/Redth/PushSharp
Documentation and Implementation Guides available at wiki page: https://github.com/Redth/PushSharp/wiki
Quick links to implementation guides
You can read my previous blogs here:
Sending Apple iOS Push notifications using C#
Apple Push Notifications Service API & C#
December 19, 2012
The World Wide Web Consortium (W3C)
has published — the complete definition of the HTML5
and Canvas 2D
specifications on 17 December 2012.
Quoting from the announcement here
- Though not yet W3C standards, these specifications are now feature complete, meaning businesses and developers have a stable target for implementation and planning.
- HTML5 is the cornerstone of the Open Web Platform, a full programming environment for cross-platform applications with access to device capabilities; video and animations; graphics; style, typography, and other tools for digital publishing; extensive network capabilities; and more.
W3C also announced today the first draft of HTML 5.1 and Canvas 2D, Level 2, an early view of the next round of standardization.
To reduce browser fragmentation and extend implementations to the full range of tools that consume and produce HTML, W3C now embarks on the stage of W3C standardization devoted to interoperability and testing (called "Candidate Recommendation"). Expecting the broad HTML5 Interoperability in 2014.
During this stage, the W3C HTML Working Group will conduct a variety of activities to ensure that the specifications may be implemented compatibly across browsers, authoring tools, email clients, servers, content management systems, and other Web tools.
- The group will analyze current HTML5 implementations, establish priorities for test development, and work with the community to develop those tests.
- The HTML Working Group has planned for this implementation phase to last into mid-2014, after which W3C expects to publish the final HTML5 Recommendation, available Royalty-Free to implementers under the W3C Patent Policy.
Sencha(Leading cross platform mobile framework product developer) – has published a blog on HTML5 readiness here
Quoting from Sencha’s report
Feature Standardization Status:
A long list of major HTML5 technologies has now reached advanced stages of standardization.
Here is a list of just some of the big technologies in advanced standardization status with the date of the most recent standard:
- CSS Multi-column (2011)
- CSS Flexbox (2012)
- CSS Values & Units 3 (2012)
- CSS Backgrounds and Borders 3 (2012)
- CSS Images & Replaced Content 3 (2012)
- CSS Style Attributes (2010)
- Web Storage (2011)
- Web Sockets (2012)
- Web Workers (2012)
- Web Messaging (2012)
- Touch Events
- CSS Media Queries (2012)
- CSS Selectors 3 (2011)
- CSS Namespaces (2011)
- CSS Color 3 (2011)
- Media Fragments (2012)
- SVG 1.1 (2nd Ed) (2011)
HTML5 Feature Implementation Progress in Browsers
The very good news is that HTML5 and CSS3 implementations across all major browsers on desktop and mobile have become increasingly convergent. The chart below shows the progress of HTML5 feature implementation across major desktop and mobile browsers in the last three years using the HTML5test.com scoring methodology.
Adoption on Desktop Browsers
Adoption on Mobile Browsers
HTML5 features have been rapidly adopted by all major browsers – with Internet Explorer’s progress on both mobile and desktop being particularly impressive. The feature implementation ramp from IE8 in 2010 to IE9 in 2011 to IE10 this year has been very steep.
Great News! for all Mobile and Web Developers
December 18, 2012
Since November 18, 2010, the W3C announced that Web SQL database(Sqlite) is a deprecated specification. This is a recommendation for web developers to no longer use the technology as effectively, the spec will receive no new updates and browser vendors aren’t encouraged to support this technology. The new alternative is IndexedDB which is already available on Chrome 12+ and Firefox 5+, and, soon, in IE 10 as well.
The new web database standards adoption progress report as per Html5Test.com – how standards setting can work well.
- WebKit browsers originally shipped a copy of the SQLite — an embedded relational database — and then proposed “WebSQL” as a specification to standardize it.
- Mozilla objected to its standardization on the grounds that the SQL 92 standard was a poor basis for a web standards technology, and that an implementation (SQLite) shouldn’t be the basis for standard.
- As a result, WebSQL standardization was abandoned in favor of a new database standard, IndexedDB which is now the standard database of record for all major browsers.
- Firefox, IE and Chrome now support IndexedDB on the desktop.
- Chrome for Android is the first browser to support it on mobile devices.
||A real, relational database implementation on the client (SQLite).
||* Allows fast indexing and searching of objects, so in a web application scenario, you can manage your data and read/write it fast.
||* The spec is deprecated.
* Not object driven
|Harder to understand if you are coming from the world of relational databases.
||Tables contain columns and rows
||Cursor APIs, Key Range APIs, and Application Code
||Lock can happen on databases, tables, or rows on ‘readwrite’ transactions
||Lock can happen on database ‘versionchange’ transaction, on an objectStore ‘readonly’ and ‘readwrite’ transactions.
||Transaction creation is explicit. Default is to rollback unless we call commit.
||Transaction creation is explicit. Default is to commit unless we call abort or there is an error that is not caught.
http://html5test.com/compare/feature/storage-sqlDatabase.html ( WebSQL – Current Support on browsers)
http://html5test.com/compare/feature/storage-indexedDB.html ( IndexDB – Current Support on browsers)
April 9, 2012
.NET, All, ANDROID, Frameworks, iOS, iPhone, Microsoft, Mobile Frameworks, Mobile SDK, Mobile-Development, Mono, OpenSource, Windows Phone, Windows Phone 7
.NET, ANDROID, Frameworks, iOS, iPhone, Microsoft, Mobile Frameworks, Mobile SDK, Mobile-Development, Mono, OpenSource, Windows Phone, Windows Phone 7
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/