9. • Highly fragmented mobile technology landscape
• Need specialized resources or learn each technology
• Production and maintenance costs overshoots the budget
9
Become a Native App Developer…
What is a phone? What is a tablet? Is it the set of feature? Is it the size? We could also look at Phone as a really tiny tablet, and at the tablet as a really large phone. In the right hands, and at the right time, either could mean the other.
How did we get to here? Innovation happened & markets got disrupted. People, who might not necessarily be tech savvy, are consuming content on these devices, primarily because of the form factor. Strangely enough, or because of the design, children, as young as 2 years can actually use the new devices much better than most adults can do, because of one thing: The FINGER!!!!
The shape of the devices, aided in no small part by availaibilty of well written apps, is driving content consumption & creation. The touchscreen practically begs the user to touch it & play with it. Is it a coincidence that Facebook & Twitter have expanded at precisely the same time that smartphones have been been made available? I think not.
The phone is a very personal device; an extension of one's own personality. The tablet, on the other hand, is a consumption/development/collaboration device, depending on the time & place it is used.
Let's look at how the touchscreen device market looks like...
Right now, we have a plethora of devices. Things are still pretty simple in Apple's camp, where we have to worry about iPhone 4 & iPad 2 dimensions.
Now lets look at Android. Its a huge mess, with differing form factors, and each manufacturer adding its own skin on top of the default Android UI. Now how does one code for all this? Do I make different apps for all markets?
Cross platform tools help you to code once, run many times.
.
The first & foremost need is to understand the plethora of end users…..identifying the target audience & enhancing the user experience/look & feel based on that.
Point is to sketch the layouts in whatever medium possible. What one need is not a tool but a clear thought process and Understanding of varied sizes of multiple devices
What's the key here? Consistent UI, or Consistent Experience? (Hint: It's the latter) So what this means is that I might have to code extra, but I do not have to re-invent the wheel. If I can separate my business functionality from my UI, a lot of my work becomes easier
Try & break your application into multiple modules….it helps in parallel development, reduces chances of failures & bugs and lower external dependencies to a greater extent.
Code – Behind Pattern: always try separating entire business logic….whether domain objects, presentation models, services or utilities…from the user interface. In this way, it becomes easier for one to build apps for different platforms like mobile, tablets, web, desktop without rewriting the same code.
Each Device has its own hardware capabilities & performance requirements. One should initially plan all the non-functional requirements like memory, speed, data storage separately for every targeted device.
Make extensive use of External and Runtime style sheets & properties file to load any assets or themes. Handle Platform-Specific UI, DPI/Resolution Specific UI through CSS at runtime. Build easily different themes for different merchants/customers(might be of different age groups)