What does cross platform mean?

Cross platform is tricky. It seems like a small "technical" buzzword but actually, it is one of the biggest challenges for many technology companies and has different aspects for different people in the organization and outside of it.

Developer Point of View

It all starts with the fact that applications can potentially be targeted towards different computing devices. To get more people to use your applications you would like it to run on more and more device categories whether it is different smartphone operating systems or a desktop computer vs. a tablet. I've met the term cross-platform in my first job (20 years ago) as a developer after I left the army and that was when we coded an antivirus scanning engine. We've built it purely in C to make it "compilable" and "runnable" on different desktop and server operating systems without being aware that we were building a cross-platform product. Today when you search for the term cross-platform on google you can find app developers challenged at running their apps both on iOS and Android. The aspiration to have a cross platform code base lies in the economic rationale of write once and run everywhere instead of developing again and again for each proprietary coding language and standards of each platform. Cheaper to develop and easier to maintain. Sounds easy and good, no? Well, no. Even today after so many years of evolving development tools. The main reason it is not straightforward is the simple fact that each platform, when you go into details, is different than others, either by hardware specifications or by operating system capabilities, and at some point, you will need to have a piece of code that is platform specific. For example, let's take iOS and Android: on Android you have the 'back' button and on iOS you don't. To make sure your code behaves "naturally" on Android you need to add some Android specific code to handle the 'back' action while it will be useless on iOS. Cross-platform tools have evolved quite a bit, tools such as html5 based mobile app development environments.  Still, I've never seen a real application which was built in full using only cross-platform code. There is always the need to tweak something for a specific device or specific platform, there is no escape from it. I always wondered why platform providers (Google, Microsoft, Apple...) have never bothered too much to support such cross-platform tools and even more, they seem always to make life much more difficult for such tools. I can understand the rationale of "not helping my competition" though I think that at some point in life the basic fact that not a single platform will win all the users sinks in. It may be more productive to apply cooperative strategies vs. only competitive ones. Indeed they may loose some developers to other platforms while at the same time they will win some switching to theirs and most important is that it will make developers' life easier and with apps which will end with a good result for everyone.

QA Guy/Girl Point of View

For the QA team, cross-platform means usually a pain in the neck. First, you need to test it across different environments and life could have been so much easier if it was on one platform. Even supporting one platform is not easy nowadays due to versioning - iOS as a mild example for complexity and Android which is catastrophic due to its fragmentation. The other aspect which is more problematic is the fact that developers which work with cross-platform tools are somehow shifting the "responsibility" of making sure their results are working properly and putting it on the tool itself to blame. As if they were doing the best they could and complying with whatever was requested of them and the fact that it does not work is not their responsibility. This state of mind automatically moves the blame to the person who found the bug, hence the QA person. Eventually developers are fixing whatever is needed but still, it is not the same situation as in the case of a platform specific developer and QA person. Maybe it is because the developer can not practically run all the tests on all the devices prior to handing the software which always leaves some quality gap "open". In general, QA have become highly challenged with the multitude of different devices out there which are very different one from the other. Previously ( a long time ago) you had Microsoft Windows for personal computers and Unix based servers. Now you have lots of operating systems, numerous hardware configurations and ever accelerating pace of releasing new OS versions so it does not make life easy, to say the least for the people who need to ship the software. Now add to that a cross-platform product:)

Product Manager Point of View

The product manager sees cross-platform from a whole different angle and that is more close to users' perception. Cross platform is more about what people do with their devices, when and how they use them and how the product can adapt itself to the unique device-user context. For example on a smartphone, you might expect a "time wasting" behavior or a very efficient task-oriented behavior for getting something done vs. on tablets which can be used in more relaxed times driving different behavior. The challenge here is to really understand how your target audience can and may consume your products via each specific device and platform and how to adapt each platform specific version to serve that behavior. Of course, it contradicts the basic aspiration of the R&D division to write less platform specific code.

Marketing Team Point of View

The marketing team sees cross-platform as an opportunity. In a way, they are the only ones who don't see the "burden" and try to enjoy the potential distribution hidden in the rich set of devices out there. More devices, regardless of their type, represent more users/consumers and that means more market. Sometimes each device reflects a specific market segment which carries on an overhead of reaching out to them such as in the case of specific gaming consoles and sometimes your target market just happens to be diverse in terms of consumption device and the users use a different kind of devices and platforms such as in the case of smartphone users.

The User Point of View

Users are kings of course and they want everything to run everywhere. Today it seems even "not ok" for an application to be only available on one platform as it can be even a sign of "laziness" of the provider or lack of attention the developer gives to the market. What really spoiled users is the web which is cross platform by nature and for users, it is too much to understand why Gmail is available everywhere and not my favorite iOS calendar app. And that's ok, they should not be bothered by that as they are kings.

Here’s How to Feed Your App Jealousy

This whole story is under the assumption that some developer is jealous with the app success of another guygirl. Jealousy is not the only reason to try to disrupt the success of another appdeveloper - direct competition can also be a "bad" reason to do so.   It all started one day when I saw that Look & Cook daily reviews report arrived to my inbox with something around thirty 5 star reviews. Cool? No. Each review was very short and lacked a personal touch. Of course it looked strange to me. It is not that I don't think Look & Cook does not deserve such daily treatment from its users:) but still my cynical sense got alerted. Judge it for yourself: 6a010536b66d71970c019b0046b284970d-800wi   So I checked out with my friends at Look & Cook to see whether someone decided to spend a hundred bucks on buying some good reviews just for fun and of course the answer was no. Look & Cook received naturally very good and authentic reviews from hundreds of users worldwide and we never had the urge to beef it up needless to say on the "lame" quality of such reviews.   So I had to do something about it since I knew deep inside how Apple's fraud detection algorithm can work and spot such anomaly. So I went to their developer portal and it happens that they have a fraud reporting form which I guess was meant for other type of fraud and not for a developer reporting about a fraud on his own app. Anyway, I reported there the incident assuming this at least would be an evidence that I am innocent. Someone could go into an argument that in the dynamics of conflict resolution this could be also a tactic on my end to take the blame off my shoulders. Still that was the only thing I could doat that time. I got the usual auto reply from Apple that "we got your report and we will take care of this" although I never got until now any human response. At that night our app was probably detected by Apple's algorithm and we got dropped from almost every country ranking where we used to rank high on almost every country on the globe. This got me sad. Our app climbed on the countries charts not because we bought downloads or something like that. People really like it and use it and tell their friends and it took us a long time to get there. Still I understood the limitations of an automatic algorithm which decides such things blindly and I waited patiently for someone on Apple's side to read my report. And then I got this frightening email with the dreadful subject of:

Notification of iOS Developer Program License Agreement (PLA) violation

Let me explain this - for a developer this is a point of crisis. It is like your mam and dad will get a long letter from the school administrator that you cheated on a test while you were the best pupil in the world and never done that in your life. It was actually even worse. I will not quote the email body but it had all kind of scary words like fraud and "terms of service" and I think you get it. So I got myself together and replied harshly, a bit, that I spotted that as well and I actually reported on this and never got an answer. Well, I did not get an answer on this mail too. Eventually the situation did not escalate and the app is slowly climbing the charts (since users like it of course:) all the way up back again. Also I am not getting anymore scary machine mails about me being a crook or something like that.   And now to the hypothesis on how this happened. If you'l google for "buy reviews" then you will notice that there is a whole industry behind it. You can buy reviews by the meter, quality, language and target store. So the most obvious line of thought I had, in my conspires mind I have to admit, was that someone who doesn't like us/our success/our app/food in general decided to spend a hundred bucks to buy some good reviews. But then my "trusting" side thought that it is probably a mistake and some 20 cents an hour worker just got the whole iTunes link wrong. So to the conclusions: To Me - Stop bragging too much about the app's success. No can do - I enjoy that. To My Close Friends @ Look & Cook - Sorry for being suspicious:) To The One Whom Did it By Mistake - Please pay attention next time. To The One Whom Did it By Intention - The Good Guys Rule!!! To Apple Developer Support - Please reply in a humanly voice to the developers' scared emails, someone can get a heart attack and the liability will be on you. To Apple's Anomaly Detection Algorithm Developer - Why can't you attribute some credit to an app based on its good history so such anomalies will not put it immediately in the same category of apps like "playing chess with one finger in my nose". Now I feel better:)    

