Tag Archives: ios

Telerik Icenium: new desktop and cloud IDE for mobile development

When I heard that Telerik is bringing out a new IDE for mobile app development, I could contain my excitement, especially after learning that it is another PhoneGap/Cordova based approach, wrapping JavaScript and HTML as a native app. While speaking to Telerik’s Doug Seven though, I found myself increasingly impressed.

If that name sounds familiar, it might be because Seven was a director of Product Management in the Visual Studio team at Microsoft, and you can see that influence in the new IDE, which is called Icenium. Spot the Metro-style buttons at top left of the IDE!

image

Icenium has several components. There is a Windows IDE called Graphite, illustrated above. Those on other platforms, or in distributed teams, can use Mist, which is a browser-based IDE which replicates many of the features of Graphite. There is also a set of cloud-based services to handle building apps for iPhone, iPad and Android devices. This means you do not need to install all the necessary SDKs on your own machine. Icenium also lets developers build signed iOS packages without needing to have a Mac.

The Icenium Device Simulator lets you test applications quickly on your own machine.

image

The tools look good, though I have not tried them yet, but the unique feature of Icenium is the ability to deploy and test quickly on multiple devices. Code is kept synchronized between Graphite and Mist, and also pushed out though LiveSync to multiple devices. Here is a snap of the view from Doug Seven’s desk, grabbed from his online presentation. He showed me how a code change ripples almost instantly to all these devices for testing.

image

An intriguing part of this is an iOS app called Ion which is a sort of runtime shell for Icenium apps. This means you can load apps for testing onto iOS devices that are not unlocked for developer use. You can also demonstrate apps on a client’s device using Ion. Apple’s attitude to runtimes in the App Store must be softening.

Icenium supports version control using either a Git repository hosted on the service, or your own choice of URL-based Git repositories.

Pricing will be per-developer at $16.00 per month if you sign up for a year, or $19.00 per month without a contract. Once you sign up, you can use all the tools on all your machines. You can also use Telerik’s Kendo UI Mobile framework. It is free until May 1 2013.

Isn’t Icenium’s cloud build feature similar to what Adobe’s PhoneGap Build already does?

“It’s a great comparison,” says Seven. “Adobe has the technology to make this [seamless development experience] possible, they just chose not to do it … [PhoneGap Build] is not integrated into the workflow. It’s a very manual process, I have to zip up my files, submit them to the PhoneGap Build process, then I get back these application packages that I have to manually deploy to my devices to see if it works.”

There is no support yet for mobile web apps, as opposed to apps packaged with Cordova, but this is a possibility for the future.

Like Adobe, Telerik has found WebKit and Google Chrome irresistible, despite Seven’s Microsoft background. WebKit is embedded in the Graphite IDE. You can use Mist with any modern browser, though “the one limitation is that the browser-based device simulator does require Chrome,” though he add that in general, “I use Mist on my iPad all the time.”

Which online storage service? SkyDrive is best value but lacks cool factor

This week both Microsoft and Google got their act together and released Dropbox-like applications for their online storage services, SkyDrive and Google Drive respectively.

Why has Dropbox been winning in this space? Fantastic convenience. Just save a file into the Dropbox folder on your PC or Mac, and it syncs everywhere, including iOS and Android mobiles. No official Windows Phone 7 client yet; but nothing is perfect.

Now both SkyDrive and the new Google Drive are equally convenient, though with variations in platform support. Apple iCloud is also worth a mention, since it syncs across iOS and Mac devices. So too is Box, though I doubt either Box or Dropbox enjoyed the recent launches from the big guys.

How do they compare? Here is a quick look at the pros and cons. First, pricing per month:

  Free 25GB 50GB
Apple iCloud 5GB $3.33 $8.33
Box 5GB $9.99 $19.99
Dropbox 2GB   $9.99
Google Drive 5GB $2.49 $4.99 (100GB)
Microsoft SkyDrive 7GB $0.83
(27GB)
$2.08
(52GB)

and then platform support:

  Web Android Black
berry
iOS Linux Mac Windows Windows
Phone
Apple iCloud X X X Limited X
Box X X
Dropbox X
Google Drive X X X
Microsoft SkyDrive X X X

