Mobile DICOM viewers

Last update : October 20, 2016

Note : the new versions released since spring 2016 have not yet been tested. It will be done in the coming days.

Introduction

This contribution refers to my recent updated post about DICOM image viewers. Mobile DICOM viewers are becoming more and more popular. They are very useful in the context of medical applications in the cloud.

Most web viewers can be used on mobile equipments (tablets, smart phones, …), but the focus of this post are native applications designed for Apple iOS or Android devices. DICOM Web viewers are handled in a separate contribution. In the present list I considered only those applications that have been updated after January 2014, with some exceptions.

Test Scenario

To test the selected apps, I used Orthanc (Windows versions 0.9.5 and 0.9.6) as PACS server. To have realistic DICOM samples,  I uploaded some DICOM studies from me and from family members relative to exams done in the past in hospitals in Luxembourg and France.

To set up a communication between a DICOM viewer and the Orthanc server, the viewer should allow to define the following parameters in the settings :

  • Remote AET
  • Remote Hostname/IP
  • Remote port number
  • Local AET
  • Local port number
  • Protocol : C-MOVE

The local IP is the address of the used mobile device.

If no settings are available for the port numbers, the port number of the server can be added to the remote IP address. The standard port number 104 can be tried as a first guess for the settings of the viewer. If no local AET settings are provided, the iPad name can be tried as a first guess. Another possibility is to use a DICOM network analyser like DVTk to detect unknown parameters. If the C-MOVE protocol is not supported by the viewer, the WADO or C-GET protocols can be an alternative.

In the presentation of the selected mobile viewers, I generally used the terminology published by the developers, even if I disagree with their claims.  In the case of apps that worked as expected with the Orthanc server, I added some screenshots to show the look-and-feeling of the viewer.

Purpose of the evaluation

You may ask what is the purpose to evaluate proprietary closed source applications in an open source environment. I started the evaluation in mid-2015 in the context of the development of an educational tool for radiologists, called RadioLogic. The reasons were various :

  • to familiarize with the DICOM technologies (learning by doing)
  • to compare the performance of native apps with HTML5 web apps on tablets and phones
  • to explore the different types of graphical user interfaces to create a best-of-breed GUI for the RadioLogic project
  • to examine the assets of viewers certified / cleared by FDA or CE
  • to test features that are not (yet) available on HTML5 web apps

iOS Applications

DICOM

Mobile DICOM viewers (icons) arranged in a folder on the iPad Desktop

The following DICOM viewer apps, which are currently available at the AppStore, have been tested. They are arranged and listed in alphabetical order :

1. aycan mobile

aycan mobile is an iPad app which allows to receive and display DICOM images in an easy, secure and fast way. Developed by aycan Digitalsysteme GmbH, the current version 1.08.000 was updated on July 22, 2015. The viewer works only with the aycon DICOM workstation, which is based on Osirix. A demo server with ID and password “aycan” allows to explore some demo studies. A subscription is required to use all features of the the ayMobile communication service. A free 30-days-trial subscription can be ordered on the aycan website.

2. DICOM-AVC

DICOM-AVC is available for iPad and iPhone. The current free version is 2.2 has not been updated since July 12, 2012. It has been developed by the The New Medical Product Server LLC who claims that DICOM-AVC is a complete real-time collaborative imaging and videoconferencing tool which was once the number one downloaded app on the AppStore. To use the app, registration of an account is required, which can be upgraded to a premium account for 19.99$ per year. Today it’s displayed as black screen on my iPad.

3. DICOM Mobile

Dicom Mobile is a simple but powerful DICOM viewer for iPhone and iPad, developed by Luigi Orso. The current version is 1.4.0, updated on June 3, 2015. The price is 2.99$, with additional in-app purchases for extensions. The developer provides support on his website. DICOM files can be loaded from a DropBox account or from a Web server, but not from a PACS server.

DICOM Mobile Menu

DICOM Mobile Main Menu

DICOM Mobile Dropbox Panel

DICOM Mobile Dropbox Panel

4. DICOM Viewer HD

The free version 1.0 of DICOM Viewer HD was released on July 4, 2014, by Wingspan Xi’an Electronic Technology Co., Ltd from China. I was not able to evaluate the app, the login or registration in the “User Manageer” always fails.

5. DICOM IR

DICOM IR is one of the easiest and most intuitive 2D DICOM Image viewers for iOS. DICOM IR can browse any standard PACS server. DICOM IR is developed by Pietro Zuco, a freelance mobile developer based in London/Tokyo/Barcelona. Pietro Zuco has a solid experience developing 2D games, utilities, educational and entertainment applications on iOS and OSX systems. Version 1.0 of DICOM IR was released on July 25, 2015 and is free for a limited time. The app supports C-ECHO, C-FIND and C-MOVE queries.

DICOM IR has a very clean GUI, an excellent user guide, a perfect configuration panel, a performant viewer and it works as expected with the Orthanc server. My compliments to this author.

DICOM IR PACS Server Configuration Panel

DICOM IR PACS Server Configuration Panel

DICOM IR User Guide

DICOM IR User Guide

DICOM IR search panel

DICOM IR search panel

DICOM IR Metadata Info panel

DICOM IR Metadata Info panel

