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

ROADMAP / Plans for the next major release - 2.0.0 #68

Open
5 tasks
cusspvz opened this issue Dec 31, 2016 · 8 comments
Open
5 tasks

ROADMAP / Plans for the next major release - 2.0.0 #68

cusspvz opened this issue Dec 31, 2016 · 8 comments
Milestone

Comments

@cusspvz
Copy link
Contributor

cusspvz commented Dec 31, 2016

Project Collaborators:
@EddyVerbruggen @cusspvz @Anothar @dagatsoin

Refactoring:

  • [Issue #] Base native events trough an initial event listener callback for each map instance
  • [Issue #] Use latest ES methods on JS file

Features:

Maintenance:

  • [Issue #] Move iOS code to Swift
@cusspvz cusspvz added this to the 2.0.0 milestone Dec 31, 2016
@cusspvz cusspvz changed the title Plans for the next major release - 2.0.0 ROADMAP / Plans for the next major release - 2.0.0 Dec 31, 2016
@dagatsoin
Copy link

dagatsoin commented Dec 31, 2016

  • I propose to add multi maps on the feature list as it is almost done.
  • You can also add offline maps as it already works.
  • As the api surface will be extended and the implementation will be bigger, I think unit test could be useful.
  • A bit of doc will be useful to explain how the plugin work. (cf. "google map box cordova plugin" as my implementation is globally the same.

@dagatsoin
Copy link

dagatsoin commented Dec 31, 2016

I would like to talk about the motivation of what I have done on #29 to synchronise (or not) our goals.

Motivations

  • I needed an offline map plugin for Wizar, an HTML 5 game (only in french for now, sorry):
    So basically, I overlay the Mapbox view with a webview within I run the game interface (with React) and Pixi.js (and I aim Three.js in the futur). The good thing is you can use any DOM element as marker.
  • I needed offline map functionality. So I needed to bump the Mapbox API.
  • I also need to display two maps at the same time (game map + mini map). So I have developed my plugin by looking at [WIP] MapboxGL Android 4.x.x #22.

Architecture overview

  • I stick to MapboxGL JS naming to have a drop in replacement.

  • The plugin controller: CDVMapbox.java:

    1. receives the command
    2. retrieves or creates a Map through MapsManager.java
    3. treats the command through the Map
    4. sends the result
  • The maps manager: MapsManager.java:
    creates/retrieves/deletes a Map

  • The map: Map.java + MapController.java
    Those two files will be certainly merged in just Map.java
    They handle the Mapbox API.

  • PluginLayout.java
    Responsible to arrange the views to have a webview overlay (cf google map plugin wiki)

Remaining

  • iOS conversion (Swift is a good idea, but what about the futur version ? Is there any risk of retro incompatibility? I heard major swift versions are not compatible)
  • Unit test
  • Docs
  • Finish multi maps (the overlay touch part)
  • A better UI demo
  • MarkerCallbacks per marker.

Here it is. Is the direction I took is OK for you?

@risinghero
Copy link
Contributor

risinghero commented Dec 31, 2016 via email

@risinghero
Copy link
Contributor

Hi @dagatsoin

Swift is a good idea, but what about the futur version ? Is there any risk of retro incompatibility? I heard major swift versions are not compatible

Yes there is although they promised to make full binary compatibility in next major release.
But I think transition to swift worth this risk as coding will become much simpler (as well as studying iOS code). And amount of iOS code will decrease significantly.

@dagatsoin
Copy link

Guidance: what do you mean by guidance? Maybe a more detailed doc? On which part exactly?

Swift: OK let do it! Always wanted to try it!

@risinghero
Copy link
Contributor

I mean that you' ve done a lot of work and very large piece of functionality.
For me the problem as I see is how to integrate you branch smoothly in master?
I don' t think that it can be done by one piece. Maybe @cusspvz have some ideas about integration.
What I want is to discuss step-by-step integration of your code in master.
To divide it in small pieces. Maybe you have ideas how it can be divided?

@dagatsoin
Copy link

Ok I see but I have not develop my PR for being integrated in the master branch. As a major release, it contains breaking changes both on the JS and native side.

I am not used to versioning management but I guess we should transfer my PR in a next branch and finally completely replace master branch when ready. @cusspvz your thoughts?

@warrenc5
Copy link

I agree with dagatsoin - I suggest that the all these experimental MapBox PRs are merged into an experimental/unstableTelerik Branch here.
At least that will be a single integration point for all these changes & refactorings.
Great work so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants