Everything and the Mobile Software Universe…

  • rss
  • Home
  • About

UI Technologies are trendy…but let explain their concepts, and what they are really bringing.

Thomas Menguy | March 31, 2008

A good UI  is nothing without talented graphical designers and interaction designers: How  the plethora of new UI technologies are helping unleashing their creativity? What are the main concepts behind those technologies?  Let’s try to find out!

UI is trendy… thank you MacOS X, Vista and iPhone!

image

image

image

UIQ

S60

iPhone

 

Put the designers in the application development driver seat!

Here is a little slide about the actors involved in UI design

Read the rest of this entry »

Comments
No Comments »
Categories
Design, Software, User Interface
Tags
Adobe flex, DAW, GTK, mobile phone, MXML, phone, SVG, TAT, thermo, XAML
Comments rss Comments rss
Trackback Trackback

Nokia to acquire Trolltech! Trying to guess why….

Thomas Menguy | January 28, 2008

Big news in our world! Check the press release.

Price (the offer values the company to 100 Millions Euros) is not so high compared to Trolltech technical and community assets (but high …looking at the actual company revenues of 7 Millions Euros). This is not a dot com acquisition. Period.

The next game would be to understand why.

Trolltech is providing a native development environment called Qt, which is a set of “OS services” (memory management, Thread, etc…) and is famous widget library. This environment has been ported on Desktop Linux, Windows, MacOS and embedded Linux: “Qt/embedded”, now called Qtopia Core , on top of which a nearly complete phone application stack has been built, Qtopia.

The framework allows C++ development but recently a java version surfaced: Qt Jambi

Trolltech provides also (and sell) some development tools: a RAD, QtDesigner, qMake a command line tool chain, a plugin for Visual Studio and some internationalization utilities.

While huge adoption in the mobile phone market remains to be seen, Qt is at the earth of one of the biggest OpenSource piece of sotfware: the KDE Linux Desktop (…father project of the now famous webkit browser engine).

So crossing with Nokia current strategy and ths interesting quote from the Nokia PR:

“Trolltech’s deep understanding of open source software and its strong technology assets will enable both Nokia and others to innovate on our device platforms while reducing time-to-market. This acquisition will also further increase the competitiveness of S60 and Series 40.”

Kai Öistämö, Executive Vice President, Devices, Nokia

Here are the different bets:

  • It is widely known that the proprietary S40 is difficult to maintain and extend/modernize, porting Qt as a companion framework may allow Nokia to open it’s most widely used platform (S60 is negligeable compared to S40 market share) to third party developpers … and open source developpers.
  • Nokia wants to have cross platform technologies to merge S60/S40 and desktop environment, so take advantage of the HUGE Qt developper pool.
  • Nokia desperately needs a credible platform and a set of APIs to counter Android in the web services area…and the Java Qt makes sense here.
  • Does Nokia has some ambitions for KDE to use it as its base OS for its forthcoming “Personal Computer”, touted as the next big thing and next strategy of Nokia?

Be prepared for a S40, a S60 Qt port …. and perhaps an opening of the S40 platform, at least for selected third parties.

Anyway I quite don’t get this …

  • In Hildon regards, the Maemo Tablet OS running on the nokia Internet Tablet (n770, N800 and N810). This one is based on GTK, the Qt archrival on the Linux Desktop, uses a Mozilla based browser, so is in the opposite technical direction: will it be cancelled as it is to run a Qt based Tablet OS?
  • For KDE Desktop: Dealing with a little company like Trolltech is something, having Nokia as the main backer of its framework is something else. How the OpenSource community will react?

What do you think Nokia has in mind?

Thomas

Comments
No Comments »
Categories
Uncategorized
Comments rss Comments rss
Trackback Trackback

We didn’t noticed, but mobile internet took of.

Thomas Menguy |

Ok I admit, I have an iPhone. I love it,  blablabla you know the song already. It has its flaws, but as an old time mobile software engineer I’m really stroked by one BIG fact: The applications I use the most on it are fully web based!: My IM messenger (JiveTalk), my english/french dictionnary (Ultralingua), my mail and rss reader (special version of gmail and google reader) … even my all time favorite mobile game Bejeweled is web based!

What a shock I wasn’t prepared for that: when Steeve Jobs told us that the only way to add application will be (at first) through the web browser I was the first to laugh, only raw C++ is meaningful for applications, a web browser is a mere toy compared to a real application framework.

How wrong I was. And here is why. (and no it won’t be only about the iPhone)

  • Unlimited and affordable data plan, and efficient bandwidth and coverage: I’m in Europe (France) and here network coverage and edge (2.5G) are very efficient.
  • Webkit and Mozilla : Webkit engine tends to begin the defacto mobile web browser (check what pleyo is doing) embedded in S60, MacOS, Android…the only other credible contender is the Nokia Mozilla version (my Nokia N800 is simply unbeatable for web browsing).
  • Raise of ad-hoc web services framework: the famous and numerous web widget frameworks (webwag being one to be noticed), and Yahoo GO for example.
  • And the biggest one which is vastly under looked: modern websites, sorry webservices, are fully Model/View/Controller (ruby on rails, but above all struts2, etc.) what does it means in human readable language? : it is VERY easy to adapt the content/services of  a web site to different browsers / way of presenting data. Look at the plethora of “iPhone” optimized sites (ebay, dailymotion, facebook, etc)  that have popped up everywhere in few months.

Those approaches have something in common

  • Need of a reliable wireless data link
  • Well architectured network backend to provide optimized business data and adapted rendering data (the last one is not mandatory, check RSS for example were the business data has no notion of representation in it).
  • An “On Client” web service framework: a browser with standard and added proprietary APIs like the iPhone Safari, a limited and fully proprietary engine like YahooGO, or a full OS with the complete stack like Android and … the iPhone OS (OK, don’t forget the “old” high level OSes like S60 and WinMobile).

Everything seems to be in place, and from what we saw above a good web service client platform would have to:

  1. Be fun to use and compelling, tailored for each user
  2. Be VERY efficient for the phone common tasks (phone call, address book)
  3. Offer a nice and easy way to deploy data representation and flow control from existing web services backends…with good performance and relatively wide access to the underlying platform and datas

For me the first two doesn’t have to be understated (just try a WinMobile phone for a few months to understand what I mean :-) ), as the device remains a phone, a communication machine and voice is still the undefeated champion for communication. This is where the iPhone is groundbreaking at a first sight…and also where I’m not sure of what Google Android will deliver (call me skeptical if you want…).

The third point may bring a lot of optimism … as it implies that we doesn’t need a single platform anymore, but a bunch of deployment possibilities, tailored for each devices/client or even each services . Android and  the iPhone may be seen as such a platform with at least two of those deployment possibilities: the browser and application native development, here Android is much more friendly to Java/Web programmer that the iPhone. But we could perfectly imagine devices with more deployment options or other completely different but close enough to web development standards to allow fast adaptation of web backends….why not an iPhone with an Android sandbox?

At the end the famous “cloud” (the network) is really shaping the “on device” clients, allowing more and more diversity and at there won’t be a “one fit all” solution…

Thanks Steve Jobs for being the first to have put in place all the elements of the chain, dealing with carriers, content provider, services providers…and coming with a great consumer electronic design.

Google wants to go further? not sure for now, but the US 700 MHz auction have to be followed very carefully cause if this spectrum becomes “free” of the carriers, we don’t know how fast it could go!

Comments
No Comments »
Categories
Gadgets/PDA/Phones etc..., Mobile Industry, Mobile Web 2.0, Uncategorized
Tags
android, application framework, content services, gmail, google, iphone, mobile web, model view controller, webkit, webservices
Comments rss Comments rss
Trackback Trackback

Nice multi-touch UI round trip…

Thomas Menguy | December 4, 2007

Simply brilliant! ….especially the hardware part :-)

DIY Multipoint touchscreen

TAT » The Astonishing UI-blog

Then do yourself a favor and look at this page for a nice listing of multi-touch experiments and devices: http://www.billbuxton.com/multitouchOverview.html

Comments
No Comments »
Categories
User Interface
Comments rss Comments rss
Trackback Trackback