DICOM IR image viewer panel

DICOM IR image viewer panel with line tool

6. iDO Viewer

The iDO medical image viewer is quickly becoming the next generation in mobile medical image viewing by combining multi-modality imaging with individualized physician workflow. Developed by EBM Technologies, Incorporated, the current version 1.1.4 was updated on March 30, 2016. This application requires the EBM iDO server, demo servers to view sample data and basic features of the app are available and can be selected in the settings panel.

7. imageFlow.mobile

imageFLOW.mobile is the best-in-class mobile application for medical imaging PACS users on iOS devices. imageFLOW is developed by imagitive GmbH. The current free version 2.0, based on Imagitive’s DaVinci framework, was updated on November 25, 2015. A DemoServer mode to explore some DICOM studies is enabled by default. A PACS server can be configured in the general iOS settings, nevertheless access trials failed with a “Server Authentication” error message.

8. iMango

iMango is the iOS adaptation of the famous Mango DICOM viewer developed at the Research Imaging Institute (RII), an Organized Research Unit (ORU) of the University of Texas Health Science Center at San Antonio. It works on iPad’s. The current version 1.3 was updated on June 10, 2015. The price is 14.99$. A PACS server can be configured in the general settings and the app works as expected with the Orthanc server. iMango also supports the WADO protocol.

iMango Transfer Options Panel

iMango Transfer Options Panel

iMango Server Configuration Panel

iMango Server Configuration Panel

iMango User Guide

iMango User Guide

iMango image viewer with about panel

iMango image viewer with about panel

iMango image viewer with metadata info panel

iMango image viewer with metadata info panel

iMango image tools

iMango image tools

9. iPaxera

iPaxera is one of the fastest and easy to use PACS viewing applications specifically designed for viewing and navigating studies with your iPad, iPhone, and iPod. iPaxera is developed by Paxeramed Corp, a world leading medical imaging solution developer based in Boston, that develops a full range of medical imaging solutions. The current free version 3.10 was updated on May 4, 2016. A PACS server can be configured in the “Add Node” panel. Ipaxera works as expected with the Orthanc server. The app also supports the WADO protocol.

Onn Akbar Ali reported that Ipaxera can display multiframe Jpeg images ( such as angiography ) quite well.

iPaxera login panel

iPaxera login panel

iPaxera PACS server configuration panel

iPaxera PACS server configuration panel

iPaxera search panel

iPaxera search panel

iPaxera worklist panel

iPaxera worklist panel

iPaxera image viewer with measure tool and series list panel

iPaxera image viewer with measure tool and series list panel

10. iTA View

iTA VIEW is a viewer for DICOM and DICOM RT objects developed for iPad and dedicated to radiotherapy. The app is developed by Tecnologie Avanzate TA srl in Italy. The current version 1.2.0 was updated on March 8, 2016. The app works with the Orthanc server. To transfer studies without limitations, an upgrade to the full version is required. The price for the upgrade is 29.99 EUR.

ITA View PACS server configuration panel

ITA View PACS server configuration panel

ITA View User Guide

ITA View User Guide

ITA View worklist panel

ITA View worklist panel

ITA View database panel

ITA View database panel

ITA View image viewer

ITA View image viewer

11. Jack Imaging Medical Image Viewer

Jack Imaging Medical Image Viewer is a medical image viewer for the iPad that makes use of nephosity’s patent pending technology, the latest in medical imaging innovation. It supports reading the DICOM format and the most common imaging modalities. The viewer is developed by Nephosity Inc. The current version 3.0.5 was updated on January 25, 2016. The prize is 0.99$. The viewer works only with the Jack Imaging platform which  stores the DICOM data in the cloud. Currently Amazon’s cloud infrastructure is used to provide the best performance and highest security levels. During a beta phase the Jack Imaging platform accounts are offered for free. On 4th generation iPads the Jack Imaging viewer offers FDA cleared capabilities.

11. Keiron

Keiron is an innovative App that allows you to view, annotate and analyse radiographic images stored in the DICOM standard. The current free version 1.0 was released on May 4, 2015. Keiron is developed by Digital Video S.p.A., the creator of Toonz. A PACS server can be configured in the settings, but only the ECHO and C-FIND queries are working with the Orthanc server. The “download” button to load DICOM instances is disabled.

Keiron serevr & client configuration

Keiron server & client configuration panels

Keiron viewer settings

Keiron viewer settings panel

Keiron worklist panel

Keiron worklist panel

12. LEADTOOLS MedicalWebViewer

The LEADTOOLS Medical Web Viewer is a zero footprint solution available for iPad and iPhone, developed by Leadtools Technologies Inc. The current free version 3.0 was updated on May 27, 2016. The viewer works only with LEAD’s web servers so you can quickly access the features of the LEADTOOLS Medical Web Viewer Framework SDK with the default settings.

13. loDicom Viewer

loDicom Viewer allows you to view, archive and transfer 2D medical images in DICOM format. Developed by Luigi Orso, the current version 4.1.1 was last updated on July 30, 2014. The price is 12.99$. The developer is also the author of the DICOM Mobile viewer. He provides support on his website, which is not useless, because the app crashes systematically on my iPad. ECHO tests with the Orthanc server are succesful, but a C-FIND query leads to a crash. I was only able lo load DICOM files via a DropBox. The GUI is not very intuitive, the user guide is not very helpful.

