The Maldives

24 06 2013

The Maldives, officially the Republic of the Maldives, is a group of 1,192 islands in the Indian Ocean about 250 miles south-west of India.

It’s definitely one of the most gorgeous places on this planet.

For sure, on the Maldives there are also people using iOS devices. But that would be no particularity and not an interesting topic for an article on this blog except we would discuss the problems of using gestures on a touchscreen with extremely clammy fingers.

Both, the Maldives and the iOS Filesystem are composed of islands.

Apple’s publication ‘About the iOS File System’
Every App Is an Island
An iOS app’s interactions with the file system are limited mostly to the directories inside the app’s sandbox. During installation of a new app, the installer code creates a home directory for the app, places the app in that directory, and creates several other key directories. These directories constitute the app’s primary view of the file system.

The ‘Open in’ command within an iOS app is the Dhoni which takes you from one i(s)land to another.

is a multi-purpose sail boat with a motor or lateen sails that is used in the Maldives. It is handcrafted and its use within the multi-island nation has been very important.

is the location of an app on your iPhone or iPad. It’s also handcrafted and if there would be no Dhoni for carrying data from one app to another an iOS device would totally loose it’s usability.
See my post The iOS Filesystem


The population of the Maldives inhabits 192 islands. So 1,000 islands are free for placing one bug on each island. If the Maldivian government permits each bug and flaw may take it’s app along.

The time will come when bugs will leave this world because they cannot bite the users any longer. Apple and the developers then may organize the repatriation of the recovered apps.

Here are the new inhabitants of the Maldives, apps, bugs, and flaws:

0001 Notability
Hyperlinks are not supported

0002 Instashare
PDF file format not supported

0003 Dropbox client
No options for sorting files
Sort order is fixed to ascending by file name
No renaming of folders
No WebDAV support

0004 Tap Forms database application
Print out of records just for one record at a time

0005 HP Printer Control
Downloading a PDF from my bank to print it out the app tells me that password protected PDFs cannot be handled.
(Printing via SAFARI worked without errors)
So what’s the sense of preventing the printout?

This reminds me of just renaming an EXE file to a ZIP file to let the file pass through a firewall. Isn’t it horse hockey?

0006 iOS
Missing apps in the ‘Open in’ menu
A bug Apple is not talking about. For me a big problem as it is not possible to import a CSV file into my Bento database installation on the iPhone.
On an iPad it works.

You cannot scroll down to the end of the site with one tap

In blogs on you cannot go the top of a site when tapping on iPad’s or iPhone’s status bar.

0009 Apple’s Photos
Saving photos from an app in the camera roll doesn’t keep the file name.
It’s turned into Apple’s file naming system (IMG_number) and further on nothing points to the content of any image.

0010 Bento
The only way to import data is via a CSV file as an E-Mail attachment.
It seems that FileMaker Inc. hasn’t heard anything about clouds.
Or do I have to by their MAC version of FileMaker server as well?

0011 Customer Center
(German Telekom)
The list of bills is ordered ascending without an option for changing this.
So you always have to scroll down to see the latest bill.
Consider your banking app would show you your very first account settlement first!

0012 Dropbox
Dropbox doesn’t offer a full text search within files like Google Drive.

0013 Google Drive
Google Drive offers a full text search which is an awesome feature.
After entering the search term the app lists all files containing the term.
But it does not highlight the references. So it makes me feel giddy to look for the term in a longer text.

0013 App Store
Developers describe their updates and you can read about changed or updated features before downloading the new version. All this you have to keep in mind because nearly no developers shows the history of updates in his app. If a new gesture is added you won’t remember the announcement and therefore cannot use the new feature.

Oh Lord, sometimes I think developers are just coding but forget that their users own a brain, not a harddisk where all the information is accumulated.
There is more than just coding to be successful and to meet the requirements of users.

0014 Photostream
You cannot transfer photos from the Photostream directly to the camera roll without creating a new album. Does anybody have an idea why?

0015 Google+ app
If you drag down e.g. within a community the information is refreshed.
If you drag down within an article the article is closed.
The same gesture for completely different actions.

0016 Twitter
If you try to follow the recommendations of Twitter to use 2-Step-Verification you have to enter your mobile phone number. With all well-known formats you get an error message here in Germany. Thanks Twitter for offering security in just some countries.

Pain hits my wrist. So I move over to #999.

0998 Apple’s Keynote
When inserting media into presentations you have access to the camera roll but not to the photostream. So you must transfer a photo from photostream to a new or an existing album.

0999 Foxit PDF (Foxit Corporation)
If you want to sync documents e.g. with your dropbox account you have to pay for it once! I never saw this in any other software.

Latest bug

1000 Google+ for iOS
Great new notification bar but the app crashes in many not really replicable circumstances. This didn’t happen in the former version.

The list is not complete yet.
And I’m sorry I cannot do the job without your help.
Please complete the list by writing comments.

Statements of a CEO …

Let me add parts of an interview with Oleg Lola, CEO of MobiDev Corporation.

Q: Hello Oleg! What is your opinion on the definition of a “bad” application?

A: Hi! Well, a bad app is one that does not satisfy the end users’ needs. That’s the definition for me as a developer. Any software must have a direct purpose, a precise task that it performs. …
So if the app lacks these, and it cannot perform its intended task, cannot meet the needs of audience, it’s a bad application.

Q: Are there any other peculiarities that make software “bad”, unpopular and inconvenient?

A: Yes, I can say a bad app is also one that doesn’t fully meet the needs. For example, a well-working app that doesn’t have a proper UI, or lacks some functionality. This causes inconvenience for users, who are very likely to abandon this app, and try to find a better one. I can also name support as a criterion; if the users have questions about the app, they must receive feedback; and software owner has to consider the reviews and improve the application. …
Speed and security are also very important. It’s unallowable to leave a chance for security breach and leaks of corporate data, e-mails, contacts, or any personal information. A good app not only has to bring benefits – it has to cause no harm. Bad software is created without the discussion of these issues between the software owner and developers.

Q: What about any minor problems, bugs?

A: Problems like these are usually eliminated through quality assurance. Bugs may also lead to dissatisfaction of end users, blocking them from using the app. That’s bad. But the major bugs are usually disclosed during the QA process, before the deployment.

Q: And what are the main problems an app can face after deployment?

A: The majority of problems after deployment are connected with compatibility of devices and platform versions. I mean Android. It has plenty of devices, smartphones and tablets. If the app doesn’t use the standard UI elements, for example, there might be problems on certain devices. That’s bad. …
iOS is a winner here: developers have to consider the differences between iPhone and iPad; and the platform versions – they check if the app works properly on the earlier versions. …

Other problems may include updates. For example, occurs some change in Facebook, some function is added, or some is removed. This may influence the app that has integrated Facebook sharing. This has to be tracked and updated in case of necessity. … Updates are vital for good apps.

Q: What are the main mistakes of developers that result in such a questionable outcome?

A: This may sound trivial, but good software developers are people inclined to creative work, in some way like composers and poets. Custom software works are often highly individual. No developer would knowingly put bugs into the app. The main mistakes are usually connected with inattention. A lot here depends on the developer’s experience. On one hand, an app must be done to be close to perfection. On the other hand, developers can mistake, and do mistake, you cannot predict and consider just everything. …
And here we come to quality assurance.

Q: You mean that the app that hasn’t undergone proper QA, has all the chances of being dubbed a bad one?

A: Correct. Developers and QA specialists both vitally shape the app. But while developers create the app, QA specialists must wish to destroy it. That’s the opposite activities that work for the quality of the app. QA tests the capabilities of the application, find its limits. The better are the attempts to destroy the app, the more problems are found and eliminated. …
Testing is an obligatory stage of our software development. …
Don’t cut down QA for the sake of sparing costs. QA is the essential way to make sure you will get the high-quality software you want.

Unfortunately all these statements are valid only for roughly 1% of the apps available at Apple’s App Store. And you recognize it after purchasing.
So on my point of view Apple cannot necessarily be proud of it’s overloaded software offer.

Again I want to quote a comment of my friend Michael Wilde published on Google+. Michael is an expert with more than 30 years experience in application development.

I have worked with well marketed apps. They look great and well organized at first use. But when one digs deeper into the app; there are sometimes basic , functions missing. I expect them to be apart of the app; push every screen and device button. The basic function just does not exist. I wouldn’t buy a used – automobile because it looked nice from the outside and had a great stereo system. The same goes for applications on any platform. Don’t be fooled by , applications that have “great stereo systems”. In other words, don’t purchase applications because they look nice and have a couple of “neat” functions. Make sure the app does exactly what you expect. Even at the basic functionality level. This article points this out very well.
The “stitched together apps” are guilty of this. Big or small, there is always always, a push to get a product on the shelf. Sometimes promises are made for needed or corrected functionality will appear in version 1.2.xx.xx. In other words, it wasn’t put together correctly the FIRST TIME.

Summary …

There is no chance to completely avoid the occurrence of bugs in applications.
But as a customer I can expect:

A valuable system analysis before coding begins
Intensive tests before applications are released
A friendly support taking care of customers
A consistent further development

This should be the basic code of practice for all developers who want to earn their living with app development. For big companies it should go without saying but an embryonic developed final inspection is regrettably the reality.

To read the document

The iOS Human Interface Guidelines (by Apple Inc.)

should be a MUST for all developers.

Thanks for visiting

App Development + Marketing

31 05 2013

For non-jailbroken iOS devices apps can only be purchased and installed via Apple’s App Store which opened on July 10, 2008. Developers forward their products to Apple where they are reviewed first. After a successful approval test Apple releases the app and users can download it from the App Store.


iOS jailbreaking is the process of removing the limitations on Apple devices running the iOS operating system through the use of software and hardware exploits – such devices include the iPhone, iPod touch, iPad, and Apple TV. Jailbreaking permits root access to the iOS operating system, allowing the download of additional applications, extensions, and themes that are unavailable through the official Apple App Store. Jailbreaking is a form of privilege escalation, and the term has been used to describe privilege escalation on devices by other manufacturers as well. The name refers to breaking the device out of its ‘jail’, which is a technical term used in Unix-style systems. A jailbroken iPhone, iPod touch, or iPad running iOS can still use the App Store, iTunes, and other normal functions, such as making telephone calls. Restoring a device with iTunes removes the jailbreak.


Registering as a developer (individual or company) costs 99$ per year.
You have to fill out all the information necessary for the app – icon, description, pricing, assigning of an app category like ‘Utilities’, etc.
Once the forwarded app is approved by Apple and available in the store, you can monitor all the analytics on the back side of it: number of downloads, profit, reviews written by the users, etc.

Apple gets a 30% profit sharing for each purchased app.

With this strategy Apple’s App Store ranks #1 among all stores for mobile devices. The benefit for Apple is an increase in turnover regarding software and as a consequence even hardware.

Links to further information …

Classification of apps …

When we talk about costs of app development we should first classify them.
This article excludes free apps which are almost 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.

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.

The programming language …

For iOS apps Apple provides it’s programming language xCode.
For a short impression look at this video.
It explains some lines of programming and the result on the iPhone’s screen.

The costs of development …

There is no trustworthy stats about the absolute cost of an app based on the above mentioned classification. You will find developers doing everything for $1000 and reliable companies offering complex apps for $500,000.

I myself develop complex software for auditors based in Microsoft Access Databases. The experience is: calculating the costs of development is intensely distressing and irritating to the nerves. What you plan is almost always not what you release to the customers. Either features are nice-to-have but go beyond the scope of planned costs or the operating system or external modules don’t support what you have in mind or are buggy, or you are not convinced whether the stability of the system is still guaranteed.

Anyway the reality is: Coding is never ready for prime time.

This pie chart is based on a survey of app developers in Germany (source AppDevice).
When looking on it consider that

  • the values are based on A One-Year Fulfillment of an experienced company with creative, reliable, and topic-involved developers
  • there is already a fully functioning infrastructure regarding organizational workflows, technical equipment, online presence, engagement in social media
  • there are intangible assets not considered in the stats
    For being successful the whole company must have the boundless willingness to develop more reliable and innovative solutions than it’s competitors. Perpetual postgraduate professional education of the staff, risk-taking, and a well-organized, quick-response customer support are the indispensable further requirements.


For a well-known app I found detailed information about the costs:

The cost of building an iPad app
Twitterific, the most popular twitter app in the App Store (€2.69 about $3.50), was solely built with sweat equity. Craig Hockenberry, the man behind Twitterific, recently revealed how much work was required to build the app: about 1,100 hours. At $150/hour, Twitterific for iPad costs about $165,000 for the code only (the iPad app also used existing code valued at roughly $20,000). On top of that, the design phase cost was about $34,000. Finally, project management, testing, and other costs were around $16,000.

When you add all these numbers together, the cost to build Twitterific is around $250,000 – note that this app does not even use a backend support system, which would have likely doubled the development costs.

As you can see these costs are in no way comparable to the statistical values reported in the survey. As a consequence it’s obvious that all the single steps in the development process strongly depend on the app itself and all the above mentioned influencing factors.

Based on my personal experiences within 35 years with Microsoft Access applications the estimated costs for coding and after-release tasks are not down-to-earth.

An app that extracts data from a database and displays it in a simple list can be expected to take 4-8 weeks to create at a cost of $25,000 on a single platform.
An app with more complex server-side integration and offline data caching will probably take 8-12 weeks and cost $70,000 to develop for two platforms.
A full-scale enterprise automation app with integration to business processes will take anything from 3-6 months and may cost over $150,000 to develop on three platforms.

The short-term investment in creating those first pristine apps is likely to be the tip of the iceberg in terms of people and capital costs. Whether you’re using internal teams for development or contracting with software companies, you’ll need to make a detailed assessment of the short- and long-term costs of supporting the practice.
An app developed today will need to be updated in the future for changing business processes and for operating system updates. It will need to be ported to any new platforms you want to support. According to MGI Research, most mobile apps will experience at least four major update cycles stemming from operating system and device updates in the 2012-2014 time frame.

Other platforms …

If an app is developed for additional platforms like Android or Windows costs are increased by an average of 25% but the increase of potential buyers is nearly 100%. So it makes sense to develop any mobile app for all leading platforms. It seems to be a good investment when looking on the stats of hardware sales.

(Source Businessinsider)

Further stats …

In the draft version of my article I collected many stats from a wide range of sources.
Nearly half a week I compared more than 60 published statistical values which differ from each other massively. Anyway here are some links but it seems to me that the statistical values are hard to validate.

Summarizing some reliable stats …

These values were published by Apple itself and you can find them in several press releases on Apple Press Info

  • Total downloads: 40 billion
  • App Store accounts: 500 million
  • Available apps: 775k
  • Profit of developers: $7 billion
  • Profit for Apple: $3.5 billion (tax included)
  • Number of available App Stores: 155 seperate countries

Usage …

Goldman Sachs stated that there is a strong challenge for Google.
70% of purchased smartphones are running with Google’s Android operating system, but 60% of the mobile web traffic is generated by Apple’s iOS users.

What are Android users doing with there mobile devices?
Are they just making phone calls and play games?

To Android users:

Please accept my apologies in advance. But a blog written by an Apple fan is nothing without some sarcastic remarks.

Thanks for visiting my blog.

An ‘Appdate’ in details

3 11 2012

This is a very accurate description of an iOS-App-Update in November.
But there is still an intensification: The app has changed.
Sorry developers. This was the reason why you didn’t get the pole position.


Infraction against the “UI-Law”

14 10 2012

Sometimes even developers of Apple do not choose the right design of controls. The following example shows an implementation of the ‘Open in’-Task in Apple’s iWork-Suite, Notes and my proposal.


Dear developers,
please read the document
iOS Human Interface Guidelines


Get every new post delivered to your Inbox.

Join 183 other followers

%d bloggers like this: