Benefits
This page lists various advantages of using Vaandroid vs Android.
todo: move to ((Why Use Vaandroid))
Details
Advantages
((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))
Disadvantage
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
- Modify strings, layouts, etc without recompiling.
- Android does not have a way to ‘share resources’