You Are Here:

Community: Blogs

Harry Li's Forum Nokia Blog

Evaluate the project before porting

kcomex | 08 May, 2008 09:16

Porting an open source project is quite different from developing a new application for mobile phones. During past days without Open C, we have to rewrite lots of code to satisfy both Symbian OS rules/limitation and difference between mobile devices and desktop computers. Touching so much code will cost more development time, but what's worse is that making changes too much will drive you thinking "Should I start a new project rather than using only a little from this existing project?". So porting an existing application onto Symbian OS makes you keep concerning how much modification will you make, if too much consider starting a new one or just share the name or brand. As far as I know, HelixCommunity is the first big and famous open source project ported to Symbian OS, and it supports as early as v6.1. I checked out its source in 2004 (means their code nowadays might be different a lot), this is one example of making too much changes so you can tell few difference between porting like this or making a new project. Since S60 3rd Edition, there is Open C we can utilize, the job is easier. But still we can not ignore this consideration because of the nature of mobile phones. In one word, first step of porting an existing project is evaluate how much changes will be made approximately.

This document in Forum Nokia web site is very helpful, and generally speaking smaller projects are always easier to make decision if it could be ported than bigger ones. Smaller ones are always based on some existing framework, if the framework exists or can be ported on Symbian OS then the project itself will be fine in most cases. Huge project like Mozilla or Helix will give us an impression that it is likely impossible to port cause it has so many dependencies and self owned framework. However, we want eveidence to support our decision. Let's get back to Mozilla, after searching its website, there is an "C/C++ Portability Guide" which shows us an amazing likeness of Symbian OS programming limitations. From this article, we could learn Mozilla code will probably contain very little exceptions, RTTI and others that Symbian OS C++ does not support. Then with the help of Open C, we could have better confidence about porting without changing too much code.

Next we have to  make  deeper  research on the inner  structure  of Mozilla platform, cause you can not start portting any piece of code without knowing which level it lies in and what it does actually. Stay tuned, I will bring more as the work goes on Smile

 

RSSComments

You must login to post comments. Login
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditFurlTechnocratiMagnoliaTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxkcomeE78E20E7cE2008E20MayE2cE202008E2009E3a16E20PortingE20anE20openE20sourceE20projectE20isE20E71uiteE20differentE20fromE20developingE20aE20newE20applicationE20forE20mobileE20phonesE2eE20E44uringE20pastE20daysE20withoutE20OpenE20CE2cE20weE20haveE20toE20rewriteE20lotsE20ofE20codeE20toE20satisfyE20bothE20SymbianE20OSE20rulesE2flimitationE20andE20differenceE20betweenE20mobileE20devicesE20andE20desktopE20computersE2eE20TouchingE20soE20muchE20codeE20willE20costE20moreE20developmentE20timeE2cE20butE20whatE27sE20worseE20isE20thatE20makingE20changesE20tooE20muchE20willE20driveE20youE20thinkingE20E22ShouldE20IE20startE20aE20newE20projectE20ratherE20thanE20usingE20onlyE20aE20littleE20fromE2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fharryE2dlisE2dforumE2dnokiaE2dblogE2f2008E2f05E2f08E2fevaluateE2dtheE2dprojectE2dbeforeE2dportingX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxHarryE20E4ciE27sE20ForumE20NokiaE20BlogE20E7cE20E45valuateE20theE20projectE20beforeE20portingX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfnTypeZBlogContentQ qdcZtypeQUqfnTypeZBlogE45ntryQ qdcZtypeQUqfnTypeZCommunityContentQ qdcZtypeQUqfnTypeZE52esourceQ qdcZtypeQUqfnTypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxkcomeE78E20E7cE2008E20MayE2cE202008E2009E3a16E20PortingE20anE20openE20sourceE20projectE20isE20E71uiteE20differentE20fromE20developingE20aE20newE20applicationE20forE20mobileE20phonesE2eE20E44uringE20pastE20daysE20withoutE20OpenE20CE2cE20weE20haveE20toE20rewriteE20lotsE20ofE20codeE20toE20satisfyE20bothE20SymbianE20OSE20rulesE2flimitationE20andE20differenceE20betweenE20mobileE20devicesE20andE20desktopE20computersE2eE20TouchingE20soE20muchE20codeE20willE20costE20moreE20developmentE20timeE2cE20butE20whatE27sE20worseE20isE20thatE20makingE20changesE20tooE20muchE20willE20driveE20youE20thinkingE20E22ShouldE20IE20startE20aE20newE20projectE20ratherE20thanE20usingE20onlyE20aE20littleE20fromE2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fX qfnZtopicQUqfnTopicZcppQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtopicQUqfnTopicZopenE5fcQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtopicQUqfnTopicZseriesE5f60QRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtypeQUqfnTypeZBlogContentQ qfnZtypeQUqfnTypeZBlogE45ntryQ qfnZtypeQUqfnTypeZCommunityContentQ qfnZtypeQUqfnTypeZE52esourceQ qfnZtypeQUqfnTypeZWebpageQ qfnZupdatedQDx2008E2d05E2d08X qfnZuserE5ftagQSxopenE2dcE2fcE2bE2bX qfnZuserE5ftagQSxs60X qfnZuserE5ftagQSxsymbianE2dcE2bE2bX qmarsZdescriptionQSxkcomeE78E20E7cE2008E20MayE2cE202008E2009E3a16E20PortingE20anE20openE20sourceE20projectE20isE20E71uiteE20differentE20fromE20developingE20aE20newE20applicationE20forE20mobileE20phonesE2eE20E44uringE20pastE20daysE20withoutE20OpenE20CE2cE20weE20haveE20toE20rewriteE20lotsE20ofE20codeE20toE20satisfyE20bothE20SymbianE20OSE20rulesE2flimitationE20andE20differenceE20betweenE20mobileE20devicesE20andE20desktopE20computersE2eE20TouchingE20soE20muchE20codeE20willE20costE20moreE20developmentE20timeE2cE20butE20whatE27sE20worseE20isE20thatE20makingE20changesE20tooE20muchE20willE20driveE20youE20thinkingE20E22ShouldE20IE20startE20aE20newE20projectE20ratherE20thanE20usingE20onlyE20aE20littleE20fromE2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfnTypeZBlogContentQ qrdfZtypeQUqfnTypeZBlogE45ntryQ qrdfZtypeQUqfnTypeZCommunityContentQ qrdfZtypeQUqfnTypeZE52esourceQ qrdfZtypeQUqfnTypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