loDICOM viewer PACS server configuration

loDICOM Viewer PACS server configuration panel

loDICOM Viewer

loDICOM Viewer ECHO Test panel

loDICOM Viewer image panel

loDICOM Viewer image panel

loDICOM Viewer user guide

loDICOM Viewer user guide

14. MedFilm

MedFilm is a fast dicom viewer developed by Fuli Wu, a researcher at the Zhejiang University of Technology in Hangzhou, China. The app is available for iPad and iPhone. The current free version 4.25 was updated on June 1, 2016. A PACS server can be configured with support of the WADO protocol. The C-MOVE protocol is not supported.

MedFilm

MedFilm DICOM file and image panels

15. Med View

Med View is developed by Matthias Rudolph and available for iPad and iPhone. The current free version 1.1 was updated on October 23, 2015. DICOM files can be loaded from the iTunes file sharing service or from FTP servers.

16. Mobile MIM

The Mobile MIM software program is used for the viewing, registration, fusion, and/or display for diagnosis of medical images from various modalities. Developed by MIM Software Inc., the current version 4.0 was updated on July 26, 2016. Image data can only be transferred to the device by using MIMcloud or MIM 5.1+ workstation software.

17. mRay

mRay, developped by mbits, is available for iPad and iPhone. The current free version 4.1.6 was updated on October 4, 2016. mRay is a CE certified and approved medical product. To be able to receive images in mRay from your PACS, the mRay Server Software must be installed, which can be used free of charge for an evaluation period.

18. MyXray

MyXray is an easy and intuitive app that will let you see your x-ray files as a real doctor. The free version 1.0 was released on September 8, 2015. The app is developed by Pietro Zuco, the author of the outstanding DICOM IR app. MyXray is a lite version of DICOM IR without support of DICOM communications.

19. Nuance PowerShare

Nuance PowerShare Mobile gives you instant access to your medical images and reports stored on the Nuance PowerShare Network using your iOS device. The free version 5.5.10 was updated on August 16, 2016. I was not able to load this app from the AppStore.

20. OsiriX HD

OsiriX HD is the iOS adaptation of the famous OsiriX DICOM viewer, running on Mac OSX,  which is considered as a reference for DICOM image viewers. It works on iPhone’s and iPad’s. The current version 4.2 was updated on October 14, 2016. The price is 49,99$, with additional inline sales. Osirix HD can be configured in the general settings. The app works as expected with the Orthanc server and supports also the WADO protocol.

Osirix HD PACS Server configuration panel

Osirix HD PACS Server configuration panel

Osirix HD Exams Panel

Osirix HD Exams Panel

osirixhd_split_screen

Osirix HD Split Screen in image viewer

Osirix HD Image viewer

Osirix HD Image viewer with stack of 20 instances

osirixhd_metadata

Osirix HD Metadata Panel

21. PACS DICOM Viewer

PACS DICOM Viewer app is a free, vendor-neutral PACS browser and DICOM viewer which works on iPad. It is developed by Logicpond Inc, a California based product design and development solutions company. The current version 2.1.1 was updated on November 11, 2015. The viewer can be configured to work with the Orthanc server, but the C-MOVE queries are aborted during the image transfer. The WADO protocol  is also supported  and works with Orthanc.

PACSDICOM Viewer startup picture

PACSDICOM Viewer startup picture

PACSDICOM Viewer configuration panel

PACSDICOM Viewer configuration panel

PACSDICOM Viewer search panel

PACSDICOM Viewer search panel

PACSDICOM Viewer worklist

PACSDICOM Viewer worklist panel

PACSDICOM Viewer download success

PACSDICOM Viewer download success

PACSDICOM Viewer images with rainbow LUT

PACSDICOM Viewer images with rainbow LUT

PACSDICOM Viewer metadata panel

PACSDICOM Viewer metadata panel

22. R-Site Mobile

R-Site Mobile for IOS supports 2D, 3D and MIP/MPR operations for DICOM files. To use this app, you have to own at least one set of R-Site PACS. R-Site is developed by DJ HealthUnion Systems Corporation in China. The current version 1.0.2.47 was updated on August 31, 2016.

23. ResolutionMD

ResolutionMD enables doctors to securely view patient images and reports from a wide variety of computers and mobile devices, collaborate with other practitioners and diagnose from any location. The product requires access to a configured ResolutionMD Server. It contains a demo mode to allow to experience the full functionality of ResolutionMD on a variety of anonymous patient images. ResolutionMD is devloped by Calgary Scientific Inc. The free version 5.3.3. was updated on July 19, 2016.

Android Versions

DICOM Android apps on Samsung Galaxy Tablet 2 - 7.0

DICOM Android apps on Samsung Galaxy Tablet 2 – 7.0

The following iPad applications are also available as Android version on Google Play Store (in alphabetical order) :

3a. DICOM Mobile

The current Android version 1.3.2 of DICOM Mobile was updated on August 13, 2014. The price is the same as for the iOS version : 2.99$. The GUI and the features of the viewer are also identical to the iOS version. DICOM images can only be loaded from DropBox or from other web servers.

Android DICOM Mobile menu panel

Android DICOM Mobile menu panel

9a. iPaxera

The Android free version 2.0.1 of  iPaxera was updated on September 15, 2016. This app requires Android 4.4 or greater and I was not able to test it on my Samsung Galaxy tablet running Android 4.2.2. A few days later I changed my Blackberry phone with an LG Spirit phone running Android 5.0.1. After installing iPaxera on this phone, I noticed that the Android version is different from the iOS version and allows no PACS server configuration, but only dowloads of DICOM files from Dropbox or iTune sharing.

10a. iTA View

The Android free, but limited, version 1.10 of iTA View was updated on October 27, 2014. An in-app upgrade priced 26.99 EUR is available through the Google Play Store.

iTA

iTA View PACS server configuration panel

iTA

iTA View settings panel

iTA

iTA View search panel

12a. LEADTOOLS MedicalWebViewerDemo

The Android version of the LEADTOOLS MedicalWebViewer is the online live demo of the Medical Web Viewer Framework included with LEADTOOLS PACS Imaging and Medical Imaging Suite. The current version 1.4.1 was updated on February 2, 2014.

17a. mRay

The Android free version 4.1.6 of  mRay was updated on September 23, 2016. The mRay app can not be used without the installation of the mRay Server Software.

Android Applications

The following DICOM viewers are only available as Android version (in alphabetical order) :

24. Dicomite

Dicomite is a free and powerful DICOM viewer with intuitive and simple user interface, optimized for use on multi-touch devices. Dicomite is developed by Samsung MNO Lab. The current version 1.7.1 was updated on October 11, 2016. To display images they must be downloaded into the local memory with an Internet browser.

DICOMITE

DICOMITE image panel

25 Direct DICOM

The Direct DICOM Viewer is developed by Hui Zhang. The current version 1.2.4 was updated on March 21, 2015. To display images they must be downloaded into the local memory with an Internet browser. The app works however as DICOM server and local DICOM files can be stored to the Orthanc server.

Direct Dicom viewer image and metadata panels

Direct Dicom viewer image and metadata panels

Direct Dicom viewer server and store (push) panels

Direct Dicom viewer server and store (push) panels

26. Droid Dicom Viewer

The Droid Dicom Viewer was developed by Pierre Malarme. The free current version 3.2.3 was updated on May 17, 2011. Droid Dicom Viewer is a Free and Open Source Software (FOSS) licensed under the terms of the GNU General Public License. To display images they must be downloaded into the local memory (cache) with an Internet browser.

Droid DICOM viewer about panel

Droid DICOM viewer about panel

Droid DICOM viewer cache panel

Droid DICOM viewer cache panel

Droid DICOM image panel

Droid DICOM image panel

Droid DICOM viewer image panel with

Droid DICOM viewer image panel with LUT/CLUT

27. DroidRender

DroidRender is a 3D DICOM viewer for Android, including DICOM file support by GDCM,
volume rendering and tissue segmentation and display. Developed by Startm, the current version 3.2.0 was updated on August 26, 2016. The app proposes in-app purchases at prices between €1.04 – €104.08 per item and displays ads at the bottom of the screen. To display images they must be downloaded into the local memory (cache) with an Internet browser.

Droid Renderer

Droid Render image panel

28. Mobile Dicom

Mobile Dicom is a free Android Mobile Dicom (Diconde) Viewer application which is based on opensource OFFIS DCMTK as its backend library. Inspired by opensource community and in the hope of extending usage of the library on Android devices, the Mobile Dicom / Diconde tool was created by Feng Gao. The current version 2.4 was updated on November 23, 2015. To display images they must be downloaded into the local memory (cache) with an Internet browser. The app works however as DICOM server and can store local DICOM files tthe Orthanc server.

Mobile Dicom Viewer about and config panels

Mobile Dicom Viewer start and about panels

Mobile Dicom Viewer load and config panels

Mobile Dicom Viewer load and config panels; ECHO test was succesfull

Mobile Dicom Viewer image and metadata panels

Mobile Dicom Viewer image and metadata panels

29. simplyDICOM

Simply DICOM is currently in public beta. It should work with any uncompressed DICOM images, downloaded into the local memory. The viewer has a minimal interface to keep the focus on the images themselves. The developer is Christopher Boyd. The current version 0.7.3 was updated on May 27, 2015. To display images they must be downloaded into the local memory (cache) with an Internet browser.

Simply DICOM

SimplyDICOM image viewer

DICOM file downloads

If DICOM files are served with the extension .dcm or/and with the content type application/dicom, they are recognized as DICOM images in iOS Safari and can be opened directly in the following DICOM viewers : MedFilm, MyXray, Osirix HD, DICOM IR, iMango or Dicom Mobile.

Safari .dcm files

.dcm files recognized as DICOM images in iOS Safari browser by DICOM viewers

DICOM files embedded in .zip archives are recognized by the same DICOM viewers in the iOS Safari browser.

Safari .zip files

.zip files recognized in iOS Safari browser by DICOM viewers

On Android devices, DICOM files are only recognized by the DIRECT DICOM viewer in the Android browser, but they can be downloaded in the /storage/emulated/0/Download/ folder where they are accessible by most Android DICOM viewers.

