Category Archives: software development

Mobile: Windows Phone appeal growing, iOS and Android secure say Titanium developers

Appcelerator and IDC have released their latest mobile developer report, in which nearly 3,000 users of the cross-platform development tool Titanium report on their views and intentions.

These reports are always interesting but experience suggests that they are poor predictors. A year ago, the Q4 2011 report told us:

Amazon’s new Kindle Fire ignites developer interest. When surveyed among 15 Android tablets, the lowcost, content-rich eReader was second only to the Samsung Galaxy Tab globally in developer interest. A regional breakdown shows Amazon edging Samsung in North America for the top slot. At 49% very interested in North America, the Kindle Fire is just 4 points less than interest in the iPad (53%) prior to its launch in April 2010.

Now, the Q4 2012 report says:

Amazon’s Kindle continues to struggle for developers’ interest. With less than 22% of mobile application developers “very interested” in building mobile apps for the device, the Kindle just barely breaks into developers’ top 10 app targets.

This is one example; a glance back through previous editions shows plenty of others, showing that developers struggle as much as the rest of us when it comes to guessing the value of future markets.

The report is still useful as a snapshot of how things look now, for cross-platform mobile developers. One question which is always asked, and therefore can be compared easily from one report to another, is the proportion of developers who are “very interested” in developing for each platform.

image

The top 5 contenders here are relatively stable, with Apple iOS top (iPhone and iPad), Android next (phone and tablet), and HTML5 Mobile Web also strong at about 65%.

The lower ranges are more interesting, as developers change their minds about prospects for the minority players. Windows Phone dived to around 22% in August 2012 but grew strongly to 36% in this report. Windows tablets, which we should probably take to mean the new Windows 8 app platform, is about the same. BlackBerry has declined from over 40% in March 2010 to 9% today, though I would suggest this will inevitably increase in the next report which will be after the launch of BlackBerry 10.

What else is interesting? One thing is Apple “fragmentation”. The problem here is that Apple iOS now has six screen sizes, once you add iPad mini and iPhone and iPad with or without high-res Retina displays. This gives me pause for thought. The challenge of mobile apps is now closer to that of desktop apps, where you do not know what display will be used or how users will choose to  size the application window. Intelligent layout and scaling is key.

Apple is also increasingly awkward to work with:

More generally, 90% of developers believe that Apple has become more difficult, or about the same, to deal with over the past three years when it comes to application
submission, fragmentation, and monetization.

Part of the report concerns Microsoft Surface. This focus is puzzling, in that it is the Windows 8 app platform which really matters, rather than Surface itself. Another oddity is the questions put, with no option to say “Surface is great”. The most positive option was:

It is a nice piece of hardware, but Windows 8 needs a lot more than that to be successful

A rather obvious statement which apparently won the agreement of 36% of developers.

The report gets even sillier when it comes to market disruption:

The top three companies that developers perceive to be ripe for disruption are a veritable who’s-who of the biggest tech darlings

say Appcelerator and IDC. It is true; but the figures are tiny:

Microsoft (8% of respondents), Google (7% of respondents), and Facebook (7% of respondents).

In other words, over 90% of developers believe these three companies are not likely to be disrupted soon; a figure that strikes me as conservative, especially for Microsoft.

More impressive is that over 60% of developers believe Facebook will lose out in future to a mobile-first social startup. This was also true last time round; 66% in Q3 2012 and 62% in Q4 2012.

The length of time it took Facebook to release just a single native iOS app, coupled with the fact that a corresponding native Android app is still MIA, has proven that the company does not yet have a viable cross-platform mobile strategy.

say Appcelerator and IDC. A fair point; but Facebook’s primary asset is its network of relationships rather than its software and it is not easy to disrupt. I would also guess that disruption is more likely to come from Google as it promotes Google+ and builds it more aggressively, perhaps, into Android, along with apps for iOS and other platforms as needed, than from a startup. But like the developers in this survey, I am guessing.

The Windows 8 app platform: how is it going? A few clues from developers

