Yet Another Mobile Platform • Pervasive, rich, attractive, mostly open • Enjoys wide industry support • Shipping 60,000 cell phones per day but still competing for market share • Used i
Trang 1Web Widgets
on Android
MobileMonday Developer Day, Dusseldorf, 23 February 2010
Trang 2Status Quo: Ecosystem View
• Android is not YAMP! (Yet Another Mobile Platform)
• Pervasive, rich, attractive, (mostly) open
• Enjoys wide industry support
• Shipping 60,000 cell phones per day (but still
competing for market share)
• Used increasingly in non-mobile verticals, such as
smart home
• Paradigm shift for mobile Java
Trang 3Status Quo: Developer View
• Android is YAMP in their portfolio!
• Requires new porting efforts, knowledge, testing,
devices, marketing
• Avalanche of versions (1.0-2.1) in just two years!
• OEMs & operators customize UI, features, APIs to
bring value and differentiate
• Different features and screen sizes to be addressed
Porting for and within Android ecosystem is a
full time job!
Trang 4Q: What happens in 2-5 years?
Trang 5Hopefully not!
Source: abcnews.go.com
Trang 6Can web apps help?
Trang 7Mobile Web App Ecosystem
Browser
Web Server
Web Server
Web Server
Trang 8Traditional Approach to Mobile Web Apps
Advantages:
• Easy, easy, easy!
• Common web technologies, portable, variety of tools
• Lots of web developers
• Apps in the cloud easy to update
Trang 9How about web widgets?
Trang 10Web Widgets (for Mobile)
Define web widget:
• Application, written using common web technologies (HTML, JS,
SVG, Flash, etc.)
• Deployed as a single package file into the end user's browser
• Processed and interpreted as a set of locally-hosted web pages
• Obeying lifecycle, security and networking requirements
• Lifecycle feels like a native app
• Originally developed by Opera and called Opera Widgets:
http://widgets.opera.com
• Evolved further into W3C Widget specification:
http://www.w3.org/TR/widgets/
Trang 11Web Widget Anatomy
<?x ml
ver sio n="
.xml
• Packaging format: single zip file, wgt extension
• Mime type: application/widget
• Configuration (manifest) file: config.xml
• Entry point: index.html or custom file
• Content: HTML, JS, any resource, any mime type recognized by the
browser (Flash, SVG, video, etc.)
• Security and networking enforcement
• Signing
Trang 12Web Widget Ecosystem
Web Server
Browser
Web Servic e
xyz Server
Widget
Trang 13Web Widgets (for Mobile)
Advantages:
• Easy, easy, easy!
• Common web technologies, portable, several SDKs
• Lots of web developers
• Works in offline mode
• Lifecycle feels like a native app
Disadvantages:
• No integration with phone functions, like location, messaging, PIM, address book, etc
Trang 14What about JIL/BONDI/WAC?
Trang 15Beyond W3C Widgets
• BONDI “uses web technologies and builds upon them to provide
new APIs to the key mobile phone functionality like Contacts,
Calendar, Messaging & Location”
• JIL will “enable different widgets and applications to run
seamlessly on different handset platforms and operating systems across different mobile operators, while safeguarding customer security, data privacy and billing systems”
• Wholesale Applications Community (WAC) “aims to unite a
fragmented marketplace by involving players from all related
industries to create a community based on openness and
transparency to the benefit of all”
Translation please: cross-platform app model, based on W3C
Widgets, extended by built-in JavaScript APIs for device access
Trang 16Use Cases
• Social Address Book
– Contact list from the native address book
– Existing Facebook friends automatically detected
– Direct access to the friend’s wall
– Messaging editor with merged SMS and Facebook history
– Buttons to initiate a voice/video call
• Sticky GeoNotes
– Paper notes are so lame
– Leave a text/voice/video message for your family and colleagues
– Based on your current location
Trang 17Enriched Web Widget Ecosystem
Messagin g
Browser
Web Servic e
xyz Server
Widget
Trang 18Why Should You Care?
• Too many BIG players pushing for it!
• JIL devices shipped in 2009
• BONDI devices shipping in 2010
• Cross-platform apps easier to develop!
But beware of these pitfalls:
• Browser-specifc workarounds
• Screen sizes and orientation
• Large amounts of business logic and networking code in JS may not be too much fun
Trang 19Beyond JIL/BONDI/WAC
(Problem solved! What else can we ask for?)
Trang 20Beyond JIL/BONDI/WAC
Wouldn’t you like to:
… expose your own services to widgets?
… write business logic in Java rather than JavaScript?
… write networking code in Java rather than JavaScript?
… leave the widget code to UI designers and developers?
You’d be out of luck nowadays: current implementations
don’t provide means to extend the device APIs
Trang 21Mobile OSGi
But there are efforts in that direction based on mobile OSGi:
• OSGi used on mobile, embedded, smart home, enterprise platforms, and spreading
• Mobile OSGi (JSR 232) deployed on a wide variety of mobile platforms (Android, Symbian, WM, BREW)
• Enables dynamic code deployment and update, dynamic service wiring, code reuse, versioning and more:
http://www.osgi.org/About/WhyOSGi
• OSGi complements, not replaces Android platform
http://www.osgi.org/About/Technology
Trang 22Mobile OSGi + Web Widgets
Messagin g
Web Server App
Service
Mobile OSGi
Browser
Web Servic e
xyz Server
Widget
Trang 23Remote OSGi ServicesMobile OSGi and Web Widgets? So, how does it work:
public interface MyService {
public void doSomething(String param);
}
MyService instance = new MyServiceImpl();
Properties props = new Properties();
props.put("org.osgi.remote.publish", Boolean.TRUE);
bundleContext.registerService(MyService.class.getName(),
instance, props);
Trang 24Using Services from Widgets
and get a proxy service object
var so = RSR.bind(“MyService”);
so.doSomething(“param”);
Easy enough!
Trang 25Web Widgets increasingly seen as a
potential
Android-based devices supporting Web
Widgets are shipping now
Web Widgets are empowered with rich device
allow dynamic APIs for Widgets
Trang 26Additional resources:
www.prosyst.com dz.prosyst.com mobileosgi.blogspot.com
s.djukic@prosyst.com