Will voice replace the touch interfaces on mobiles?

Siri apparently has started a revolution, at least public relations wise since voice activation has been around for quite a while but never seemed to be perfect. It seems people like to talk to her and she responds back. Few in the industry have written on the impact the new voice interaction paradigm might create - Gigaom discusses the potential loss of mobile ad revenues and Bloomberg reports on Siri doubling data volumes. Voice indeed seems as a killer interface at first glance since it is more natural to operate once it is working well. Of course, the tolerance for errors is much lower than in touch and it can really drive you mad but it seems that the technological conditions are set for a good working model. Still, the question of whether we will only talk with our devices in the future and not touch them arise. Before touch we clicked on things and when touch has matured to a good working technology we embraced it without second thought. Old nokia phones (apologize to the ones who read it and still own one:) seem now almost "ancient" as the dial phones seemed to the ones who started using touch tone phones back in previous century. Voice indeed hides such a promise where we can blurb at our phones whatever we want and our wishes will be fullfilled automagically. Let's list the cool use cases we might do with out phones if they were fully voice activated:
  • Deferred talks - actually you can talk to someone without him/her being on the other line and this "talk" will be transferred digitally as a textual message to the other side either immediately or based on some pre-condition, for example on birthdays.
  • Activating apps by voice - If apps had a voice-based interface then we could do anything we want just by voice. For example say: "Alarm, wake me up tomorrow 7 am, ok?"
  • Reply to incoming messages by voice without opening the device, reading the message, clicking reply, writing down the texts tediously and clicking send.
  • Operate the phone basic functionality - for example a cool "silent" shout on a ringing phone can be something really nice
  • Authentication by voice patterns
  • Unlocking the phone by voice - the common check up we do on phones where we open the lock screen and see the status of mails, tweets, Facebook and other data we have on the dashboard can be done with a single word like "What's up?"
And on and on... So it does look promising but will it replace touch? One of the inner attributes of touch interfaces and mouse based graphical interfaces is the ability to interact in two dimensions. Interacting in two dimensions creates the ability to have a direct access to available data and actions and voice due to its serial nature is limited in this respect. A difference like then that exists among using tape cassettes and CDs, no need to fast forward. This difference puts the voice-based interaction into a much more limited scope where it can not replace the rich experience created by the visual and touch interaction. Still, in one area I am sure it will be a welcome replacement and that is where we need to go into serial processes on the phone itself using our rich touch interface - for instance typing texts, I hate it, especially on touch phones, I got big fingers and I wish I could dictate it with a good accuracy. It does not have to be perfect since I got enough mistakes when I type with my touch keyboard so I have some tolerance. Maybe a combination of the two would make a perfect match. Another area would be  changing modes or states on the phone where the touch experience has limited value. For example unlocking the phone. Another major fault of voice interaction is correcting errors and that is by-product of the serial vs. direct access interfaces. When you need to fix something said you get into a problem, like in real life with people:). So what do you think, will voice make us all look back at touch interfaces as old and dirty?

Will the number of apps ever stop growing?

I am a big fan of apps! Both as an apps developer and as a smartphone user started way before the days it was even called a smartphone. I own several phones with all possible operating systems and never miss a chance to install any new app I encounter. I may be a major factor in the total 2011 downloads number in appstores:) Following this self-proclaiming manifest and after I achieved credibility as someone who knows something about apps, I want to go back to the question in the headline. Sarah Perez story on the end of 2011  A Web of Apps  started with the following lines:"It is remarkable to think that we’re in the early days of the app era, when there are already close to 600,000 iOS applications and nearly 400,000 on Android (source: Distimo).". For me, these lines assume a-priory that the number of apps will keep growing a lot, at least much more than 1,000,000 apps!, a common notion nowadays. I think that every person that is somewhat related to the apps industry assumes whether publicly or silently in their "heart" that this number will grow; otherwise, there is no much of an industry in it, isn't it so? Of course one can argue that each app can "fatten" up and make more money on its own which means to grow vertical and not horizontal. In my eyes growing vertical after a hyper horizontal growth period is usually a sign for the beginning of a market saturation phase. To put it in the right perspective, I personally do feel it will grow much more (I got to, I am highly invested in this assumption:) so let's not start pessimistically:) even considering the mere fact there are so many others not using smartphones and many audiences not being addressed etc.. etc.. then we are ok, aren't we? To answer the question above I want to see if we can somehow establish our beliefs on some rationale that is at least discussable. Or in other words, at least something to help the ones who are highly invested in it to be able to get a good night sleep calmly. I think mobile apps and their acceptance present a major breakthrough in the computing world and this happened only thanks to the fact that people actually "met" these apps and discovered their existence (thanks Apple for creating the first effective apps distribution channel). The point of convergence of "capable" computing mobile devices, with good enough to go network connectivity and dynamically loadable small functional units called apps actually created something amazing - the ability to "upgrade" yourself instantly. It always reminds me of the scene from the Matrix where Neo loaded up the Kung Fu learning software and in a minute he was a Kung Fu master. I know we are not there yet but the metaphor has been established. The ability to load new functionality on demand on a computing device, which is actually your avatar since it goes everywhere with you, and then to be able to operate it is quite a leap from the usage perspective. So if we follow this line of thought then we can predict two trends in the apps world for the near future: 1. Apps will become narrower in functionality within time. We are actually witnessing this trend already where you can see every day a new app achieving a very narrow purpose. This won't mean there won't be a place for big "Photoshop" or "Office" like packages which are more like a wholesaler in a box, we will see those but they will not be the majority, not even close. This trend will occur simply because people have shorter and shorter spans of attention and more and more specific needs which can be answered efficiently only by something narrow enough and simple enough to learn and operate it immediately. In general, I put the "blame" for this trend on the low bandwidth we have available today for communicating with our phones and unless someone will invent a direct injection of new functionality into our brains we are of stuck with the growing trend of simpler apps. Just to put it in context, narrow apps does not mean "dummy" apps. Actually, the narrowing of the apps happens in terms of explicit functionality while there is an expansion in the implicit dimension of making the app adaptive to the specific context of the user which enables easier operation of the suggested functionality. This adaptation may require more technological investment in the app then other explicit features.  For example, Siri has a very simple and narrow explicit functionality (she just listens and talks back with one button) while behind the scenes it holds a huge technological effort.   2. Thanks to the growing number of sensors and interfaces on mobile devices (and I know of few more developments in this area which are exciting) as well as the better connectivity options we will witness more and more human needs that will be addressable by apps. For example, the accelerometer which now assists people who run with their calculations and effort tracking, something that was not possible before this sensor was available.   These two trends point towards a growth horizon that is very clear that lies on the axis of the diverse set of unique and shared human needs. If we add to this equation locality, languages, gender, ages, cultures, religions and other social grouping criteria then we run into a very big number. A number that is big enough to take us to the point where we will stop counting how many apps are out there in the very near future. One question that I still haven't got an answer for is in the title of the original story that got me started "A web of apps".  The question is whether we can do a comparison to the growth of the world wide web. I know it is not necessarily what Sarah Perez intended to discuss in her story, which was more about potential apps discovery by connecting apps. Still, there are many talks about whether apps will grow in the same growth pace as websites did. Websites grew and keep growing mainly on the axis of topical interest or knowledge areas and from a gut feeling it feels like it represents a much bigger growth axis. Maybe more on this in a later post. What do you think? Will it grow forever?

Site Footer