Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add local service implementations to support client-side-only use of App Inventor #3147

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ewpatton
Copy link
Member

This is pulled over (with modification) from the Aptly on a phone demo. This PR adds a build flag local.services that when set to true in an ant invocation, e.g., ant -Dlocal.services=true noplay will bundle versions of the UserInfoService and ProjectService that run entirely client-side. To do this I have implemented a GWT wrapper around the JSZip library so that we can unpack AIA files in memory on the client side and store those in a hash map similar to how the Datastore works.

This is a work in progress. The following still need to be done to create a robust solution:

  • Assets are not handled, either upload or download
  • Still need rendezvous server access (in Aptly we 'rendezvous' through API calls from the Swift code)
  • Export project support in the UI (in Aptly we export ZIPs by callback to the Swift code)
  • Extensions are not yet supported and the ComponentService would need the same treatment

Change-Id: Id82b3b54dad523b4342c4b3bae5f96c890d8427a
Change-Id: Ie9a56698f99e91d6f557982e86e1de8889f56ff0
@ewpatton ewpatton force-pushed the experimental/client-side-services branch from 06b597c to b4362d0 Compare August 24, 2024 03:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: master feature request Is Still Draft So we can quickly see draft Pull Requests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant