About apps

10 09 2014

‘App’ is the modern term for application which means a set of instructions to let your device solve life’s dilemmas one app at a time.

Inextricably linked with apps are small animals which most aggressive life forms are well-known from tropical areas and called bugs. Today we have them also massively in the temperate zones and they are distributed for free by Apple, Microsoft, Google, medium-sized companies, and individual enterprises mainly via Apple’s App Store and Google’s Play Store.

20140617-091131-33091606.jpg

Free apps are almost always designed for promoting services or developed by individuals who just like programming or want to carve out a way to success in getting commissional work. It’s obvious that the paid ones are made for making money. Unfortunately many of them are offered just for making money. Developers should know that this is a short-term strategy and often borders on fraud.

We, as the customers, should punish these companies by writing appropriate reviews and ask Apple for refund of costs.

Note
A lot of craptacular apps that should never find their way to your iOS device can be found in the App Store. Apple just controls conformity of apps with their guidelines but doesn’t identify crap. Although Apple’s terms and conditions state that ‘All sales and rentals are final’ you can apply for a refund if your cause is legitimate. Here is how to do it:

  • Open your iTunes Account.
  • Open the Purchase History.
  • Click on ‘Report a problem’.
  • Select the app and click on ‘Report a problem’.
  • Choose one of the six categories Apple lists for app-related complaints and add legitimate reasons.

It’s still one of the biggest disadvantages of Apple’s App Store not to offer apps free for a limited time to decide if you want to keep it. Serious developers offer a so-called ‘Lite Version’ for free with some limitations of features.

Well, independent of the motivation individuals or businesses have when offering apps customers are only interested in bug-free versions just doing what they are intended for and offering a great user experience described in Apple’s iOS Human Interface Guidelines.

Classification of apps …

When we talk about apps we should first classify them.

Speaking in broad strokes apps may be classified as follows:

  • Table-Based Apps
    The app allows access to hierarchically organized data. Opening the app displays topics and often a Search-Field where you can enter a term. the app then displays topics matching the term. Tapping on a topic displays related information.
    Examples: dictionary, product description with parts lists
  • App based on Complex Databases
    This type of app is an extension to simple table-based apps with improved features of parsing out content. Often included is an online access that allows updating of the database to always work with actual data managed on a webserver. A simple solution is to download updated on demand and store them permanently in a local folder of the device. So the user is independent of a working internet connection. A more complex solution is the retrieval of updated records when needed.
  • Apps Improving Built-In Features
    iOS provides tons of features developers have access to. But some of Apple’s built-in apps don’t meet the requirements of users. With the camera you can take photos of several pages of a document. You will need an additional app to convert these image files into a single PDF, the scanned document.
    A typical example is Readdle’s app Scanner Pro where scanned documents additionally may be organized in folders.
  • Fully Dynamic Apps
    Similar to the database driven apps, these apps are the kind that rely purely on external information – Apps for social networking like Twitter, Weather Pro, WordPress, etc. usually there is Read-Write access to webservers (read tweets for displaying them, write new tweets).
    Some apps additionally provide encryption when transferring data from or to the device.
  • Apps for Creating Data
    The user enters the content (writes letters, creates spreadsheets, or presentations, annotates PDFs), manages storage places (local folders and cloud storages), uses convert algorithms (Microsoft Word to Apple Pages) and shares documents with other users. Typical apps of this kind are Apple’s iWork suite, Tap Forms Database, iThoughts Mind Mapping, Adobe Reader, etc.
  • Games
    These have the largest range of complexity, starting with something as simple as a PONG type functionality (PONG=one of the earliest video games by Atari) all the way up to a 3D physics engine that does high speed air racing. Scoring points, incorporating the user experience through the physical movement of the device, and hooking into Game Center are all possible.

Testing …

Developers have to learn four simple rules to become successful.

  • Take care about the system analysis.
    It’s the process of studying procedures in order to identify its goals and purposes and create a system (the app) that will achieve them in an efficient way.
  • Test your app and if you don’t find a bug test it again.
    Before starting any tests, developers have to shut down and use their schizophrenic partition to reboot. From now on they must behave like bad guys trying to destroy the whole work of this incompetent developer.
  • Listen to your customers.
    If features and the UI are driven by customer requests and feedbacks it’s likely that you will be successful with your business.
  • Set up a platform.
    That means create a mobile friendly website without ad, engage in social networks, etc.

All this doesn’t help if the app isn’t stable or the UI doesn’t feel like ‘Made for Apple’s mobiles’.

Here is how testing should work but in most cases it obviously doesn’t. One of the developers I’m talking about should be expected to do a professional job but it’s an individual enterprise which shows us how to do the job – a painful affair for the big company.

20140619-091058-33058773.jpg

Feel free to download this map from my Box account.

The alternative file formats have been created with iThoughts for iOS (.ITMZ file format). Compatibility to other tools is limited. The DOCX file format is suggested for those who don’t use a mind mapping tool. The file contains the image as well as a detailed outline of all topics.

Application File format
Adobe Reader PDF
Apple iWork/Microsoft Office DOCX
iThoughts ITMZ
MindManager MMAP
XMind XMIND

Testing an application is an indispensable task and it often takes more time to go through all the test scenarios than to write the code. The most important part of the whole testing procedure is called Functional Testing. This is a type of black box testing that is based on the specifications of the software that is to be tested.

Keep in mind that the developers of iThoughts and Tap Forms do it all alone.
They are project manager, quality assurance manager, programmer, CEO, website owner, publicity expert, accounting clerk, and often
complaisant husband, father of some kids, owner of a dog and tax payer.

The application as a whole system is tested by providing input and evaluating the system’s compliance with its specified requirements.

  • Unit Testing
    Unit Testing is performed by developers on individual units of source code. The developers use test data that is separate from the test data of the quality assurance team.
    The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.
  • Integration Testing
    Integration Testing is done to determine whether all single units of the app properly work together.
  • System Testing
    Once all the components are integrated, the application as a whole is tested to see wether it meets the quality standards. This type of testing is performed by a specialized testing team. System Testing is one of the most important steps on the long way from an idea to the deployment of an app.

    • System Testing is the first step in the Software Development Life Cycle, where the application is tested as a whole.
    • The application is tested thoroughly to verify that it meets the functional and technical specifications.
    • The application is tested in an environment which is very close to the production environment where the application will be deployed.
    • System Testing enables the developers to test, verify, and validate both the business requirements as well as the application architecture.
  • Regression Testing
    Whenever an app is updated it is quite possible that other areas within the app have been affected by this change. The intent of Regression Testing is to ensure that a change, such as a bug fix did not result in another fault being uncovered in the application.
  • Acceptance Testing
    This is arguably the most important type of testing as it is conducted by the Quality Assurance Team who will gauge whether the application meets the intended specifications and satisfies the client.s requirements. The QA team will have a set of pre written scenarios and test cases that will be used to test the application.
  • Alpha Testing
    Unit testing, integration testing and system testing when combined are known as alpha testing. The teams look for spelling, broken links, quality of the help system, etc. The app will be tested on devices with the lowest specification to test loading times and any latency problems.
  • Beta Testing
    In beta testing a sample of the intended audience tests the application. Beta testing is also known as pre-release testing. Beta test versions of software are ideally distributed to a wide audience on the Web, partly to give the program a “real-world” test and partly to provide a preview of the next release. The audience will be testing the following:

    • Users will install, run the application and send their feedback to the project team.
    • Typographical errors, confusing application flow, and even crashes.
    • Getting the feedback, the project team can fix the problems before releasing the software to the actual users.
    • The more issues you fix that solve real user problems, the higher the quality of your application will be.
    • Having a higher-quality application when you release to the general public will increase customer satisfaction.

Two examples …

As a mind mapper and an engaged member of Google+ I frequently use my preferred mind mapping tool iThoughts by toketaWare as well as Google’s app Google+.

toketaWare
is a small software development business based in the UK (just outside York.) When I say small, I mean really small. Currently it’s just me, Craig Scott.
In addition to the iThoughts mindmap products, toketaWare also builds/maintains makeDoc and makeSlides (iOS apps for converting Markdown, OPML and text into MS Word and PowerPoint files).
Toketa is a term used in Judo to describe when a person has escaped from being pinned down i.e. they’ve broken free. Seemed apt somehow – software that sets you free. That’s the goal anyhow!

Google
Well, what can I say, the app Stocks on my iPhone tells me that the market capital is $378,1B. Without knowing the capital of toketaWare I’m quite sure that Google is ahead.

The app Google+ crashes a couple of times each day when my iPhone 4S running on iOS 7 is unlocked and the app was in suspended mode. This happens since about 12 months and the problem can easily be proofed by countless complaints in different communities on Google+.

20140617-092123-33683418.jpg

