Showing posts with label Development. Show all posts
Showing posts with label Development. Show all posts

Wednesday, October 28, 2009

Enterprise Mobility Development

Some of you might have read one of my previous posts in which I wrote that I had had to choose between mobile and enterprise development mostly for personal reasons. I was sorry to realize this because mobile is my passion, but I thought the change was inevitable. Now I don't.


It's a cliche that the job market is much bigger for enterprise developers than for mobile devs. That was one of the main reasons why I had to change area, too - not as if I didn't enjoy enterprise as well. The interesting thing I've just come to realize that there's a gap between the boundaries of the two areas: it's for people with knowledge on both (otherwise huge) areas. The opportunity is great for both kinds of developers coming from either direction, because it offers a way to reach out even more people.

Now you understand why I read an article the other day with great interest: it described the required skill set for an enterprise mobility developer. First, it just confirmed that my theory was right: there's a need for such people. Second, let me add some more points to the list provided. I could have extended the list on the original blog post, however, for that I should have had an account on that site which I was reluctant to create. Here's the list:

  • Bandwidth: I think it was network what the author really meant. Bandwidth really is one of the characteristics that one needs to pay attention to, but it's also worth mentioning different types of networks (from 2G to 3.5G, WiFi, VPN, etc.), their main characteristics (e,g IP address re-assignments, frequent network outage), roaming, etc.
  • Options for development: today's popular web development (very important to note that it's mostly applicable for smartphones only, thus not an option for the vast majority of mobile phones) vs native vs any other environments.
  • Testing: never-ever forget that emulator/simulator is not the same as the real hardware. Peculiarities of various networks also count (quality, reliability, QoS, etc.).
  • Option for cross-platform development: one company may target one platform at a time, however, it's also wise to plan ahead and build the foundation with the future in mind.
  • Deployment, maintenance: app stores vs downloadable install packages from own site. Keeping enterprise service and mobile client versions in sync so that they're always fully inter-operable. Auto-update. Etc.
  • Monetization, marketing: what I really mean here is making use of app stores as efficiently as possible. It's today's trend for mobile manufacturers to have their own stores and compete with carriers who would also like to monetize on this opportunity (by having their own stores). Sort of a war between vertical (manufacturers) and horizontal (carriers).

And I'm sure we've still missed a lot from the list. In any case, that was my two cents. :)

Cheers,

Tote

Saturday, October 3, 2009

Fate of Symbian C++

Historically, Symbian OS has evolved from EPOC, a mobile operating system written originally by Psion. The foundations were laid down in the 80's and a lot of work had been done to it while it became EPOC32 in the late 90's, the direct predecessor of Symbian OS. Also for historical reasons, the developers of Symbian decided to deviate from standard C and not-yet-standard C++ and create their own flavour of programming language. They thought their own exception mechanism (aka leaving), string handling (alias descriptors), naming conventions (C, M, R, T classes), etc. are better than anything else and make it the most appropriate tool to write an entire operating system and related frameworks for resource constrained devices.


They were probably right. But since it was a deviation from "normal" it was a question of time to turn out if people tolerate the difference. People, also known as developers. Through developers the whole market. Small and big players alike.

When Nokia acquired Trolltech speculation started. About Nokia's real reason, I mean. A lot of people didn't believe that it was "just" about making a common framework for smart- and feature phones + desktop computers. Personally, I thought it was a really valid reason alone, though naturally wondered how it would affect the future of Symbian.

People also speculated if not only will Nokia replace Avkon (the UI framework for Symbian S60) with Qt, but change from Symbian to Linux, too. Time has proven that it was not the case. Symbian OS was - and it still is - so valuable that it wouldn't have made sense to throw it out. Nokia has achieved so much with this operating system, put so much money in the development of it and most importantly the system has proven that it DOES work so that it is reliable, secure, can be customized, etc. It simply made sense to keep it.

The latest news about Qt vs Symbian C++ is that "Qt will take over the application layer on Symbian devices, among others, reducing Symbian development to under-the-hood core programming at best" (from El Reg). At best. So finally it seems the market (again, through developers) didn't tolerate the afore-mentioned deviation. Not as if developers didn't have a bunch of alternatives to develop for Symbian devices: Flash, web run-time, Java, Python, .NET, etc. Still, the programming language that offered the most freedom to developers has apparently failed to attract and keep the masses. It is now time to retreat in the wings.

In the closing words, let me chew upon how much marketing could have supported this programming language to become more popular. Take, for example, the "official" language of iPhone development: objective C. Is it a deviation from standard C? Yes. It's not even C++, if that counts at all. Is it easy to learn? Personally I didn't have the chance to study it, but my ex-colleagues did and they told me that it wasn't that difficult as they had anticipated. Admit that they had a decade of experience in mobile sw development that most people don't. What I'd like to point out, though, is that there are languages that are much easier to learn and use in practice, such as Java, Python and the likes. All in all, I think Obj-C is at least as much deviated from the standard as Symbian C++.

Then why is it so popular in contrast with Symbian C++? Perhaps it's because of the tools - compare the two emulators, for example. Or is it the processes - there are pros and cons on both sides: Symbian Signed has received much criticism, but Apple approval process is not much better, either. Or is it the hype that surrounds iPhone devices and related development environment that made developers to forget about the imperfection of this language? I think it's pretty much that case. What made the hype? Innovation and marketing, i.e. that Apple could find out something new and they could sell it, too.

Symbian C++ could have been saved with a bit more selling power, in my opinion. It is not going to disappear, just less apparent. And I don't cry for it, because I know it's called evolution. I just wonder what those years will be worth of that I had spent with it.

Tote

Monday, March 16, 2009

The $1 business model

There are two kinds of developers: those who want to sell their programs and those who write software for fun and/or for fame. The latter type is happy with writing freeware, most probably open source software. This article is about the former.

Of course, most developers want to get paid for their programs. As much as possible. The wiser usually analyses the market first:
  • Would people be interested in the program?
  • Would they be willing to pay for it?
  • How much will they think the program is worth?
  • What about competition, would our program fill a gap or it would just be one of the many?
  • How can I sell my program, what distribution channels are available, what is the revenue share, etc?
  • How much do I need to invest in writing the program financially, in terms of effort, etc.?
And the list is not over yet. But it contains the most important question from this article's point of view: how much is a program worth, how much can we ask for it? Note: the answers to these questions are not necessarily the same.

It is very difficult to foretell how much a program is worth for the users. The answer depends on so many factors, such as target group, their spending habits, type of software (e.g. leisure vs professional), what other programs with similar feature-set cost, etc. Naturally, price calculation is so often affected by that how much a developer appreciates his/her own software ("I put so many hours in creating it that it can't be cheap!") - and the expectations and the reality are not always in balance.

The available distribution channels also influence the final price: what they demand from the developer, what they offer to him, their revenue sharing model, etc. As to the latter, for example, although the 70-30 revenue share wasn't typical 1-2 years ago it is now becoming a standard. Apple's App Store, OHA's Android Market, Nokia's soon-to-be-opened Ovi Store all offer 70% off the revenue to the developer. Revenue share is not everything, though: for example, App Store is such a place where it's not uncommon to hear success stories and big earnings, whereas Android Market's community prefers free software. If you follow the news, you might have heard of the coming BlackBerry App World. I found it very interesting that they set the minimum price for a paid-for application to be $3. They said any software that is not worth this amount shall be freeware. I think it's ridiculous: these guys are not aware of how many developer they will alienate from themselves with this approach. Do they really want developers to sell BB apps or not?

The typical revenue models for developers are as follows:
  • Release free application first with limited features and make it paid when it really gets traction (thousands, tens of thousand downloads per month). The application is available either for free or as paid-for (exclusive OR). Question: won't people turn away from your application once they have to pay for it?
  • Write an always paid program, which means that your application must be really cool and advertised so well that despite the price (i.e. that it costs money) people buy it. Question: can you compete with free programs with similar features?
  • Make a Lite and Pro version of your program, Lite being free and Pro paid. The free version supports a subset of Pro's features making it compelling enough to purchase the paid version. It is a very typical approach among developers. Notes: increased maintenance efforts + separation of free and paid-for features must be well thought-out.
  • Free program with ads. Notes:
    • Not all people like ads
    • You need to find a good ad provider
    • It is challenging to implement a good advertising solution on mobile devices, and there is no good framework available.
  • Change model dynamically on an experimental basis: see if you can make it with paid version, if not then make it free, then make it paid again when it becomes popular (this is the path iStrip followed, actually). Question: when will people get bored with this behavior?
Please note that I did not include that model in the above list, where the client program is free, but it is essentially a light-weight interface to a server solution, which is exactly what your customers are paying for. Opera Mini's business model is based on this, for example: Opera Mini, the application, is available for anyone as a free download, however, it's Opera's customers (i.e network operators), who pay the price. This article is simply not about this model.

It's also worth noting how important user ratings have become recently. Some developers faced that ratings can kill: unhappy-uneducated users gave low ratings just because "game was too short", they "expected more", "it was free not too long ago", etc. Perhaps these users are not aware of how much power they have in their hands when they rate. Applications written for Android platform and distributed on Android Market are especially vulnerable to this effect. 

Finally, getting closer to the point: how much can we ask for a program? Even though this habit is changing, it's still quite typical from people that they think that "cheap cannot be good" or "if it's good it can't be cheap". However, App Store's success stories have proven right the opposite: developers claimed that their revenue had become much higher when they lowered the price to $0.99. You know, this is such a low price that basically anyone can afford around the world even for the silliest program. Developers are now facing the fact that unless they sell their software at the lowest price there will be others who ask less than them. This basically forces them to sell their apps for $1 from the beginning.

Is it the final price, though? Can a $1 hit be sold for $2, too? No-one knows. It's all about making experiments. If I were to sell my app that I think is worth more than being distributed as a freeware, I would ask $1 for it. If people don't buy it at this low price, then I saved the hassle of price calibration. If it gets successful and my program is (one of) the best(s) in its category, then I would increase the price gradually until the download rate gets stabilized and I couldn't expect more revenue from making it even more expensive.

And actually this is what I call the $1 business model.

Looking forwad to your comments,

Tote

Thursday, January 22, 2009

MicroWeather for S60 goes Open Source


I usually don't write about specific mobile software, but this time it's a bit different. You know, it's one thing that one of my colleagues, Jouni Miettunen, became a Forum Nokia Champion last time thanks to his active participation in Python for S60 community. I'm really proud of him, he really deserved the honour.

But it seems that the spirit of open source software has "infected" another colleague of mine. Gabor Fetter, author of MicroPool (a bestseller in its category), MicroPinball and MicroWeather has now decided to make his last piece of software open source. I'm not going into praising MicroWeather, let it be enough that I use it daily. For more information, you can check out the official page at http://sourceforge.net/projects/microweathers60/. But you can do more than being in read-only mode: why not contribute to it? Any ideas, contribution are welcome!



I'm happy to see that we're that agile! ;-)

Tote

Saturday, December 6, 2008

The diversity of Symbian development

When talking about mobile software development lots of people forget about the fact that it's not only the native programming language that can be used on a given platform. I've read a lot of comparisons between Symbian/C++, Win32/MFC/.NET of Windows Mobile, Objective-C on iPhone, Android, etc. lately discussing the advantages and disadvantages of these options, maturity and popularity of the underlying platforms, probability of writing successful programs, etc.


The problem with these comparisons (in which Symbian/C++ is typically at the end of the list with its peculiarities and steep learning curve) is that they discuss only half of the picture. The more advanced a mobile platform the more you can do on it - which applies to software development, too. I strongly believe that one of the strengths of software development on Symbian platform is that it's not bound to a single programming language, SDK, etc. A lot of you might not know that for Symbian-powered devices you can write software in
  • Java - Mobile Java (JME) has been available since the early days,
  • Flash Lite - Adobe's Flash has been added to S60 phones 1-2 years ago,
  • Python - Python for S60 is an open source initiative enabling rapid application development,
  • Ruby - Ruby for Symbian is one of the newest additions to S60,
  • .NET - Red Five Labs's add-on to S60 platform is tempting Windows Mobile developers to use their skills on another platform,
  • NS Basic - Powerful development environment and run-time framework for programs written in BASIC (link),
  • HTML using other web technologies like CSS, Javascript - Apple's WebKit rendering engine is becoming the de facto standard for mobile browsers making them capable of showing full web pages (i.e. not only WAP or mobile web). This enables widgets development for a range of smartphones like S60-phones, iPhone, Android, etc.
You can see from the list above that Symbian development is much more than native application programming. On the contrary, I dare to claim that native programming is becoming less and less relevant over time. Of course, each option has its strengths and weaknesses (as well as native programming) the point is diversity, the possibility to choose. This (among others) makes Symbian OS's position stronger than its competitors': if you can develop for one mobile platform it's almost sure that you can use THAT knowledge for Symbian development, too. One exception for this might be Objective-C on iPhone, but I wouldn't be surprised if that became a reality on Symbian in the near future, too.

By the way, Simon Judge made a quick comparison between different platform development options - it's worth a read. As well as Andreas Constantinou's  post at Vision Mobile - a well-written article about mobile application runtimes for better understanding this world.

Any comments are welcome,

Tote

Thursday, October 2, 2008

Transforming mobile industry

I read the following quote from Olli-Pekka Kallasvuo, Nokia CEO, in InformationWeek:

"The industry as whole is in the middle of a transformation, and it's a very exciting time," said Kallasvuo. "It's moving from a device industry to an experience industry, and we're making a conscious long-term effort to capitalize on that."


It is so true that it inspired me to write a summary on how things have changed in the "smarter" segment of mobile sector (read: smartphones) lately. Let me recap what was the situation in the near past and then talk about how things are changing recently.