One way of looking at Microsoft’s Windows 8 strategy is as an attempt to establish a new tablet platform. By welding the tablet platform to the desktop platform, Microsoft ensured that every customer who wanted the latest Windows release would also get the tablet release, though some are stuck with keyboard and mouse to control it. The downside is that some users who would have upgraded to Windows 8 if it had been less radical will stick with Windows 7. Microsoft is betting that despite the controversy, the hybrid operating system is a better bet for the difficult task of creating a new ecosystem than building a completely new tablet operating system that few would have purchased.

So how is the new platform doing? I asked on Twitter for developers with apps on both Windows Phone 8 and Windows 8 to let me know how the rate of sales or downloads compare.

One was the maker of Cineworld, a cinema listing app for the UK and Ireland. He reported:

my cineworld app has about 1.8K downloads a month on WP.. on #win its a few hundred

The other was an app for fans of Manchester United football club called 1st4Fans:

Windows 8 is 70/day. Windows Phone is 130/day

Another was the maker of Barcode Generator:

Barcode Generator stats say 32K download since Aug and several hundreds dwn/day. Looks pretty good, isn’t it?

The author of TweeterLight says that he has “more downloads of W8 app in 1 month than WP7 app in 1 year”, showing that not everyone is finding the phone platform bigger than the tablet platform, though a key factor is that there is an official Twitter client for the phone but not for new-style Windows 8:

image

TweeterLight is also a paid-for app, which means fewer downloads and perhaps avoidance of the Twitter throttling that has afflicted the free clients.

Others are reporting a boom in Windows Phone downloads, like Lestyn Jones who says:

I’m finding that my #win8 app downloads are slowly growing where as my #wp8 have skyrocketed.

Put that together with the Cineworld stats – 1.8K per month for an app that is only relevant in the UK and Ireland. It does look as if Windows Phone has been considerably reinvigorated by the launch of Windows Phone 8.

Returning to Windows 8 though, my initial reaction was that these responses are not an impressive start for Microsoft’s new platform, considering the wide usage of Windows on the desktop.

My further reflection though is this. I find myself more willing to try out new-style apps on Windows 8 than desktop apps either on Windows 8 or previous versions, thanks to the ease of installation and removal, discovery through the store, and the additional security of the app sandbox. An interesting question to ask then: if Microsoft had not created this new app platform, how many of these niche apps would have been downloaded as desktop applications?

Despite its imperfections and mixed reception, at least Windows 8 now has an app platform.

This is a small sample and other reports would be welcome.

Xamarin brings C# to development of apps for the Mac App Store

Xamarin has released Xamarin Mac which adds Mac support to the existing iOS and Android compilers from the company:

  • MonoTouch: apps for iPhone and iPad using the MonoDevelop IDE on the Mac
  • Mono for Android: apps for Android using either Visual Studio or MonoDevelop
  • Xamarin.Mac: apps for Mac OS X using MonoDevelop on the Mac

The major platforms missing from the above are Windows and Linux (unless you count Android), even though Mono began as a Linux implementation of Microsoft’s .NET platform.

Xamarin says that a Windows version is not necessary since you can use Microsoft’s tools to code in C# for Windows desktop and Windows phone.

You can also get Mono for Windows, Mac and Linux from the old Mono project site.

Why would you bother with paid-for Xamarin.Mac when you can get Mono for Mac as a free download? There is even a Mac packager which lets you create a standalone package for your Mono app. A good question, but I guess the answer is the benefit of Xamarin-specific libraries and support from the company. Xamarin has also done the work to ensure that you can distribute your app via the Mac App Store.

Xamarin.Mac costs $399 for personal use, or $999 for an enterprise license which allows internal as well as app store distribution. A one year, one seat license with priority support costs $2,499.

Xamarin knows how to charge then, and in the end that may be a key reason why the project is working, whereas Mono struggled as an open source project that never had the resources it deserved.

The Mono Project site now says that it is “sponsored by Xamarin” so open source developers are getting some benefit from the commercial offshoot.

Xamarin is important for the C# language, since it represents a viable implementation which is independent of Microsoft.

RIM BlackBerry 10 SDK is now gold

 

BlackBerry 10 developers can now download the release version of the various SDKs.

 

image

There are three primary SDKs: native C/C++, Cascades which includes a C++ app and user interface framework, and WebWorks for HTML5 and JavaScript.

If that is not enough, there is also an Adobe AIR SDK, and a Java SDK which is compatible with the Android Runtime.

RIM has made a huge effort to attract developers to its new platform, though how it will fare versus iOS, Android, and a somewhat reinvigorated Windows Phone is open to speculation.

Trial apps and in-app purchases easy to hack on Windows 8 says Nokia engineer

A principal engineer at Nokia, Justin Angel, has written a piece showing how to hack apps on Windows 8, undermining their potential revenue for the app vendors. “This is an educational article written in the hope both developers and Microsoft can benefit from an open exchange of knowledge,” he says, adding that the article was written in his own time and has nothing to do with his employer.

The hacks he describes cover:

  • Compromising in-app purchases by modifying data held locally, such as app currency.
  • Converting trial apps to full versions without paying
  • Removing ads from games
  • Reducing the cost of items offered for in-app purchase
  • Injecting Javascript  into the Internet Explorer 10 process in order to bypass trial restrictions

image

There is an inherent security weakness in any app that has to work offline, since the decryption keys also have to be stored locally; this inherent weakness is not unique to Windows 8. However, Angel argues that Microsoft could do more to address this, such as checking for tampered app files and preventing Javascript injection. Code obfuscation could also mitigate the vulnerabilities.

Although Angel is writing in his own time, the issues are relevant to Nokia, which makes Windows Phone devices and may make Windows 8 tablets in future.

Should Angel have revealed the cracks so openly and in such detail? This is an old debate; but it is sure to increase pressure on Microsoft to improve the security of the platform.

Embarcadero launches C++ Builder XE3: first built on Clang

Embarcadero has released C++ Builder XE3, the first version built on the open source clang front end for the LLVM compiler. This has enabled the product to support many new features, including extensive C++ 11 support and a 64-bit compiler.

image

While it is a shame that the old Borland C/C++ Compiler is no more, it makes sense for Embarcadero to bring its VCL (Visual Component Library) and FireMonkey framework to Clang rather than continuing to work on its own compiler.

The other big change is cross-platform support. Through FireMonkey, C++ Builder XE3 supports Windows (including Windows 8) and Mac OS X, with iOS and Android promised for 2013.

Although Windows 8 is supported on the desktop, there is no official support for the Windows Runtime (Windows Store apps). Instead, Embarcadero has a curious application framework called Metropolis which fakes the Windows 8 style but with desktop applications, as if the Windows 8 world were not already sufficiently confusing.

The big question is how compatible VCL applications created for earlier versions of C++ Builder are with the XE3 release. With a new compiler and major changes to the VCL in order to support the new compiler, you might expect some issues.

“That’s what we’ve been spending all of our time on,” Embarcadero VP Michael Swindell told me. “This is fully compatible with all our previous C++ dialects. We’ve completely re-engineered the C++ front end but it’s engineered to be compatible with C++ Builder applications and Borland C++ applications.”

I would rather hear that from developers though, rather than from Embarcadero.

Although C++ Builder is a cross-platform compiler, it only runs on Windows. A common scenario is to run in Windows emulation on a Mac, using VMware Fusion or Parallels.

Similar changes are on the way for Delphi, which uses the same VCL and FireMonkey frameworks but with the Delphi language based on Object Pascal.

Note that the new Clang-based compiler is 64-bit only. You are meant to continue using the old Borland compiler for 32-bit, making it hard to maintain a single code base for both.

Microsoft Silverlight: shattered into a million broken urls

There has been some Twitter chatter about the closure of silverlight.net, Microsoft’s official site for its lightweight .NET client platform. multimedia player and browser plug-in.

image

I am not sure when it happened, but it is true. Silverlight.net now redirects to a page on MSDN. Some but not all of the content has been migrated to MSDN, but Microsoft has not bothered to redirect the URLs, so most of the links out there to resources and discussions on Silverlight will dump you to the aforementioned generic page.

One of the things this demonstrates is how short-sighted it is to create these mini-sites with their own top-level domain. It illustrates how fractured Microsoft is, with individual teams doing their own thing regardless. Microsoft has dozens of these sites, such as windowsazure.com, windowsphone.com, asp.net, and so on; there is little consistency of style, and when someone decides to fold one of these back to the main site, all the links die.

What about Silverlight though? It was always going to be a struggle against Flash, but Silverlight was a great technical achievement and I see it as client-side .NET done right, lightweight, secure, and powerful. It is easy to find flaws. Microsoft should have retained the cross-platform vision it started with; it should have worked wholeheartedly with the Mono team for Linux-based platforms; it should have retained parity between Windows and Mac; it should never have compromised Silverlight with the COM support that arrived in Silverlight 4.

The reasons for the absence of Silverlight in the Windows Runtime on Windows 8, and in both Metro and desktop environments in Windows RT, are likely political. The ability to run Silverlight apps on Surface RT would enhance the platform, and if COM support were removed, without compromising security.

XAML and .NET in the Windows Runtime is akin to Silverlight, but with enough differences to make porting difficult. There is an argument that supporting Silverlight there would confuse matters, though since Silverlight is still the development platform for Windows Phone 8 it is already confusing. Silverlight is a mature platform and if Microsoft had supported it in the Windows Runtime, we would have had a better set of apps at launch as well as more developer engagement.

I posted that Microsoft’s Silverlight dream is over in October 2010, during Microsoft’s final Professional Developers Conference, which is when the end of Silverlight became obvious. It lives on in Windows Phone, but I would guess that Windows Phone 8.5 or 9.0 will deprecate Silverlight in favour of the Windows Runtime. A shame, though of course it will be supported on the x86 Windows desktop and in x86 Internet Explorer for years to come.

Adobe launches Game Developer Tools including Scout profiler

Adobe is reminding developers that Flash is still around as a game development platform, with the release of a Game Developer Tools package including a Gaming SDK, the Flash C++ Compiler which translates C++ to ActionScript, Flash Professional CS6 and Flash Builder 4.7.

The new thing here is the Scout profiler, previewed as Monocle, which is now available for Creative Cloud subscribers. Scout is a desktop app which profiles Flash apps that have telemetry enabled. The app has to be running in Flash Player 11.4 or higher and have Advanced Telemetry enabled for most of the features to work. You can analyse the time taken for ActionScript code to execute, CPU usage, rendering time for the Flash DisplayList, and record Stage3D commands (hardware accelerated 2D and 3D graphics).

Normally Scout analyses Flash content running on the same machine, but there is a companion agent that you can use on iOS and Android for remote profiling of mobile apps.

image

I downloaded and installed the Game Development but with only partial success, since I mainly use Windows 8 and the Flash Player there is behind that used on Windows 7 and Mac. The reason is that Flash Player is now updated via Windows Update, and this additional step seems to mean delays. I was able to try out Scout using Google Chrome, which has a Flash Player 11.5 installed, but have not yet figured out how to update the default Flash Player for the system which is used by Flash Professional and Flash Builder. At the time of writing this is Flash Player 11.3, which is insufficient for the Game Development Tools.

Flash is a strong platform for game development, though it has lost momentum now that Adobe is betting mainly on HTML 5. I also hear a lot about Unity for cross-platform game development. Unity lets you publish to Adobe Flash Player, giving you more choices than with pure Flash development.

Windows 8 Flash Player hassles: Windows update integration means IE users get an old version

Internet Explorer 10 in Windows 8 features a new approach to Adobe Flash Player updates. These are now delivered via Microsoft’s Windows Update, so you get security updates without having to suffer Adobe’s separate updater.

That seems a good thing, and for security it probably is, but it seems that the price of this convenience is that you run an old version. See the table here:

image

Note that Windows 7 users have version 11.5.502.110, while Windows 8 has only 11.3.376.12. There are major new features only available in the updated version.

Trying to run the installer for the latest debug version fails with a misleading error message:

image

Umm, no it is not the latest version.

Of course you can get round this by running Google Chrome:

image

[the OS is actually 64-bit but Chrome runs as a 32-bit process].

This still strikes me as disappointing. You may want to run IE, if you like having the browser maintained and managed by the OS vendor, and in Windows RT (the ARM version of Windows) there is no other option. That is becoming an impossible choice for developers. Chrome offers WebKit (the browser engine used on most mobile devices and in Safari on the Mac) as well as nice tools and hooks for debugging, and Chrome-specific support from vendors like Adobe makes it hard to avoid.

Infragistics building cross-platform development strategy on XAML says CEO

I spoke to Dean Guida, CEO at Infragistics, maker of components for Windows, web and mobile development platforms. Windows developers with long memories will remember Sheridan software, who created products including Data Widgets and VBAssist. Infragistics was formed in 2000 when Sheridan merged with another company, ProtoView.

In other words, this is a company with roots in the Microsoft developer platform, though for a few years now it has been madly diversifying in order to survive in the new world of mobile. Guida particularly wanted to talk about IgniteUI, a set of JQuery controls which developers use either for web applications or for mobile web applications wrapped as native with PhoneGap/Cordova.

“The majority of the market is looking at doing hybrid apps because it is so expensive to do native,” Guida told me.

Infragistics has also moved into the business iOS market, with SharePlus for SharePoint access on an iPad, and ReportPlus for reporting from SQL Server or SharePoint to iPad clients. Infragistics is building on what appears to be a growing trend: businesses which run Microsoft on the server, but are buying in iPads as mobile clients.

image

Other products include Nuclios, a set of native iOS components for developers, and IguanaUI for Android.

I asked Guida how the new mobile markets compared to the traditional Windows platform, for Infragistics as a component vendor.

“The whole market’s in transition,” he says. “People are looking at mobility strategy and how to support BYOD [Bring Your Own Device], all these different platforms, and a lot of our conversations are around IgniteUI. We need to reach the iPad, and more than the iPad as well.”

“There’s still a huge market doing ASP.NET, Windows Forms, WPF. It’s still a bigger market, but the next phase is around mobility.”

What about Windows 8, does he think Microsoft has got it right? Guida’s first reaction to my question is to state that the traditional Windows platform is by no means dead. “[Microsoft] may have shifted the focus away from Silverlight and WPF, but the enterprise hasn’t, in terms of WPF. The enterprise has not shifted aware from WPF. We’ve brought some of our enterprise customers to Microsoft to show them that, some of the largest banks in the world, the insurance industry, the retail industry. These companies are making a multi-year investment decision on WPF, where the life of the application if 5 years plus.

“Silverlight, nobody was really happy about that, but Microsoft made that decision. We’re going to continue to support Silverlight, because it makes sense for us. We have a codebase of XAML that covers both WPF and Silverlight.”

Guida adds that Windows 8 and Windows Phone 8 are “great innovation”, mentioning features like Live Tiles and people hub social media aggregation, which has application in business as well. “They’re against a lot of headwind of momentum and popularity, but because Microsoft is such an enterprise company, they are going to be successful.”

How well does the XAML in Infragistics components, built for WPF and Silverlight, translate to XAML on the Windows Runtime, for Windows 8 store apps?

“It translates well now, it did not translate well in the beginning,” Guida says, referring to the early previews. “We’re moving hundreds of our HTML and XAML components to WinJS and WinRT XAML. We’re able to reuse our code. We have to do more work with touch, and we want to maintain performance. We’re in beta now with a handful of components, but we’ll get up to 100s of components available.”

It turns out that XAML is critical to the Infragistics development strategy for iOS as well as Windows. “We wrote a translator that translates XAML code to iOS and XAML code to HTML and JavaScript. We can code in XAML, add new features, fix bugs, and then it moves over to these other platforms. It’s helped us move as quickly as we’ve moved.”

What about Windows on ARM, as in Surface RT? “We fully support it,” says Guida, though “with a straight port, you lose performance. That’s what we’re working on.”