It's been a few weeks after the whole world said their good byes to Steve Jobs, the iconic leader any startup/company should aspire to have. Everyone was in awe for what he did but mostly for what he didn't do I suppose. He shaped the mobile landscape as we know today and for the years to come.
I believe strongly that mobile developers are candidly smart but also stupid at the same time, this includes myself. We are smart because we embrace a whole new paradigm and concept in programming that is actually still maturing. There is no one size fits all platform that will deliver everything a developer would need. The most stupid thing of all is actually focusing only on a single platform instead of the product.
While implementing a fresh way to develop mobile products, a notable early stage investor here in Indonesia told me that the technology I was implementing is still 2-3 years ahead of the industry. He was damn right in saying, "What's the point? Going native is still the answer (for now)". In spite of all cross platform goodness, there's always a catch.
So why do any developments I said to myself? It's just a waste of time and energy because it's not an easy task to focus on different platforms at the same time. UI on every platform is different whether programmatically or its actual visual equivalent when users see them. I just can't see any single solution will ever be ready for prime time in the near future. This being said by someone who has coded and NOT by analyst or writers who never coded their whole lives.
Anyways, the distant future is not so distant after all if you got cash for it. Just like the rest of the population, getting a US$ 500+ device is just too expensive. Although here in Jakarta, the trend is the higher the merrier for shops and buyers, it does not cater the whole population. People want first class products even if the could only spend less.
Premium sound premium because other devices make them look & feel premium. The physical properties of a device is the first thing anyone will notice. Nowadays form factors are suited for your thumbs and the way devices look these days are increasingly (subjectively) "better" with at least 10 years ago as a comparison. Devices don't have explicitly visible antennas, they're also getting smaller, lighter and the batteries although Internet connected most of the time still lasts longer relatively.
Cameras and phones is a match no one would argue and now 2 Megapixels is what you get at least. Although the quality won't be that of pictures taken from a pocket camera but the technology is keeping up. We see phones sporting 8 Megapixels lenses from big names that used to be premium. Not to mention the success experienced by Instagram clarifies the argument even stronger. Remember those cheesy frames when you got your first Nokia camera phone, unnoticed and unaware, that's Augmented Reality in a somewhat more primitive conceptualization.
Processors are getting double its core and power every year but sadly, not so with applications. I see a lot of time, software as an actual performance-hindering component even through upgrades of more advanced specs. What we can still be thankful is cheap memory (storage). You can easily get an 8-64 gigs Mini SD Card for at least $ 12.
So yes hardware is getting more powerful but the price is still a major barrier for end users to enjoy their own devices. If the device has a bitten Apple logo in it, people are used to paying premium, it is a premium device with all its glory. Coupled with a great recent iOS 5.0 release, it's only gonna get better and better delivering the needs and wants of the whole market.
Android is catching up and has recently dethrone iPhone as the number 1 best selling smartphone in the world. What does this mean to developers and end users? Here's a few pros and cons about Android as a platform:
- The User Experience is plain and prone to rather extreme iterative changes for every Android version.
- Due to inconsistency in its User Interface, for each new version boasts a whole new look and it really is causing more problems than solutions, even though functions are defined constantly.
- Dalvik is a great JVM with incredible clarity for Garbage Collectors. The report of freed memory by GC is actually very demotivating. Try inflating sub views, you'll see why.
- Doesn't run well at all for devices < 800 MHz ARM processors. Samsung Galaxy Mini is a best seller, due to its popularity it can lead first time Android end users to associate Android with lag and unresponsive behaviors.
- Multi threading is an alienated term for asynchronous. Sure there are classes to do this efficiently but this knocks down more creativity as do with most of C derived languages.
- Fragmentation of different versions of Android makes developers support the lowest acceptable API level and end users stuck with whatever the handset maker offer.
- Handset maker more often than not can't keep up with Google's amazingly fast iterative updates.
- Free as in free beer, "Google Experience" devices will cost OEMs and or handset makers.
- Quality apps in terms of UI/UX are nothing at all in quantity compared to iOS, Android is ok but not beautiful. Very subjective and open for debate.
- A very dismal post-sales options to get upgrades to newer Android versions even if the device is still on warranty. After-market ROMs are available but this NOT the case with end users, still need guts and technical knowledge although I know a few non-technical friends of mine who does it almost naturally.
- A very insecure platform! Don't ever root an Android if you're not up for its risks.
- Any developer with a spare time can always build their own version of Android. Customizable deep to kernel level, a talented developer can do magic with it.
- Knowledge is available everywhere on the Internet.
- Java is a relatively more well known language.
- Layout is very flexible thanks to XMLs, seriously this is the first time I'm grateful of XML lol.
- The growth chart is amazingly exponential, currently already topping off the iPhone.
- Lets mid to low market to have a go at touch screen phones that is always connected. Opens up new possibilities especially for educating the general population about being online.
- Because of looser supervisions of Android Market, it makes a great playing ground to test out new ideas, even half baked and see how the market responses.
- Best practices are commonly available and design patterns in Java is very strong, one can be ready for prime time in no time.
- Although heavily fragmented, developers are often given the option to adopt new frameworks available in higher API levels with a sort of compatibility library to enable them on lower API levels.
- The kind of technology embedded into Android's stack is already very extensive and very well though of although I have found some cases like a Multipart HTTP request library is only available if you use third party libraries or by making your own methods. Easily forgivable though in contrast.
There is still more to add to the 2 lists above but the ones written are the ones I feel worth noting. Other platforms have their own pros/cons but as any data will show, Android is topping the smartphone market and that's a fact. It is the future, especially here in Indonesia. Due to Android's nature of being open, adopting it is not so much a trivial task.
In China, Android is modded very heavily to suit China's own needs for a smartphone. Most of the effort are made possible again because of Android Open Source Project (AOSP). Why can't we do this for Indonesia? With or without the government on our back, we have a great market. It's puzzling to not see an Android made by Indonesians being sold to Indonesians when we as Indonesians are well know for our desire and passion of making technological advances out of nothing. Wajanbolic is none other the best example.
We owe this to ourselves! As a person involved in the tech world of Indonesia generally, I applause Nexian for its bold efforts in having a very strong C/C++ team of developers to mod its own MTK feature phones. It's not an easy thing to do but in the end of the day, end users want more beyond its low price. I truly hope Nexian will set an example with its Android phones.
Being a dreamer, one can visualize a very mobile and an actually high tech tomorrow without end users having to fuss with technical jargons and or spec to be persuaded to buy a smartphone. Like any startup will tell, a good product will market and sell itself. We can still empower and influence the market, it's just a shame if we see this kind of success and control not in the hands of local companies. We know what our market need, not to mention their wants. Look at Google, Facebook, Groupon, etc, their investing so much to become hyperlocal and we just stood there and made to watch as our great market is slowly but surely taken over.
Read the paragraph before with some lime and a pinch of salt, my purpose is simple, it's the future and nothing else. If anyone is reading this and somehow is disagree with my writings, the comments below is open for anything.
Anyhow, it would be great if we can analyze different user behaviors in a collective way. This will benefit us all without sacrificing privacy though. Although here in Indonesia nobody gives a damn about privacy but I still believe in ethical means in doing it. I'm just not sure the industry itself is ready. I have some data and would love to share with yours. Let's be smart about this.
All and all, the mobile landscape in Indonesia still very early in its infancy, we have the upper hand of knowing what the market like and how to capitalize on it. Let's make that disruptive force coming from us and of course for us. Aren't you tired of making a living outside Indonesia because our market is still not ready yet? Well it's gonna happen soon and you better be ready for it. I'm game, are you?
Indonesians like to buy things they don't need, they buy what they want as proof of their existence and identity. RBT is a great example and generates a sick load of revenue. In app purchase is the way to do it + bragging rights.