Goldenseal Access from Anywhere #2

These days, almost everyone carries some sort of mobile device. The big question is, how do you connect it to your business computer(s) when away from the office?

Questions 2 to 4 from yesterday are:  where is the application located?  What runs the user interface?  And, how do the devices communicate?  I’ll try to cover them all at once.  This will get pretty technical, and if you want the short answer, you might better just skip to the end!

APP DEVELOPMENT ABCs

We consumer software developers have three basic choices.  We can create desktop apps that run on Mac, Windows or Linux.  We can write mobile apps for iOS or Android.  Or we can build a web app, which runs inside a browser.

Desktop and mobile apps run code on the local machine.  Apple pushes Objective-C (and soon, Swift) as a programming language for both Macs & iOS (iPhone, iPad).  Android pushes Java.  However, C++ (the language we use for Goldenseal) is popular and very solid, and all platforms support it.  It gives excellent performance with high reliability (if you use it right!), and is probably what is used most often for “serious” software.

Web apps are probably the hottest thing to program, these days.  They need a “back end” server app running on the website hosting machine– most often written in PHP with a MySQL database, but there are many other choices.  For interface, they may also use a “front end” app that loads along with the web page html, usually written in Java or JavaScript, with many other choices.

WHERE WE ARE HEADED

I spent a few months last winter, learning new languages and considering a switch to web app development.  Unfortunately, http and web protocols were designed primarily as a page-rendering system, not for secure business use.  Many programmers are valiantly making banking & e-commerce work on the web, but it’s an  ugly process, and there are many ways to fail badly.  Languages and standards are also rapidly evolving, so code has about a 5 year lifetime before it needs a total rewrite.  Maybe web development will be mature in 10 years, but right now it’s a tough environment.

On the other hand, desktop apps are stodgy but stable.  Yes, Apple has gone through 3 OS designs, 4 basic languages, 3 hardware chips and 3 development platforms since we first prototyped Goldenseal, but that is still a much slower pace than the current WWWeb.  Our 14-year-old Goldenseal code still runs OK, and it doesn’t need a ton of work to last another 14 years.  In general, we have well-tested, stable, reliable code that would be nice to keep using.

A few Goldenseal users already have managed to connect remote laptops to their offices via a VPN (Virtual Private Network).  VPN a feature built into all modern desktop and mobile devices, which lets you use the Internet to hook into a wireless or Ethernet network.  However, it’s not very easy to set up, and we currently use a server-discovery process (broadcast UDP) that is blocked by many VPN routers.

CONCLUSION

VPN seems like the way to go, and we can rework the network code in Goldenseal Pro, to make it easier to connect.

For laptops, that would mean signing on to your office server, from anywhere that has a decent Internet connection.  It would look exactly the same as if you were in the office, with acceptable speed.

For phones and pads, we can write new mobile apps that would let you do the same thing– but it will need a much simpler interface, designed for small screens.  It may work best to have separate small apps with just one function:  enter an expense, view an estimate, enter a customer contact.  Android & iOS are really not well-suited for complex business apps.

We have been playing with designs for an on-site pocket estimator, using inteface that we first developed for BidMagic and its precursors.  Estimating will work better on pads than phones, since it is really tough to do much on a screen with only 6 square inches.

Comments appreciated!

Dennis Kolva
Programming Director
Turtle Creek Software

Author: Dennis Kolva

Programming Director for Turtle Creek Software. Design & planning of accounting and estimating software.