Before you say it though, this is not really about price and it is hard to compare like with like – though it is obvious that SkyDrive wins on cost. Note also that existing SkyDrive users have a free upgrade to 25GB if they move quickly.

A few quick notes on the differences between these services:

Apple iCloud is not exposed as cloud storage as such. Rather, this is an API built into iOS and the latest OS X. Well behaved applications are expected to use storage in a way that supports the iCloud service. Apple’s service takes care of synchronisation across devices. Apple’s own apps such as iWork support iCloud. The advantage is that users barely need to think about it; synchronisation just happens – too much so for some tastes, since you may end up spraying your documents all over and trusting them to iCloud without realising it. As you might expect from Apple, cross-platform support is poor.

Box is the most expensive service, though it has a corporate focus that will appeal to businesses. For example, you can set expiration dates for shared content. Enterprise plans include Active Directory and LDAP support. There are numerous additional apps which use the Box service. With Box, as with Dropbox, there is an argument that since you are using a company dedicated to cross-platform online storage, you are less vulnerable to major changes in your service caused by a change of policy by one of the giants. Then again, will these specialists survive now that the big guns are all in?

Dropbox deserves credit for showing the others how to do it, Apple iCloud aside. Excellent integration on Mac and Windows, and excellent apps on the supported mobile platforms. It has attracted huge numbers of free users though, raising questions about its business model, and its security record is not the best. One of the problems for all these services is that even 2GB of data is actually a lot, unless you get into space-devouring things like multimedia files or system backups. This means that many will never pay to upgrade.

Google Drive presents as a folder in Windows and on the Mac, but it is as much an extension of Google Apps, the online office suite, as it is a storage service. This can introduce friction. Documents in Google Apps appear there, with extensions like .gdoc and .gsheet, and if you double-click them they open in your web browser. Offline editing is not supported. Still, you do not have to use Google Apps with Google Drive. Another issue is that Google may trawl your data to personalise your advertising and so on, which is uncomfortable – though when it comes to paid-for or educational services, Google says:

Note that there is no ad-related scanning or processing in Google Apps for Education or Business with ads disabled

Google Drive can be upgraded to 16TB, which is a factor if you want huge capacity online; but by this stage you should be looking at specialist services like Amazon S3 and others.

Microsoft SkyDrive is also to some extent an adjunct to its online applications. Save an Office 2010 document in SkyDrive, and you can edit it online using Office Web Apps. Office Web Apps have frustrations, but the advantage is that the document format is the same on the web as it is on the desktop, so you can also edit it freely offline. A snag with SkyDrive is lack of an Android client, other than the browser.

Conclusions

There are many more differences between these services than I have described. Simply though, if you use a particular platform or application such as Apple, Google Apps or Microsoft Office, it makes sense to choose the service that aligns with it. If you want generic storage and do not care who provides it, SkyDrive is best value and I am surprised this has not been more widely observed in reports on the new launches.

One of Microsoft’s problems is that is perceived as an old-model company wedded to the desktop, and lacks the cool factor associated with Apple, Google and more recent arrivals like Dropbox.

Apple breaks web storage in iOS 5.1, does not care about web apps?

Many iOS apps which rely on web storage APIs for persistent data have been broken by the recent upgrade to iOS 5.1. The issue affects apps built with PhoneGap or others which use WebKit APIs to store data. The affect for users is that they lose all their data after the upgrade. For example, it sounds like the issue has hit this app:

image

Another developer says:

My statistics show users abandoning ship as their settings are wiped over and over, after each app restart.
This is a critical error that must be patched as soon as possible. Remember there’s also a delay from Apples app approval process to consider.

Put more precisely, WebKit used to store its local databases in Library/WebKit which is a location that the OS regards as persistent and which is backed up to iCloud. In iOS 5.1 this data is stored in Library/Caches which means it is regarded as temporary and likely to be deleted. The W3C Candidate Recommendation says of localStorage:

User agents should expire data from the local storage areas only for security reasons or when requested to do so by the user.

An embedded browser is not quite the same as a web browser though, and if you are using SQLite in Webkit then that falls outside the W3C HTML 5 API since Web SQL is no longer included.

