Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘Mobility

Apple Mobile Trends

with 2 comments


With Apple’s WWDC conference just wrapping up, I thought it might be a good time to meditate on a few of the current trends in the mobile world. I think the patent wars are sorting themselves out as Google and Apple settle and we are seeing a lot more competitive copying. Apple added a lot of features that competitors have had for a while as well as adding a few innovations unique to Apple.

The competitive fervor being shown in both the Google and Apple mobile camps is impressive and making it very hard for any other system to keep up.


Cloud Storage

Apple has had the iCloud for a while now, but with this version we are really seeing Apple leverage this. When Google introduced the Chromebook they used this video to show the power of keeping things in the Web. This idea has been copied somewhat by Microsoft. But now Apple has taken this to the next level by allowing you to continue from device to device seamlessly, so you can easily start an e-mail on your phone and then continue working on it on your MacBook. No having to e-mail things to yourself, it all just seamlessly works.

Apple also copied some ideas from Google Drive and DropBox to allow copying files across non-Apple devices like Windows as well as sharing documents between applications. So now this is all a bit more seamless. It’s amazing how much free cloud storage you can get by having Google, Microsoft, Apple and Dropbox accounts.

Generally this is just the beginning as companies figure out neat things they can do when your data is in the cloud. If you are worried about privacy or the NSA reading your documents, you might try a different solution, but for many things the convenience of this outweighs the worries. Perhaps a bigger worry than the FBI or NSA is how advertisers will be allowed to use all this data to target you. Apple has added some features to really enable mobile advertising, whether these become too intrusive and annoying has yet to be seen.

Copying is the Best Compliment

Apple has also copied quite a few ideas from Google, Blackberry and Microsoft into the new iOS. There is a lot more use of transparency (like introduced in Windows Vista). There is now a customizable and predictive keyboard adding ideas from Blackberry and Microsoft. Keyboard entry has been one of Apple’s weaknesses that it is trying to address. Similarly the drive option in the iCloud is rather late to the game.

Apps versus the Web

There is a continuing battle between native applications and web applications for accessing web sites. People often complain that the native mobile application only gives them a subset of what is available on the full web site, but then on the other hand the consensus is that the native mobile apps give a much better experience.

True web applications give a unified experience across all devices and give the same functionality and the same interaction models. This is also easier for developers since you only need to develop once.

However Apple is having a lot of success with apps. Generally people seem to find things easier in the Apple App store than in browsing and bookmarking the web. Apple claims that over half of mobile Internet traffic is through iOS apps now (but I’m not sure if this is skewed by streaming video apps like Netflix that use a disproportionate amount of bandwidth).

Yet another Programming Language

Apple also unveiled a new programming language Swift for mobile development. One of the problems with C, C++ and Objective C programming is the use of pointers which tends to make programming harder than it needs to be. Java was an alternative object oriented extension to C with no pointers, then C# came along copying much of Java. Generally most scripting languages like Basic, JavaScript, Python, etc. have never had pointers.

Rather than go down the road of Java and C#, Swift has tried to incorporate the ease of use of scripting languages, but still give you full control over the iOS API. How this all works out is yet to be seen, but it will be interesting if it makes iPhones and iPads really easy to program similar to the early PCs back in the Basic days.


The Internet of Things

Apple introduced two new initiatives, their Health Kit and Home Kit. Health kit is mostly to encourage adding medical sensing devices to your iPhone, whereas Home Kit is to extend iOS into devices around the home and to control them all from your iPhone.

The Health Kit is designed to centralize all your health related information in one central place. There is getting to be quite a catalog of sensors and apps to continuously track your location, speed, heart rate, pulse, blood pressure, etc. If you are an athlete, this is great information on your fitness level and how you are doing. Garmin really pioneered this with their GPS watches with attached heart rate monitors. I have a Garmin watch and it provides a tremendous amount of information when I run or cycle. I don’t think this is much use for the iPhone, which I always leave behind since I don’t want to risk it getting wet, but this might really take off if Apple really releases a smart watch this fall like all the rumors say.

Home Kit is a bit of reaction to Google buying Nest, the intelligent thermostat. Basically you can control all your household items from your phone, so you can warm up the house as you are driving home, or turn all the lights on and off remotely. We have a cottage with in-floor heating, it would be nice if we could remotely tell the house to start heating up in the winter a few hours before we arrive, right now it’s a bit cold when we first get there and turn on the heat. However with zoned heating we would need four thermostats and at $250 each, this is rather excessively expensive. I think the price of these devices has to come down quite a bit to create some real adoption.

There is a lot of concern about having all of these hacked and interfered with, but if they get the security and privacy correct, then these are really handy things to have.


Apple has introduced some quite intriguing new directions. Can Swift become the Basic programming languages for mobile devices? Will Health Kit and Home Kit usher in a wave of new wonderful intelligent devices? Will all the new refinements in iOS really help users have an even better mobile experience? Will native apps continue to displace web sites, or will web sites re-emerge as the dominant on-line experience? Lots of questions to be answered over the next few months, but it should be fun playing with tall these new toys.

Written by smist08

June 7, 2014 at 4:27 pm

Accpac on the iPhone and Android

with 15 comments

