Category Archives: apple

The Watch

I am in San Francisco so naturally I looked into the Apple Store to see the Watch.

image

The poor old Apple Store is stuck behind a crane and a lot of fencing but there was still a good crowd there.

image

There are watches behind glass, watches you can play with that are firmly attached to the counter, and watches in drawers which you can try on under the guidance of a rep, but which are disabled (the buttons do nothing).

A few observations.

It is a lot of fun. I found it easy to navigate using the main menu (a heap of icons, as you would expect), and zooming/tapping to explore.

There are two physical buttons, the crown and a pushbutton. The pushbutton only does two things (I was told by the rep), one press for the contacts app, press and hold for Apple Pay. Can you configure this? Apparently not.

image

The crown is a  select button if you push it, zoom (or something app-specific) if you spin it, and Siri if you press and hold.

image

Most of the features are things you can already do with a smartphone, excepting the fitness sensors of course, but this is on your wrist and therefore handier.

Maps is useful; it might be worth it just for that.

image

Note that the watch is largely a remote for an iPhone. If you don’t have an iPhone (or it is out of charge) it is not much use. The rep thought it would still tell the time but wasn’t sure.

I tried on a couple of models, one the Sports with a cheapish strap ($400; the base model is $349), and another with a stainless steel band ($700). Both were comfortable and I was especially taken with the stainless steel edition.

There are plenty of things about the gadget that are annoying. The need for daily recharging is one, the dependence on an iPhone is another. However it is elegant and delightful so I imagine all will be forgiven, among the Apple community at least.

How do I buy one? Online only, I was told, and delivery maybe in July.

Xamarin Evolve: developers enjoy the buzz around cross-platform coding with C#

“It’s like a Microsoft developer event back when they were good,” one exhibitor here at Xamarin Evolve in Atlanta told me, and I do see what he means. There is plenty of buzz, since Xamarin is just three years old as a company and growing fast; there is the sense of an emerging technology, and that developers are actually enjoying their exploration of what they can do on today’s mobile devices.

Microsoft is an engineering-led company and was more so in its early days. The same is true of Xamarin. It also also still small enough that everyone is approachable, including co-founders Miguel de Icaza and Nat Friedman. The session on what’s new in Xamarin.Mac and Xamarin.iOS was presented by de Icaza, and it is obvious that he is still hands-on with the technology and knows it inside out. Developers warm to this because they feel that the company will be responsive to their needs.

image

Approachability is important, because this is a company that is delivering code at breakneck speed and bugs or known issues are not uncommon. A typical conversation with an attendee here goes like this:

“How do you find the tools?” “Oh, we like them, they are working well for us. Well, we did find some bugs, but we talked to Xamarin about them and they were fixed quickly.”

Xamarin’s tools let you write C# code and compile it for iOS, Android and Mac. If you are building for Windows Phone or Windows, you will probably use Microsoft’s tools and share non-visual C# code, though the recently introduced Xamarin Forms, a cross-platform XML language for defining a user interface, builds for Windows Phone as well as iOS and Android.

The relationship with Microsoft runs deep. The main appeal of the tools is to Microsoft platform developers who either want to use their existing C# (or now F#) skills to respond to the inevitable demand for iOS and Android clients, or to port existing C# code, or to make use of existing C# libraries to integrate with Windows applications on the server.

That said, Xamarin is beginning to appeal to developers from outside the Microsoft ecosystem and I was told that there is now demand for Xamarin to run introductory C# classes. Key to its appeal is that you get deep native integration on each platform. The word “native” is abused by cross-platform tool vendors, all of whom claim to have it. In Xamarin’s case what it means is that the user interface is rendered using native controls on each platform. There are also extensive language bindings so that, for example, you can call the iOS API seamlessly from C# code. Of course this code is not cross-platform, so developers need to work out how to structure their solutions to isolate the platform-specific code so that the app builds correctly for each target. The developers of Wordament, a casual game which started out as a Windows Phone app, gave a nice session on this here at Evolve.

