A description of various implementation issues.
In Android, intents are used the messages between activities. The intents payload must be serializable, and this is a double edged sword.
This is good because the intent can be saved to disk or marshaled to another process.
This is bad because plain-old objects cannot be directly sent to or from an activity, service, etc.
Not possible (without ActivityHelper workaround) to start an activity from a fragment and get the result.
System IDs versus Plugin IDs
Menu item IDs from super class in another bundle
There are 3 ways we can referer to an ID.
An ID specific to a scope. ^resource://server/plugin/12^
A string that is used as an identifier ^resource://server/plugin/photo^
A path that referers to the location of a resource. ^resource://server/plugin/images/photo.png^
In Vaandroid, resources referer to URLs that might be cached by the client. That means they are possibly available to a client even if the providing plugin is not available.
Streams and lambdas were not implemented until API-24.
Showing and enabling menu items based on the selection state of activity views.
Pointing the source to either the Android API or the Vaandroid API.
Complaining about unsupported Java 8 Stream API
Shared session on browser creates issues. Application is per Vaadin UI, so we put a hash map in the session.
seeing package not found: javax.microedition.khronos.egl when installing core means there is a cyclic dependency (e.g. an api package used in core and depending on core)
In Vaadin, radio buttons do not get checkChanged or click events. All events go to the radio group. This creates a compatibility issue with Android. We need to extend Vaadin to get the Radio Button clicks.
Making files and endpoints accessible from outside. Caching. Security issues.
getClientState() and setClientState() need to be added to synchronize browser state. This needs to be asyncronous.
Web browser resources need to be installed on the target browser
Integration of browser back and escape (closing popup windows, canceling prompts, and exiting from activities)
Since beginning this project, we have encountered several issues.