Android DICOM file download panel

Android DICOM file download panel

Links

The following list provides links to mobile applications which are not DICOM viewers, but related to medical imaging (in alphabetical order) :

Conclusions

Among the 29 tested native mobile DICOM viewers, 18 are iOS apps, 6 are Android apps and 5 are available on the two platforms. 9 viewers can be configured to access a vendor-neutral PACS server, but only 5 of them work as expected and comply with the Orthanc PACS server. Among them are the three renowned commercial viewers iMango, iTA View and Osirix (priced between 15 and 50 USD), one free app (iPaxera) developed by a world leading medical imaging solution provider (Paxeramed Corp) and one app (DICOM IR) created by an independent free-lance developer ( Pietro Zuco). The other 4 configurable viewers are limited, partially disabled or crashing.

The remaining viewers are demo apps working with proprietary PACS systems, displaying only DICOM files loaded from DropBox or from another web server or crashing and working not at all. There are additional DICOM viewer apps in the AppStore and the Google PlayStore which are not listed because they were not updated in the last two years.

My two cents

I was shocked to see that most native mobile apps in the medical domain are not state of art. Apps in the stores which have not been updated in the last few years, text errors in the menus, program errors in the logic ( 2 viewers change the AETitle during communications), crippled GUI’s when the orientation of the device changes, wrong version numbers in the about panel etc, are testimonies of the poor quality.

Hybrid iOS app’s

Native iOS app’s are built with the platform SDK provided by Apple (Xcode/Objective-C / Swift). The main advantage of native applications is their performance because they are compiled into machine code.

Mobile Web iOS app’s are built with server-side technologies (PHP, Node.js, ASP.NET) that are mobile-optimized to render HTML well on iPhones and iPads. Mobile app’s load within the mobile browser Safari like every other website. They generally require an Internet connection to work, but it’s also possible to use cache technologies to use them off-line and you can install them with an icon on the iOS home screen. Mobile Web app’s for iOS are faster and easier to develop and to maintain than native iOS app’s.

Hybrid iOS app’s

Hybrid iOS app’s are somewhere between native and web app’s. The bulk of hybrid iOS app’s is written with cross-compatible web technologies (HTML5, CSS and JavaScript), the same languages used to write web app’s. Hybrid app’s run inside a native container on the device using the UIWebView or WKWebView classes.  Some native code is used however to allow the app to access the wider functionality of the device and to produce a more refined user experience. The advantage of this approach is obvious: only a portion of native code has to be re-written to make the app work on another type of device, for instance on Android, Blackberry or Windows Mobile.

Some developer consider hybrid iOS app’s as beeing the best of both worlds. Great examples of hybrid iOS app’s are Facebook and LinkedIn.

Hybrid iOS app tools

There are numerous tools available to create hybrid app’s, not only for iOS, but for all mobile platforms. The most important tools to embed HTML5, CSS and Javascript in mobile app’s are :

  • PhoneGap : a mobile development framework created by Nitobi, which was purchased by Adobe in 2011. The latest version is 4.0.0.
  • Apache Cordova : a free and open-source platform for building native mobile applications using HTML, CSS and JavaScript, underlying PhoneGap. Apache Cordova graduated in October 2012 as a top level project within the Apache Software Foundation (ASF). The latest version is 5.0.0.
  • BridgeIt : an open source mobile technology sponsored by ICEsoft Technologies Inc.
  • MoSync : free, easy-to-use, open-source tools for building cross-platform mobile apps (MoSync Reload 1.1 and MoSync SDK 3.3.1).
  • Ionic : the final release of Ionic 1.0.0 (uranium-unicorn) was released on May 12, 2015.
  • CocoonJS : a platform to test, accelerate, deploy and monetize your HTML5 apps and games on all mobile devices with many interesting features to help you deliver great web products faster.
  • ChocolateChip-UI : the tool uses standard Web technologies and is built on top of the popular & familiar jQuery library.
  • Sencha-Touch : the leading (very expensive) cross-platform mobile web application framework based on HTML5 and JavaScript for creating universal mobile apps.
  • Kendo UI : everything for building web and mobile apps with HTML5 and JavaScript.
  • AppGyver (Steroids, Supersonic, Composer) : a combination of great CSS defaults (from the Ionic Framework) with the best native APIs (from PhoneGap), adding a boatload of extra features on top.

There are also some tools and platforms available which use other technologies than HTML5 +CSS + Javascript :

  • Titanium : write in JavaScript, run native everywhere at the speed of mobile, with no hybrid compromises.
  • Xamarin : share the same C# code on iOS, Android, Windows, Mac and more.
  • RhoMobile Suite : gain the ease of consumer smartphone platforms, without sacrificing the critical data functionality of enterprise solutions.
  • Corona : designed to enable super-fast development. You develop in Lua, a fast and easy-to-learn language with elegant API’s and powerful workflows.
  • Meteor : discover the easiest way to build amazing web and mobile apps in JavaScript.

WebViews

The tools to create hybrid app’s give you access to the underlying operating system calls or to underlying hardware functionality. Howver you do not really need these tools if you want only deploy a web app as a native app. All you need is the bare minimal code to launch a Web View and load your Web App as local resources.

UIWebView

To embed web content in an iOS application you can use the UIWebView class. To do so, you simply create a UIWebView object, attach it to a window, and send it a request to load web content. You can also use this class to move back and forward in the history of webpages, and you can even set some web content properties programmatically.

The steps to create a minimal demo to load this web content from an external webserver are the following :

  1. Create an Xcode Swift project with a single view application.
  2. Open the Main.storyboard file and drag the WebView UI element from the object library to the Interface Builder view.
  3. Open the assistant editor to display the ViewController.swift file, ctrl-click-drag the WebView behind the class ViewController text line to create an IBOutlet named mywebView :
     @IBOutlet weak var mywebView: UIWebView!
  4. Define the url of the remote website :
    let url = "http://www.canchy.eu"
  5. Add the following code to the viewDidLoad function :
    let requestURL = NSURL(string:url)
    let request = NSURLRequest(URL: requestURL!)
    mywebView.loadRequest(request)
  6. Run the project :
Remote

Remote website displayed in iOS Simulator

The website loads, but it looks awful. The reason is that the UIWebView doesn’t handle things that Safari does by default. Telling the program to scale pages is easy. We need to add the following line of code :

mywebView.scalesPageToFit = true

The whole script of the ViewController.swift file looks now as follows :

View

ViewController.swift script for RemoteWeb

The layout is still not perfect, but you can now pinch the view to zoom in and out. Holding down the alt key and click-dragging the view allows you to perform this action in the simulator. We will enhance the scaling in a further chapter.

Note that for a very simple app like the present one it’s not necessary to import the webkit framework. UIWebView has about a dozen methods you can use, but to get about 160 methods you need the webkit classes.

Project

Project window with local web content

To include the web content into the iOS app, we add the folder canchy with html files, css files, javascript files, images and photos into the project window.

The three first steps to create a minimal demo to load local web content are the same as those for the remote content.

The next steps are the following :

4. Define the path for the local content with the NSBundle.mainBundle() method :

  • pathForResource
  • ofType
  • inDirectory

5. Create an URL object with this path with the NSURL.fileURLWithPath() method

6. Create a Request object with this URL with the NSURLRequest() method.

7. Scale the page with the scalesPageToFit method.

8. Load the Request object with the loadRequest() method.

9. Run the project.

The result is the same as with the remote content. The layout is not adapted to the screen. We will fix that in the last chapter.

The complete script of the ViewController.swift file is shown below :

 

local

ViewController.swift script for local web content

WKWebView

With iOS 8 and Mac OSX Yosemite, Apple released the new WKWebView class, which is faster and more performant than the UIWebView class. WKWebView uses the same Nitro Javascript engine as the Safari browser.

To create an hybrid iOS app with the WKWebView class, the procedure to access content on an external web-server is the same as for the UIWebView class. Only the code in the ViewController.swift file is slightly different.

WK

ViewController.swift script for remote web content with WKWebView

We need to import the WebKit framework, because the WKWebView class is now part of the WebKit itself.

Remote

Remote website displayed in iOS Simulator

By default the website display in WKWebView is better adapted to the screen size,  compared to the UIWebView.

The worst issue of the WKWebView class is that it doesn’t allow loading local files from the file:// protocol like the UIWebView class. There are some workarounds available, most of them use an embedded local HTTP server to serve the local files. The most renowned solutions are the following :

XWebView uses a very tiny embedded http server, whereas the Cordova WKWebView Engine uses the more versatile GCDWebServer.

GCDWebServer

GCDWebServer is a modern and lightweight GCD (Grand Central Dispatch) based HTTP 1.1 server designed to be embedded in OS X & iOS app’s. It was written from scratch by Pierre-Olivier Latour (swisspol) with the following features :

  • four core classes: server, connection, request and response
  • no dependencies on third-party source code
  • full support for both IPv4 and IPv6
  • HTTP compression with gzip
  • chunked transfer encoding
  • JSON parsing and serialization
  • fully asynchronous handling of incoming HTTP requests

WKWebView versus UIWebView

Both WKWebView and UIWebView in iOS8 support WebGL which allows rendering 3D and 2D graphics on WebView. The performance gains are significant (greater than 2x) in WebGL applications when using WKWebView, compared to UIWebView.

You can use the WebView Rendering App available in Apple AppStore to test any website performance between UIWebView and WkWebView. An In-App debug console for your UIWebView & WKWebView classes is available at Github.

CORS

If a javascript on a webpage displayed in UIWebView or WKWebView is running from domain abc.com and would like to request a resource via AJAX (XmlHttpRequest or XDomainRequest) from domain efg.com, this is a cross-origin request. Historically, for security reasons, these types of requests have been prohibited by browsers.

The Cross Origin Resource Sharing (CORS) specification, now a W3C recommendation, provides a browser-supported mechanism to make web requests to another domain in a secure manner. To allow AJAX requests across domain boundaries, you need to add the following headers to your server :

Access-Control-Allow-Origin.*
Access-Control-Allow-Headers : Accept, Origin, Content-Type
Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTION

Size the web views

Xcode provides an auto layout function. By clicking the second icon (pin) from the left in the storyboard, a popup window opens to set the spacing contraints to the nearest neighbours. By clicking the dotted red lines leading from the small square at the top to four textboxes, you can define these constraints. I set the top border to 20 points and the right and left border to 16 points.