Wordament has an interesting history. It started out using Silverlight for Windows Phone and Google App Engine on the server. Following outages with Google App Engine, the server parts were moved to Azure. Then for Windows 8 the team ported the app to HTML and JavaScript. Then they did a port to Objective C for iOS and Java for Android. Then they found that managing all these codebases made it near-impossible to add features. Wordament is a network game where you compete simultaneously with players on all platforms, so all versions need to keep tightly in step. So they ported to Xamarin and now it is C# on all platforms.. 

I digress. The attendees here are mostly from a Microsoft platform background, and they like the fact that Xamarin works with Visual Studio. This also means that there are plenty of Microsoft partner companies here, such as the component vendors DevExpress, Syncfusion, Infragistics and ComponentOne. It is curious: according to one of the component companies I spoke to, Microsoft platform developers get the value of this approach where others do not. They have had only limited success with products for native iOS or Android development, but now that Xamarin Forms has come along, interest is high.

Another Microsoft connection is Charles Petzold – yes, the guy who wrote Programming Windows – who is here presenting on Xamarin Forms and signing preview copies of his book on the subject. Petzold now works for Xamarin; I interviewed him here and hope to post this soon. Microsoft itself is here as well; it is the biggest sponsor and promoting Microsoft Azure along with Visual Studio.

Xamarin is not Microsoft though, and that is also important. IBM is also a big sponsor, and announced a partnership with Xamarin, offering libraries and IDE add-ins to integrate with its Worklight mobile-oriented middleware. Amazon is here, promoting both its app platform and its cloud services. Google is a sponsor though not all that visible here; Peter Friese from the company gave a session on using Google Play Services, and Jon Skeet also from Google presented a session, but it was pure C# and not Google-specific. Salesforce is a sponsor because it wants developers to hook into its cloud services no matter what tool they use; so too is Dropbox.

  image

Most of the Xamarin folk use Macs, and either use Xamarin Studio (a customised version of the open source MonoDevelop IDE), or Visual Studio running in a virtual machine (given that the team mostly use Macs, this seems to me the preferred platform for Xamarin development, though Visual Studio is a more advanced IDE so you will probably end up dipping in and out of Windows/Mac however you approach it).

Xamarin announced several new products here at Evolve; I gave a quick summary in a Register post. To be specific:

  • A new fast Android emulator based on Virtual Box
  • Xamarin Sketches for trying out code with immediate analysis and execution
  • Xamarin Profiler
  • Xamarin Insights: analytics and troubleshooting for deployed apps

Of these, Sketches is the most interesting. You write snippets of code and the tool not only executes it but does magic like generating a graph from sequences of data. You can use it for UI code too, trying out different fonts, colours and shapes until you get something you like. It is great fun and would be good for teaching as well; maybe Xamarin could do a version for education at a modest price (or free)?

image

I am looking forward to trying out Sketches though I have heard grumbles about the preview being hard to get working so it may have to wait until next week.

image

IFA 2014 report: Wearables, Windows 8 and Phone, Android TV, Amazon FireTV, lots of phones, Spotify Connect

I am just back from IFA 2014 in Berlin, perhaps the nearest European equivalent to CES in Las Vegas though smaller, less frenetic, and benefiting from the pleasant environment of Berlin in early autumn in place of Vegas glitz.

image

On the eve of a major Apple event, IFA 2014 was a chance for the non-Apple tech world to impress. That said, neither Google nor Microsoft bothers to exhibit at IFA; they rely on partners to show off the products which use their stuff. The biggest exhibitor from what I could tell was Samsung, or possibly Sony which also had a huge presence.

Google subsidiary Nest did not have a stand either, though co-founder and VP of engineering Matt Rogers did give a keynote, in place of CEO Tony Fadell who is recovering from an accident. It was an odd keynote, with little new content other than the announcement of Nest device availability in Belgium, France, Ireland and the Netherlands (they are already in the US, Canada and the UK).

The Nest keynote was memorable though for this remark:

We know neighbours have to earn your trust. We should too. Buying a Nest device is a lot like trusting us with a set of keys.

A smart thermostat or smoke alarm is like a set of keys? Not really. I may be reading too much into this, but what if Nest were to move into home security? How about a security system that recognized you? Might Nest/Google one day literally have the power to unlock your door?

My main interests at IFA are computing, mobile and audio; but I also slipped into the Siemens-Electrogeräte press conference, showing off smart ovens and coffee machines. It was worth it to hear General Manager Roland Hagenbucher explain that “Home is where your app is”, describing new app control and monitoring for Siemens smart kitchens. The question: if we need an app to turn on the oven, what are the implications for mobile operating systems?

The answer is that if the apps you need are not available for a particular mobile device, it is a significant barrier to adoption. This is the difficulty for Windows Phone, for which Microsoft held a press event in Berlin last week, launching three new phones, the mid-range Lumia 830 and budget 730 (Dual Sim) and 735. Microsoft also presented an OS update code-named “Denim”, also known as Windows Phone 8.1 Update 1. Key features include a new, faster camera app; voice activation for Cortana (just say “Hey Cortana”); and the ability to organise app tiles into folders. Oh, and not forgetting the Microsoft Screen Sharing for Lumia Phones HD-10 – the little device with the long name.

image

The devices look decent and there are some good things in Windows Phone; the OS itself is smooth, the Cortana digital assistance has exceeded my expectations, the prices are reasonable, and there are thoughtful touches like the detachable NFC connection coaster on the HD-10. All it lacks is momentum, and achieving that under the shadows of Android and Apple is a huge challenge.

That said, I spoke to Dan Dery, VP and CMO at Alcatel OneTouch, who told me of the company’s plans for Windows Phone OS tablets. Which is all very well, but raises questions about the flood of new Windows 8 tablets, in sizes as small as the 7” Encore Mini from Toshiba, on show at IFA.

Intel showed off its new Pentium M CPU, based on the Broadwell architecture, optimized for low power (4.5w), small size (14nm processor) and cool (no fan). In a keynote Intel also talked up the drive for wireless computing, one facet of which is the Rezence Alliance for Wireless Power. Rezence has some powerful names on its members list, including Asus, Broadcom, Canon, Dell, Lenovo, Qualcomm, Samsung and Sony. Then again, many of those companies are also members of the rival Wireless Power Consortium which backs the Qi standard, used by Nokia/Microsoft. However, in the wireless power wars I would not bet against Intel (let’s see which way Apple jumps with the iWatch).

There were countless new Android phone launches at IFA. The challenge here is differentiation; every company says its devices are innovative, but few really are. What you get for your money is constantly improving though; I cannot remember handling any smartphones that seemed really poor, which was not the case a couple of years back.

Amazon launched its FireTV video streamer in Europe; I had a brief hands-on and wrote a piece for Guardian Technology. I liked it; it is well-designed for a specific purpose, searching for and streaming a video from Amazon’s Prime Instant Video service. It does also run apps and games (there is an optional games controller) but what will sell it, for those that give it a chance, is voice search through the Bluetooth-connected remote. I veer towards sceptical when it comes to voice search, but this is a perfect use case: pick up the remote and speak into it, rather than wrestling with a living room keyboard or pecking out letters with an on-screen keyboard. With Amazon it is all about the subscription though; the aim of FireTV is to get you hooked on Prime (fast delivery as well as instant video). It is less attractive if you prefer an alternative service, though it is a good specification for the price.

Wearables were everywhere at IFA and it seemed every press conference included a watch or fitness tracker announcement (or both) – many Android, but Alcatel OneTouch made the point that its watch was lower power and faster because it does not use Android.

Acer:

image

Asus:

image

Alcatel OneTouch:

image

Sony:

image

and so on. There does seem to be a lot of “because we can” in these devices, though some use cases do make sense, such as rejecting a call by tapping your wrist, or getting notifications. Is that worth a device which needs charging once a week (my watch has a 10 year battery life)? How much do we really want to track our fitness, and what do we do when health insurance companies get hold of this data and only want to insure the best risks?

Philips showed off its Android TV:

image

While bundling Android into a TV set may seem to make sense, the problem is that you will probably want to keep the TV long after the Android part has gone out of date. Another problem – well, spot the background message at the top of this screen:

image

