SIDEBAR
»
S
I
D
E
B
A
R
«
What can a Mobile Web Application do?
Sep 16th, 2010 by Eugene Ostroukhov

Paul’s Eclipse Day presentation made it obvious that there are some misconseptions about the whole “mobile web application” concept.

The core issue is that most “web applications” are essentially two different applications that are created using different technologies and interact between themselves using HTTP protocol. There is a remote application (e.g. an Apache server serving static pages or Tomcat with JSP pages or any other server running PHP, ASP and other scripts) and a local application written in HTML, JS and CSS. For years all “web application” developers’ attention was drawn to a server but with the advent of AJAX more and more code is moving to a browser.

“Mobile web applications” consist of only the client-side part so they are more “mobile applications” then “web applications”. The goal is to take the best of the both worlds – to combine flexibility and maturity of the client-side web technologies with pervasiveness and high availability of the mobile application. From the user point of view “mobile web application” is just a regular application that can be installed from application store (i.e. OVI store or Apple iTunes store) and ran from the regular application launcher UI. Unlike regular “web applications” these “mobile applications” can be used even when there is no network connection available.

Another trait that “mobile web application” share with other mobile applications is the ability to access native services like accelerometer, camera or address book. There is an ongoing effort to unify these APIs across all the platforms but at this moment each platform has its own API that is not compatible with others. This results in another common “mobile” problem of forcing the developers to rely on emulators to be able to test and debug application before deploying it on actual hardware.

Here are some answers to common questions on Mobile Web Runtimes and Tools for Mobile Web:

Can I deploy my PHP(or JSP or ASP.NET) application to mobile phone?

No. This is a server-side application and needs to be ran on web server. You can only deploy client-side code.

Can I publish to app store, like Ovi, Android Marketplace and others?

You can publish it on the Ovi Store and other stores.

Do I need to sign an application before distributing them?

This is really platform-dependent. You don’t need to sign the application for Symbian WRT but you may need to do it for other platforms.

Why TMW is proposed under Seqoyah and not the WebTools?

TMW does not intent to reimplement WebTools (including JSDT). Think of how Tools for Mobile Java rely on JDT for the core Java support – same goes for the relationship between TMW and WTP/JSDT. TMW is really focused on “mobile” parts.

Can I create an application for different platforms?

Yes, in most cases. It really depends on how much the application relies on mobile-specific APIs. There are some frameworks (i.e. PhoneGap) that allow consistent API across several mobile platforms.

What about standards support in mobile web browsers and mobile web runtimes?

Even though most mobile web browsers are based on a same WebKit engine they differ vastly in their capabilities. But still, all the platforms move in the same direction by implementing common standards like HTML5, CSS3 and other W3C specification. You can find a great comparison here.

Tools for Mobile Web
Jul 27th, 2010 by Eugene Ostroukhov

We (the Symbian Foundation) proposed a new project – Tools for Mobile Web. We offer our code as a basis for this new Eclipse project and now that we released version 1.0 of our product we would like to focus on this contribution. I would like to better explain what we would like to see out of this project. We did several presentations already so there are some common questions we had to answer.

What is “mobile web”?

In the scope of this project “mobile web” means “mobile web runtimes” that are present on most modern popular smartphones. Developers can use web technologies (HTML, CSS and JavaScript) to create mobile applications. These applications are quite different from the regular web pages in that they are not served from a web site but are installed on the device not unlike regular “native” mobile applications. They can be distributed through the OVI store or other platform-dependent application stores. These application have a broader access to device capabilities – they can access GPS and accelerometer sensor readings, use device-specific UI (i.e. software buttons on Symbian phones), read address book or be notified when SMS or MMS message was received.

Simulator can run web runtime applications and provides basic controls to trigger events

Device simulator

But there is Web Tools Project already!

TWM does not mean to reimplement WTP functionality. We build on top of the WTP reusing all the powerful tools in provides (like JSDT). We focus on adding functionality that is specific to mobile development – like deployment to phone or mobile API simulation.

Will you add support for JQuery UI (or <your other favorite JS library>)?

Our focus is on adding mobile development-specific functionality. We do not plan to implement functionality that users consider “missing” from the WTP. On the other hand we hope to cooperate with WTP and possibly contribute to such areas. Once the WTP gets support for the library then TMW will “inherit” it.

We are watching closely JavaScript frameworks that are more specific to mobile application development. We already added support for PhoneGap framework and we may add support for other frameworks as they mature and gain popularity.

Is there any timeframe on when the tools will be available?

You can already download Tools that support Symbian WRT development. They are feature complete and EPL licensed so we encourage you to try them whether you are a JavaScript developer looking to expand to mobile platforms or an Eclipse enthusiast interested in IDEs for mobile. Currently we are focused on refactoring our code to add support for any number of the runtimes and to prepare it for migration to eclipse.org. From that point we will continue development of both Symbian-specific and runtime-agnostic parts.

What about support for other platforms?

We have implemented support for PhoneGap APIs but we only package applications for Symbian platform. Aplix already stepped up to contribute support for BONDI runtime. We expect other interested parties to contribute support for other platforms.

What can the IDE do?

It is a fully integrated IDE that supports application development cycle from creating a new application project to deployment on the device or packaging for distribution.

IDE main screen

Main screen

Our editing experience is based on WTP were we extended JSDT with the support for mobile libraries and added CSS validator and application manifest validator.

Another important part is the simulator and debugger that are built into our IDE. It can be used as a live preview of your application or as a runtime for debugging. Our primary goal was to reduce overhead of the mobile application development so we chose to use desktop browser (Chrome) to ensure maximum debugger performance. We understand that this approach is not completely accurate but it had proven to be “good enough” for debugging of the vast majority of the tasks. We plan on adding on-device debugging in one of the next releases.

How do I start using this IDE?

Follow this link for up-to-date information on using our IDE. Do not hesitate to contact us on our forums or submit bugs to bugtracker.

How is this IDE related to other solutions for WRT development (i.e. Nokia plug-in for Aptana, Dreamweaver)?

Our code owes to a large degree to Nokia code contribution. Our initial goal was to achieve feature-parity with Aptana-based solution. We added several important features including PhoneGap support and acceleration events simulation that were not available in the original code.

Why open-source?
Jun 4th, 2010 by Eugene Ostroukhov

The first questions developers ask about out new Mobile Web IDE is “why do we need another solution?” This question is really justified provided there are already several established alternatives in all shapes and sizes.

Our answer is that we wanted to have a completely open-sourced tools – and that leads to another question. “Why should we (as users) care?” Now that open-source is not that much of a buzz-word it used to be most users don’t really care if they can see the source code – they are more concerned with usability and ROI. This is what we hope to achieve with our project:

  1. Single all-in-one download for every platform. All you need to install our IDE is to download ZIP file for your platform and to unzip it anywhere on your filesystem.
  2. Use latest-and-greatest upstream projects available from the community. We use JSDT for JavaScript editing, Chrome Java SDK for debugging, W3C CSS validator for validation.
  3. Use our codebase for an effort to provide a reference IDE for mobile web development. We want to contribute our project to serve as a basis for Eclipse project that will foster development of similar IDEs for different runtimes. Currently all major mobile platforms provide a way to create and deploy applications using web technologies. Until this point there was a separate IDE for each platform and we hope our project will encourage cooperation and ultimately result in better tools and consistent user experience.

We have a lot of plans that should justify having “yet another” Mobile Web IDE even more:

  1. Support other mobile APIs. Currently we are working on out-of-box PhoneGap support but we will also consider other APIs and runtimes.
  2. Improve preview and simulation. We are working on support for more sensors and mobile APIs.
  3. Streamline UI.

So we encourage you to give the IDE a try. You can post your comments and suggestions to our forum. We would be grateful for any bug reports posted to our bugtracker.

Open Web Development Tools for Mobile
Mar 18th, 2010 by Eugene Ostroukhov

Here at Symbian Foundation we believe that one of the best way to attract users to a mobile platform is to have more/better applications. The best way to have more/better applications is to attract more developers. And one of the best ways to attract more developers is to provide better tools. And one of the best ways to provide better IDE is to build on top of Eclipse.

And that is exactly what we are aiming to do.

We took (in no particular order):

  1. Contributions from our member company (Nokia)
  2. Eclipse Platform from Eclipse Foundation
  3. JavaScript Developer Tools from Eclipse Foundation
  4. JS debugger from Google Chrome Developer Tools

and glued them together to produce a new IDE that will make web development experience for Symbian platform much more pleasant.

This is what you can do with our IDE:

  1. Create a new WRT (Web Runtime) application project from one of the predefined templates or using existing packaged WRT application (WGZ file) as a template.
  2. Edit HTML, JS and other files. This featureset is coming from WTP and JSDT in particular. We added validation for project metadata files and CSS files.
  3. Debug the application. Chrome browser is used as a runtime and Chrome Developer Tools are used for debugger UI.
  4. Package your application for distribution or deploy it directly to a device.

You can find the builds for different platforms on our downloads site. We plan to release the first version on March 31st.

Everybody is invited to:

  • Visit the project page to obtain the sources. Use “Eclipse for JEE Developers” bundle with installed XULRunner as a target platform. Target platform can also be downloaded here (single downloads for all platforms).
  • Try the IDE (there is a quickstart document)
  • Comment on our forums or mailing list.
  • Submit bugs to our bugtracker (like if there are any…).
  • Participate in the project.

At this point this project is very much focused on Symbian platform and WRT in particular. But we are planning to expand the scope – both to encompass increasing scope of web support in Symbian platform (cWRT is one example) and to supporting more libraries and runtimes that are not platform-specific.

I hope to share some development experience in this blog so feel free to ask any questions on implementation.

I would really like to thank developers from Eclipse.org project and Google Chrome Developer Tools for making available all the great frameworks and tools.

»  Substance:WordPress   »  Style:Ahren Ahimsa