In a previous posting (, I talked about our mobile strategy of using HTML and JavaScript screens to run on mobile devices. But how exactly will that work? Mobile phones like the iPhone allow you to run web sites in the same manner you run native applications. So you can add an icon to the phone’s home page and then run your web based application. But does it look like a true iPhone or Android native application? Well it does with a little help. There are now several JavaScript libraries that reproduce the look and feel of native phone applications. In the screens below, I used the JQTouch ( library to easily construct some menus to act as an “Accpac Mobile Desktop” to launch our various data portlets ( This lets a user see various dashboards in real time from their phone.

In this picture we have a basic iPhone with some home page icons, including one for Accpac.

When you select the Accpac icon you then go to a set of menus for Accpac. Notice that even though this is a web page, it looks just like any other iPhone application. There isn’t any sign of the Safari browser, everything is nicely hidden.

The menus have nice animated transitions, so when you select them they slide to the side. Clicking on Payables yields:

Then if we click on Aged Payables we get to our regular Aged Payables snapshot that we normally see in the new portal/desktop. At this point our portlet isn’t styled to fit into the iPhone and there are a few style sheet bugs. But otherwise it does nicely display your aged payables.

Actually it looks a little better in landscape:

To use Apple’s iPhone SDK and iPhone emulator you need a Mac computer. I don’t own an iPhone, an Android phone nor a Mac. To test for the iPhone I used the MobiOne Test Center ( For Android, I used the emulator in the Android SDK (

Same sort of thing in Android:

Since we have made all our screens with standard HTML and JavaScript we will work on all modern devices. Plus as HTML5 is rolled out over the next few years we will pick up all the advances there as well.

Written by smist08

June 25, 2010 at 11:40 pm

Posted in Mobility, sage 300

Tagged with , , ,

Sage ERP Accpac 6.x Mobility

with 7 comments

Although we aren’t targeting mobile clients for our first couple of releases, we are architecting the Accpac 6.x series with mobility in mind. This blog posting isn’t meant to layout a roadmap for our mobility support, but to talk about what we are doing to support mobile clients and why. Mobile devices are proliferating. By mobile device, I mean anything you can carry around with you and stay connected to the Internet, from cell phones to iPads to netbooks. Typically these devices are connected to the Internet via cell phone carriers, or through WiFi hotspots.

The first key to our mobility support is Internet Browser independence. On regular PCs, most people run Internet Explorer. On mobile devices, almost no one uses IE. The most common mobile browser engine is WebKit an open source technology that is at the heart of the Apple Safari, Google Chrome and RIM browsers. Other popular contenders are mobile optimized versions of Firefox and Opera. For Accpac we need to ensure we work well in all these environments.

Generally we are taking the approach of running well in a mobile browser rather than developing mobile applications for each platform. If we were to do this we would need a version of Accpac for the Apple iPhone, iPad and iPod; Microsoft Windows Mobile; Google Android and ChromeOS; RIM Blackberry; Palm OS; Nokia Symbian, etc. This proliferation of mobile platforms has led to fierce competition and moved the technology ahead in leaps and bounds. But it makes it hard for software vendors to natively support them all. Plus there is the added complexity of dealing with all the separate application stores and all their rules and regulations. For us its way easier to be a well behaved Web Application that runs well in each device’s native browser.

The first thing is to handle hugely varying screen sizes. You can get racks that hold 6 large screen monitors and hook them up to your PC to get a tiled giant high resolution display, then at the other end of the spectrum, there are cell phones with huge computing power, but tiny low resolution screens. We certainly don’t want to optimize all our screens for 320×120 resolution and have a postage stamp sized screen on a big screen regular PC monitor. Our regular screens actually work fine on devices like the Google Android, but you have to scroll around quite a lot to get to all parts of the screen. In the Accpac 6 architecture the screen layouts are contained in separate XML files, unlike our previous VB6 technology where the screen layout was part of the program file. This allows us to maintain a repository of different XML files on the server and have some intelligence to serve up the correct layout based on the circumstances. It then becomes much easier to have minimal low resolution versions of the screens along with the regular ones. Plus all these can be customized. It might even eventually be necessary to produce medium resolution version for devices like the Apple iPad. On the other hand, the screens on these devices are getting better and better, but there are limits to what the human eye can discern. After all no one wants a giant cell phone, the smaller the better, so at some point improving the resolution doesn’t help.

We also need a minimal version of our main program Portal. Probably something with just a few big buttons to run a handful of screens, then when pressed each one takes up the whole screen with no Portal frame around it. Mobile users might even just run the screens directly in their Browser from their favorites menu.

Another difference in the mobile market are the input devices. No mouse and you are lucky if you have a qwerty keyboard. Touch screens aren’t as precise as a mouse and we have to have bigger buttons and controls or the user can’t select or manipulate them. New input devices like motion censors are present. What does it mean to Order Entry if someone shakes the iPhone? Does this mean clear the order and start over? Basically to work well on these devices we need to figure out what all these new metaphors mean to our Accounting Applications.

When we architected Accpc 6 to run in any Browser, the goal wasn’t so much being able to run in Firefox on Windows, it was more about extending the reach of where you can run Accpac screens, including PCs like Macs or Linux Netbooks, tablets like the iPad, or all the small cell phone based devices like the Apple iPhone and Google Android.

Written by smist08

March 19, 2010 at 9:20 pm

Posted in Mobility, sage 300

Tagged with , , , ,