Click Here to Request a FREE Quote to Develop an iPhone App or Android App

Integrating SharePoint, iPhone Apps and Android Apps

Microsoft SharePoint Logo
Microsoft SharePoint

Microsoft SharePoint is a popular content and data management system, which integrates easily with non-microsoft technology, such as iPhone Apps and Android Apps.

The functionality of SharePoint I have experience integrating is SharePoint Lists.

A SharePoint List is a cross between a web document and a database. It provides means for quickly building and maintaining structured data, and defining relationships between different elements of that data.

For example, you can define a Microsoft SharePoint list which holds details of assets which your company manages, such as factories, shops, or other inventory, then define a second list, which provides a maintenance history for each asset. The second list can be linked to the first list, so for example you can enforce that one of the fields in the second list must be the identity of an asset in the first list.

SharePoint takes care of the complexity of handling collaborative updates to list documents, such as versioning of each change.

There is even an attractive web interface, which is compatible with most mobile devices, and several excellent iPhone Apps and Android Apps, for accessing your SharePoint portal.

So why would you ever need a bespoke iPhone App or Android App, to interact with SharePoint?

The reason clients ask me for help with SharePoint integration is because standard, off the shelf apps do not deliver a specific feature or set of features they require.

For example, what do you do if you want to take SharePoint offline? A client had a requirement that mobile apps be able to be used at sites with poor Internet coverage, so they needed an app which could populate the fields of new SharePoint list instances, and save the new instances in the internal storage of their iPad device, so all the saved changes could be applied to the server once the user had access to the Internet.

Another scenario, a client wanted to extend SharePoint functionality with app device capabilities, to create the ability to upload mobile camera photos to SharePoint list instances, and to upload GPS readings.

Finally, since the apps are interacting with SharePoint as a data store, the Apps are free to implement their own front end – they can guide users through the data acquisition or data delivery process, by imposing a specific workflow on the users – by granting users a limited view of the underlying SharePoint data, and by ensuring all necessary steps of a workflow are executed in the correct order.

A bespoke SharePoint iPhone App or Android App can preserve SharePoint flexibility. It is entirely possible for mobile Apps to apply the bespoke SharePoint functionality extensions on a list field by field basis, to allow the list structure to be changed, to allow new fields to be exposed to users without having to release a new version of the bespoke iPhone or Android SharePoint App.

Bespoke Customisation of the SharePoint experience can help with delivering acceptance and enthusiastic adoption of the underlying SharePoint implementation, by painlessly integrating user requirements which are not best handled by the standard toolset.

Contact me now, if you have or are interested in creating a Microsoft SharePoint based user experience, but have requirements which go beyond what the standard tools can deliver.

The Mobile App Revolution

The App Revolution Screenshot
The App Revolution

Back in 2012 Channel Nine (Australia) presented “The App Revolution” as a segment of the popular “60 Minutes”.

http://sixtyminutes.ninemsn.com.au/stories/8491606/the-app-revolution

The video of the presentation is now available online.

I strongly recommend anyone interested in developing an iPhone App or Android App watch the presentation. It communicates how apps have changed the world, and how lives have been transformed by people with a simple idea, and a burning desire to make it happen.

If you are interested in learning more about mobile app development, Contact Me.

Mobile App satisfaction vs Monetisation

A cauldron with money
Monetising Apps with Advertising

According to the latest American Customer Satisfaction Index, Facebook has suffered a significant drop in customer satisfaction, and is now close to the bottom of the heap, along with Linked in.

The drop in satisfaction ratings may be related to the level of advertising on the sites. Google+ for example, lost ground last year, but appears to have recovered some ground;

“A sharp increase in search engine advertising contributed to a drop in user satisfaction last year, but Google’s latest change to the way ads are labeled, along with its focus on the mobile user experience, may be steps in the right direction,” said [ACSI director] VanAmburg

If there is no in-app or web site advertising, sites and iPhone apps and Android apps which rely on advertising for revenue wouldn’t make any money – but the satisfaction surveys are a warning to businesses which rely on advertising revenue, not to push the envelope too hard. Because there is always a competitor eager to offer your customers a better user experience.

Amazon Cognito – A New Server for iPhone and Android Apps

Amazon have just announced Amazon Cognito – a new server technology for rapid development of Mobile App Servers.

Servers are a common feature of iPhone Apps and Android Apps. In its simplest form, a mobile app server allows apps to share data. Although iPhone Apps and Android Apps have access to the internet, they can’t talk directly to another copy of the same app on a different phone, except in special circumstances (e.g. if both apps are on the same WIFI network). There are various technical reasons for this, though one of the most important is the apps simply can’t find each other.

Instead, iPhone Apps and Android Apps use their internet access to contact a server, at a known internet address, which relays messages between different phones.

Amazon Cognito aims to simplify this process, by reducing the effort required to create new app servers. Instead of having to write variations of the same server code again and again, apps which need to share data can link up to Amazon Cognito, with minimal bespoke server code and server configuration.

Contact me if you would like to find out more about how Amazon Cognito could simplify the design and cut the cost of your next iPhone App or Android App.

Why Create iPhone, Android Apps on the Fraser Coast?

Working hard on iPhone apps and Android Apps
Developing Mobile Apps in Paradise

This post is a little different to what I normally write.

Every country wants to create its own answer to Silicon Valley – an amazingly small area of America in which is the source of much of the world’s creative technology.

Desirable Apps and The Apps Nursery thinks we have found a place which has the potential to be Australia’s Silicon Valley – Australia’s Fraser Coast.

The advantages of developing iPhone apps and Android apps on the Fraser Coast are:

  • A beach – anywhere which wants to attract talent has to have an awesome amenity. The Fraser Coast has one of the best beaches in Australia.
  • Year round warm weather – “winter” here is a few cold weeks in July.
  • A major University. The locals worry that their children who attend University have to relocate to pursue their profession. A local technology hub could change all that.
  • Affordable housing and business conference spaces – very important for startup business working on a shoestring
  • Adequate internet infrastructure. OK, this could be better – but you can get a decent mobile internet signal on the esplanade, and home WIFI is good enough to have a Skype video chat.
  • A terrific environment for children and young families – great schools, lots of parks, a safe, child friendly environment.
  • Excellent transport links to the rest of Australia, thanks to the Fraser Coast’s existing tourist industry.

The Fraser Coast, as far as we can tell, has all the essential ingredients to be a world class technology hub. The one thing missing is the spark – the belief that it can be done. We are hoping Desirable Apps can change all that.

Fraser Coast Opportunities created a write up of our business recently, in which we mentioned our vision of the potential of the Fraser Coast. Hopefully this is an idea which will take root and flourish.

Talking to your Android and iPhone Mobile Apps

talkingToPhone


Apple iPhone App Developers are all waiting with baited breath for Apple to allow open access to their SIRI engine, Apple’s engine for understanding spoken communication. As of the last time I checked (about 5 minutes ago), Apple does not allow Apps to start SIRI – so users can choose to say fill a text field with SIRI, but the app cannot start SIRI on behalf of the user.

Android has a voice recognition window which an app can open – but it is not really under the control of the app. The Android app can request that the Android phone or tablet present a window which accepts voice, then when the user indicates they have finished speaking, Android passes control back to the app, which can analyse the result of the voice recognition effort.

Neither of these options is “natural” – both the iPhone and Android option are in my opinion clunky, they require the user to take positive action to restore control back to the app.

If your iPhone app or Android app needs hands free voice control, the app needs to be able to initiate voice recognition, detect when someone is speaking, and process the voice to determine what was said, independent of whether the user presses a button.

Thankfully, third party service providers have filled this gap.

My favourite is Dragon Mobile. Dragon Mobile SDK is provided by the same company which publishes Dragon Speech, the legendary desktop PC speech recognition application, Nuance. Nuance has been in the game for over a decade – from somewhat humble beginnings, their product has developed into a sophisticated and reliable speech recognition system, a remarkable achievement in artificial intelligence.

The only downside of Dragon is it relies on an Internet connection. The processing power required to recognise and interpret normal spoken sentences is far greater than an Android App or iPhone app can deploy, so Dragon SDK ships the compressed sound files via the Internet to their servers.

What is the Internet bandwidth is an issue? There are still options. An Android App or iPhone app does not have the processing power to interpret any arbitrary spoken sentence, but it does have the processing power to recognise individual words. So if your iPhone app or Android app only has to recognise a handful of words, such as “yes”, “no”, and “maybe”, then the processing power for this simplified task can be comfortably accommodated without an internet connection to an external server.

If you are interested in Android Apps or iPhone Apps which can recognise speech, or which can read text from images (optical character recognition), please email eworrall1@gmail.com, to discuss your requirements.

Can my iPhone app or Android app run Microsoft .NET Components?

The answer, surprisingly, is a qualified “yes”.

iPhone Apps and Android Apps execute in a Unix like environment – both are based on BSD Unix.

BSD is very like its better known cousin Linux, except that the license terms for BSD make it easier to customise – unlike Linux, with BSD you don’t have to make your modified source code public domain.

And .NET components can run on Unix (i.e. iPhone app and Android app environments), by using the Mono framework.

There are a few gotchas. Mono components will run slower than native components, and consume more memory – which can be an issue on memory constrained devices like mobile phones. So I would recommend against writing an entire app in Microsoft C#. In addition, some features won’t be wired up out of the box, so if you want to display a .NET XAML component on your iPhone app screen, you can look forward to a great deal of work.

But if you want to say create a native iPhone App or Android App, but embed a Microsoft .NET communication client component for talking to your backend system, then an embedded Mono system could provide a labour saving solution to your needs.

Mono also works on Linux servers – ASP.NET components can in many cases be run immediately after a Mono environment is installed on an Apache Linux system.

If you would like to know more about running Microsoft components in an iPhone app or Android app, please leave a comment, or contact Eric Worrall.

Why Android is still Second Best for Some

Thinking back to my old Sony Ericcson P990, back in the mid noughties, I would have loved to replace it with an Android phone.

The P990 was a geek phone. It had no battery life, but it had an amazing array of features. I once reconfigured it to use an international dial up internet connection, to post an email from a beach in Thailand, where no mobile internet was available (at the time). You can’t do that with a modern phone. But the P990 was in my opinion utterly unusable, unless you knew an awful lot about IT.

Compared to that, Android is a dream for ordinary users – most of the functions can be accessed without arcane messing with the settings, the app paradigm is simple and intuitive – what could be better?

The answer of course is iPhone. I tried switching my wife to an Android phone a few years ago, when she needed a new phone (I needed a new test device, budget was tight) – she hated it.

I had to buy my wife a new iPhone when she threatened to throw the Android phone out the window of the car. It kept stalling her, tripping her up with sudden eruptions of complexity, which she needed me to fix – something she never had to fear when using an iPhone.

Granted her phone ran Gingerbread, and new versions of Android are far better.

Android is good, many people use it and love it. Android Apps can do things iPhone Apps are forbidden from doing. An Android app can send email or SMS on your behalf (once you grant fairly scary permissions before installation), which opens a vast range of desirable functionality, such as apps which create personalised SMS messages.

Android apps can run background processes (iPhone is very limited in this regard, though less so with iOS 7), and Android apps have far fewer limitations when it comes to app store approval – so it is possible to configure Android apps and Android phones to do really useful tasks, which simply cannot be done on an iPhone, unless you jailbreak it.

But iPhone has one, towering advantage of Android – it doesn’t scare people. It doesn’t deter people who are uncomfortable with geek devices.

This in my opinion is the source of iPhone’s loyalty – people who don’t like tech, feel comfortable using an iPhone. This simple, powerful advantage is what makes iPhone special.

It remains to be seen whether Apple iPhone can maintain this advantage. Android is catching up – each generation of the Android operating system is a little easier to use, a little less threatening to people who can’t stand geek tech.

The next version of Android may be the breakthrough which levels the playing field.