But there is even more. The app doesn’t provide any useful support for moderators and doesn’t allow relevant settings for your Google+ account. Searching, limited to content if specific communities is not possible. There is no list of people you have blocked. Text typed in the comment section may get lost if you switch to another app and return to the G+ app. Formatting is supported only by using special characters like *, -, and _.

If you look up the version history starting on 2011-12-05 (version 1.0.7.2940) you will find many useless new features within the 25 updated versions and countless bug fixes which didn’t fix the most annoying bugs.

Let’s have a look on the Reviews. I found 4.651 reviews for all versions which is definitely a negligible quantity compared to the number of downloads. The consequence for me is that reviews published in the App Store are most often useless if it comes to an objective assessment of an app based on a large/representative number of users.

Reasons are …

  • Apple hasn’t built bug reporting into the App Store, so customers use one-star ratings as a way of reporting bugs.
    Developers cannot contact people who post ratings.
  • People are much more likely to complain than to praise. If you have an app that crashes for 0.01% of your users, those users are generally not going to quietly ask Apple for refund. They’re going to post a negative review. However, the 99.99% of people for whom the app works great are not going to post five-star ratings.
  • The App Store only shows the ratings given to the latest version of an app. Every time a minor update is released, the app’s ratings history is effectively wiped out. If 0.01% of the users have a problem, the app ends up with ten one-star reviews which is a disaster for a developer.
  • Ratings are often made after a short time of usage and they most often do not reflect systematically collected experiences.

For those who make their living on the App Store, a one-star rating is an existential threat. If an app is rated one star, nobody will look at it or buy it. If it’s rated five stars, the company will make a decent living but lack of features may still hamper the usage of many customers. A typical case is the missing support for the WebDAV protocol which is essential if users do not have accounts for the predefined cloud providers offered in the app’s settings.

Since years I’m in close contact with two small companies

  • Tap Zapp Software Inc., Canada
    developing the database application Tap Forms
  • toketaWare, UK
    developing the mind mapping tool iThoughts

following Steve Jobs’ philosophy

To purchase is to build relationships.

A fast, understandable and friendly support ends up in a win-win-situation for both, customers and developers. Regardless of any educational background developers can learn from their customers.

Let’s have a look on the presentation of the app iThoughts.

20140617-092449-33889330.jpg

Meaningful images, factual descriptions of relevant features, a link to a website with lots of useful information and a ‘What’s new’ mind map delivered with every update.

I summarized the updates in a mind map. toketaWare publishes the details of updates in contrast to many other developers just describing their new versions with useless notes like

  • Various bug fixes
  • Overall performance improvements
  • Runs better than before
  • Improvements for reliability
  • Fixes to make the app a little better for you

20140617-092545-33945285.jpg

Apple’s guidelines …

An iPhone, by itself, is a somewhat dull device after you get over touching the screen of a cell phone. Sure, it’s an innovative device, but it’s just another cell phone with a unique way of interacting with it before applications are added.

20140617-094432-35072473.jpg

But once applications are added to the device, it becomes a far more compelling product with a series of great applications that easily make it the best cell phone in the market. And it’s because of Apple’s Guidelines every developer has to follow when offering software products.

20140617-181711-65831661.jpg

Feel free to download this map from my Box account.

The alternative file formats have been created with iThoughts for iOS (.ITMZ file format). Compatibility to other tools is limited. The DOCX file format is suggested for those who don’t use a mind mapping tool. The file contains the image as well as a detailed outline of all topics.

Application File format
Adobe Reader PDF
Apple iWork/Microsoft Office DOCX
iThoughts ITMZ
MindManager MMAP
XMind XMIND

Summary …

Developing an app successfully running through all stress tests and following Apple’s iOS Human Interface Guidelines is a quite complex task and it doesn’t differ from the development of an application running on computers.

Character traits define your personality, your underlying values and your beliefs. Maybe you remember my interview with Brendan Duddridge, the developer of the awarded database app Tap Forms.

I like Steve’s philosophy on design. Make it simple and beautiful to use. Steve surrounded himself with brilliant people who he could command to do the best work of their lives. I don’t have that luxury so I just try to build the best and easiest to use app that I can possibly think of.
(Brendan Duddridge)

I take my hat off to all the individual enterprises doing their job much better than their big competitors.

Related links …

App Development + Marketing

iThoughts, redesigned, reengineered, re-everythinged

Tap Zapp Software Inc.

Google+ on iOS devices

About guidelines …

App Store Review Guidelines

iOS Human Interface Guidelines

UI Design Dos and Don’ts

Thanks for dropping by.


Actions

Information




%d bloggers like this: