Embedded Android Workshop at Embedded World Conference 2013
EclipseCon Europe 2012 Tabris Workshop
1. Tabris Workshop
Jordi Böhme López Johannes Eickhold
Tabris iOS Tabris Android
Copyright EclipseSource Inc, all rights reserved
2. Goals of the Workshop
● Get your HandsOn the code!
● Learn how to...
● Setup your IDE for Tabris
● Write a Tabris app
● Launch and test your app
http://developer.eclipsesource.com/tabris/
Copyright EclipseSource Inc, all rights reserved
3. HandsOn Tasks
1. Hello world (Shell & Button)
2. Dialog (JFace)
3. List (JFace TreeViewer)
4. Geolocation
5. Client Canvas
Copyright EclipseSource Inc, all rights reserved
4. Prerequisites
● Who has an …
● iOS device?
● Android device?
● Who has an already prepared …
● Mac + Xcode?
● Eclipse + Android Development Tools (ADT)?
Copyright EclipseSource Inc, all rights reserved
5. Technology
RAP & Tabris (Open Source)
+ Tabris Native Clients (Commercial)
● Open Source
● RAP Server
● Browser Client (HTML 5 + JavaScript)
● Tabris Server Bundles
● Commercial (developer preview free of charge)
● Native Clients (iOS, Android)
http://developer.eclipsesource.com/tabris/downloads/
Copyright EclipseSource Inc, all rights reserved
6. Architecture
Copyright EclipseSource Inc, all rights reserved
7. Content of USB Stick
● EclipseSDK/
● Linux, Mac and Windows versions
● Tabris-0.8.0-SDK.zip
● workshop-projects.zip
● tabris-0.8_I386_2012-10-19_12-14-19.apk
● slides_tabris-workshop.pdf
● android/
● ADT
● SDK
Copyright EclipseSource Inc, all rights reserved
8. HandsOn IDE Setup
1. Extract and start Eclipse
<USB stick>/EclipseSDK/<your system>
2. Import “Existing Projects into Workspace”
<USB stick>/workshop-projects.zip
3. Set “Target Platform”:
/tabris.target/tabris.target
Copyright EclipseSource Inc, all rights reserved
9. HandsOn First Project
Open the project:
com.eclipsesource.tabris.workshop
● Dependencies (MANIFEST.MF)
● Activator
● Configuration
● EntryPoint → createUI()
● SWT Event Loop vs. RWT-JEE compatibility
Copyright EclipseSource Inc, all rights reserved
10. HandsOn Task 1
Widget: Shell & Button
Task: Let a button say
“Hello World”.
c.e.t.workshop.task1
Entry Point: /helloworld
Copyright EclipseSource Inc, all rights reserved
11. RAP Protocol and Clients
● RAP browser client: HTML 5 + JavaScript
● Tabris native clients:
● Generic “Developer” Client
● App-Specific-Client
Copyright EclipseSource Inc, all rights reserved
12. HandsOn Task 1: Launch it
● Launch Configuration:
/tabris.target/server.launch
→ starts the server on port 9090
● EntryPoint for the Tabris application on
http://localhost:9090/helloworld
● Access it with your browser
(HTML 5 + JavaScript client)
Copyright EclipseSource Inc, all rights reserved
13. Client Deployment
iOS:
● Pre-built generic workshop client on demand
● App-specific client template
(part of Tabris SDK)
Android:
● Direct .apk download (e.g. web or mail)
● Google Play
● As part of the Tabris SDK (USB stick, website)
Copyright EclipseSource Inc, all rights reserved
14. HandsOn Task 1: Native client
● EntryPoint for the Tabris application on
http://tabrismac.local:9090/helloworld
● Access it with native clients
Copyright EclipseSource Inc, all rights reserved
15. Entrypoint Discovery
● Simplifies developer's life
● Lists all available entry points on server
http://tabrismac.local:9090/index.json
● We provide two entry points for each HandsOn
task in this workshop:
http://tabrismac.local:9090/helloworld
http://tabrismac.local:9090/helloworld-solution
Copyright EclipseSource Inc, all rights reserved
16. HandsOn Task 2
Widget: JFace Dialog
Task: Click a button to
open a dialog.
c.e.t.workshop.task2
Entry Point: /dialog
Copyright EclipseSource Inc, all rights reserved
17. HandsOn Task 3
Widget: JFace TreeViewer
Task: Connect a Tree
to a simple data model.
c.e.t.workshop.task3
Entry Point: /tree
Copyright EclipseSource Inc, all rights reserved
18. Differences between platforms
● Target platforms
iOS vs. Android vs. Browser
● Tablet vs. Phone
Copyright EclipseSource Inc, all rights reserved
19. Mobile UX: Do's and Dont's
● No Workbench on mobile clients
● Fast start-up
● Invest time in your design!
● Don' try to unify
desktop & mobile
● Lazy loading
● Do work asynchronously
Copyright EclipseSource Inc, all rights reserved
20. HandsOn Task 4
Widget: Geolocation
Task: Display the current
location of your device.
c.e.t.workshop.task4
Entry Point: /geo
Copyright EclipseSource Inc, all rights reserved
21. HandsOn Task 5
Widget: ClientCanvas
Task: Touch and draw
in your app.
c.e.t.workshop.task5
Entry Point: /draw
Copyright EclipseSource Inc, all rights reserved
22. State of Tabris, Roadmap
Q: When will 1.0 be released?
A: Q1 2013
Q: Can I deploy via the App Store / Play Store?
A: Yes, as long you comply with the App Store rules.
The decision is up to the Store provider.
Q: What about pricing?
A: Final pricing is not yet available.
It will be in the same range as other
commercial offerings in the space.
Copyright EclipseSource Inc, all rights reserved
23. Example Resources
● Available widgets
http://developer.eclipsesource.com/tabris/docs/ui-controls/
● Code examples
→ GitHub
Copyright EclipseSource Inc, all rights reserved
24. Community & Support
Demos: https://github.com/eclipsesource/tabris-demos/
Git: https://github.com/eclipsesource/tabris
Issues/Bugs:
https://github.com/eclipsesource/tabris/issues
Questions & Answers:
http://stackoverflow.com/search?q=tabris
Professional Support:
http://developer.eclipsesource.com/tabris/docs/services/
Copyright EclipseSource Inc, all rights reserved
25. Thank you
For any questions please contact
tabris@eclipsesource.com
Copyright EclipseSource Inc, all rights reserved