This page lists various advantages of using Vaandroid vs Android.

todo: move to ((Why Use Vaandroid))



((Navigation Fragments)) - something in the address that will bring you back to where you were. Refresh to same activity stack. Write in any language Developers know how to use it End users know how to user it No installation needed Run from any browser Write in various languages Run code on client or browser Less power usage on client Less bandwidth on client Resuse existsing android applications Resuse exsiting Vaadin, GWT, Java, Java based, and Javascript applications Security Run At Server Easy to update code. Easy to recompile code. Continuous integration and deployment Using Karaf, if it runs on the dev server and on the production server in the same manner. Can access the server for administration and provisioning via SSH and Web Console. Server-based undo. ((Advanced Widgets))


The only disadvantage is that it must run on the server, and this limitation can be lifted with a small amount of effort in writing offline html apps. Fault tolerance can further be added by using a federation of servers based on multiple LANs.

Vaandroid is great for:

  • Web based Resources
  • Connection Pooling
  • Caching

Vaadin Benefits:

  • Session State and Management
  • RPC between server and client
  • Client Push
  • Nice Widgets
  • Good Documentaion

Android Benefits:

Android's declarative UI is much more expressive, consistent, and predictable compared to Vaadin’s.

Android apps are built for various devices

Androids paradigm of activities and services is the best way to organize an application.

  • Develop for web and android in parallel.
  • Faster to compile and run than emulating.

Build in support for internationalization (i8n). Many third-party services for translating.

Android's API is:

  • well documented
  • well thought out
  • extensive
  • Navigation / Stack Based
  • Themes can be applied to application, activity, or view
  • Layout Based On Fragments and Templates
  • Use Android's tooling to create UIs and mange resources such as string tables.
  • Use Android widgets and objects in plain old Vaadin apps.
  • Faster learning curve for veteran Android programmers.
  • Java 8 support. (Stream API and Lambdas)
  • Multi User
  • Shared app resources and processes.
  • No updates are ever needed. The web app is always evolving and the latest version.
  • Leverage Android's security model
  • Leverage Android Tooling
  • String Resource Tooling
  • Validation
    • ensure resources are declared
    • ensure attributes names are valid
    • ensure attribute values are valid
  • Form Designer
  • Auto Complete class names and activities
  • Auto Generate R file
  • Navigation (jump to resources from id)
  • Wizards (creation of activities and resources)
  • String Preview In Source
  • Theme Editor
  • Hot-Swap Debugging
  • Refactoring String and Resource IDs
  • Creating New Activities, Menus, and Layouts
  • Previewing
  • Direct Links - Use a link to navigate directly to an activity and state. This is similar to a REST
  • type of access. Paths can be declared programmatically, via annotations, or declaratively.
  • Page Title <-> Activity Title
  • JPA database backend
  • Can be themed to look and feel like any version of android, iOS, or a combination.
  • Action Bar icon tool tips
  • Remote Connections
    • view
    • share
    • sync
  • Modify strings, layouts, etc without recompiling.
  • Android does not have a way to ‘share resources’

Advanced Widgets

Vaandroid provides advanced widgets in addition to the standard Android widgets.