"Eclipse Application Development" at GNUnify 07


Published on

The "Eclipse Application Development" presentation at GNUnify '07.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • "Eclipse Application Development" at GNUnify 07

    1. 1. Eclipse Rich Client Applications Develop Desktop applications on the Eclipse Rich Client Platform Ketan Padegaonkar Sriram Narayanan
    2. 2. What are we going to cover ? <ul><li>Eclipse is more than just a Java IDE </li></ul><ul><li>What’s common between desktop applications </li></ul><ul><li>How the Eclipse RCP helps </li></ul><ul><li>How the plug-in architecture works </li></ul><ul><li>Getting started </li></ul><ul><li>Let’s develop an application </li></ul><ul><li>Becoming proficient </li></ul><ul><li>Eclipse development activity in Pune </li></ul>
    3. 3. What makes a smart app ? <ul><li>Ideally, run on multiple platforms </li></ul><ul><li>Tight integration with OS (DnD, System Tray, Clipboard) </li></ul><ul><li>Ease of deployment, management </li></ul><ul><li>Responsive UI </li></ul><ul><li>Can be extended easily </li></ul>
    4. 4. What Eclipse provides <ul><li>Components from an eco-system </li></ul><ul><li>Native user experience </li></ul><ul><li>Portability </li></ul><ul><li>Install and Update </li></ul><ul><li>Development tooling support </li></ul><ul><li>Component libraries </li></ul>
    5. 5. Developer focus <ul><li>Focus on delivering applications </li></ul><ul><li>Cannot give much time to designing UI and other basic infrastructure for each application </li></ul>
    6. 6. What is RCP? <ul><li>A platform to build client apps with rich functionality </li></ul><ul><li>Open-source (EPL) </li></ul><ul><li>History: </li></ul><ul><ul><li>Eclipse 2.1 (2003) Eclipse is an IDE. Hackers in the community start building “non-ide” apps based on Eclipse technology </li></ul></ul><ul><ul><li>Eclipse 3.0 (2004) </li></ul></ul><ul><ul><ul><li>Refactored out the “IDE” out of the workbench </li></ul></ul></ul><ul><ul><ul><li>An empty workbench </li></ul></ul></ul><ul><ul><ul><li>Integration with OSGi </li></ul></ul></ul><ul><ul><ul><li>Cleaning up dependencies (Help, Updates, etc) </li></ul></ul></ul><ul><ul><li>Eclipse 3.1 (2005): improved tooling, richer API </li></ul></ul>
    7. 7. More than a Java IDE <ul><li>Strengths include the plug-in architecture </li></ul><ul><li>A growing eco system that includes reporting, database, web app and debugging tools </li></ul><ul><li>Everything is a plug-in – including Java language support ! </li></ul>
    8. 8. Some smart apps
    9. 9. Maestro – The Mars Rover
    10. 10. IBM Workplace Client
    11. 11. Bioclipse
    12. 12. Eclipse Trader
    13. 13. Getting Started 10 minutes
    14. 14. The Learning Curve <ul><li>Java and brief Eclipse architecture </li></ul><ul><li>Online articles and samples available </li></ul><ul><li>Online help groups available </li></ul><ul><li>Read, Read, Read </li></ul><ul><li>Follow the samples and practice on your own </li></ul><ul><li>Learn to ask questions (there is no such thing as a dumb question) </li></ul>
    15. 15. RCP in action <ul><li>OSGi and runtime </li></ul><ul><li>UI </li></ul><ul><ul><li>SWT, JFace, Workbench, Text, Forms, GEF </li></ul></ul><ul><li>User assistance </li></ul><ul><ul><li>Help, Intro, Cheat Sheets </li></ul></ul><ul><li>Deployment </li></ul><ul><ul><li>JNLP, Updates </li></ul></ul><ul><li>Modeling and visualization </li></ul><ul><ul><li>EMF and GEF </li></ul></ul><ul><li>Reporting </li></ul><ul><ul><li>BIRT </li></ul></ul><ul><li>Tooling (PDE, VE, WTP) </li></ul>
    16. 16. How plugins work
    17. 17. How plugins work
    18. 18. OSGi and Runtime <ul><li>OSGi - The framework behind the plug-in architecture </li></ul><ul><li>Runtime </li></ul><ul><ul><li>CONTRIBUTION RULE Everything is a contribution. </li></ul></ul><ul><ul><li>LAZY LOADING RULE Contributions are only loaded when they are needed. </li></ul></ul>
    19. 19. Eclipse from 1000 feet
    20. 20. Workshop <ul><li>Develop an RCP application to process insurance proposals. </li></ul><ul><li>Add functionality incrementally </li></ul><ul><li>Deploy functionality using updates </li></ul><ul><li>Includes UI and POJOs </li></ul>
    21. 21. Code development in progress 
    22. 22. What have we just covered ? <ul><li>Deploy an RCP application </li></ul><ul><li>GUI on top of domain objects </li></ul><ul><li>Deploy plug-ins manually </li></ul><ul><li>Creating update sites </li></ul><ul><li>Deploy plug-ins via update manager </li></ul><ul><li>Mostly no recompilation of code </li></ul><ul><li>Extension points </li></ul><ul><li>Branding your RCP application </li></ul>
    23. 23. Some tutorials at Eclipse <ul><li>Drag and Drop </li></ul><ul><li>Develop plug-ins </li></ul><ul><li>Develop GUI and GUI components </li></ul><ul><li>Manage updates </li></ul><ul><li>Profile and debug your applications </li></ul><ul><li>Workbench internals </li></ul><ul><li>OpenGL and Eclipse </li></ul>
    24. 24. Managing, deploying <ul><li>New features, bug fixes </li></ul><ul><li>Customer specific features </li></ul><ul><li>Customers can roll back changes if they want to </li></ul>
    25. 25. Eclipse development workflow
    26. 26. Eclipse from 10000 feet
    27. 27. Inside the plug-in
    28. 28. All the plug-ins put together
    29. 29. The Eco system <ul><li>Everything is a plug-in </li></ul><ul><ul><li>Java, C++, Ruby, PHP </li></ul></ul><ul><li>BIRT </li></ul><ul><li>DTP </li></ul><ul><li>J2EE support </li></ul><ul><li>TPTP (expand the acronym) </li></ul><ul><li>AspectJ </li></ul>
    30. 31. Database Tooling screenshot
    31. 32. TPTP screenshot
    32. 34. Impact on your career <ul><li>Changes your perspective on developing applications </li></ul><ul><li>Learn great development practices </li></ul><ul><li>Develop faster </li></ul><ul><li>Release maintainable and extendable apps </li></ul><ul><li>Component based thinking </li></ul>
    33. 35. Eclipse in Pune <ul><li>Pune Eclipse Platform Developers’ Group </li></ul><ul><li>Members are people like you and I </li></ul><ul><li>Ask questions on developing apps </li></ul><ul><ul><li>Most responses will be links to articles </li></ul></ul><ul><li>Not a forum for help on Java development </li></ul><ul><li>Moderated – no spam </li></ul><ul><li>Plans for meetings once a month </li></ul><ul><ul><li>Show your Eclipse applications and receive feedback </li></ul></ul><ul><li>http://groups.google.com/group/eclipse-pune-dev/ </li></ul>
    34. 36. Contact info <ul><li>www.eclipse.org </li></ul><ul><li>www.eclipse.org/articles </li></ul><ul><li>Pune Eclipse Platform Developers’ Group </li></ul><ul><li>http://groups.google.com/group/eclipse-pune-dev/ </li></ul>