Constraints

Adding constraints to execute the auto layout function in the storyboard

By clicking the button “Add 3 Constraints” the values are entered and displayed with the selected values in the View Controller Scene.

Constraints

Viewing the layout constraints in the View Controller Scene

The result is a correct display of the webpage in the iOS Simulator with a free toolbar of 20 points at the top of the web view.

Display

Webpage view with auto layout

Links

Wearable Technology

The term Wearable technology refers to clothing and accessories incorporating computer and advanced electronic technologies. The designs often incorporate practical functions and features, but may also have a purely critical or aesthetic agenda.

Other terms used are wearable devices, wearable computers or fashion electronics. A healthy debate is emerging over whether wearables are best applied to the wrist, to the face or in some other form.

Smart watches

A smart watch is a computerized wristwatch with functionality that is enhanced beyond timekeeping. A first digital watch was already launched in 1972, but the production of real smart watches started only recently. The most notable smart watches which are currently available or announced are listed below :

 

Android Wear

Android Wear

On March 18, 2014, Google officially announced Android’s entrance into wearables with the project Android Wear. Watches powered by Android Wear bring you :

  • Useful information when you need it most
  • Straight answers to spoken questions
  • The ability to better monitor your health and fitness
  • Your key to a multiscreen world

An Android Wear Developer Preview is already available. It lets you create wearable experiences for your existing Android apps and see how they will appear on square and round Android wearables. Late 2014, the Android Wear SDK will be launched enabling even more customized experiences.

Google Glass

 

Google Glass

Google Glass

Google Glass is a wearable computer with an optical head-mounted display (OHMD). Wearers communicate with the Internet via natural language voice commands. In the summer of 2011, Google engineered a prototype of its glass. Google Glass became officially available to the general public on May 15, 2014, for a price of $1500 (Open beta reserved to US residents). Google provides also four prescription frames for about $225. Apps for Goggle Glass are called Glassware.

Tools, patterns and documentation to develop glassware are available at Googles Glass developer website. An Augmented Reality SDK for Google Glass is available from Wikitude.

Smart Shirts

Smart shirts, also known as electronic textiles (E-textiles) are clothing made from smart fabric and used to allow remote physiological monitoring of various vital signs of the wearer such as heart rate, temperature etc. E-textiles are distinct from wearable computing because emphasis is placed on the seamless integration of textiles with electronic elements like microcontrollers, sensors, and actuators. Furthermore, E-textiles need not be wearable. They are also found in interior design, in eHealth or in baby brathing monitors.

At the Recode Event 2014, Intel recently announced its own smart shirt which uses embedded smart fibers that can tell you things about your heart rate or other health data.

Sony SmartWatch 2

Last update : May 28, 2014

Sony SmartWatch 2

Sony SmartWatch 2

The Sony SmartWatch 2, also known as SW2, is a wearable device launched in late September 2013. The SW2 connects to an Android 4.0 (and higher) smartphone using Bluetooth, and supports NFC for easy pairing. The display is a transflective LCD screen with a 220×176 resolution.

Sony SmartWatch 2 Usage

Sony SmartWatch 2 Homescreen

Sony SmartWatch 2 Homescreen

To set up your SmartWatch 2 device, you need first to install the Smart Connect (formerly Liveware Manager) app (last update May 8, 2014) on your phone and to pair it with your phone using a Bluetooth connection. The next step is to install the official Sony SmartWatch app (last update May 6, 2014). This app is not visible in the phone’s home screen, but integrated in the Smart Connect app and in the phone’s status bar. The app allows to edit settings, select a watch interface and to find/enable/disable SmartWatch app extensions.

Sony SmartWatch 2 Extensions

Some useful free extensions for the watch are listed below :

Some useful paid extensions are listed hereafter :

Sony SmartWatch 2 Developement

The Sony Developer World website provides SDK’s, tutorials, tips, tools and documentation how to create  SmartWatch 2 app extensions. A comprehensive Knowledge Base is available to provide more informations about these topics.

Sony SmartWatch 2 on Blackberry Z10

To run the SmartWatch 2 application in the Blackberry Android 4.3 Runtime Player, you need to do a small modification in the MANIFEST.xml file of the SmartWatch 2 app and its extensions and to resign the Smart Connect app with the same key. See my separate post about this subject for additional informations.

Blackberry Z10 features

Last update : August 4, 2017

The Blackberry Z10 was first presented at the BlackBerry 10 event on January 30, 2013. The Z10 has a beautiful, crisp 4.2-inch LCD display with a 1280 x 768 resolution at 356 DPI. The Z10 comes with a built-in 16GB Flash storage, but it also supports microSD media cards up to 64GB, for a total possible capacity of 80GB. The Z10 has 2GB of RAM and a dual-core, 1.5GHz processor and it’s ready for 4G LTE. It has a mobile hotspot functionality, which supports up to 8 devices, sharing its internet connection.

The Z10 software is composed of three main UI components:

  • Application home screens
  • Active Frames screen, which shows open apps in dynamic windows that change and update with new information
  • BlackBerry Hub, a central inbox where you find all of your various messages and notifications.
Blackberry Z10

Blackberry Z10

