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

Long term milestone #1

Open
HenryQuan opened this issue Sep 17, 2023 · 2 comments
Open

Long term milestone #1

HenryQuan opened this issue Sep 17, 2023 · 2 comments
Assignees

Comments

@HenryQuan
Copy link
Member

HenryQuan commented Sep 17, 2023

This repository will become the shared core between the desktop and the mobile app using Kotlin Multiplatform. Currently, the app is written using React Native, slowly I will move back to Native like before. The desktop app will use Compose UI with Kotlin mainly focusing on real time battle info. It may also include some Wiki and player but they will be cut down for users to download the app.

What can be shared:

  • Database (SQLDelight, JSON)
  • Compose UI (Desktop & Android, iOS is now possible)
  • Common business logic for wiki, ships, realtime, player, clan
    • Service layer (API requests & Data models) Implement Service Layer #4
    • Other Models/Plugins (calculations)
    • UseCases Implement UseCases #5
    • Repositories
    • UI Logic (provide what's needed by the UI and hide the logic behind)
      • Different platforms have to handle render differently
    • Realtime statistics implementation for cross platform support

Currently the project is separated into subprojects:

This project is still undergoing...

@HenryQuan HenryQuan self-assigned this Sep 17, 2023
@HenryQuan HenryQuan changed the title Long term goal Long term milestone Oct 1, 2023
@HenryQuan
Copy link
Member Author

HenryQuan commented Sep 27, 2024

This approach could be beneficial even in the long run. I may discuss the reason in a future post. In short, Flutter is great or even the best cross-platform framework, but it isn't developer native to anything except for web. Kotlin isn't as great, but it is at least 100% developer native to Android, JVM systems and even iOS. The thing is I can still keep my React Native app and get some shared code from Kotlin/JS, but I have to experiment with this one first to see if it is actually feasible. Too many refactors, maybe this is the final final one.

See #3 for the attempt to use Kotlin code in React Native.

@HenryQuan
Copy link
Member Author

If I can update https://github.com/wowsinfo/community-assistant and manage to clean up things manually, I can potentially share some features with it. For the starter, I can add the missing clan features by sharing my usecase. The UI can also be shared, but it has quite different UI, so I will probably just implement the other way. This is great moving ahead having two Android apps for players to select while sharing similar features.

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

1 participant