In the classic device manufacturer - network operator - user triangle the roles were as follows (simplified version): user purchases mobile phone from network operator (or elsewhere) and uses those services that are primarily provided by the network operator. The manufacturer never gets any money after purchase and the user  is often unhappy with the content/quality of provided (value-added) services.

This is now about to change. The two most important changes (as I see it) are that 1: the above triangle is "rectangularized" by an old/new member of the value chain, a separate content/service provider and 2: that device manufacturers such as Nokia and Apple OR operating system vendors such as Microsoft and Google want to get money after sales, too: they'd like to enter services business. As to point #1, not as if content providers hadn't been present so far, however, the means to access content and the capabilities of devices have not been ideal so far to say the least. As for point #2, there are two reasons why manufacturers would like to enter services business (take it over from operators?): first, there's a great demand from users to consume content that operators have not been good at providing and second, there's great money in it. Apple and Google are very good at providing services now they'd like to be involved in adding new means (i.e. phones) to accessing their services. Whereas Nokia and Microsoft are both in a strong position in smartphone market and naturally they'd like to get more money out of the whole business.

Another aspect in the new business model is whether or not shall mobile OS vendors require license fee for their software to be included in shipping devices. I'm talking about free and open-source mobile OSes, like mobile Linux. Although mobile Linux stacks have not gained so much popularity in the past years, they still do attract manufacturers wishing to lower their bill-of-materials (BOM). Google Android and the new Symbian (Foundation) OS are another two good examples for "license-fee-free software stacks" and Windows Mobile is for fee-based. iPhone's Mac OS X cannot be mentioned here, since Apple doesn't allow anyone to license their software stack, but make everything on their own.

How do mobile OS vendors pamper their developers?
  • Of course, with a free SDK to develop on. Most of them can be used only on Windows (except iPhone on Mac OS X), true emulation is available on Windows Mobile and iPhone, where development is done on the same platform as the target platform,
  • Free tools for development. Unfortunately not everything can be done with these tools, but you have to pay for their fee-based version should you need to use more advanced features (e.g. on-device debugging in Carbide.C++),
  • Signing your own installation package is mandatory for both iPhone and Nokia S60 phones, but not on Windows Mobile and Android. Latter advocates that the user is always capable of making proper decisions on security-related questions and it does not restrict the availability of 3rd-party applications by requiring signature. As Symbian's David Wood put it: let's see what operators will say on it.
  • As to developer support, old players are in the best position here: there's a great community support for Windows Mobile developers as well as materials to train themselves. The same is true for people who are developing for Nokia phones. Whereas the first non-beta Android SDK has just been introduced (you can imagine the level of support Google provides at such an early stage), not to mention Apple who wanted developers to sign an NDA that essentially prevents free information flow, writing books on development, etc. This has changed recently, since Apple finally scrapped their iPhone NDA and promised a new contract with less restrictions. Note: if Apple hadn't made this step they would have lost the majority of their developers.
  • Developers reward programs (MVP from Microsoft, Forum Nokia Champion program from Nokia), fee-based support for ISVs willing to pay for advanced services, webinars, trainings, books, etc.
  • Stores to capitalize on applications, themes, etc.
As to the stores mentioned above,
  • Apple's (in)famous App Store acts as a central distribution channel for 3rd-party applications. Unfortunately, Apple keeps this place under such a strict control that bitters lots of developers' life who simply don't understand why their programs can't be sold just because they're similar to the built-in applications. On the other hand, Apple keeps only 30% of revenue making App Store more compelling than lots of rival portals, such as Handango.
  • Having introduced T-Mobile G1 a few weeks ago, Google has also thought that it was a wise idea to create their own Android Market, a market place for downloading Android applications. What is surprising, though, is that Google is not planning to capitalize on sold applications, but expects mainly freebies to populate this place. It wouldn't be Handango if they didn't make the best out of this situation: why not use Handango to get some money for your Android app? It's also worth noting that Google, similarly to Apple, will be able to remove any 3rd-party applications (downloaded from Android Market) from Android-powered handsets if those applications turn out to violate developer distribution agreement.
  • Nokia already has their Software Market, however, things might change with the start of Symbian Foundation next year: as Antony Edwards from Symbian put it "[they're]  pushing hard for a ensuring a zero, or a close as possible to zero, cost to the software vendor: so no cut of revenue for the Foundation".
  • Finally, Microsoft hasn't maintained their own single portal that ISVs could use for selling their 3rd-party applications, but people had to (and still have to!) use other providers. This article shows what one can conclude from job postings: with the coming of new devices based on Windows Mobile 7 a new portal, SkyMarket will also come in Q1 2009.

Nokia is very keen on transforming from being a device manufacturer to an "internet company". Their Ovi and Mosh are two examples of already launched services, which they just want to further improve with Instant Messaging (by buying OZ Communications) and Comes with Music. On the other hand, whilst strengthening their services portfolio they restructure their businesses so that they focus less on own product development (selling Nokia IntelliSync). Sometimes lowering the prices raises the revenue - wonder how the recent price cut will work out. It's especially important that since  more and more people own Nokia devices, it increases after-sales revenue, too.

I've been already thinking on what Microsoft's reaction will be to open source and then found the answer: Steve Ballmer doesn't understand what's good in open source for Symbian and Google and anyway they won't get into handset business as long as they can make a lot of money from software only.
What they've started to work on lately, which you might have already heard of in the news, is 'Windows Cloud' OS. This idea is not new at all, however, it might affect the way how people use their mobile phones today: all you need is a portable device with a tiny display, some computing power and a good browser (you can call it 'smartphone') plus a good connection to the "cloud". Data, business logic, resource intensive heavy computation - all done on remote server(s) and you get only the result to your handset. I wrote 'this idea' was not new, however, what is new is Microsoft's patent on sharing device resources. Now this one is really new, but I don't know how much I can expect from it in real life - what it shows you, though, that it would be too early to write Microsoft off. Side-note: let me recommend you Ajit Jaokar's thought-provoking blog on how network operators could make use of cloud computing.
One more point to add to why M$ is not to enter the handset business today: HTC, designer & manufacturer of feature-rich phones, says that although they can see the potential in Android devices they do belive that Android and Windows Mobile complements each other.

As to Android, it's amazing to read about the ambitious plan to reach 4% US market share by the end of 2008. If that's so easy with a single device, a not perfect software and hardware AND suppose that they will achieve it - may I ask how on Earth Nokia could not do the same?
Anyway, I found a great analysis over at Telco 2.0 on the strategic impact of Google's first handset on the mobile industry. I especially liked the statements, such as "increasingly intense competition with new entrants who are willing to change the rules" and "the world in which handset manufacturers crammed the latest technology into devices simply for the sake of having the best specification sheet and operators flogged them to consumers on the basis of megapixels and memory is changing" and finally "it has been fascinating to watch ‘old school’ industry commentators pick apart the technicalities of the G1 spec sheet and Android platform, all the while forgeting to look at this announcement through the customer’s eyes".

Finally, some words about other members of the mobile industry whom we don't hear much about (well, at least I haven't lately).
  • Sony Ericsson has rationalised their R&D investment recently. This move, however, didn't prevent them from announcing a new run-time environment, called Capuchin, mixing Java ME and Adobe Flash Lite technologies. SE is eyed-up on Android, too, not only Windows Mobile (Xperia X1) and Symbian so this along with Capuchin will make their way to follow Nokia's approach by offering lots of alternatives for mobile software development.
  • Motorola is also interested in Android, so much that they are building-up a team of 350 people to develop on Android.
  • Samsung is not interested in anything else but manufacturing. This will not make their position stronger in today's competing market.
That's all for now about mobile industry news, thanks for reading so far!

All comments are welcome,

Tote

Monday, September 8, 2008

Samsung Mobile Innovator - Yet another Symbian developer site

You might have heard of that Samsung has just kicked-off their new portal for mobile application developers. It's advertised as a great entry point for Symbian developers wishing to develop for Samsung devices based on this operating system. I'm not sure if other platforms will be covered by this site, too.


What I'm asking now, however, is if it's really worth increasing the fragmentation of Symbian development portals that are already present today. You know, I recall when I was involved in a cross-platform mobile development project and it really frustrated me that I had to check Forum Nokia, Sony Ericsson Developer World, uiq.com and Symbian DevNet to see what people said about nasty problems, their solutions and be sure that nothing has escaped my attention (well, I could never be sure about that).

I can see that Samsung might come out with such great features and services that will be very useful to the developer community in general. What I don't understand, though, is with Symbian Foundation (SF) starting early next year why doesn't SF kicks-off their own developer portal into which Samsung could integrate its own services. In an ideal world Symbian developers would just remember a single URL where they could find answers for all their questions. A powerful search engine could do magic, you know. Symbian Foundation gives a good opportunity to unify existing resources into one and I can't see why Samsung didn't realize this.

Tote

Wednesday, August 20, 2008

Silicon Valley doesn't respect Nokia

In response to the article I found on Forbes.com, Nokia Software Problem, let me collect my remarks on the statements in a single post. The list of statements below simply follows the same order as they appeared in the original article.

"Nokia sells close to half of all smart phones worldwide"
Well, around 70% would be more accurate, but then it couldn't have been said that "close to half".

"N95's only edge was in watching video"
Hmm, let me smile at it. I think GPS, 5 megapixel camera, WiFi, etc. also come in handy every now and then. These things were all new in a Nokia device at the time when N95 was introduced and although Nokia might not have been the first in introducing them, the point is that video was not the only thing users could enjoy.

"Symbian is not dead, but it has a limited amount of time to act to capture developer mind share before it is too late,"
I don't know how many times I wrote this on various forums: developing for a Symbian-based device does NOT mean pure Symbian/C++ development. On the contrary, the range of possibilities is much wider: you can program in Flash (Lite), Java (Mobile), Python (for S60/UIQ), (Open) C, Widgets, .NET, NS Basic, etc. My question is not solely addressed to Apple: is there any other manufacturer in the world who can compete with this at this very moment? Is it the not-closed-but-not-too-open-either Apple who although enables Objective-C development, but nothing else? For example, Java, which is not only available on all other platforms, but also the primary language for 3d-party development on Android? Not as if I had heard too many good things on iPhone developer support, but are they really the ones who will save the world?

"Applications written for the iPhone, by contrast, will run on every iPhone."
Ehh, typically naive, beginner approach. I wouldn't write an article if I were such a beginner, though. How many iPhone models can we talk about at the moment? Two. There's a rumour on Apple introducing iPhone Nano still this year and I bet that that device would introduce variation both in hardware (e.g. screen size) and software. And having spent almost a decade with mobile software development, I can tell you that software development becomes exponentially more complex with the introduction of variations. I think we should get back to this question in 1-2 years time-frame and then we'll see how programs written for old models will work on new ones and vice versa.

"Carriers here have been loath to give Nokia much love over the years"
Yeah, this one is a hit on the nail. I find it very interesting how much North-American carriers favour US phone manufacturers (Palm, Microsoft, Apple) and Canadians (RIM). It is one of the root causes (if not THE) why Nokia has failed to successfully enter North-American market.

As to developing software for mobile platforms, it's worth noting that it's becoming more and more popular to rely on a thin client software responsible mainly for the User Interface, while storing data and implementing heavy business logic on a remote server. So often, the thin client is a browser or an application capable of providing "browser-like" behavior. This is something iPhone, the latest Nokia S60 phones, Windows Mobile are (and the newcomer Android will be) good at. And lots of people say that this architecture is the most suitable solution for cross-(mobile)platform software.

In my opinion, it's too early to talk about the dethronement of Nokia by Apple and RIM. Just count the number of phones sold, how many models various manufacturers have on market, how long has a manufacturer been on market, etc. and we'll have just the right amount of information ... to be silent. The author of the article fails to see that global market is not equal to American market, over-emphasizes the importance of Silicon Valley and can't think of the possibility that these platforms, devices, manufacturers can co-exist with one another.

Otherwise the article was good,

Tote :)

Friday, July 18, 2008

Static vs active application icons

I found an interesting blog about mobile interaction design at Sender 11 (whatever that name means). The point of the article is that in order to make application icons more attractive and provide a better user-experience, the icons should refresh their content from time to time and show "relevant" information to the user instead of being passive and showing only static information.

I like the idea. As one of the comments says with Nokia S60s you can now build interfaces wiht live icons like these in web-run-time and create a whole menu as a widget. Well, I don't know much about widgets, but I can imagine that it would work. For example, the whole Application Shell could make use of Web run-time and show application entry points (i.e. icons) as widgets with their always-changing behavior. Even more, the idea of Active Idle could be replaced by an active Application Shell, too. Some pixels could also be saved from precious screen real-estate (e.g. unread messages) by letting the application icons show information.

What could different applications show to the user? Here's a by far incomplete list out of my mind:

  • Calendar: indication about events nearby
  • Messaging: unread messages (sms, e-mail, etc.)
  • Bluetooth connectivity: enabled vs disabled, transfer in progress
  • WLAN connectivity: enabled vs disabled, number of hotspots nearby
  • Maps: known (i.e. pre-recorded) locations nearby
  • Clock: time
  • Music Player: some information about tune being played (with scrolling, for example)
  • RSS reader: new, unread items
  • etc.
Could you add more?

Tote

Thursday, July 17, 2008

Cross-platform development

I've read a great article about multi-platorm development today. I've already been involved in the development of multi-platform solutions and I saw big sacrifices made for the sake of common codebase. Not all code could be shared this way, of course, there was thicker/thinner layer(s) on the top of common code. Generally the maintenance/improvement of common code was slower compared to one-platform-only cases and the code was less efficient, too. I was not convinced that it was worth doing it this way at all.

Having said this, I fully agree with the analysis above. I would add, though, that multi-platform development requires either highly-skilled developers with solid knowledge of each platform they're developing for or a team of developers writing code 1 man/platform with very good communication within the team. Either choice could be right or wrong depending on many factors, like complexity of solution, developer skills, proper specification, etc.

Btw, Simon Judge has also added his valuable remarks to this topic.

Cheers,

Tote

Tuesday, July 1, 2008

Collection of great materials on Symbian going open-source

My regular readers may wonder why I've been silent on the great news of the mobile industry: Symbian is going open-source. The reason is simple: I was so shocked to hear it in the news that I just sat back watching the flood of new blogs and comments trying to digest this new information. But I've been digesting it, too. Other people whom I respect and think knowledgeable in this area have written their opinion and I'm now about to collect some of them in a blog and share it with you.

Andreas Constantinou from Vision Mobile was one of the fastests in commenting the news. He concluded that it was a logical move from Nokia (and Symbian, etc.) both from technical and business point of view:

    • " ... [Symbian] was crippled without control of the UI, application stack and the core OS under the same entity"
    • Eclipse (EPL) license is a weak one, which will make it desirable for OEMs to choose it.
He was also the first to point out that this move would cause lay-offs and some hard times for the following industry players:
    • SonyEricsson and Motorola: they will eventually have to give up with UIQ, since S60 will be the dominant UI and ecosystem and S60 will basically swallow both UIQ and MOAP(S).
    • Android's royalty-free, open source business model is not the only compelling alternative for OEMs, operators, etc. On the contrary, Symbian has already proved whereas Android has not yet.
Simon Judge over at Mobile Phone Development comments that " ... full access to the platform code allows for much more innovative applications using facilities that are currently hidden" and all this "only" for $1.500 is definitely a step forward.
He also cleverly notes that "Nokia and Symbian now see licensing the OS as a dead end" - I wonder what Microsoft will comment on it?
Finally, he raises his concerns on a technical question, backward compatibility: "... [the announcement] doesn’t explain whether this is source code, binary or application compatibility" - we wouldn't like to face with such a big break as what we did with the introduction of Platform Security, would we?

Mobile Opportunity's Michael Mace hails Nokia for their courage. He suspects, though, that "... the announcement is actually half cleanup and half power move: ... The power move is that it challenges Android ... The cleanup is that the ownership situation of Symbian was unstable and had to be changed eventually, and SonyEricsson clearly wanted to get out of the UIQ business".
He also asks what will drive Symbian developers after this change? While he believes that developers "respond to user excitement and the chance to make lots of money", he fails to see how the new Symbian strategy drives either one.
Finally, Michael points out that the longer it will take for Symbian Foundation to kick off, the bigger the advantage for Apple and Android. What about Microsoft? "This is Microsoft's ultimate open source nightmare, becoming real.

Rafe Blanford from AllAboutSymbian has written about Symbian Foundation unwrapped. He says that the tranformation of Symbian OS to a royalty-free, open-source system is according to today's industry philosophy and whilst it's a logical move forward it would not have been possible 10 years ago, since "...companies would have been unwilling to let Nokia or anyone else have such a dominant position". The new Symbian OS will challenge LiMo, Android and the likes on their own strength and "negates their key advantage". Apple's iPhone might be not affected, according to Rafe, since "it is difficult to see how Apple will expand to become a significant overall player in mobile space (rather than an individual niche player with lots of press attention)".

The hypothetical ("10 years old") problem Rafe was referring to is supported by The Register, too. They say, "the most damaging problem is that Symbian's licensees may have no desire to make Nokia stronger now that it owns the operation 100 per cent".
They also worry about that "the 'Foundation' may also prove to be an expensive liability for Nokia".
Finally they write that "it's largely Nokia that must be blamed for failing to make Symbian phones remotely 'enchanting' ..." and "... today it's the iPhone which has the enchantment factor. ... Symbian has done everything its original designers asked of it - a twenty year lifespan is not bad at all. But it's now Apple's business to lose."

Apple and world dominance. What about Microsoft? They're still bigger than Apple at least in terms of mobile OS market share, aren't they? Well, we've already got used to the style Microsoft comments similar announcements, thus it must not have come as a surprise that they have welcomed this move. To be more accurate, they have "welcomed the transformation of the Symbian mobile-phone platform into an open source project, because the software giant contends the change will create a host of new problems for the Symbian community." Sweet, isn't it? They use FUD referring mainly to the big 'F', fragmentation, saying that "there are more Linux consortiums that come and go than there are Linux phones".

Which might be true, actually. But don't lump Symbian and mobile Linux together. David Wood, EVP of Research at Symbian, has written a lengthy article about how he (and Symbian) sees this problem. He argues that 1: fragmentation really is a problem, 2: Symbian has the experience and ability to handle it. As opposed to Google, for example, says the side-note. :)

Finally, it's worth paying attention to Ajit Jaokar's article, who warns that "it is not possible to compare Symbian vs. Android; or Symbian vs. iPhone .. because it is not possible to mix operating systems with ecosystems". These are like "apples and oranges" in terms of "iPhone, Ovi and Android are ecosystems. In contrast, Symbian and Limo are operating systems or Operating system consortia". It's another lengthy article that is worth reading.

So I've been silent and haven't commented this news yet. Why? Because there are so many people to listen to ...

What about you?

Tote

Wednesday, June 18, 2008

Browser as an application platform

I've read the following analysis from ARCchart with great interest. I'm already familiar with the idea of writing applications for mobile browsers and that it can be considered as a real alternative for mobile software development. WidSets and Widgets are all around us, not to mention Flash Lite, Silverlight, two cross-platform solutions used for delivering (multimedia) content to more and more people.

The main point of ARCchart's article was to point out that the whole problem of fragmented mobile development could be solved by developing to a single run-time environment: the browser. The browser, which is today's most widely used applications on desktop and mobile computing devices alike.

What is this fragmentation thing, one could ask? Well, let's have a quick look at various mobile platforms, development environments:

  • It's a known fact that Symbian/C++ opens the door to the wide variety of native features of S60 and UIQ devices, however, it still has a steep learning curve and its programming environment is not too developer-friendly, either, compared to e.g. Java. The vast majority of smartphones are running on Symbian operating system (whether iPhone-fans admit it or not), however, development is often more (cost-)efficient for other platforms. Portability is a serious issue in Symbian.
  • Windows Mobile devices are very popular in North-America, especially among business users. However, its popularity is way behind Symbian phones' anywhere else in the world and don't forget the fact that there are much more consumers than prosumers. On this platform, you can write native applications in Win32/MFC/.Net, however, these applications are rarely portable across other platforms.
  • Java? Hell, it's the king of fragmentation in terms of supported (or rather unsupported) features, so-called JSRs. Even though it was supposed to bring the Paradise to mobile software developers, it's still suffering from severe problems.
  • What else? Linux? Show me some popular Linux-powered phones first and how people are making cross-platform, backward compatible programs for them.
  • iPhone? Mac OS X with its Objective C just increases variation. Even though C++ can also be used for programming and there are, for example, attempts to port JME programs to Obj-C, as I said: it just increases variation, which is the nightmare of programers.
  • Android? Although the whole system is based on mobile Linux, the primary development language will be Java. But which Java? Google's own. And although it's said to be a solid foundation for Google OHA members, it's still only a recommendation for them to choose whether various features will be supported in their devices or not. You can imagine how it affects fragmentation in the Java world - it will just make it even more complex.
Now how does a browser come into play? I'm sure that most readers of this blog have already heard of WebKit, an open source browser engine enabling mobile browsers to show and handle full-web content. It is used in Mac OS X's Safari (iPhone browser), Nokia's S60 browser, the built-in browser of Google's Android will also be WebKit-based, not to mention Digia's @Web, a recently announced port of WebKit for UIQ phones. Although there are other good browsers, too, such as Opera Mobile and IE in Windows Mobile, WebKit seems to be becoming the de facto standard in mobile devices (which is not necessarily a bad thing). It's also worth mentioning Opera Mini and TeaShark at this point, two Java-based browsers, both using remote back-end servers for pre-processing full-web content and showing only the digested content formatted for resource-constrained devices. Side-note: it's also WebKit that is running on TeaShark's back-end servers. :)

So is ARCchart right or not? Is the browser the ultimate solution for mobile software development? In my opinion yes and no. They're right that mobile browsers and complementing technologies (such as Flash Lite) are becoming more and more powerful, capable of rendering extremely complex web pages, performing surprisingly smart functions, letting the user interact with active content, exchanging data with remote servers, etc. However, whilst "older" web technologies (e.g. JavaScript) are not powerful enough to compete with the power of real programming languages, newer ones (e.g. Flash Lite) have not been widely adopted yet. For example, for a quick and very brief reference as to what the different versions of Flash Lite can and cannot do, visit this link. And even though there's not too much variation here yet, there will be: newer versions of Flash Lite will require developers to keep track of which mobile phone supports which version, how to distinguish between Silverlight and Flash Lite applications, etc. I'm afraid it won't be any different in the end.

In my opinion, web-based technologies will open up new alternatives (they've already done so, actually) for mobile software: not necessarily too complex ones, but at least enjoyable. And this is exactly what most people are looking for: they'd like to enjoy using these programs. These new kind of programs that complete the whole picture, add to it, but will NOT replace yet older but still powerful technologies.

Can hardly wait for your comments,

Tote

Wednesday, May 21, 2008

Nokia stirs water with mobile Linux

It seems it's time for another round to discuss about whether Nokia will abandon Symbian OS in favour of (mobile) Linux. All About Symbian has reported that "Nokia's Chief Financial Officer said Nokia is considering manufacturing Linux-based mobile phones". This information is confirmed by Unwired View as well, although in a slightly different tone: they say "Nokia sees increasing role of Linux in handsets". Finally, El Reg is saying that "Nokia says no plan to switch phones to Linux".

Who to believe? Having read the comments carefully, people seems to have the following opinions/see the following options:

  • The biggest haters of Symbian say that it's natural that Linux will take over and this is exactly what they've always claimed.
  • According to a bit more careful opinion, these two mobile operating systems will co-exist. There are couple of arguments for this scenario:
    • Symbian/S60 is undoubtedly the leader in smartphone market
    • There's room for both OSes: Symbian excels in high-performance mobile phones, whereas Linux could be successful in mid-range feature phones.
    • Nokia has already heavily invested in the development of a mobile OS and is a nearly 50% shareholder of Symbian these days - why would they ruin all this?
    • The development of a smartphone running on Linux still takes a LOT of time.
  • Some more paranoid commenters say that "Linux is not really a threat for Symbian, but rather a motivation" to work & perform even better in today's extremely competing environment (i.e. mobile OSes and smartphone market). They believe that Nokia wants to make pressure on Symbian by announcing new Linux-powered devices from time to time.
  • Finally, there are those who don't give a sh.t to what OS is running on a phone, they "just" want their Flash/Python/Java/etc. applications (whether they wrote them or not) to run smoothly in the future, too. Some of these people also mention that it's the same if the OS gets replaced, the UI (i.e. S60) is what's important - and if it remains, nothing will change actually.

Personally, I think that Nokia is still making experiments with Linux. Don't forget that they already have mobile Linux devices (Internet tablets running on Maemo platform), though, those are not mobile phones, just sort of PDAs. In today's fragmented mobile Linux market, no one mobile manufacturers dare to commit themselves to take Linux as the leading operating system for their products - it would simply be way too risky. It's been also said numerous times that there are lots of factors that manufacturers must consider when selecting a mobile OS and Linux is definitely NOT the ultimate solution today. Nokia might abandon Symbian in the future, however, it's not time for that. Yet.

Any thoughts?

Tote

Thursday, May 8, 2008

Mobile software development - Functional testing

Simon Judge's blog made me think, again. He wrote about Mob4Hire, a company offering people for mobile application testing. Testers get paid via PayPal after bidding on projects (i.e. mobile applications/solutions) and developers get testers at a (hopefully) reasonable price. Finding testers might be especially useful if your geographic area is not the one you'd like your software to be tested in.

You know, lots of developers (dare to say: most?) do not recognize the importance of testing. This is the least pleasant part of development, I must admit, yet one of the most important. There are various kinds of testing including (but not limited to) unit-, regression, load, "smoke", etc. testing. The one, Mob4Hire provides solution to is called functional testing, where one can test the whole solution end-to-end. You know, mobile handsets are very-very fragmented in terms of platforms: applications can be developed in many programming languages like Java, Symbian C++, Windows Mobile Win32/C#, iPhone Obj-C, Linux C/C++, etc. And even when sticking to the same platform and programming environment, JME for example, the supported features vary very much from device to device. This, along with the complexity of what operators allow 3rd-party programs to do, makes it very difficult for a new application to be thoroughly tested.

Nokia already provides a free service for developers wishing to test their mobile applications written for Nokia S60 platform: it's called Nokia RDA (short for Remote Device Access). It is an Internet-based solution, where you can remote control a real mobile phone. You can request, for example, that SIM- and/or memory card be inserted in the test device as well as more than one phone be reserved for your test session to test peer-to-peer communications.

DeviceAnywhere provides a similar solution to Nokia RDA, however, it's not limited to a particular platform, nor to only 1-2 network operators. According to their web site, their service is "a revolutionary online service that provides access to hundreds of real handsets, on live worldwide networks, remotely over the Internet". Unfortunately, it is not free of charge.

Note that you cannot test everything with these solutions. For example, applications that use camera, GPS, accelerometer are basically out of question as well as ones using external accessories.

Another option for functional testing is making use of the services of Test Houses. Professional testers verify the quality of your software (compared to Mob4Hire, for example, see Simon's opinion) so that you can be sure you get the most what you paid for. Sometimes it's even required for your application to pass certain tests in order to get certified by some authorities. However, you may need to pay a lot for this service, see the list & pricing of Test Houses that Symbian Signed accepts, for example.

Finally, let's talk about community-driven testing. Once your application is in such a shape that it is ready for external people to play with it, you can ask them to go and use it extensively. You can offer free copies of the software to them, for example, or they may do it just for their own gratification - it's the same. This way of testing works extremely well in solutions based on client-server architecture with a mobile front-end and a server back-end. It's quite common in these scenarios that the mobile-end is just a light-weight client software that can be freely distributed, thus it doesn't cause any inconvenience if software distrubition is not strictly controlled. The point is that you may get lots of people playing with your software, because it's their passion. And passion drives people to do their job well, simply because they enjoy it, they love your program and they'd like it to be even better. I'm really a great supporter of this kind of testing. :)

Can you recommend any other way for performing functional mobile software testing? Please let me (us) know!

Tote

Tuesday, May 6, 2008

eyePhone - Your tourist guide

I've stumbled upon this article recently and thought might be worth sharing with you.

If we put the name of this software aside a bit (it obviously tries to ride the waves of iPhone), the idea is great. Take a smartphone being able to

  • take good quality photos
  • use GPS
  • communicate over Internet
and you have your on-line tourist guide always at hand. It doesn't require too much from the handset, no? I bet even a good feature phone would do.

Of course, the client software shall not be too thick, most of the business logic is on server-side, right? An average (phone) camera quality should be enough, a Bluetooth-attached GPS is sufficient and basically every mobile phone can transmit data over the net lately. Okay, if an angle sensor is also part of the phone, then the client can gather more data that eventually makes recognition more accurate.

As opposed to the client-side, the server must be very intelligent. Image recognition can be very complex, since poor image resolution, distant objects, pictures taken from different angles, etc. can make it very-very tricky if not impossible. Yeah, I know that the article mentions that the concept was proved, but I believe it only when I see it, you know. Obviously, the solution must be community-driven - you cannot expect any service providers to maintain such a big database alone. And I'm sure that from business point of view it's the server-side software that one can license, whilst the client software would be available free of charge. At least, that would make sense.

Finally, it's very interesting that others are also making experiments in this area.
  • Android Scan is an application written for Android Developer Challenge that uses camera and mobile processing power for barcode recognition and scanning for metadata of CDs, DVDs, books on the internet.
  • Nokia also develops navigating system based on image recognition, where you can just "take a picture of a nearby landmark, like the Golden Gate Bridge, with the camera in your mobile phone. Then, Nokia will match your photo with other landmark photos in its mapping database, and tell you where you are."
  • J-MAGIC is a Japanese company that "sees market for picture-based search", too.
And the list is by far not complete. I wonder who will come up with the most innovative idea bundled with a sustainable revenue on the service so that both sides (i.e. consumers and providers) get what they want.

Any thoughts?

Tote

Friday, April 11, 2008

True emulation for Symbian development - when?

Though I've already heard that Windows Mobile SDK offers true phone emulation, however, only now have I got to the point that I ask for your opinion: why cannot we do the same during Symbian software development?

Note that you might have also heard that iPhone developers can also rely on this useful service. Nevertheless, don't forget to bear in mind that they must be working on the same platform, i.e. MacIntosh OSX. That is, there's not too much to emulate there.

But Windows Mobile is different: you develop on Windows presumably on an x86 architecture and produce binary code for another processor architecture (ARM) that you can even debug on. How? Why on Earth cannot we do the same?

Tote

Sunday, March 9, 2008

Another hack for Symbian Platform Security

One of my articles that has gained lots of attention was written about hacking Symbian Platform Security. Although it turned out that reproducing the workaround found by Symbiaali is laborous, requires strong technical knowledge and its wide-spread use is very unlikely, it clearly showed me that people were interested in this topic.

Today I found another post at Symbian Freak that describes just another way to turn Symbian operating system's well-known permission checking feature off. Although I don't agree with the title of the article (good-bye?? S60??), I think at least it's worth a few words.

What is this crack about? How can we cheat Platform Security capability checking so that it does not care if our program really has the capability being checked or not? Well, in a very special way:

  • Take a development environment for Symbian, like CodeWarrior Pro or Carbide.C++ Pro. Please note that you will need the ability of on-device debugging, that's why CodeWarrior Personal/Carbide.C++ Express is not enough. I'm unsure if Carbide.C++ Developer Edition was enough (this is between Express and Professional), but I doubt that. More on this later.
  • Prepare everything for on-device debugging (connect phone to PC, install MetroTRK to phone, etc.).
  • Start any program from within the development environment (aka IDE) in debug mode.
  • Change some bits in the kernel stack responsible for security enforcement. This is the most critical place, where you can really turn everything upside-down. And since you can do that, I believe it's Carbide.C++ Professional Edition that you need and not Developer - latter is less expensive, but in turn it provides only on-device application debugging in contrast with Pro's system debugging.
  • Voilà, we're done - we have access basically to anything.
Disadvantages
  • The crack is temporary, since everything is done in RAM.
  • Required tools are expensive: CW Pro was available at ~$1.700 (the product is discontinued and cannot be bought officially), Carbide.C++ Pro can be purchased for $1.300.
  • Break is limited to one device.
  • Proved to work only on Nokia N80, on other "hotter" devices (like the N95) it does not work or at least nobody has been able to make it work so far.

What kind of damage can a cracker still do?
  • Explore file system, discover what is stored where and how (as if you had AllFiles and/or TCB capability) and exploit it.
  • Access to DRM-protected content (as if you had DRM capability). This might be more dangerous as you can download e.g. DRMed music once and sell it multiple times later on.
To sum up this post, this new way of cheating Platform Security is the traditional way of cracking. I'm not surprised that it had been discovered and published, I just wonder why it has taken so long? And finally, I don't think that it would cause major problems in Symbian ecosystem.

What do you think?

Tote

Saturday, March 8, 2008

iPhone SDK and Business Model - only kids get too excited

I think it's a good idea to wait a bit with commenting the announement of big things. You might not be as fast as others, but at least will have a broader view to the whole picture. At least that's what I did with Steve Jobs' announcement about the iPhone SDK (official press release is here) and developer program. Having read lots of articles written about it (by writers faster than me:), my remarks are below.

App Store
This is the place, the only place, where people can download 3rd-party software from, let it be commercial or freeware.

  • Making it centralized is a good idea, better than having to look for something at lots of places. Especially if Apple undertakes lots of tasks, like distribution, advertising, content filtering, software update, etc. On the other hand, it will naturally result in that the control will be kept in one hand - it'll always be up to Apple to decide what is porn, illegal, etc. Is that good for us? Also, it doesn't help too much in pushing down the prices (I mean, interest rate) if there is only a single point of sell.
  • I've been already thinking about that reselling applications should be done by device vendors themselves in order to keep the price at a more bearable level than it is at now. For example, Handango's 40-50-60% is something I call unabashed. However, it's understandable that they keep interest rate at that high level: it's their main (only?) income. Whereas for device manufacturers it would not be. Okay, I understand that they've been trying to keep themselves away from this part of the business so far, but nowadays that Internet is everything and if you don't provide a service that your competitors do, then you lose. For example, Nokia now offers Mosh and Ovi, but I can't remember if they offer App Store-like service, too. If they don't, I'm sure they will soon.
  • One more thing: I think Apple is now bargaining. They announced a 30% interest rate from the price that developers will be able to sell their apps at, however, that's still too high. Never mind, let's check what people say about this rate, if the opposition is too big than we can offer less. From 30% you can do that.

Development
Apple announced that developers can download the SDK free of charge, bundled with source editor, debugger, interface builder (= UI designer), project management and integrated version control software and lots of other stuff.
  • However, doing that require paying $99. It's a one off cost and in fact sounds reasonable for "standard" developers ($299 for enterprise developers) - it's mostly for signing, though freeware app developers will also have to pay this fee - for traceability purposes. In this respect (i.e. traceability), it's similar to Java certification and Symbian's Platform Security.
  • Only platform is Mac? Sounds like a joke, look at the figures how many people/developers use this platform compared to Windows, Linux. I read it in Paul Todd's article that the SDK offers true simulation, not only emulation, which is fantastic. I wonder how VMWare would perform in iPhone development, though: people could install a virtual Mac machine on their operating system for development. Even more, it would make sense for Apple to create freely downloadable VMWare images for developers having everything pre-installed on it.
  • Let me talk about the programming language developers are supposed to use, Objective-C. To be honest, I don't "speak" this language, but I have seen code written in it. I've been in "cross-platform business" lately and having said that I can see this language being more useful to our efforts than Java, for example (since none of the popular mobile OSes are built on non-C/C++). On the other hand, I'm afraid that Obj-C is too far away from standard C and C++ and one would need to make too big efforts to keep the codebase as common as possible.
  • As for opening up 90% of APIs: it's nice, but a double-edged sword. First, Apple's got only one platform and one device (I mean, mobile phone). If everything goes fine with Apple's business there will be more platforms and more devices: the burden of SDK maintenance may grow to sky-high especially if you open up such a lot of APIs, taking care of source- and binary-compatibility, documentation, etc. You know, I would love to see Symbian/S60/UIQ to go open source or at least open up lots more APIs, too, but I understand why these companies decided not to do so. If Apple has the capacity to do it, then looking forward to it.
  • As to $100M VC fund for 3rd-party development: it's obvious that newcomers have to say big, like this (remember Android's Developer Challenge?), I'm just hoping that others will do the same. Even if they're not newcomers, "just" founders of this industry. :)
  • No multi-tasking: phew, it's really pain in the ... well, you know where. Although lots of things can be solved by storing state information when an application is forced to quit (heard that no 3rd-party app can run in the background! See Techcrunch for more details) and then retrieve that information on re-launch, this limitation causes lots of use cases not to work, like listening to incoming SMS, downloading/uploading/streaming content in the background, generally just hopping from one application to another where the soon-to-be-background app would still have things to do. I don't know why Apple has decided to introduce this limitation, but hope they will drop it soon.
In general, I'm happy that Apple has joined the mobile industry. As well as Google has or rather it just will. I always say that we can learn from anything, let it be good or bad. Life will prove that an idea or in particular an implementation of an idea is viable or not. The point is that we can all benefit from it: either by copying and making an idea better or avoid a mistake that has already been done once.

Tote

Saturday, January 12, 2008

Touch(less) UI + Accelerometer

We all know iPhone. Even though it's not available in Hungary as of yet, I've already had the chance to hold it in my hands and play with it. It's simply great. People say that it's because of the touch UI, but I don't believe that. It's not that simple. Lots of other manufacturers have already made phones with touch support, but for some reason the success of their products is not even comparable with iPhone's. I think it's because of Apple's approach to user interface, more importantly to user experience. They made it as simple as possible and it will be very hard for phone vendors to compete with it.

Motorola announced their ROKR E8 phone at CES 2008. It's a touch-driven phone, needless to say. The coolest feature that I found is that it doesn't have a physical keyboard, but it dynamically shows always the relevant keys based on what feature/program is being used at the moment. I remember of a patent that I have read about over at IntoMobile: Nokia had patented their invention of a dual-screen phone with touch support. My first reaction to seeing the drawing from the patent that the keyboard layout could be displayed on one of the screens and it could be dynamic: sometimes QWERTY, sometimes ITU-T, sometimes something else, something relevant. I'm very happy to see it to come true.

You might have already heard about that Nokia was planning to add tactile feedback support to their future phones, which means a little buzz when user presses one area of the (touch)screen. Very interestingly very similar to what Motorola has just come up with. You know, one of the biggest constraints of using a mobile phone instead of e.g. a laptop is screen size. And the size of the screen has so far been limited 1: by the device size (it must fit into one's pocket), 2: it had to have a keyboard. It seems that the trend for 2008 is that there will be no keyboard on smartphones at all. Ehm, I mean no real, physical keyboard - as opposed to virtual.

Have you heard that Nokia recently submitted another patent application for touchless UI? See Unwired View for more details. The basic idea described in the patent is that there would be sensors arrayed around the perimeter of the device capable of sensing finger movements in 3-D space. The user could use her fingers similarly to a touch phone, but actually without having to touch the screen. That's cool, isn't it? I think the idea is not only great, because user input will not be limited to 2-D anymore, but that I can use my thick, dirty, bandaged, etc. fingers as well (as opposed to "plain" touch UI). I'm a bit sceptic, though, how accurate it can be, whether the software will have AI or the user will have to learn how to move her fingers. We'll see hopefully very soon!

Finally, there is one more thing I'd like to mention here. It's the built-in accelerometer. I'm pretty sure that most readers have already heard of that the newest Nokia smartphones have built-in accelerometer. It's sort of a motion sensor that actually hasn't got so much publicity so far. I was always wondering why Nokia has not announced, advertised, etc. this piece of gadget. I mean at all. I can't remember if I have ever read any articles, blogs, etc. from Nokia about that they have put this extra hardware in their phone. You know, an accelerometer in a mobile phone is unusal. Not only to me, but to other people as well.

Why did Nokia not advertise this? If it's expensive, it doesn't make any sense not to advertise it. If it's cheap (I bet it is), then it doesn't have to be advertised, but then why add it to the phone at all? Just to see what the (developer) community thinks about it? What kind of applications can they make out of it? Although it's a good idea, I don't think it's a valid business reason. And you know, it was also unusual that Nokia published an API for developers to use this feature - but it was an R&D API! Knowing Nokia and using their SDKs for ages, I would say it's, again, very unusual. It's like "Let's publish this API so that we can see what others can find out with it, but doing it so that we don't have to announce it".

I wouldn't be suprised if the accelerometer eventually had something to do with the touchless UI. I have the feeling, since I'm a programmer, that even with the array of transducers (see the patent) it's not trivial to figure out what the user has done with her fingers. For example, it might be very important to know in what angle the user's hand is to the device ... and this is the point where the accelerometer comes in handy. It helps to know how the user's one hand holds the phone while making gestures with the other. And this altogether is the new thing.

Can't wait to read your comments,

Tote