BlackBerry calls the process of navigating through these components BlackBerry Flow. You can easily access the BlackBerry Hub when you’re using a specific application or while you’re navigating home screens by sliding your thumb up from the bottom of the display and then to the right, to pull the active page to the side and peek at your Hub.

The application home screens are similar to what you find in iOS or Android. Each panel fits 16 apps or folders, with four icons in four rows. To create a folder, you just hold your finger on an app for a few seconds and then drag it on top of another app icon.

The Z10 virtual keypad provides an advanced typing experience and takes predictive text a step further. The on-screen keys are large, and the keyboard’s rows are separated by virtual frets, which add some space and provide more touchable area per key. The touchscreen keyboard learns the user’s writing style and suggests words to help the user type faster, more accurately and with the least amount of effort.

A new camera feature in the Z10 is the TimeShift camera setting, which helps you capture better pictures of groups of people. TimeShift takes a rapid series of images and lets you isolate the faces of the subjects in your photos. You can then tap the faces in the picture and fast forward or rewind them to find the best facial expressions.

Another new multimedia feature in the Z10 is Story Maker which lets you create multimedia video montages using images, video and music stored on your device.

The Z10 browser is particularly adept at handling HTML 5 websites and supports Adobe Flash.

The BlackBerry Messenger (BBM) can be used for video calls, in addition to voice and text chats. BBM in also lets you share your device’s screen with video-chat participants.

In the BlackBerry World app store you can buy apps, games, music, TV shows and movies, using a number of payment options including PayPal.

The Z10 can easily connect to Microsoft Exchange using ActiveSync, with no BlackBerry Enterprise Server (BES) required. Using the new BES 10 gives organizations many unique security and management features, including access to BlackBerry Balance, which creates a secure workspace on BlackBerry 10 devices that can be managed by IT without affecting personal data.

The Z10 comes with an Office document editor called DocsToGo that can both view and create Word and Excel documents and edit PowerPoint presentations. The Adobe Reader on board allows to view PDF files. An app called PrintToGo aims to replace printing on paper. It shows up as a printer on your computer and sends the docs wirelessly to PrintToGo so that you can view them on your phone.

The Z10 has an eight MP rear camera with autofocus and LED flash, capable of shooting 1080p video, and a two MP front-facing camera. The device has three shooting modes (normal, stabilization and burst) and four scene modes (action, whiteboard, night, beach and snow). To save geolocalisation GPS data in photos, this feature must be enabled in the correspondent parameter list.

One of the biggest additions to the OS in update 10.1 was its new HDR camera mode. This feature allows users to shoot two photos at once, one in HDR mode and a separate in standard shooting mode.

The Z10 has Voice Control, that allows the user to operate the phone by spoken commands. Voice Control recognizes natural speech patterns, so that the user can talk naturally and always be understood. It can be used to send messages, compose emails, dictate documents, and search the phone just by speaking to the app.

Another new feature of the Z10 is the ability to play your music, videos and pictures on your DLNA devices over WiFi (DLNA server).

By supporting developers to bring their Android app creations to the Z10, BlackBerry took strategic advantage of the existing app ecosystem on Android.

More informations about the new Blackberry Z10 are available at the following links :

My Blackberry Z10 didn’t recover from a reboot two weeks ago and has now been replaced by an Android phone.

Mobile data offloading with WiFi and Femtocells

Mobile data offloading is the use of complementary network technologies for delivering data originally targeted for cellular networks. For mobile operators the main purpose for the offloading is to prevent congestion of the cellular networks.

The main complementary network technologies used for the mobile data offloading are WiFi and Femtocells. Wi-Fi offloading is an emerging business domain with multiple companies entering to the market with proprietary solutions. Depending on the services to be offloaded and the business model there may be a need for interworking between WiFi and mobile cellular networks. Three solutions have been analyzed so far :

  • Enhanced Generic Access Network (EGAN), a tight coupling architecture, specified by 3GPP (3rd Generation Partnership Project)
  • Interworking Wireless LAN (IWLAN), a loose coupling architecture, specified by 3GPP
  • Direct connection to the public Internet, the most straightforward way to offload data to the WiFi networks

There are three main initiation schemes of offloading procedures: WLAN scanning by ANDS (Access network discovery and selection function), user initiation or remotely-managed initiation.

Mobile data offloading for 3G/4G network using Femtocell technology is promoted by the industry Small Cell Forum.

Mobitest by Akamai

Mobitest by Akamai is a free mobile performance testing tool to give you a deeper understanding of how to improve your mobile website’s web performance. Mobitest can provide you with a video of your website loading, the HAR file of your runs, the average loadtime, and the average size of your mobile website. Mobitest is built off of the webpagetest.org framework and leverages real devices to extract the data.

Mobitest was open-sourced in march 2012.

Other web testing tools for mobile devices are MobileOK and MobiReady.

Frozen iPod Touch

Today my iPod Touch became frozen with a white blank screen. It was unresponsive to buttons and all other inputs and not recognized by iTunes. The reset procedure indicated by Apple to push the Sleep/Wake button and the Home button at the same time, for at least ten seconds, didn’t help.
After waiting until the iPod ran out of battery completely and recharging, the iPod Touch recovered and is now fully operational again.