Execution engines : How to cleanly run code? ARM, .NET (now for s60!) , Java, Flash …

Thomas Menguy | November 18, 2007

Found at All About Symbian:

Red Five Labs has just announced that their Net60 product, which enables .NET applications from the Windows world to run unchanged under S60, is now available for beta testing.

.NET on S60 3rd Edition now a reality?

This is really interesting: even the battle for languages/execution environment is not settled.

For years Mobility coding was tightly coupled with assembly code, then C and in lesser extent C++. The processor of choice is the ARM family (ok some others exist, but no more in the phone industry)…this was before Java.
Basically Java (the language) is no more than a virtual processor with its own instruction set, and this virtual processor, also called a Virtual Machine, or JVM in the case of java, simply do what every processor do: it processes some assembly code describing the low level actions to be performed by the processor to execute a given program/application.

On the PC other execution engines have been developed: the first obvious one, the native one is the venerable x86 instruction set: thanks to it all the PC applications are “binary compatible”. Then Java also, and more recently … the Macromedia/Flash runtime (yes Flash is compiled in a Byte Code which defines its own instruction set). An other big contender is the .NET runtime…with you guessed what, its own instruction set.

At the end it is easy to categorized the executions engines:

  • The “native” ones: the hardware executes directly the actions described in a program, compiled from source code to a machine dependent format. A native ARM application running on a ARM processor is an example, or partially for a Java program that is running on an ARM with Jazelle (some Java byte code are directly implemented in hardware)
  • The “virtual” ones: Java, .NET, JavaScript/Flash (or ActionScript, not so far from JavaScript: the two languages will be merged with the next version: ActionScript 3 == JavaScript 2 == ECMAScript 4) where the source code is compiled in a machine independent binary format (often called byte code)…But how an ARM emulator running on an x86 PC may be called? you guessed, virtual.

So why bother with virtual execution engines?
Java has been built with the premise of the now famous (and defunct :) ) write once run everywhere, because at that time (and I really don’t know why) people were thinking that it was enough to reduce the “cross platform development issue” to the low level binary compatibility, simply allowing the code to be executed. And we know now it is not enough!

Once the binary issue was fixed, the really big next one were APIs (and to be complete the programming model) … and the nightmare begins. When we say Java we only name the Language, but not the available services, same for JavaScript, C# or ActionScript. So development platforms started to emerge CDLC J2ME .NET framework, Flash, Adobe Flex, Silverlight, Javascript+Ajax, Yahoo widgets … but after all what are GNOME, KDE, Windows, MacOS, S60, WinMob ?…yes development platforms.

The Open Source community has quickly demonstrated that binary compatibility was not that important for portability: once you have the C/C++ source code and the needed libraries plus a way to link everything, you can simply recompile for ARM/x86 or any other platform. Hum I’ve made a big assumption here: you have “a way to link everything”. And this is really a big assumption: on many platforms you don’t have any dynamic link, nor library repository or dynamic service discovery…so how to expose cleanly your beloved APIs?
This is why OSGI has been made, like COM, Corba, some .NET mechanisms, etc : all is around component based programming, encapsulating a code around what it offers (an API, some resources) and what it uses (API and resources).

Basically an execution engine has to:

  • Allow Binary Compatibility: Abstracting the raw hardware, ie the processor, either using a virtual machine or a clean build environment
  • Allow clean binary packaging
  • Allow easy use and exposition of services/APIs

But it seems impossible for virtual engines to dissociate the language(s) and the engine: Java …well for Java, ActionScript for Flash, all the # languages for .NET. An execution engine is nothing without the associated build chain and development chain around the supported languages.
In fact this is key as all those modern languages have a strong common point: developers do not have to bother with memory handling, and as all the C/C++ coders will tell you it means around 80% less bugs, so a BIG productivity boost, but also and it is something a tier one OEM told us: it is way more easy to train and find “low cost” coders for those high level languages compared to C/C++ experts!… another development cost gain.

A virtual execution engine basically brings productivity gain and lower development cost thanks to modern languages ….. we are far far away from “write once run everywhere” :-)

But as we have seen before it is really not enough and here comes the real development environments based on virtual execution engines :

  • .NET framework platform : an .NET VM at hearth, with a big big set of APIs, this is what I would like to know what are the APIs exposed in this s60 .NET port
  • Silverlight : also a .NET VM at hearth + some APIs and a nice UI framework
  • J2ME: a JVM + JSR + …well different APIs for each platform :-)
  • J2SE: a JVM + a lot of APIs
  • J2EE: a JVM + “server side” frameworks
  • Flex : Adobe Action Script Tamarin VM + Flex APIs
  • Google Android: Java VM + Google APIs,… but more interestingly also C++: as android use Interface IDL description C++/Java interworking will work (I have some posts to do about it)
  • …and the list goes on

So at the end what really matters is the development environment as a whole, not simply a language (for me this is where android may be interesting). For example the Mono project (that aims to bring .NET execution with Linux) was of few interest before they ported the Windows Forms (Big set of APIs to make graphical stuff in .NET framework) and made them available in their .NET execution engine.

What I haven’t mentioned is that the development costs gain allowed by modern languages comes at a cost: Performance.
Even if Java/.NET/ActionScript JIT helped partially for CPU (Just in Time compilers: VM technology that translates virtual byte code to real machine code before execution), it is still not the case for the RAM used, and in the embedded world the Moore law doesn’t help you, it only helps to reduce silicon die size, to reduce chipset cost, so using a virtual engine actually will force you to … upsize your hardware, increasing the BOM of your phone.
And it isn’t a vague assumption: when your phone has to be produced in the 10 millions units range, using 2MB of RAM, 4MB of flash and an ARM7 based chipset helps a lot let you make money selling at low cost….we’ve spent some nights/days optimizing stuff to make it happen smoothly very recently :-)

At OpenPlug we have built a nice execution engine, not virtual, running “native code” on ARM and x86, with an easy to use service discovery mechanism: a component platform for low cost phones. Then we have added a development environment with tools and middle to high services….we have learned big time and sometime with pain all the bricks needed for such an environment! :-) …

A key value may be around one framework and multiple execution engine for easy adaptation with legacy software and productivity boost for certain projects/hardware, or some parts of the software.

Because once you know how to cleanly make some code running independently from the hardware, you have to offer a programming model! Implying how to share resources between your modularized pieces of code…and in that respect execution engines are of no help, you need an application framework (like OpenPlug ELIPS, or Hiker from access, Android is about that, but also S60 and Windows Mobile): it will abstract the notion of resources for your code : Screen, Keypad, Network, CPU, memory, … this is another story, for another post!

Please comment!
Thomas

Comments
3 Comments »
Categories
Mobile Industry, OpenPlug, Software, development process
Tags
.NET, actionscript, ARM, arm processor, assembly code, ecmascript, execution engine, execution environment, flash, Flex, instruction set, Java, java byte code, java program, Javascript, javascript flash, jazelle, just announced that, jvm, languages, mobile phone, pc applications, phone industry, program application, tamarin, virtual processor, x86, x86 instruction
Comments rss Comments rss
Trackback Trackback

25 years of Nokia Phones!

Thomas Menguy |

Found here:
IDIOT TOYS: Tech reviews for the bored: Nokia used to be better at coming up with phone names
(where did they found this name???)

  1941392596_34aaf7dae6_o.jpg
How fast it is moving! The number of form factors is also something to think about: phones hardware will never be commoditized! Which is a good news for…software innovation.

Tags: Nokia

Comments
No Comments »
Categories
Mobile Industry
Comments rss Comments rss
Trackback Trackback

“Tell me what is this song!” : Shazam iD, TrackID is no longer just a Sony Ericsson thing

Thomas Menguy | November 12, 2007

Check this good review: Review: Shazam iD, TrackID is no longer just a Sony Ericsson thing

Was waiting for such a service for ages …. “Tell me what is this song currently on the radio!”.

I’ve not tried bu tI like it :-)

Comments
No Comments »
Categories
Fun
Tags
Fun
Comments rss Comments rss
Trackback Trackback

Sagem my150X: Lowest BOM in the market 16$ with Infineon ULC chipset E-Gold

Thomas Menguy | November 5, 2007

sagem_my150x_3.jpgsagem_my150x_1.jpg

Ok exit the Motofone F3 here is the Sagem my150x : Today I had briefly this baby in hand from an insider. The screen in monochrome, but with a particular technology that looks like old LED based VCR. Notification icons are “hardware based” like the F3, menus are pretty simple and quite well readable with a good contrast, no T9 for SMS. I was impressed by the sturdy sleek and fashion design, and the really great tactile feeling of the case (really similar to the great smooth Samsung plastics).

But what is really amazing is its BOM: 16$ ! Some “rumors” are telling that it will be sold 29 euros in Carrefour. And it seems that in UK Orange to sell Sagem my150x pay-as-you-go phone for 10!

This is the first phone sporting the Infineon ULC mono chip…and this is great!

For further reading check the following reviews:

TrustedReviews – Sagem my150X and MobileGazette Sagem my150x

Comments
1 Comment »
Categories
Gadgets/PDA/Phones etc..., Hardware, Mobile Industry
Tags
bom, Gadgets/PDA/Phones-etc..., Hardware, Infineon, Mobile Industry, motofone_f3, pay_as_you_go_phone, sagem, ULC, Uncategorized
Comments rss Comments rss
Trackback Trackback

Flash 10: Hydra and AIF (Adobe Image Foundation) and Hardware Rendering [ draw.logic ]

Thomas Menguy | October 4, 2007

Flash 10: Hydra and AIF (Adobe Image Foundation) and Hardware Rendering [ draw.logic ]

Very interesting stuffs those days around UI. Adobe is PUSHING (is it big enough?) , and really trys to begin a direct MS WPF/SilverLight/.NET direct competitor… they even have a server part (for Flex).In this annoucement what I find particularly interesting is the following: From Adobe here is what AIF is:

The Adobe Image Foundation (AIF) Toolkit (…) includes a high-performance graphics programming language (…), codenamed Hydra, and an application to create, compile and preview Hydra filters and effects. (…). It currently ships in After Effects CS3 and will be used in other Adobe products in the future. The next release of Flash Player, codenamed Astro, will leverage Hydra to enable developers to create custom filters, effects and blend modes.

Hydra is a programming language used to implement image processing algorithms in a hardware-independent manner. Some benefits of Hydra include:

  • Familiar syntax that is based on GLSL, which is C-based
  • Allows the same filter to run efficiently on different GPU and CPU architectures, including multi-core and multiprocessor systems in a future update
  • Abstracts out the complexity of executing on heterogeneous hardware
  • Supports 3rd party creation and sharing of filters and effects
  • Delivers excellent image processing performance in Adobe products

At last usage of hardware! and with the recent annoucement of AMD licensing some ATI hardware IP to Freescale and Qualcomm…. this is coming to mobile phone and perhaps faster than we think.

The only issue for me is … that I don’t see a real use beside video encoding/decoding for now :-) , but it will come.

Thomas

Comments
No Comments »
Categories
Hardware, Uncategorized, User Interface
Tags
3D, flash, Hardware, ui, Uncategorized, User Interface
Comments rss Comments rss
Trackback Trackback

Nokia to acquire Navteq for $8.1 Billion

Thomas Menguy | October 2, 2007

Nokia to acquire Navteq for $8.1 Billion

WOW after TeleAtlas bought by TomTom … there is room for a new mapping actor!

Ok Nokia, you are serious about your “I want to be a service company” but 8 billions for a mapping company?? This industry is crasy :-)

Thomas

Comments
1 Comment »
Categories
Uncategorized
Tags
Uncategorized
Comments rss Comments rss
Trackback Trackback

« Previous Entries Next Entries »

What I’ve enjoyed reading

Recent Posts

  • You will be disappointed by your Android Market application sales…think twice before jumping on the little robot
  • Why Adobe should change its mobile strategy (again)
  • No Qt for S40, Maemo and Symbian apps won’t be compatible: is Nokia really willing to unify development for OVI Appstore?
  • Why Samsung Bada makes sense vs an Android-me-too journey
  • Flex on Mobile: What’s coming in ELIPS Studio…iPhone insights (and android teasing :) )

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox