Online Server Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 29 November 2007

Google Gadgets going cross-platform

Posted on 09:00 by Unknown
By Mike Pinkerton, Software Engineer

For about two years now, people have been writing gadgets for Google Desktop on
Windows and for iGoogle on the web. Today, with the announcement of Google
Gadgets for Mac OS X, Google Desktop users on the Mac can now run the same
Windows and web-based gadgets in Apple's Dashboard with zero (or very few)
changes. Check it out for yourself.

Google Gadgets for the Mac uses WebKit's JavaScript engine inside Dashboard, so
the majority of gadgets just work if they're written properly. The rest can be
fixed by following a few guidelines:
  • Use JavaScript, not JScript
    • WebKit is case-sensitive, JScript is not, which can lead to problems if you assume can you do things like interchange SetTimeOut() and setTimeout().
    • Avoid JScript-only features like collections and ActiveX.
    • Avoid IE-specific DOM extensions, just as if you were writing a multi-browser web application.
  • Avoid Windows-specific APIs
    • You shouldn't assume ActiveX or certain DLLs are available. Neither WebKit nor Mac OS X supports ActiveX, so these gadgets must be rewritten.
    • Avoid Windows-only APIs such as Google Talk. These APIs are not (yet) available on Mac OS X.
  • Understand how Dashboard is different
    • The Dashboard environment is very different from a web page or the Desktop sidebar on Windows in that it comes and goes as the user activates it. Don't rely on your gadget always being visible. Your gadget won't run or update when Dashboard isn't in the foreground.
    • Don't rely on access to the file system. The security model for Dashboard doesn't allow arbitrary file access to the hard disk, although your gadget does have access to files in its own archive. Things like file pickers won't work. Note that while restricted file system access is a departure from how gadgets work on Windows, it's consistent with Dashboard's security model and the behavior of other widgets developed for Mac OS X.

For more details, see Writing a Cross-Platform Gadget, part of the Desktop Gadget API documentation.

If you're interested in developing your own gadget, visit the Gadgets API homepage. If you're already a gadget developer, download the beta today to test your gadget and ensure that it works correctly.
Email ThisBlogThis!Share to XShare to Facebook
Posted in gadgets, mac | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Google Summer of Code & Danish Linux Forum
    Posted by Leslie Hawthorn, Open Source Team The Danish Linux Conference is celebrating its tenth anniversary this year, and the date is com...
  • Weekly Google Code Roundup for July 2-6th
    By Dion Almaer, Google Developer Programs Having the July 4th holiday smack in the middle of the week creates a strange week when it is hard...
  • Weekly Google Code Roundup for June 11-15th
    By Dion Almaer, Google Developer Programs In API and developer-product news... I will start by going meta. Linking to a roundup from a round...
  • Weekly Google Code Roundup for July 16-20th
    By Dion Almaer, Google Developer Programs This week we have the pleasure of having MashupCamp hosted walking distance from the Googleplex. I...
  • Weekly Google Code Roundup for July 23-27th
    By Dion Almaer, Google Developer Programs It has been a busy time for conferences. From MashupCamp last week, to OSCON and The Ajax Experien...
  • Google Gadget Ventures
    By Tom Stocky, Google Developer Programs Good news for Google Gadget developers. We've just launched Google Gadget Ventures , a new pil...
  • Weekly Google Code Roundup for July 8-12th
    By Dion Almaer, Google Developer Programs In API and developer-product news... Othman Laraki talked about the Gears roadmap and development ...
  • Google Developer Day sessions move to San Jose Convention Center
    Posted by Andrew Bowers, Google Developer Programs Thanks to the incredible interest in Google Developer Day, we've moved the session po...
  • Google Sitemaps Launches
    Today, Google launched Google Sitemaps , a new service designed for webmasters that enables them to automatically submit their web pages to ...
  • Google Developer Podcast Episode Four: Mark Limber on Google SketchUp
    By Dion Almaer, Google Developer Programs Using iTunes? We have published the fourth episode of the Google Developer Podcast, which feature...

Categories

  • 20% project
  • 3d
  • accessibility
  • advogato
  • ajax
  • ajax search
  • ajax search books news apis
  • amarok
  • android
  • apache
  • apis
  • apis. charts
  • apple
  • atom publishing protocol
  • axsjax
  • barcodes
  • blogger
  • building ajax apps
  • c++
  • caja
  • calendar
  • camino
  • chronoscope
  • cifs
  • cms
  • collada
  • community
  • conferences
  • cricket
  • cryptography
  • danish linux forum
  • developer
  • django
  • documentation
  • dojo
  • dot net
  • dreamweaver
  • drupal
  • eclipse
  • eclipsecon
  • education
  • email
  • events
  • feeds
  • firevox
  • fosdem
  • freebsd
  • freenet
  • gadgets
  • gcc
  • gdata
  • gdd07
  • geoserver
  • getpaid
  • ghop
  • gnome
  • gnome women's summer outreach program
  • Google
  • google apps for your domain
  • google chart api
  • google checkout
  • google code
  • google code project hosting
  • google code search
  • google data apis
  • google developer day
  • google earth
  • google gadgets
  • google gears
  • google grants
  • google mashup editor
  • google summer of code
  • google web toolkit
  • green linux
  • gsoc
  • gtags
  • guice
  • GWSOP
  • gwt
  • haproxy
  • hibernate
  • howto
  • hpux
  • html
  • html5
  • igoogle
  • image search
  • Imara
  • interviews
  • java
  • javascript
  • joomla
  • joomladayus2007
  • joomladayusa
  • karaoke
  • KDE
  • KDE 4.0
  • kernel
  • kernel summit
  • kml
  • linux
  • linux foundation
  • linux summit
  • linux virtual server
  • linuxconf eu
  • LoCo
  • london
  • mac
  • MacFuse
  • maps
  • meetup
  • MIT CSAIL
  • mobile
  • mylar
  • MySQL
  • mythtv
  • named
  • netbsd
  • nss
  • objective-c
  • OCaml
  • ocr
  • ODF
  • oha
  • OOXML
  • open source
  • openajax alliance
  • opensocial
  • openssl
  • oreilly
  • oscon
  • oscon2007
  • oss devs
  • ossjam
  • osx
  • pactester
  • phone
  • picasa
  • picasa web
  • plone
  • plone sprint
  • podcast
  • portugal
  • programming
  • py3k
  • python
  • python sprint
  • reader
  • research
  • samba
  • scalability
  • screencast
  • security
  • shindig
  • silverstripe
  • sitemaps
  • sixapart
  • sketchup
  • soc
  • solaris
  • spa2007
  • speakers
  • standards
  • student programs
  • subversion
  • summer of code
  • syndication
  • testing
  • themes
  • topp
  • ubucon
  • ubuntu
  • unit test
  • unix
  • video
  • Vim
  • weekly roundup
  • windows
  • windows programming
  • Winter of Code
  • youtube
  • zurich
  • ZXing

Blog Archive

  • ►  2008 (7)
    • ►  January (7)
  • ▼  2007 (159)
    • ►  December (8)
    • ▼  November (13)
      • Google Data Ideathon
      • Google Gadgets going cross-platform
      • Chronoscope: 2 + 2 = 5 with GWT and Android
      • It's here: the Google Highly Open Participation Co...
      • ZXing 1d/2d Barcode decoding source code released
      • Weekly Google Code Roundup: The Androids are openl...
      • Each and every email
      • Introducing AxsJAX -- Access-Enabling AJAX
      • Android SDK, MSM7K kernel patches and blog now ava...
      • nsscache: open source named services system release
      • Google Developer Podcast Episode Eleven: OpenSocia...
      • Can I please have s'mores
      • My How We've Grown
    • ►  October (16)
    • ►  September (11)
    • ►  August (16)
    • ►  July (11)
    • ►  June (14)
    • ►  May (13)
    • ►  April (12)
    • ►  March (19)
    • ►  February (14)
    • ►  January (12)
  • ►  2006 (98)
    • ►  December (10)
    • ►  November (14)
    • ►  October (13)
    • ►  September (11)
    • ►  August (14)
    • ►  July (9)
    • ►  June (5)
    • ►  May (5)
    • ►  April (6)
    • ►  March (4)
    • ►  February (2)
    • ►  January (5)
  • ►  2005 (40)
    • ►  December (4)
    • ►  November (1)
    • ►  October (3)
    • ►  September (2)
    • ►  August (5)
    • ►  July (3)
    • ►  June (11)
    • ►  May (2)
    • ►  April (4)
    • ►  March (5)
Powered by Blogger.

About Me

Unknown
View my complete profile