Category Archives: android

Pusher: a nice solution for sending messages and notifications to web and mobile apps

Pusher is a London company which runs cloud services for publish/subscribe in web and mobile applications. The idea is to deliver real-time updates, a concept that has many use cases. Examples include price updates in finance apps, status updates to track a delivery, news updates, or anything where users want to monitor progress or keep in touch with fast-moving developments.

The service passed my “get up and running quickly” test. I created a free account (limited to 100 connections and 200k messages per day) and a new channel:

image 

I’m guessing it runs on AWS, looking at the datacentre locations:

image

I chose a JavaScript client and ASP.NET MVC for the back end. On my PC I pasted the JavaScript into a web page running locally on Apache (in Windows Subsystem for Linux). I also created a new ASP.NET MVC project and added the sample code with some trivial modifications. I was able to send a message to the web page; it triggers an annoying alert but of course you could easily amend this to update the UI in more user-friendly ways.

image

Of course you could roll your own solution for this but what you get with Pusher is all the plumbing pre-done for many different clients and automatic scalability.

Pusher also has a service called Beams (formerly Push Notifications) which lets you send notifications to Android and IOS apps.

Pusher or roll your own? As with many cloud services, you are putting a high level of trust in Pusher (security and reliability) if you use the service, and you will need a paid subscription:

image

You are saving considerable development time though, and as Google and Apple update their SDKs or change the rules, Pusher will presumably adapt accordingly.

Can Azure easily do this, I wondered? I headed over to Azure Notification Hubs. I noticed that the amount of admin you have to do to support each device is greater. Second, Microsoft promised to support “push to web” in March 2016:

image

… but has not done so nor even bothered to update those asking:

image

It is odd that Microsoft, with all its drive behind Azure, is still in the habit of leaving customers in the dark in certain areas.

Honor 10 AI smartphone launched in London, and here are my first impressions

The Honor 10 “AI” has been launched in London, and is on sale now either on contract with Three (exclusively), or unlocked from major retailers. Price is from £31 pay monthly (free handset), or SIM-free at £399.99.

image

Why would you buy an Honor 10? Mainly because it is a high-end phone at a competitive price, especially if photography is important to you. As far as I can tell, Honor (which is a brand of Huawei) offers the best value of any major smartphone brand.

How is the Honor brand differentiated from Huawei? When I first came across the brand, it was focused on a cost-conscious, fashion-conscious youth market, and direct selling rather than a big high street presence. It is a consumer brand whereas Huawei is business and consumer. At the London launch, the consumer focus is still evident, but I got the impression that the company is broadening its reach, and the deal with Three and sale through other major retailers shows that Honor does now want to be on the high street.

image

What follows is a quick first impression. At the launch, Honor made a big deal of the phone’s multi-layer glass body, which gives a 3D radiant effect as you view the rear of the phone. I quite like the design but in this respect it is not really all that different from the glass body of the (excellent) Honor 8, launched in 2016. I also wonder how often it will end up hidden by a case. The Honor 10 AI is supplied with a transparent gel case, and even this spoils the effect somewhat.

The display is great through, bright and high resolution. Reflectivity is a problem, but that is true of most phones. Notable is that by default there is a notch at the top around the front camera, but that you can disable this in settings. I think the notch (on this or any phone) is an ugly feature and was quick to disable it. Unfortunately screenshots do not show the notch so you will have to make do with my snaps from another phone:

With notch:

image

Without notch:

image

The camera specs are outstanding, with dual rear lens 24MP + 16MP, and 24MP front. At the launch at least half the presentation was devoted to the photography, and in particular the “AI” feature. The Honor 10 has an NPU (Neural Processing Unit), which is hardware acceleration for processes involved in image recognition. All smartphone cameras do a ton of work in software to optimize images, but the Honor 10 should be faster and use less power than most rivals thanks to the NPU. The AI works in several ways. If it recognises the photo as one of around 500 “scenarios”, it will optimize for that scenario. At a detail level, image recognition will segment a picture into objects it recognises, such as sky, buildings, people and so on, and optimize accordingly. For example, people get high priority, and especially the person who is the subject of a portrait. It will also segment the image of a person into hair, eyes, mouth and so on, for further optimisation.

What is optimisation? This is the key question. One of the AI effects is bokeh (blurring the background) which can be a nice way to make a portrait. On the other hand, if you take a picture of someone with the Niagara Falls in the background, do you really want it blurred to streaks of grey so that the picture might have been taken anywhere? It is a problem, and sometimes the AI will make your picture worse. I am reserving judgment on this, but will do another post on the subject after more hands-on.

Of course you can disable the AI, and in the Pro camera mode you can capture RAW images, so this is a strong mobile for photography even if you do not like the AI aspect. I have taken a few snaps and been impressed with the clarity and detail.

24MP for the front camera is exceptional so if selfies are your thing this is a good choice.

You have various options for unlocking the device: PIN, password, pattern swipe, fingerprint, proximity of Bluetooth device, or Face Unlock. The fingerprint reader is on the front, which is a negative for me as I prefer a rear fingerprint reader that lets you grab the device with one hand and instantly unlock. But you can do this anyway with Face Unlock, though Honor warns that this is the least secure option as it might work with a similar face (or possibly a picture). I found the Face Unlock effective, even with or without spectacles.

The fingerprint scanner is behind glass which Honor says helps if your finger is wet.

There are a few compromises. A single speaker means sound is OK but not great; it is fine through headphones or an external speaker though. No wireless charging.

Geekbench scores

image

image

PC Mark scores

image

So how much has performance improved since the Honor 8 in 2016? On PCMark, Work 2.0 performance was 5799 on the Honor 8, 7069 on the 10 (+21%). Geekbench 4 CPU scores go from 5556 multi-core on the 8 to 6636 on the 10 (+19.4%).  The GPU though is more substantially improved, 4728 on the 8 and 8585 on 10 (+81.5%). These figures take no account of the new NPU.

First impressions

I must confess to some disappointment that the only use Honor seems to have found for its NPU is photo enhancement, important though this is. It does not worry me much though. I will report back on the camera, but first impressions are good, and this strikes me as a strong contender as a high-end phone at a mid-range price. 128GB storage is generous.

Spec summary

OS: Android 8.1 “Oreo” with  EMUI (“Emotion UI”) 8.1 user interface

Screen: 5.84″ 19:9, 2280p x 1080p, 432 PPI, Removeable notch

Chipset: Kirin 970 8-core, 4x A73 @ 2.36 GHz, 4x A53 @ 1.84 GHz

Integrated GPU: ARM Mali-G72MP12 746 MHz

Integrated NPU (Neural Processing Unit): Hardware acceleration for machine learning/AI

RAM: 4GB

Storage: 128GB ROM.

Dual SIM: Yes (nano SIM)

NFC: Yes

Sensors: Gravity Sensor, Ambient Light Sensor, Proximity Sensor, Gyroscope, Compass, Fingerprint sensor, infrared sensor, Hall sensor, GPS

WiFi: 802.11 a/b/g/n/ac, 2.4GHz/5GHz

Bluetooth: 4.2

Connections: USB 2.0 Type-C, 3.5mm headphone socket

Frequency bands: 4G LTE TDD: B38/B40/B414G LTE FDD: B1/B3/B5/B7/B8/B19/B203G WCDMA: B1/B2/B5/B8/B6/B192G GSM: B2/B3/B5/B8

Size and weight: 149.6 mm x 71.2 mm  x 7.7 mm, 153g

Battery: 3,400 mAh,  50% charge in 25 minutes. No wireless charging.

Fingerprint sensor: Front, under glass

Face unlock: Yes

Rear camera: Rear: 24MP + 16MP Dual Lens Camera,F1.8 Aperture.

Front camera: 24MP

Chromebooks get more useful as Linux comes to Chrome OS

At Google’s IO conference under way in San Francisco, the company has announced the ability for a Chromebook to run Linux applications.

image

“Support for Linux will enable you to create, test and run Android and web app for phones, tablets and laptops all on one Chromebook. Run popular editors, code in your favourite language and launch projects to Google Cloud with the command-line. Everything works directly on a Chromebook,” says product manager Ton Buckley. “Linux runs inside a virtual machine that was designed from scratch for Chromebooks. That means it starts in seconds and integrates completely with Chromebook features. Linux apps can start with a click of an icon, windows can be moved around, and files can be opened directly from apps.”

Squinting at the screen in Google’s photo, above, it looks like the Linux VM runs Debian.

Coupled with the existing ability to run Android apps, the announcement makes Chromebooks more attractive for users (and I am one of them) who would previously have found the operating system too restrictive.

Buckley presents the new feature as primarily one for developers. You will be able to build and test Android applications directly on the Chromebook. Given the operating system’s native support for Android, this should be an excellent machine for Android development.

One of the first things I would install would be Visual Studio Code, presuming it runs OK. Thanks to .NET Core, ASP.NET development should work. The LAMP stack running locally would be great for  PHP development.

Personally I would not only use it for coding though. The ability to run LibreOffice would be great, for example. There are also a ton of handy Linux utilities for admins.

Top feature: security

The key attractions of Chromebooks (aside from low prices from OEM vendors) is security. They are popular in education for this reason. They require less management than PCs because the operating system is locked down and self-patching. The new feature should not compromise security too much, because Linux runs in a VM and in the worst case resetting the VM should clear any malware – though access to user documents could make malware running in the VM quite disruptive.

Apple’s iPad Pro is another capable device with a locked down OS, but does not run Linux applications.