The issue is complicated in that there also seems to be a bug, described here, which causes data to be lost after upgrading an app to a newer version; and there are problems with actual web apps as well as with apps that use an embedded UIWebView.

PhoneGap is fixable in that it can call native APIs and there is work going on to implement this. The danger is that more platform-specific code undermines the cross-platform benefits.

Discussions on the Apple developer forums during the beta period for 1OS 5.1 show that Apple was aware of the issue and that it is by design. The impression given is that Apple was annoyed by the number of apps using web storage to speed up their apps (whether web or native) rather than just storing customer-created content, and felt it was imposing too much burden on the constrained storage space in an iOS device.

It does not help that there is no way to increase the storage in an iPad or iPhone other than by replacing it with a newer one with more memory.

The problem is a real one, but you cannot escape the impression that Apple considers solutions like PhoneGap, or even web apps that behave like local apps, as a kind of workaround or hack that is to be discouraged in favour of apps written entirely with the iOS SDK.

Apple benefits from true native apps as they are more likely to be exclusive to its platform, and must be sold through the App Store with a fee to Apple.

The official Data Storage Guidelines for iOS are here.

PCs down, Android up: astonishing figures from Gartner show shift to mobile

Want to know why Apple is suing Samsung over Android, or why Microsoft is re-imagining Windows as a touch-friendly mobile OS? Look no further than Gartner’s latest report on European and worldwide sales in the third quarter of 2011.

First, this release shows PC sales in Western Europe, not helped by HP’s dithering over what to do with its PC division. Total shipments declined by 11.4%. Apple increased its unit share by 19.6% to 7.6%, which would be greater when measured by value since its computers command the highest prices, but still small relative to the entire desktop and notebook market. Netbook sales declined by 40%, presumably because people are buying Apple iPads instead. “Media tablets” including the iPad are not included in these figures.

Next, take a look at worldwide sales of mobile devices. Units are up 5.6% year on year, to over 4.4m devices in the latest quarter.

Then at the operating system breakdown for smartphones (115m devices). The operating system in features phones does not much matter. Android grabbed an amazing 52% of sales (from 25% a year earlier), versus Apple’s 15%. Gartner thinks Apple’s decline is a blip cause by customers waiting for iPhone 4S, but this is still an extraordinary result for Android. Symbian is down from 36.3% to 16.9% (the “burning platform”); RIM is down from 15.4% to 11%; Microsoft is down from 2.7% to 1.5% – is that burning any less?

It would be remarkable if Microsoft’ share does not increase at least a little in the fourth quarter, with the launch of Nokia’s Lumia and much more promotional activity, but on these figures it needs a miracle.

Quick thoughts on Xcode and Objective C versus Microsoft’s tools

I have been trying out JetBrains’ AppCode which meant working in an Apple development environment for a time. I took the opportunity to implement my simple calculator app in iOS native code.

image

Objective C is a distinctive language with a mixed reputation, but I enjoy coding with it. I used Automatic Reference Counting (ARC), a feature introduced in Xcode 4.2 and OSX 10.7, iOS 5; ARC now also works with 10.6 and iOS 4. This means objects are automatically disposed, and I did not have to worry about memory management at all in my simple app. This is not a complete memory management solution (if there is such a thing) – if you use malloc you must use free – but it meant that the code in my app is not particularly verbose or complex compared to other languages. Apple’s libraries seem to favour plain English method names like StringByAppendingString which makes for readable code.

I was impressed by how easy it is to make an app that looks good, because the controls are beautifully designed. I understand the attraction of developing solely for Apple’s platform.

I also love the integrated source control in Xcode. You find yourself using a local Git repository almost without thinking about it. Microsoft could learn from that; no need for Team Foundation Server for a solo developer.

I did miss namespaces. In Objective C, if you want to remove the risk of name collision with a library, you have to use your own class prefix (and hope that nobody else picked the same one).

image

Interface Builder, the visual UI designer, is great but many developers do not use it, because coding the UI without it is more flexible. It is a shame that you have to make this choice, unlike IDE’s with “two way tools” that let you edit in code or visually and seamlessly keep the two in synch. I found myself constantly having to re-display windows like the Attributes Inspector though it is not too bad once you learn the keyboard shortcuts. The latest Interface Builder has a storyboard feature which lets you define several screens and link them. It looks useful, though when I played with this I found it difficult to follow all the linking lines the designer drew for me.

It is interesting to compare the Mac and iOS development platform with that for Windows. Microsoft promotes the idea of language choice, though most professional development is either C# or C++, whereas on Apple’s platform it is Objective C and Cocoa or you are on your own. Although Mac and Windows are of a similar age, Microsoft’s platform gives a GUI developer more choices: Win32, MFC, WTL, Windows Forms, Windows Presentation Foundation and Silverlight, and in Windows 8 the new WinRT.

I get the impression that Microsoft is envious of this single-minded approach and trying to bring it to Metro-style Windows 8, where you still have a choice of languages but really only one GUI framework.

That said, Visual Studio is an impressive tool and both C# and C++ have important features which are lacking in Objective C. I would judge that Visual Studio is the more productive tool overall, but Apple’s developer platform has its own attractions.

Review: JetBrains AppCode for Objective C

I have been trying out JetBrains AppCode, a new IDE for Apple’s Objective C. The company is best known for its IntelliJ IDE for Java, and AppCode essentially takes the same core IDE and reworks it for Objective C. AppCode is itself a Java application, but unless you have a religious objection to this I doubt you will find it a problem: I found it perfectly snappy and responsive on my machine, a 2.3 Ghz Core i5 with 8GB RAM.

Installation was a snap, as Mac users expect.

image

One thing I discovered immediately is that AppCode is not a replacement for Xcode, the official Apple IDE. The Apple SDKs are delivered with Xcode, and AppCode requires it. An AppCode project is also an Xcode project.

image

This is particularly important if you want to use Interface Builder, the Xcode visual designer, since AppCode has no equivalent. Double-click the .xib file and it opens in Xcode. This is a disorientating at first, but in practice I found it convenient to be able to switch between the two IDEs.

So why bother with AppCode, when Xcode is free? It is certainly not essential, but my view is that tools which save time or improve quality are worth the investment. Whether AppCode will do this for you will depend on how you work and whether you have any frustrations with Xcode, which improved considerably in version 4. Out of the box, Xcode has integrated Git or Subversion source code control, unit test integration, refactoring including Rename, Extract, and Encapsulate, the aforementioned Interface Builder, and a ton of other features. Sticking with Xcode is a safe choice.

That said, AppCode feels leaner and less cluttered than Xcode. It also has many additional productivity features in the editor. JetBrains’ IDEs are well known for refactoring, and while AppCode is not as rich as IntelliJ IDEA in this respect, it does have a more than Xcode.

Another strong feature is code generation. Press Command + n in the editor, and a context-sensitive Generate menu offers various time-saving options. I like the way I can type a new method in an implementation file, press Alt + Enter, and select Declare method in the interface to add it automatically to the interface file; or type it first in the interface and have it implemented automatically. It pays to learn the keyboard shortcuts

Live templates let you type an abbreviation and expand it to a block of code, which you then tab through to edit. Type for, select the template, press tab, and AppCode will create a for loop; press tab again to edit the variable name and the number of iterations. You can customise and create your own Live templates in the AppCode Preferences dialog.

image

There are also a ton of performance tools in AppCode [update: note these are links to Xcode tools].  Choose Profile from the Run menu and choose what you want to analyse:

image

then run your app

image

You can also do static analysis according to customisable rules.

There is a debugger which works as you would expect including stack trace and variable inspection.

The best thing I can say about AppCode is that it is a pleasure to use. It does not throw up unnecessary dialogs, it works logically, and the tools are easy to use and configure. I have not always found this to be the case with Xcode, and if you spend a significant amount of your time on Objective C development then I recommend grabbing the trial download to discover if it will speed your work.

Post sponsored by Monster for the best in IT Jobs.

Delphi XE2 FireMonkey for Windows, Mac, iOS: great idea, but is it usable?

I am sure all readers of this blog will know by now that Delphi XE2 (and RAD Studio XE2) has been released, and that to the astonishment of Delphi-watchers it supports not only 64-bit compilation on Windows, but also cross-platform apps for Windows, Mac OS X and even iOS for iPhone and iPad (with Android promised).

I tried this early on and was broadly impressed – my app worked and ran on all three platforms.

image

However it is an exceedingly simple app, pretty much Hello World, and there are some worrying aspects to this Delphi release. FireMonkey is based on technology from KSDev, which was acquired by Embarcadero in January this year. To go from acquisition to full Delphi integration and release in a few months is extraordinary, and makes you wonder what corners were cut.

It seems that corners were cut: you only have to read this post by developer and Delphi enthusiast Chris Rolliston:

To put it bluntly, FireMonkey in its current state isn’t good enough even for writing a Notepad clone (I know, because I’ve been trying). You can check out Herbert Sauro’s blog for various details (here, also a follow up post here). For my part, here’s a highish-level list of missing features and dubious coding practices, written from the POV of FireMonkey being a VCL substitute on the Mac (since on OS X, that is what it is).

Fortunately I did not write a Notepad clone, I wrote a Calculator clone, which explains why I did not run into as many problems.

Update: See also A look at the 3D side of FireMonkey by Eric Grange:

…if you want to achieve anything beyond a few poorly texture objects, you’ll need to design and write a lot of custom code rather than rely on the framework… with obvious implications of obsolescence and compatibility issues whenever FMX finally gets the features in standard.

There has already been an update for Delphi XE2 which is said to fix over 120 bugs as well as an open source licensing issue. I also noticed better performance for my simple iOS calculator after the update.

Still, FireMonkey early adopters face some significant issues if they are trying to make VCL-like applications, which I am guessing is a common scenario. There is a mismatch here, in that FireMonkey is based on VGScene and DXScene from KSDev, and the focus of those libraries was rich 2D and 3D graphics. Some Delphi developers undoubtedly develop rich graphical applications, but a great many do not, and I would judge that if Embarcadero had been able to deliver something more like a cross-platform VCL that just worked, the average Delphi developer would have been happier.

The company must be aware of this, and one reading of the journey from VSCene/DXScene to FireMonkey is that Embarcadero has been madly stuffing bits of VCL into the framework. Eventually, once the bugs are shaken out and missing features implemented, we may have something close to the ideal.

In the meantime, you can make a good case for Adobe Flash and Flex if what you really want is cross-platform 2D and 3D graphics; while VCL-style developers may be best off using the current FireMonkey more for trying out ideas and learning the new Framework than for real work, pending further improvements.

On the positive side, even though FireMonkey is a bit rough, Embarcadero has delivered a development environment for Windows and Mac that works. You can work in the familiar Delphi IDE and code around any problems. The Delphi community is not short of able developers who will share their workarounds.

I have some other questions about Delphi. Why are there so many editions, and who uses the middleware framework DataSnap, or other enterprisey features like UML modeling?

There appear to be five editions of Delphi XE2: Starter, Professional, Enterprise, Ultimate and Architect, where Architect has features missing in Ultimate – should the Ultimate be called the Penultimate? It breaks down like this:

  • Starter: low cost, restrictive license that is mainly non-commercial (you are allowed revenue up to $1000 per year). No 64-bit, no Mac or iOS. $199.00
  • Professional: The basic Delphi product. Missing a few features like UML diagramming, no DataSnap. Limited IntraWeb. $899.00.
  • Enterprise: For more than double the price, you get DataSnap and dbExpress server drivers. $1,999.00
  • Ultimate: Adds a developer edition of Embarcadero’s DBPowerStudio. $2999.00
  • Architect: Adds more UML modeling, and a developer edition of Embarcadero’s ER/Studio database modeling tool. $3499.00

The RAD Studio range is similar, but adds C++ Builder, PHP and .NET development. No Starter version. Prices from $1399.00 for Professional to $4299.00 for Architect. The non-Ultimate Ultimate is $3799.00.

All prices discounted by around 40% for upgraders.

The problem for Embarcadero is that Delphi is such a great and flexible tool that you can easily use it for database or multi-tier applications with just the Professional edition. See here, for example, for REST client and server suggestions. Third parties like devart do a good job of providing alternative data access components and dbExpress drivers. I would be interested to know, therefore, what proportion of Delphi developers buy into the official middleware options.

As an aside, I wondered about DataSnap licensing. I looked at the DataSnap page which says for licensing information look here – which is a MIDAS article from 2000, yes Embarcadero, that is 11 years ago. Which proves if nothing else what a ramshackle web site has evolved over the years.

Personally I would prefer to see Embarcadero focus on the Professional edition and improve humdrum things like FireMonkey documentation and bugs, and go easy on enterprise middleware which is a market that is well served elsewhere.

I have seen huge interest in Delphi as a productive, flexible, high-performance tool for Windows, Mac and mobile, but the momentum is endangered by quality issues.

Bridge for Apple iPad and iPhone: FunBridge upgraded, no longer free

GOTO Games has updated Funbridge for iOS to version 3.0, adding many features and introducing a per-game fee.

image

FunBridge is a Contract Bridge app in which the play is always online. You play against the computer but compare your score to that of others. In this new version the game engine seems little changed, but interaction with others is much greater, making it more like the web version.

image

In the earlier release, you could see your ranking and which users were in the top 10 for a tournament of 10 games, but you could not discover anything about another user beyond the username. Now there are user profiles and you can see another user’s overall ranking and, if they choose to provide it, name, age, location and About me notes.

Tournaments no longer stand alone, but are grouped into series which match you with players of similar standard. Rankings are decided after each period of a week, based on the results from short 3-game tournaments, provided you play at least 5 during the period. There are 35 series, and after each period the top 25% are promoted and the bottom 25% demoted from each.

You can also play in old-style Daily Tournaments, which are now more frequent than before with a new one every two hours, but these are not grouped into series. You can also play practice hands. The Daily Tournaments and practice hands are scored with IMPs (International Match Points), whereas the Series Tournaments are scored with pairs-style percentages; if you score just slightly more then others, you get 100%, and even a good score can get you 0% if everyone else made an overtrick.

The other big change to mention is that play is no longer free, though you get an introductory 100 games.

image

Games cost from 3p each falling to 1.75p if you purchase 1000 at a time. FunBridge will give you 5 games free if you reveal your birthday and another 5 for your city. Is your birthday worth more than 15p?

This makes FunBridge expensive compared to most iOS games. It is a different model to the web version, where you pay €9.90 per month (a bit less if you subscribe for a year) for unlimited games. That would buy around 400 games on the iOS version so you win or lose depending how often you play.

The game itself truly is a lot of fun, though I have found a few frustrations. The play is generally good, though eccentric occasionally. The bidding can be perplexing, especially as the bidding conventions are not described in detail, so you have to guess exactly which variant the computer is supposed to be playing. There is help for the meaning of simple bids, but this does not always match the selected convention and cannot be trusted.

Still, everyone is in the same situation so it is fair!

Hands seem to be tilted towards interesting deals; I have never seen a 10-card suit in one hand in regular bridge but I have in FunBridge.

Gameplay can be annoyingly slow even on a good connection; though perhaps when everyone has played all their free games this will improve!

A fun game; but with the new subscription model I wonder if we will see some alternatives at lower cost. It would also be good to see a version for Android and other mobile operating systems.

Kingston Wi-Drive extends iOS storage, but not hassle-free

I have been trying out the Kingston Wi-Drive, which expands the storage of an iOS device using a pocketable wireless solid-state drive.

image

The unit is about the size of a mobile phone, but smoother and lighter, and available with capacity of 16GB or 32GB.

The drive comes with a minimalist instruction leaflet which tells you to charge it by attaching the USB cable to a PC or Mac, add content by accessing it as an external drive, and then when charged, download and run the free Wi-Drive app on your iPad or iPhone.

I got this working without too much trouble. I added a movie to the drive and was able to watch it on an iPad, which is handy given that there is no DVD drive, though if it was sourced from a DVD you have to work out how to rip the DVD to a file first. I also added some documents and pictures, and was able to view these on iOS without any issues.

image

The app seems to be designed primarily for iPhone, which means it looks a little odd on an iPad, though it does run full-screen. There is a thumbnail view, for images, and for documents there is an option to open them in apps that understand the file format. For example, I could open a Word 2010 document in Pages.

So far so good; but I found some annoyances. The first is that when you connect to the Wi-Drive, you are no longer connected to the Internet unless you also have 3G. The solution is to go into the Wi-Drive settings and configure your normal wi-fi connection as a bridge. The leaflet does not mention this, but it is explained here.

The bridge did not work at first. I had to change my Netgear router so that it is WPA 2 only, rather than supporting both WPA and WPA 2. This is mentioned in the FAQ:

Wi-Drive’s bridge function supports a single security protocol only: WEP, WPA, or WPA2. These may also appear as WPA ONLY, WPA2 ONLY, etc. Wi-Drive does NOT support mixed mode.

I also configured security on the Wi-Drive wi-fi connection. By default, it is wide open to your neighbours; and if you have the bridge enabled, bypasses the security of your home wi-fi connection as well. On the other hand, the fact that up to three users can connect is a good thing if, for example, you wanted to share some files with friends or colleagues at a meeting.

If you are using the device on the road, in a cafe or airport for example, it would be difficult to connect to the internet as well as to the drive. If you are flying, the airline will probably not allow you to use the Wi-Drive.

Most annoying is that when the device is connected to a computer, the contents become inaccessible. Even connecting to a USB charger seems to be enough to disable it. When it is not connected to a computer, the battery starts running down; it only lasts 4 hours.

This means that you should not think of the Wi-Drive as permanently attached storage. Rather, think of it as something you can switch on when needed.

Poking around on the drive, I noticed that it has the Apache web server installed. When the bridge is operating, you can browse to the device from a web browser on your computer and access the contents or change the settings.

image

This is a handy device; but it could be better. I would like to see a memory card slot – and Kingston would benefit as it sells memory cards – as well as a longer battery life. Kingston also needs to fix it so you can use it on iOS while it is connected to a computer and charging. The Wi-Drive app could do with a bit more polish too, particularly the iPad version.

As it is, the Wi-Drive is great if it exactly fits your need, but make sure you can live with it before parting with your money.

Delphi team focusing on FireMonkey, VCL winding down?

Julian Bucknall at componnent vendor DevExpress writes a thoughtful post arguing that Embarcadero will focus on Delphi’s new cross-platform FireMonkey framework in future, and that the VCL (Visual Component Library) which has been at the heart of Delphi since its first release will receive little future investment.

Bucknall notes that ex-Borland employee Danny Thorpe tweeted about 1/3 of the Delphi VCL and IDE team being laid off in Scotts Valley, USA; while Embarcadero’s Tony De La Lama blogs about new posts in Europe. FireMonkey was originally developed in Russia.

The VCL is a mature framework by any standards (Delphi was first released in 1995), and now that the 64-bit VCL has been released the most pressing demands of developers have been met.

Further, Microsoft itself is slowing development of the Win32 API on which VCL is based, in favour of the mobile and touch-friendly Metro user interface and the new Windows Runtime on which it is built. The VCL will never adapt to Metro, but FireMonkey might do so. The Windows Runtime has an API which is represented by metadata in same format used by .NET’s Ildasm. If Embarcadero can adapt Delphi to read this metadata so that you can easily call the API, then a Delphi for Metro seems plausible, but it would not use the VCL.

Delphi already works well for Windows applications, so from Embarcadero’s point of view, growth will come from cross-platform and mobile development using FireMonkey.

The main snag is that unlike the VCL, FireMonkey is far from mature, and developers are complaining about lack of documentation as well as limitations in the current implementation.

There is also a philosophical difference between VCL and FireMonkey. VCL is a “heavyweight” GUI framework in that it depends on native Windows controls, with the advantage that you get a truly native look and feel in your Delphi application. FireMonkey is a “lightweight” GUI framework which renders the UI entirely through custom drawing, which is great for cross-platform consistency, but poor if you want a native look and feel. Performance-wise, and despite the name, heavyweight frameworks often feel faster because native controls are optimised for the operating system.

The key question then: will FireMonkey be as good for cross-platform, as the VCL has been for Windows? Based on my first experiments I am not sure at the moment, though I expect it to improve. I would be interested in views from others who have worked with it.