Yes, it says AntiVirus Security – FREE. Just what you always wanted in your TV.

I also took a good look/listen at the audio on display. I will post separately on Gadget Writing; but the most significant thing I spotted (ha!) is the advent of Spotify Connect (this is from Yamaha).

image

The idea is that with a Spotify subscription along with Spotify Connect devices (each device must be Spotify Connect certified) you can choose what to play and where from your Spotify app, and enjoy smart features like your playlist continuing unbroken when you move from kitchen to living room to car. No chance versus Apple/Beats you might think; but look how far Spotify has come, thriving as Apple clung too long to its file download model (see here for why files are over).

Curating an app store: does Apple have it right?

No matter how much market share Android grabs: it is Apple’s App Store that started this app thing rolling. Never forget that OS vendors and phone operators tried to push app stores before Apple came in, but fragmentation, horrible user interaction design, billing issues and perplexing compatibility problems made them a dead loss for most users. Today, Apple’s mobile platform remains the most important one in many sectors.

The trade off with app stores is that you give up freedom of choice (install anything you want from anywhere) in return for a safer and better experience; software installation nasties like runtime dependencies, malware or fake download apps do not exist. At least, that is how it is meant to be, which is why some are so disappointed by Microsoft’s store.

Now Apple has offered us some limited insight into its own curation practice. It has published the top ten reasons for App rejections for the last week in August.

Aside from the generic “more information needed,” the top reason is bugs, and the next two are non-compliance with the developer terms (could mean anything) and user interfaces that are poor or too complex.

Close behind it is another key one:

Apps that contain false, fraudulent or misleading representations or use names or icons similar to other Apps will be rejected

which accounts for the main complaint about some apps that make it into Microsoft’s store.

What Apple does not tell us is the proportion of apps that are approved, either first time, or after one or two revisions.

There is little to argue about in Apple’s list of reasons to reject, except this one:

If your app doesn’t offer much functionality or content, or only applies to a small niche market, it may not be approved.

Apps without content are fair game, but why should small niche markets not be served? It does not bother me if a great app for jellyfish spotters makes it into the store.

The other factor here is that if an app store has enough high quality apps then the bad ones will be hardly visible, other than in search results. Store curation is about presentation as well as content.

Is Apple getting it right? I am not hearing much shouting from developers about the arbitrary or unknown reasons why their app was rejected, which suggests that it is, but it may be I am not listening intently enough.

Embarcadero RAD Studio XE7 (Delphi, C++Builder): is seven the magic number?

Embarcadero has released version 7 of its XE programming suite. The main products included are Delphi and C++ Builder, RAD development tools that share the same underlying libraries and visual designers but give developers a choice of language. Delphi uses an object-oriented evolution of Pascal.

image

Delphi is best known as a Windows Programming Tool – it used to be the main competition for Visual Basic – but over the last few years Embarcadero has added cross-platform Mac and mobile development with native compilers for OSX, iOS and Android. The IDE runs only on Windows but can compile for the Mac or for iOS New versions have come thick and fast – XE6 was released in April 2014 – so if you want to stay up to date, prefer for frequent upgrades or buy with a support and maintenance agreement. You can buy Delphi or C++ Builder separately if you do not require the suite.

The full RAD Studio also includes HTML 5 Builder, which supports mobile app development using Cordova (open source version of PhoneGap). There seems to be little new in HTML 5 Builder. An earlier PHP tool variously called Delphi for PHP and RadPHP was dropped some time back. I get the impression that Embarcadero is now more focused on its core good thing.

image

So what’s new? Making effective cross-platform development tools is not easy, with trade-offs between productivity (share more code) and writing the best app for each platform (share less code). This edition introduces a new approach to designing the user interface, called the Multi-Device Designer. It is based on a kind of inheritance. You build your base UI in a master form and write most of the event-handling code there. This master form is automatically adapted, to some extent, to other platforms. You can see how your form looks on these other platform by dropping down a list.

image

When you select the form for a specific platform, you can modify it for that platform. There is still only one form, but the platform-specific views override properties set in the master form. If you then further modify the master, the changes will flow down to the platform-specific forms unless properties have already been overridden.

image

My impression after a five-minute play is that you will indeed have to made modifications to get each form looking right; the automatically generated versions were not too good. There is still good productivity potential here presuming the designer proves to be robust.

A common criticism of Embarcadero’s approach is that visual controls are custom-drawn on each platform, rather than using true native controls. That does not matter at all, Embarcadero always assured me. It does matter though; and now in XE7 we have the beginning of a solution. There are a couple of optional Platform Native Controls, TEdit and TCalendar for iOS, which do use native controls. I suspect this will be popular and hope that more platform native controls arrive in due course.

App Tethering is a feature/library that lets you easily set up connectivity between Delphi/C++ Builder apps on a local network. The first version only supported Ethernet/Wi-Fi, but now Bluetooth support has come, including Bluetooth LE on Windows 8 and recent Android devices.

On Android, a new tool called Java2OP lets you generate Object Pascal interfaces for Java Android classes, which sounds handy.

Aside: the naming of this tool suggests that the language is now called Object Pascal again, rather than Delphi, which became the official name some years back. Object Pascal makes more sense to me.

The System.Threading library now includes a new parallel programming library, including Parallel For, task scheduling, and futures. Futures are a way of creating code that will run at an indeterminate time. You associate a variable with a function that calculates its value. That function will run when you access the value, or before that if a background thread is available.

The IDE now has limited Git support (local repository only).

Another new piece in XE7 is Enterprise Mobility Services, a REST-based middleware stack that runs as an ISAPI DLL in Microsoft’s IIS web server. This includes database connectivity (using the FireDAC library), user management (though not Active Directory integration as yet, as I understand it) and usage analytics.

If you are using IIS, why would you not use ASP.NET and the Web API? The answer is that with EMS you can do end-to-end Delphi/C++ Builder as well as getting the performance of native code on the server.

Challenges for Embarcadero and RAD Studio

In the nineties it was Delphi versus Visual Basic, and although most developers who gave Delphi serious attention discovered that it was superior in most ways to Microsoft’s tool, the big-company backing and integration with Microsoft’s overall platform meant that VB was not much disrupted (though we may have Delphi to thank for the appearance of native code compilation in VB).

Today Embarcadero is up against Xamarin, which is similar in that it gives Microsoft platform developers a route to cross-platform development for Mac, iOS and Android.

From what I hear, cross-platform support in RAD Studio has been successful in reinvigorating the product within its niche, but it is Xamarin that has grown explosively, thanks to a combination of the C# language, Visual Studio integration, and a degree of official endorsement from Microsoft. Whereas Xamarin fits with Microsoft’s Universal App concept, shared C# code across all platforms, RAD Studio takes its own path, avoiding .NET in favour of native executables.

[I realise that there is endless debate about what native means, and that while RAD Studio has a good claim to native code, it is weak when it comes to native controls as noted above].

Unlike Xamarin, which has its own cross-platform IDE for Windows and Mac, RAD Studio requires Mac developers to use a PC or a Windows VM.

Embarcadero chose not to support Windows 8 “Metro” or Store apps, a decision which now looks wise, though it could yet work against them if Universal Apps are more compelling in Windows vNext. Another omission is Windows Phone; perhaps this does not matter greatly given its small market share, but within the Microsoft platform community it is a bigger lack than simple market share implies.

The advantage of the RAD Studio approach is that it is less dependent on Microsoft’s constant changes of direction, and performance is generally good. I have always been a fan of Delphi. There were some quality concerns when the FireMonkey cross-platform UI library was first adopted, but now in RAD Studio XE7 there is reasonable hope that the library is mature enough.

RAD Studio is the obvious route for long-time Delphi or C++ Developers migrating to mobile; it is a viable niche but I question whether it can ever move beyond it to grab a share of the wider mobile development market.

More information here.

Future of music: files are over says WME music boss (or, why Apple bought Beats)

In February at the music industry conference Midem in Cannes, Marc Geiger of  WME (William Morris Endeavor), which represents artists across all media platforms, gave a keynote about the future of music. Geiger is head of the music department.

It is from six months ago but only just caught my ear.

Gieger argues that the streaming model – as found in Spotify, YouTube, Pandora and so on – is the future business model of music distribution. File download – as found in Apple iTunes, Amazon MP3, Google Play and elsewhere – is complex for the user to manage, limits selection, and full of annoyances like format incompatibilities or device memory filling up.

With unusual optimism, Gieger says that a subscription-based future will enable a boom in music industry revenue. The music server provider model “will dwarf old music industry numbers”, he says.

image

Who will win the streaming wars? Although it is smaller players like Spotify and MOG that have disrupted the file download model, Gieger says that giant platforms with over 500 million customers will dominate the next decade. He mentions Facebook, YouTube, Amazon, Netflix, Google, Yahoo, Pandora, Apple iTunes, Baidu, Android (note that Google appears three times in this list).

Why will revenue increase? Subscriptions start cheap and go up, says Gieger. “Once people have the subscription needle in the arm, it’s very hard to get out, and prices go up.” He envisages premium subscriptions offering offline mode, better quality, extra amounts per family member, access to different mixes and live recordings.

The implication for the music industry, he says, is that it is necessary to get 100% behind the streaming model. It is where consumers are going, he says, and if you are not there you will miss out. “We’ve got to get out of the way, we’ve got to support it.” Just as with the introduction of CDs, it enables the business to sell its back catalogue yet again.

A further implication is that metadata is a big deal. In a streaming world, just as in in any other form of music distribution, enabling discovery is critical to success. Labels should be working hard on metadata clean-up.

Gieger does see some future for physical media such as CD and DVD, if there is a strong value-add in the form of books and artwork.

You can see this happening as increasing numbers of expensive super-deluxe packages turn up, complete with books and other paraphernalia. For example, Pink Floyd’s back catalogue was reissued in “Immersion” boxes at high prices; the Wish you were Here package includes 9 coasters, a scarf and three marbles.

image

This sort of thing becomes more difficult though as consumers lose the disc habit. If I want to play a VHS video I have to get the machine down from the loft; CD, DVD and Blu-Ray are likely to go the same way.

Geiger’s analysis makes a lot of sense, though his projected future revenues seem to me over-optimistic. People love free, and there is plenty of free out there now, so converting those accustomed to playing what they want from YouTube to a subscription will not be easy.

That is a business argument though. From a technical perspective, the growth of streaming and decline of file download does seem inevitable to me (and has done for a while).

Listen to the talk, and it seems obvious that this is why Apple purchased Beats in May 2014. Beats offers a streaming music subscription service, unlike iTunes which uses a download model.

Why Apple needed to spend out on Beats rather than developing its own streaming technology as an evolution of iTunes remains puzzling though.

Finally, Gieger notes the need to “put out great music. After we all have access to all the music in the world, the quality bar goes up.” That is one statement that is not controversial.

Here is the complete video:

RemObjects previews native Apple Mac IDE for C#, .NET, Oxygene

RemObjects is previewing a new native Mac IDE for its Oxygene and C# compilers. Oxygene is a Delphi-like language (in other words, a variant of Object Pascal) which targets iOS, Mac, Android, Windows Phone and Windows. RemObjects C# shares the same targets. Both can compile to .NET assemblies for Windows, or to Mono for cross-platform .NET, or to a Mac or iOS executable (using the LLVM compiler), or to Java bytecode for the Android Dalvik runtime. You can get both Oxygene and RemObjects  C# bundled in a product called Elements.

In the past, RemObjects has used Visual Studio as its IDE. While this is a natural choice for Windows users, much development today is done on the Mac. Requiring Mac users to develop in a Windows Virtual Machine adds friction, so RemObjects is now working on a native IDE for the Mac codenamed Fire.

image

I gave Fire the briefest of looks. Here are some of the options for a new .NET application:

image

Note the appearance of ASP.NET MVC 4, and even Silverlight.

Here are the options for a new Cocoa application:

image

If you are developing for Cocoa, you can edit the resource file in Apple’s Xcode and use it in your application. I started a new C# Cocoa app, made a few changes and and then ran it from the IDE:

image

I imagine Microsoft will be keeping an eye on tools like this – if it is not, it should – since they fit with the strategy of supporting Microsoft services on multiple devices. Visual Studio is a fine tool but if Microsoft is serious about cross-platform, it needs strong Mac-native development tools. Xamarin came up with Xamarin Studio, which is cross-platform for Windows and Mac, but the RemObjects approach also looks worth investigating.

PS The first release of RemObjects C# lacked full generic support, for which failing Xamarin and Mono founder Miguel de Icaza took RemObjects to task on Twitter. I was amused to see this in the changelog for April 2014:

 image

65764 Full support for Generics on Cocoa, as requested by Miguel

For more details on Fire, see here.

Amazon Mobile SDK adds login, data sync, analytics for iOS and Android apps

Amazon Web Services has announced an updated AWS Mobile SDK, which provides libraries for mobile apps using Amazon’s cloud services as a back end. Version 2.0 of the SDK supporting iOS, and Android including Amazon Fire, is now in preview, adding several new features:

Amazon Cognito lets users log in with Amazon, Facebook or Google and then synchronize data across devices. The data is limited to a 20MB, stored as up to 20 datasets of key/value pairs. All data is stored as strings, though binary data can be encoded as a base64 string up to 1MB. The intent seems to be geared to things like configuration or game state data, rather than documents.

Amazon Mobile Analytics collects data on how users are engaging with your app. You can get data on metrics including daily and monthly active users, session count and average daily sessions per active user, revenue per active user, retention statistics, and custom events defined in your app.

Other services in the SDK, but which were already supported in version 1.7, include push messaging for Apple, Google, Fire OS and Windows devices; Amazon S3 storage (suitable for any amount of data, unlike the Cognito sync service), SimpleDB and Dynamo DB NoSQL database service, email service, and SQS (Simple Queue Service) messaging.

Windows Phone developers or those using cross-platform tools to build mobile apps cannot use Amazon’s mobile SDK, though all the services are published as a REST API so you could use it from languages other than Objective-C or Java by writing your own wrapper.

The list of supported identity providers for Cognito is short though, with notable exclusions being Microsoft accounts and Azure Active Directory. Getting round this is harder since the federated identity services are baked into the server-side API.

image

Microsoft repositions for a post-Windows client world

Microsoft CEO Satya Nadella has penned a rather long public letter which sets out his ambitions for the company. It is not full of surprises for those who have been paying attention, but confirms what we are already seeing in projects such as Office for iPad: Microsoft is positioning itself for a world in which the Windows client does not dominate.

The statement that stands out most to me is this one (the highlighting is mine):

Apps will be designed as dual use with the intelligence to partition data between work and life and with the respect for each person’s privacy choices. All of these apps will be explicitly engineered so anybody can find, try and then buy them in friction-free ways. They will be built for other ecosystems so as people move from device to device, so will their content and the richness of their services

Microsoft is saying that it will build work/personal data partitioning into its applications, particularly one would imagine Office, and that it will write them for ecosystems other than its own, particularly one would imagine iOS and Android.

This is a big change from the Windows company, and one that I will expect to see reflected in the tools it offers to developers. If Microsoft is not trying to acquire Xamarin, you would wonder why not. It has to make Visual Studio a premier tool for writing cross-platform mobile applications. It also has to address the problem that an increasingly large proportion of developers now use Macs (I do not know the figures, but observe at some developer conferences that Windows machines are a rarity), perhaps via improved online developer tools or new tools that themselves run cross-platform.

Nadella is careful to avoid giving the impression that Microsoft is abandoning its first-party device efforts, making specific mention of Windows Phone, Surface, Cortana and Xbox, for example.

Our first-party devices will light up digital work and life. Surface Pro 3 is a great example – it is the world’s best productivity tablet. In addition, we will build first-party hardware to stimulate more demand for the entire Windows ecosystem. That means at times we’ll develop new categories like we did with Surface. It also means we will responsibly make the market for Windows Phone, which is our goal with the Nokia devices and services acquisition.

Here is another statement that caught my eye:

We will increase the fluidity of information and ideas by taking actions to flatten the organization and develop leaner business processes.

The company has become increasingly bureaucratic over the years, and that is holding back its ability to be agile (though some teams seem to move at high speed regardless; I would instance the Azure team as an example).

Nadella’s letter has too many flowery passages of uncertain meaning – “We will reinvent productivity for people who are swimming in a growing sea of devices, apps, data and social networks. We will build the solutions that address the productivity needs of groups and entire organizations as well as individuals by putting them at the center of their computing experiences.” – but I do not doubt that major change is under way.

Embarcadero AppMethod: another route to cross-platform mobile, now with C++ support

Embarcadero has updated AppMethod, its IDE for cross-platform mobile and desktop applications. The IDE now supports C++, and as a special offer, you can develop Android phone “free forever”, according to the web site.

AppMethod is none other than our old friend Delphi, combined with the FireMonkey cross-platform framework. The difference between AppMethod and the older RAD Studio product line (current version is XE6) is twofold:

1. AppMethod does not include the VCL, the Delphi framework for Windows applications. It does let you develop for Windows or Mac OS X using FireMonkey.

2. You can buy RAD Studio outright with a perpetual license, from £1342.00 plus VAT for a new user (RAD Studio Professional). AppMethod is only available on subscription.

AppMethod pricing is per developer per platform per year. Currently this is £179.83 plus VAT for individuals (very small businesses up to a maximum of 5 employees in the entire organisation) or £600 for larger businesses (a rather large premium).

C++ support is new in AppMethod 1.14 and supports all target platforms except the iOS Simulator (an annoying limitation). It supports ARC (Automatic Reference Counting) on Android as well as iOS. Mac OS X is supported from 10.8 (Mountain Lion) and up.

There are also a few changes in FireMonkey. You can load HTML into the TWebBrowser component using LoadFromStrings. There is a new date picker component.

Another new feature is in the RTL (run time library). Called App Tethering, it lets applications communicate with each other, for example using TCP. These can be apps on the same device or remote apps. Once paired, apps can run remote actions and share standard data types and streams.

There are also updates to push notifications for iOS and Android, Google Glass support, updated OpenGL and DirectX support on Windows, and more: see here for the complete documentation of what is new.

A Quick Hands-on

I installed the latest AppMethod on Windows 8. The install warns that AppMethod cannot co-exist with RAD Studio XE6, presumably because it is essentially the same thing re-wrapped. The product name is relatively new, but there is plenty of old stuff under the covers. AppMethod still has a dependency on JSharp, Microsoft’s Java implementation for .NET. Java code in the IDE dating back to who knows when?

image

There is a 10-field dialog conforming paths for Android tools, which is a reminder of how many moving parts there are here. It is more complex that most Android development environments because it uses the NDK (Native Development Kit) as well as the usual SDK.

image

Once up and running, you can start a new project such as a FireMonkey mobile application:

image

and then you are in an IDE which would not be entirely unfamiliar to a Delphi user in 1995 (or I suppose, a C++ Builder user in 1997) – I am not saying this is a bad thing, though the IDE feels dated in comparison to Microsoft’s Visual Studio.

image

After coming from a spell of development with XAML it feels odd to have a form builder that defaults to xy layout, but layout managers are available:

image

Compile and run, and after the usual slow initialization of the Android emulator, the app appeared.

image

Why AppMethod?

In the crowded world of cross-platform mobile development, why use AppMethod?

Embarcadero makes a big play of its native development, though it is “native” in respect of code execution but not in GUI fidelity since by default visual controls are custom-drawn by the framework. This is in contrast to Xamarin (the obvious alternative for developers from a Windows background) which does no custom drawing but only uses native controls; however for raw performance AppMethod may have the edge (I have not done comparisons).

Delphi developers should also look at RemObjects Oxygene which also uses a Delphi-like language but is hosted in Visual Studio and, like Xamarin, uses native UI components.

The AppMethod approach does make sense if you prioritise maximum code-sharing over getting exactly the right look and feel for each supported platform, and need better performance or more capability than HTML and JavaScript can get you. There is no support for Windows Phone though; if that is in your plans, Xamarin or HTML and JavaScript development is a better fit.