What about Windows? Microsoft has tried and so far failed to lock down Windows in a manner acceptable to its customers. Windows RT was the first attempt, but users found it too restrictive, partly because the Windows 8 app ecosystem was so weak. Windows S is another attempt; but progress is slow. Microsoft has also weakened the security of its modern app platform to make it more capable, even to the extent of allowing desktop applications into the Windows Store. The approach taken by Apple and Google, to design a new secure operating system and make it gradually more capable, is more viable than Microsoft’s work in the opposite direction.

Microsoft needs to fix its Android emulator

Microsoft wants Windows 10 to be an ideal developer operating system, with its Linux subsystem, and Visual Studio 2017 is notable for its strong cross-platform development tools.

There is an annoyance though. Google’s Android SDK includes an emulator for debugging mobile applications, but it requires hardware acceleration in the form of Intel’s HAXM (Hardware Accelerated Execution Manager). Otherwise you get an error as below:

image

Unfortunately this is incompatible with Hyper-V, the hypervisor built into Windows. You cannot fix this by stopping Hyper-V services; it is set when Windows boots.

Hyper-V is increasingly important for general Windows developers. It is not only useful for running up VMs on which to test stuff, but also for the official Docker tools and testing Windows containers.

The solution should be to use the Visual Studio Emulator for Android. This is based on Hyper-V so no problem.

Unfortunately it does not currently work very well. On one of my PCs it starts, but without internet connectivity, rendering it useless for many apps. On another PC it does not start at all.

image

I spent a bit of time trying to get it to work. The networking problem seems to be related to conflicts with other applications using Hyper-V. Specifically, the Visual Studio Emulator for Android uses two Hyper-V virtual network adapters, one connected to the Windows Phone Emulator Internal Switch, and the other connected to an external virtual switch. This second adapter gets its network settings using DHCP (there is no way to change this). The emulator app proxies internet connections from the internal to the external network.

The reference to Windows Phone comes about because this is essentially the Windows Phone emulator adapted to run Android.

In my Hyper-V setup I have another internal switch, called DockerNAT, used by the Docker tools, as well as a third internal switch which I’ve used for other things. In the emulator’s network settings I can actually see four Desktop Adapters (in addition to the primary “Emulator adapter”, of which only one has internet connectivity via my business network. I theorised that the emulator is attempting to proxy via the wrong adapter, and disabled the others in Control Panel – Network Connections. However it still does not connect.

Judging by posts like this and this, there may be some cocktail of settings in Hyper-V and in Control Panel that gets this working. Bear in mind though that I want everything else to work too.

I also note that Windows developer evangelist Scott Hanselman suggests setting up a dual boot arrangement so that you can boot with HAXM enabled when you want to develop on Android, and with Hyper-V otherwise – implying that there is no other easy fix.

This works, though it is a dreadful solution. Rebooting is not only time-consuming, but disruptive to the flow of your work, and having to reboot with special settings just to work on Android is painful.

It strikes me that this could be fixed with a bit of effort. If Microsoft is serious about persuading developers to use Windows 10, Visual Studio and Xamarin for cross-platform mobile apps, that would be a good idea.

Sweetlabs Android App Services: what is it?

Margins on smartphones are thin, which is why we regularly hear commentary about how only Apple and Samsung are making any money from them. Vendors therefore look for other ways to monetize their business, though it is never easy, and there are plenty of examples of failed music stores and other premium services. Google can always make money, through Play Store revenue, ads served via Search, and monetizing the data it collects. But what of the smartphone vendors?

One obvious strategy is to pre-install applications, for which the app developer may pay. I say may because without inside knowledge its impossible to tell whether the Facebook app, for example, is pre-installed as a benefit to customers or because Facebook has paid something. Most users would probably install the Facebook app anyway; but fewer would install the Opera web browser, to take another example, so common sense says that if you find Opera pre-installed, it is more likely than Facebook to have paid for the privilege.

On Windows PCs, which also suffer from low margins, the pressure on manufacturers to make money from pre-installed applications has had a dire affect, significantly reducing the appeal of the product. At worst, you can pay good money for a PC, turn it on for the first time, and be greeted by a flurry of dialogs inviting you to install this or subscribe to that, along with warnings that your new purchase is “not protected”. Apple has never allowed this of course, which is one of the attractions of Macs. Another consequence was that Microsoft introduced its own brand of PC, Surface, and opened stores selling “signature” editions of PCs on which most of the foistware is absent.

The situation on Android should never be as bad. The operating system has a modern design, which means that applications are isolated and cannot cause as much damage as on Windows. If an application that you do not want is installed, it is easy to remove.

Even so, pre-installed apps on Android do introduce clutter and confusion, especially when combined with the constant requests for various types of permission which characterise the initial setup experience. I imagine that many users simply agree to everything, since the consequences of denying permission are rarely clear, and most want their new device to “just work.”

Sweetlabs is a company which specialises in monetizing app installs on Windows as well as Android. On Windows it is best known for the Pokki app store. Sweetlabs does not always present its brand overtly to users. Users are not its customers after all; its customers are app developers and smartphone vendors.

I reviewed a smartphone recently, and soon after switching on for the first time, I saw a notification inviting me to “Complete device setup” and to “Allow App Services to push messages to the n…” (I am still not sure what is the cut-off word):

If you tap this notification an app installer opens, presenting a small selection of apps categorised as either “Essentials” or “Entertainment”. You are meant to select the apps you want and then tap Finish to have those apps install, agreeing the terms and conditions as you do. Once you tap Finish, the notification disappears, though I noticed that the Sweetlabs service continues to run in the background:

image

My understanding is that the service continues to run because at some future date more apps may become available. The Sweetlabs site talks about promoting apps through “multiple customer-facing touchpoints, including white-label apps and widgets that integrate into the out-of-box experience and persist through the lifetime of the device.” This can include a Featured Apps widget on the home screen that recommends apps “over the lifetime of the device.”

Is this a good or bad thing? The answer is nuanced. I dislike the way the notification implies that these optional app install are part of device setup; it is not, it is a marketing app. You can get all these apps through the official Play Store and App Services is consuming unnecessary system resources.

On the other hand, if you accept that pre-installing apps is inevitable given the low margins in this business, the Sweetlabs approach has advantages. Instead of simply dumping a bunch of unwanted apps on your device, you can choose which ones you want, if any. Therefore the company promotes itself as a better approach, even presenting itself as a fix for crapware. My review device had pre-installed apps on it as well, though, so it is more a case of putting up with both.

From the perspective of app developers, any service that helps get your app noticed in a beyond-crowded market is a significant benefit. Sweetlabs also offers an app analytics service focused on who is installing your app.

I wrote this post because I did not find much information about App Services when I searched for it after seeing the notification on my review device. If you are wondering whether you need it on your device, the answer is no; it does nothing essential, it is a vehicle for promoting apps, and you can safely disable or remove it. I recommend installing apps from the Play Store instead, where you can see user reviews and other information. It is not really evil though; it may have reduced the price of your smartphone as well as providing app developers another way to get their products noticed.

Honor 8 smartphone first look

I’m just back from Paris and the European launch of the Honor 8 smartphone.

Honor is wholly owned by Huawei though the relationship between the two businesses is a tad opaque. I’ve been told that Honor is run as a separate business focusing on a young internet-oriented market, though there is shared technology (it would be crazy not to). The Honor 8 represents a significant strategy shift in that it is a relatively high-end phone, whereas previous devices have been mid-range or lower.

One of the first things you notice about the Honor 8 though is its similarity to the Huawei P9, launched in Europe in April 2016, is obvious. That is no bad thing, since the P9 is excellent and the Honor 8 cheaper,  but the business strategy is a bit of a puzzle. Honor says its phone is targeting a different market, and it is true that the shiny glass body of the Honor 8, in a pleasing blue shade on my review unit, is jauntier than the grey metallic finish of the P9. The P9 is also a fraction slimmer. Yet the devices are far more alike than different, and I would happily pull out the Honor 8 at a business meeting. The Honor 8 also benefits from a few extra features, like the rear smart key.

The P9 has the benefit of Leica branding and shared technology for its camera. An Honor/Huawei PR person told me that this is a software-only distinction and that if you look at the hardware sensors the two phones are very similar. Should photographers therefore get the P9? Possibly, though for a casual snapper like myself I have not noticed a big advantage. See below for some comparative snaps.

image
The Honor 8 (left) and the Huawei P9 (right).

To get a bit of context, the Honor 8 is being launched at €399 with 4GB RAM and 32 GB storage, or €449 with 4GB RAM and 64GB storage (inc VAT). That should equate to around £345 and £390 in the UK. The P9 was launched at £449 for 3GB RAM and 32GB storage, substantially more, though as ever real-world prices vary, and in practice a P9 today will likely cost only a little more than an Honor 8 if you shop around. The 8-core Kirin processor is the same, and the screen is the same resolution at 1920 x 1080. Both models also feature a dual-lens 12MP rear camera, 8MP front lens, and a rear fingerprint reader.

Out of the box

image

The Honor 8 immediately impressed me as a nicely packaged device. You get headset, charger, USB C cable, SIM removal tool, quick start guide (not much use but does have a diagram showing exactly where to insert dual Nano-SIMs and microSD card) and a couple of stickers for good measure. I am not a fan of the headset which lacks any ear-bud gels so it not secure or comfortable for me, but tastes vary.

The glass body is attractive though shiny and easy to smear. Honor can supply a simple transparent case – more a tray than a case – which will offer a little protection, but most users will want something more.

Switch on and there is the usual Android palaver and confusion over permissions. Here I did notice something I dislike. I got a notification saying I should “complete device setup” and “Allow App Services to push messages”:

image

Rather than tapping Allow, I tapped the notification and found an app installer and an invitation to “Choose the apps that come with your phone”. I tapped to see the EULA (End User License Agreement) and found it was a Sweetlabs app that “facilitates the recommendation, download and installation of third party apps.”

image

This is horrible; it is deceptive in that it is presented as part of system setup and performs no useful function since you can easily install apps from the Google Play store; at least one of the apps offered by Sweetlabs (Twitter) was actually already installed. My opinion of which apps are “Essential” differs from that of Sweetlabs:

image

I did not agree the Terms and Conditions. We have seen this kind of thing before, on Windows, and it is damaging to the user experience. History may repeat with Android.

Other than that, setup was straightforward.

Things to like

Fortunately, there is plenty to like. As on the P9, the fingerprint reader on the back is excellent; in fact, I like this feature so much that I sometimes absent mindedly tap the back of other phones and expect them to unlock for me. On the Honor 8 though, it is even better, since the fingerprint reader is also a “Smart key” which you can configure to open an app or take an action such as starting a voice recording or opening the camera. You can configure up to three shortcuts, for press, double press, press and hold.

image

Another neat feature, also not on the P9, is the Smart Controller. This is a universal infra-red controller app and it seems rather good. I pointed it at a Samsung TV and after trying a few functions it declared a “best match” and seems to work fine.

image 

The camera

The camera is a key selling point for the Honor 8. One lens is RGB, the other monochrome, auto-focus is better with two lenses, and the ISP (Image Signal Processor) takes advantage by recording extra detail. There is also a great feature called Wide Aperture which lets you adjust the focus after the event.

When the camera app is open you can swipe from the left to select a mode. There are 16 modes:

Photo
Pro Photo
Beauty
Video
Pro Video
Beauty Video
Good Food
Panorama
HDR (High Dynamic Range)
Night Shot
Light Painting
Time-lapse
Slow-Mo
Watermark
Audio note
Document Scan

After just one day with the device I have not tried all the modes, but did take a look at Pro Photo which gives you control over the metering mode, ISO sensitivity, shutter speed, exposure compensation, focus mode (automatic or manual), and white balance.

image

These same controls are on the P9 though with a slightly different UI and this causes me to wonder exactly what is the Leica contribution that is on the P9 but not the Honor 8. There are a few extra settings on the P9 if you swipe in from the right, including film mode, RAW mode and a Leica watermark option.

How is the camera in use? I took some snaps and was pleased with the results. I also tried taking a similar picture on the Honor 8 and the P9, and comparing the results:

image
A Paris landmark (P9 left, Honor 8 right)

You can’t tell much from the full view, especially since I’ve resized the images for this post, so here is a detail from the above:

image
Detail view (P9 left, Honor 8 right)

Much difference? Please do not draw conclusions from one snap but these support my impression that the Leica-enhanced P9 takes slightly sharper pictures than the Honor 8, but that a casual user would be happy with either.

Performance

The performance of the Honor 8 seems similar to that of the P9 which I reviewed here. The P9 features a Kirin 955 SoC versus the slightly older Kirin 950 in the Honor 8; the specs are similar. Both have 4 Cortex A72 cores, up to 2.5GHz in the Kirin 255 versus up to 2.3GHz in the Kirin 950. In each case, these are supplemented by 4 Cortex A53 cores at up to 1.8GHz and a quad-core Mali T880 MP4 GPU.

Geekbench 3, for example, reports 1703 single-core score and 6285 multi-core, one figure slightly worse, one slightly better than the P9. A run with PC mark came up with a Work Performance Score of 5799, below the P9 at 6387, with the difference mainly accounted for by a poor “Writing score”; other scores were slightly ahead of the P9, so something may be sub-optimal in the text handling and scrolling.

image

Conclusion

I do like this phone; it looks good, feels responsive, and comes with some distinctive features, including the superb fingerprint reader, dual lens rear camera, smart key and smart controller. It does not seem to me to be a young person’s phone particularly, and I can see some people choosing it over a P9 not only for its lower price but also for a couple of extra features. Photographers may slightly prefer the P9, which also has a fractionally slimmer body and a more elegant, understated appearance. In the general phone market, the Honor 8 is competitively priced and well featured; I expect it to do well.

How to run Android Studio on Windows without disabling Hyper-V

Update: This post is out of date; you may still be able to get it to work but there are stability issues with the emulator. Microsoft has announced a better solution, if you are on the latest Windows 10 April 2018 Update or later, and you can now use the official Android emulator with Hyper-V. See also my more recent post here.

Original post:

If you run Windows and use the Hyper-V hypervisor, which is used by Visual Studio as well as being handy for testing stuff in virtual machines, then you will encounter an annoyance if you go on to install Android Studio, Google’s official IDE for Android.

The problem is that Google’s Android emulator uses Intel’s HAXM (Hardware Accelerated Execution Manager) which uses the same CPU virtualization extensions as Hyper-V. This means it is incompatible. It is not only that you can’t run Hyper-V and HAXM simultaneously; the PC has to be configured at boot to use one or the other.

The solution (if you do not want to disable Hyper-V) is to use Microsoft’s Android emulator, which is a free download here.

image

In order to use this with Android Studio, you need to run the emulator first. Then, in Android Studio, go to Run – Edit Configurations and select Show Device Chooser Dialog under Deployment Target Options.

image

Now run your project, and select the VS Emulator, ignoring the invitation to “Turn off Hyper-V”:

image

Now you can debug your application in the Visual Studio Emulator – which is pretty good.

image

Huawei P9 smartphone launched in London: first look review

I attended the launch of Huawei’s P9 and P9+ smartphone range in London. This was a global launch from a Chinese company which, like Xiaomi with its impressive presentation at Mobile World Congress, is intent on competing at the high end of the market.

image

Huawei also has an important edge over Xiaomi in that its P9 range will be available shortly; from Huawei’s vMall online store in mid-April, or from various UK operators in “early May”.

The review sample came in a smart box with charger, USB type C cable, and white earbuds/headset:

image

Insert micro-SIM, switch on, and the start-up experience I would describe as “reasonable for Android”, with a flurry of pop-ups asking for various permissions and agreements to terms and privacy policies; pretty ugly and hard to make sense of, but for this review I tapped OK to agree to most things in order to get what I guess is the normal experience.

I was also prompted to set up the fingerprint reader. This requires several readings of your finger and works well for me. Just touching my right finger on the back will unlock the phone. The phone storage is encrypted by default.

Design-wise, Huawei tried to persuade of the merits of “aerospace-class aluminium”, “diamond-cut edges”, “brushed hairlines” and the like; but while it is decent enough it does not strike me as exceptionally beautiful or nice to hold; of course tastes vary. It is thin and the edges are narrow to maximise the screen space. I am impressed that the designers squeezed a 3000 mAh battery into such a slim, light device.

The camera

Every smartphone needs some differentiation. Huawei has focused (ha!) on the camera. The P9 has a dual lens and the camera is designed in partnership with Leica, a well known and respected brand among professional photographers.

image
The back of the P9 showing the dual-lens camera and fingerprint reader.

Both lenses are described as “Leica Summarit”, one 12MP camera is colour and the other monochrome. Dual lenses can help with focus, and in addition Huawei say that the monochrome lens adds detail to an image. You can also take monochrome pictures of course, and this was used to good effect in some of the samples by professional photographers we were shown. Of course you can easily convert any colour image from any camera to monochrome; perhaps the results from a specialist camera are superior.

Huawei also states that dual cameras mean more light and detail in low-light conditions, which absolutely makes sense.

A hybrid focus feature uses “laser, depth calculation, and contrast” and automatically selects the best result, says Huawei.

I have not been trying the P9 for long, but did take roughly the same picture with the P9 and with the Lumia 1020 (the latter famous for its 40MP camera). All settings were default. The P9 is top, the Lumia below, slightly cropped and then reduced in resolution (click for a double-size image):

image 

image

The P9 is more vivid and probably most people would prefer it. Here is a zoomed in detail, with the P9 at full resolution and the Lumia reduced to match:

image

image

Of course I am not a professional photographer, nor was I using a tripod; but this is how I use a camera on a phone. My feeling is that the Lumia still comes out well for close detail and I am sorry that Microsoft has not come out with a true successor to the 1020, which will be three years old in July. The sad story of Windows Phone at Microsoft is not the subject of this post however.

There is much more to the P9 camera though. Here is a look at the settings:

imageimage

When the camera is open,  there are buttons across the top to control flash, wide aperture (for close-up shots), filter effects, and switching between rear and front (8MP) cameras.

The wide aperture option enables a remarkable feature: the ability to re-focus after taking the shot. Simply take the picture with the wide aperture option. It will be then show up in the Gallery with an aperture icon overlay. Tap the image to open it, then tap the aperture icon below the image.

Now you are in “wide aperture effects” mode. Tap any part of the image to focus on that spot, and enable a slider to vary the aperture after the event.

It really works:

image

Now tap the out of focus tulip…

image

This is magic and a lot of fun.

You can swipe up for Pro controls:

image

In order to get full use of these options (and indeed the rest of the phone) you probably want to download the manual. The Pro controls are (left to right): metering mode (how exposure is set), ISO, Shutter speed, exposure compensation (brightness), focus mode and white balance.

Swipe left for a selection of special camera modes:

image

There is also some fancy stuff like voice activated shooting (say “cheese” to take a photo). You can do burst shooting to take a rapid sequence of shots, with the best couple auto-selected. You can take rapid shots (capture the moment) by pressing volume down twice; the screen does not light up immediately but the shot is taken. I got a time from press to photo of about one second using this mode.

Video resolution is a maximum of 1080p, 60 fps, with stereo sound recording.

All things considered, this is an excellent camera, which is why Huawei handed out a book of professional photos taken with the device, which look superb.

Performance

The P9 feels fast and responsive. Huawei mentioned a file system optimization which increases performance but I have not got details of this.

I got a PC Mark score of 6387.

image

This is ahead of the Samsung Galaxy S7, which scores 5926. Another mobile which is to hand, a budget Cubot with a quad code 1.3 GHz Mediatek, scores 3223.

On Geekbench 3 I got a score of 1725 single-core and 6087 multi-core. This compares to 2170 and 6360 for the Galaxy S7, so it falls behind slightly.

A bit more detail:

image

image

The biggest difference versus the S7 is in the graphics. The P9’s Mali T880 is not quite the equal of the S7’s Exynos 8890 (on UK models).

Audio

A few notes on the audio side. There are a couple of annoyances, one being that the default music app is not much use to me (I use Spotify or Google Play on Android). The supplied headset is disappointing, with no rubber gel so the fit is rather insecure, and a rather bright sound with little bass. No matter, you can use your own headset; and plugging in a high-quality headset left me with no complaints.

The other good news is that the on-board speakers are remarkable. I can put the phone down, play some music, and really enjoy it. Bass is unusually good considering the lack of a proper speaker enclosure, and clarity is excellent.

Pricing

Let’s get some pricing context. The P9 is a flagship device, though from a company not perceived as a premium brand, and is priced accordingly. At £449 for the cheaper, smaller model it is about 20% less than a Samsung Galaxy S7, and about 27.5% less than an Apple iPhone 6S. It is good value considering the hardware, but not a casual purchase. Here is a table

  RAM Storage Size Screen CPU Battery Special features Price
Huawei P9 3GB 32GB 5.2″ 1920 x 1080 8-Core
2.5 GHz
3000 mAh Dual lens camera
Fingerprint
Reader
£449
Huawei P9+ 4GB 64GB 5.5″ 1920 x 1080 8-Core
2.5 GHz
3400 mAh Dual lens camera
Fingerprint
Reader
£549
Samsung
Galaxy S7
4GB 32GB 5.1″ 1440 x 2560 8-Core
2.3 GHz
3000 mAh IP68 Water resistance
Wireless charging
Gear VR
KNOX security
Fingerprint Reader
£569
Samsung Galaxy S7 Edge 4GB 32GB 5.5″ 1440 x 2560 8-Core
2.3 GHz
3600 mAh IP68 Water resistance
Wireless charging
Gear VR
KNOX security
Fingerprint Reader
£639
Apple iPhone 6S 2GB From 16GB 4.7″ 1334×750 2-Core 1.85 GHz
64-bit A9
1715 mAh Fingerprint sensor from
£539
Apple iPhone 6s Plus 2GB From 16GB 5.5″ 1920×1080 2-Core 1.85 GHz
64-bit A9
2750 mAh Fingerprint sensor from
£619
Apple iPhone SE 2GB From 16GB 4″ 1136×640 2-Core 1.85 GHz
64-bit A9
1624 mAh Fingerprint sensor from £359

The table above comes with a number of caveats. It doesn’t cover all the important specifications, it doesn’t tell you about the quality of materials or design, and some details, like the amount of storage, vary depending on the exact offer. The prices are for unlocked phones, whereas most people buy on contract. Apple’s prices tend to be higher than shown, because who wants just 16GB non-expandable storage? With 64GB the 6Se goes up to £439 and the 6S to £619.

First look conclusion

A couple of days with this phone leaves me convinced that Huawei has come up with a true high-end device at a very reasonable price. The camera is outstanding in terms of features though having been spoilt with the Lumia 1020 I would like a bit more than 12MP; I realise though that counting pixels is no way to judge a camera.

On the software side I note that the out of box experience on Android is not great, thanks to incessant permission pop-ups and confusing alternatives for things like music and email. Samsung’s apps are a bit better I think; but if you mostly live in Google apps or other favourite third-party apps, you will not care too much. Everything I have tried so far has worked.

The usefulness of the fingerprint reader is a pleasant surprise, as is the sound quality from the built-in speakers.

For sure the P9 is well worth considering if you are looking for an Android mobile with great performance and an interesting camera. It is excellent value for price/performance.

I think Samsung should worry a bit, not just about Huawei, but about other Chinese vendors with aggressive marketing plans, such as Xiaomi. Apple? On the train back I spoke to a passenger using an iPhone and asked whether she would switch to a mobile that was both better (in hardware terms) and cheaper. No, she said, because everything syncs between my phone, iPad and computer. Of course she could switch to Android and get similar synching with apps from other vendors; but I got the impression she is happy to stay in Apple’s world where stuff (more or less) just works. In this respect, it doesn’t help that each Android vendor wants to make their mark with distinctive apps; for many users that is just additional complication (I have declined to set up a Huawei ID, despite being prompted).

An impressive device though, and a clear statement of intent from Huawei.

Compile Android Java, iOS Objective C apps for Windows 10 with Visual Studio: a game changer?

Microsoft has announced the ability to compile Windows 10 apps written in Java or C++ for Android, or in Objective C for iOS, at its Build developer conference here in San Francisco.

image
Objective C code in Visual Studio

The Android compatibility had been widely rumoured, but the Objective C support not so much.

This is big news, but oddly the Build attendees were more excited by the HoloLens section of the keynote (3D virtual reality) than by the iOS/Android compatibility. That is partly because this is the wrong crown; these are the Windows faithful who would rather code in C#.

Another factor is that those who want Microsoft’s platform to succeed will have mixed feelings. Is the company now removing any incentive to code dedicated Windows apps that will make the most of the platform?

Details of the new capabilities are scant though we will no doubt get more details as the event progresses. A few observations though.

Microsoft is trying to fix the “app gap”, the fact that both Windows Store and Windows Phone Store (which are merging) have a poor selection of apps compared to iOS or Android. Worse, many simply ignore the platforms as too small to bother with. Lack of apps make the platforms less attractive so the situation does not improve.

The goal then is to make it easier for developers to port their code, and also perhaps to raise the quality of Windows mobile apps by enabling code sharing with the more important platforms.

There are apparently ways to add Windows-specific features if you want your ported app to work properly with the platform.

Will it work? The Amazon Fire and the Blackberry 10 precedents are not encouraging. Both platforms make it easy to port Android apps (Amazon Fire is actually a version of Android), yet the apps available in the respective app stores are still far short of what you can get for Google Android.

The reasons are various, but I would guess part of the problem is that ease of porting code does not make an unimportant platform important. Another factor is that supporting an additional platform never comes for free; there is admin and support to consider.

The strategy could help though, if Microsoft through other means makes the platform an attractive target. The primary way to do this of course is to have lots of users. VP Terry Myerson told us that Microsoft is aiming for 1 billion devices running Windows 10 within 2-3 years. If it gets there, the platform will form a strong app market and that in turn will attract developers, some of whom will be glad to be able to port their existing code.

The announcement though is not transformative on its own. Microsoft still has to drive lots of Windows 10 upgrades and sell more phones.

Delphi and RAD Studio 2015 roadmap: no Universal Apps?

Embarcadero has posted a roadmap for RAD Studio 2015, its suite of tools for building apps for Windows, Mac, iOS and Android.

Note that the company says the (sketchy) plans outlined are “not a promise, or a contract”.

I will be interested to see if the company intends to support the Windows 10 Universal App Platform (UAP), which Microsoft is pushing as the future of Windows client app development. UAP apps run on the Windows Runtime, a sandboxed environment introduced in Windows 8. In Windows 10, UAP apps are integrated with the Windows desktop, and run on Windows Phone and Xbox as well as on PCs and tablets.

When Window 8 came out, Embarcadero came up with a project type called “Metropolis”, which simulated the Windows 8 Metro environment but with a Win32 executable. It was neither one thing nor the other, and mostly ignored as far as I can tell. That said, lack of support for Windows 8 Store apps proved to be no big deal, because of the low take-up for the platform in general. At this stage, nobody knows whether the UAP may be similarly unsuccessful, though it seems to me that it has a better chance thanks to its broader scope and changes that have been made.

The roadmap promises “Integration with new Windows 10 platform technologies” but does not promise support for the Windows Runtime or UAP, so my assumption for the moment is that Embarcadero is steering clear for the time being. There may also be technical challenges.

Not much new is promised for the venerable VCL (Windows-only apps), and only a little more for the cross-platform FireMonkey: new mobile components including Maps, a WebBrowser component for desktop apps, and more iOS platform (real native) controls.

A new iOS 64-bit compiler is promised, as well as moving the Win32 compiler to an LLVM-based toolchain, as is already the case for 64-bit Windows.

There is an Internet of Things slide which promises “mobile proximity integration” and components for connecting to different devices. Exactly what is new compared to the IoT support described here for XE7 is not clear to me.

Under consideration, Embarcadero says, is Linux server-side support for its middle-tier technologies like DataSnap, support for Intel Android, and a 64-bit toolchain for Mac OS X.

Since it is on SlideShare, I can embed the whole thing here:

This is some help I guess; though I recall much past angst expressed on the Embarcadero forums about these roadmaps, or the lack/lateness of them. The problem, I guess, is that roadmaps are of little benefit to the tools vendors, since they have potential to fuel discontent, set expectations that may later prove unrealistic, and give away plans to competitors.

This may explain why this one has so little content. Embarcadero could work a bit harder on the presentation as well; this really does not have the look of being the exciting next generation of a powerful cross-platform toolkit.