Could Android Apps replace Microsoft Windows?

Today The Register, a major tech website, published news that China has discontinued its efforts to develop a Red Chinese rival to Microsoft Windows, Red Flag Linux. China loves Microsoft Windows XP so much, even Chinese government departments refused to give up their Microsoft Desktops, despite widely publicised suspicions that the USA uses hidden back doors in Microsoft Windows to spy on rivals.

The Chinese alternative to Microsoft was to be based on Linux. Linux is a terrific operating system. Linux is the dominant operating system in much of the server market. I use Linux extensively – when I am creating web technology server components for iPhone Apps and Android Apps.

However Linux never really made it as a desktop operating system. Outside of a few geeks, most people use Microsoft Windows or Mac computers. Linux never attracted a critical mass of desktop applications.

Or did it? There is a branch of Linux which did make it to the mass market – Android OS. All Android phones run Linux under the hood.

But Android is a phone operating system – what has this got to do with desktop computers?

It turns out that efforts are already underway to create a desktop version of Android. Android apps are very adaptable – they are designed to work on a wide variety of devices, with a huge variation in screen size. So making an app work on a desktop is not a big stretch – a small desktop monitor has a similar screen size to the largest Android pad devices.

Whether Android makes it on the desktop is still an open question – but unlike all previous attempts to displace Microsoft Windows, Android already has a very large, loyal following. Many people use Microsoft on their desktop, but have an Android phone, and love their Android Apps. The battle between Android and Microsoft for ownership of the desktop promises to be a popcorn event, rather than yet another Microsoft slam dunk.

So my advice to China – if you want independence from Windows, and the confidence of being able to examine and inspect every line of the code you are using, the solution may be right under your nose. Take a look at Android.

Should All School Children be Taught to Code?

Governments across the world are slowly waking up to the fact there aren’t going to be many jobs in the future which don’t involve a computer, or, given the pace of Robotics research, there might not be many jobs at all.

In response to this looming crisis, the UK government has decided to introduce mandatory software development lessons for all school children.

The problem is twofold:-

  1. Most people find software development intensely boring. The reason we are geeks, is normal people just don’t find fiddling with bits of code interesting. If you aren’t the kind of kid who enjoys spending hours building sophisticated model train sets or model airplanes, doing complex puzzles, or creating your own board game, you just haven’t got the mindset to code – it is not about whether you are smart, it is just that you will fall asleep from boredom before you learn anything useful.
     
  2. Governments and their advisors have no real idea what software development is, and have no idea how to teach it to others.

The tragedy is this desire to teach kids coding skills is motivated by a genuine concern for the future welfare and job prospects of the nation’s school children.

I have a few suggestions for politicians who want to help kids develop coding skills

  1. For pity’s sake, do not make the software lessons mandatory. By all means *expose* kids to a few coding classes, but allow the 99% of kids who find software coding intensely boring to drop out. Don’t poison their desire to be educated by adding what for most of them will be an unendurably monotonous subject to the list of courses they have to pass.
     
  2. Teach the handful of kids who are interested coding skills which are likely to be relevant – teach them to build Android Apps and iPhone apps.

    I am not suggesting iPhone apps or Android apps and phone handsets in 20 years time will be the same as they are today – they will be radically different. But at least start kids on the right path.
     

  3. Make it interesting – get kids to code and own apps which might actually make money. If a 14 yr old kid can create a world beating iPhone app, then anyone can – the very next app your kid codes could make millions of dollars.
     

My suggestions might not solve the looming future jobs crisis – but forcing kids to study something they can’t stand is not a solution either. In any case, there is reason to be optimistic about the future – many issues which in the past were seen as an urgent crisis rapidly solved themselves. Human ingenuity will solve this problem, just as it solved all the other problems we have ever encountered.

I refer interested readers to Scott Adam’s law of slow moving disasters.

If you would like to know more about how to develop Android apps and iPhone apps, or would like to discuss an app idea, please contact Eric Worrall.

If your app idea is not quite ready to go to a developer, please visit Apps Nursery, for expert assistance with exploring and developing your app idea.