Git Product home page Git Product logo

vocadb-app's Introduction

Download License: MIT

VocaDB App

VocaDB mobile version with Flutter framework. Also this source code is shared with TouhouDB app too.

Screenshot

Download

VocaDB

TouhouDB

Setup for development

Editor (Optional)

API Documentation

Use dartdoc for generate documentation.

Installing dartdoc

Run pub global activate dartdoc to install the latest version of dartdoc compatible with your SDK.

$ pub global activate dartdoc

Then run dartdoc command to generate document.

$ dartdoc

Document generated result to {current_dir}/doc/api and can open index.html to view it in browser.

UI Translation

Translation files in lib/src/i18n. File should be named with {language code}.dart or {language_code}_{country_code}.dart.

If anyone would like to update or add more language, You can add/edit and pull request to me.

vocadb-app's People

Contributors

lilligantmatsuri avatar mnh48 avatar riipah avatar up2code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vocadb-app's Issues

Improve Song search state

There are some several problems on each search page that might cause some confusion to users.

For example

  • When user had filtered with some parameters and do pull refresh. Filter's parameters had disappears and result had reset to initial state.
  • When user had filtered songs. Got new results. Go back to home. Come back to song search. It reset to initial state.
  • When try to input text on search bar, close search bar and switch back to search again. text input had disappear

Those issues are cause from incorrect state control. This task might be complex because need to refactor code and redesign state so can work with navigation too.

Support Deep linking and Android App Links

When user press VocaDB's site link from mobile (For example https://vocadb.net/Ar/1) it can take user to VocaDB app with Hatsune Miku detail page (or choose to browser depend on user decision)

Another use case is when user search from google and found result from VocaDB. User can choose to open this link via app or not.

Anyway this is an optional feature and maybe it should do after entry detail page contain all basic information that its should have.

Reference : https://developer.android.com/training/app-links/

Show song type on details page

Original, cover, remix etc.

An icon is enough. VocaDB main site uses icons to save space in certain places.

This would also be useful for search pages.

Play video inside App

There is 2 ways in my opinion

  • Use Webview and display from given link. I had tried on old version (1.0) but not worked. I'll try again on this version with React Native. Even if it worked, next problem will be Apple App Reviewer. I'm not sure they will okay with this.
  • Use Provider API (Such as Youtube) For in case if above not worked. But it will take cost if exceed free usage plan.

User account and authentication features

I never working on about authentication directly by myself. Especially about from mobile to backend server. So I need to do some research for make sure not just its work, But must secure too.

Add tags page

Similar to other page (songs, artists, albums, events)

TouhouDB Version

Because both site have same API structure. So I guess it's possible to build new App for TouhouDB.

TODO List for making as new app

  • Endpoint should set as config. Must remove all hard code url.
  • Change package name (Android) and identifier name (iOS) com.touhoudb.app
  • Create new app on Play store.
  • Create new app on ituneconnect.

Homescreen view

Homescreen logos (home/heart/menu icons) are a bit too large currently (too little top and bottom margin).
Buttons in the home screen should be in plural (song -> songs, artist -> artists).

update to ios version

Currently vocadb on ios version is old than android. In the next version I'll will release it together.

About "See more" Button on home page

Each button should navigate user to listing page with same condition on main site (or match with title)

Highlighted PVs: onlyWithPVs=True&sort=AdditionDate
Recent or upcoming albums: sort=ReleaseDate
Random popular albums: sort=RatingTotal

Refactoring code #1

Since current code is hard to readable and using. This is my plan that need to be done

  • Separate each module (in controllers and services) to make them independence and can be easily for re-use.
  • Change some part of html code to directive if it's possible.
  • (Optional) Make a test unit for testing each function to make sure that it's can still work fine after refactoring

Comments about song search / filtering

  • I think the "status" filter could be removed. It's mostly used to find entries that need work, but no one is going to do edits on the phone anyway, so it should be redundant on the mobile app.

  • For sort, you can leave out empty and "none" options. The default should be "name".

  • For tags, you might want to filter by "genres" category (same as website). The full list of top tags includes a lot of nonsense. Also, I added option to limit the number of top tags to return. I think displaying top 5 tags in the mobile app is enough.

  • A custom filter for tags (similar to artists list) would be useful too.

  • Perhaps consider adding filtering for minimum rating score, to get popular songs.

Otherwise I really like the filtering options :)

Small grammar fixes

Current:

Favorite songs -> No any favorite song
Collections -> No any favorite album
Followed artists -> You did not followed any artist

Proposed fix:

Favorite songs -> No favorite songs / Nothing yet / Not found
Collections -> No favorite albums / Nothing yet / Not found
Followed artists -> Nothing yet / Not found

Lyrics content should selectable

It will be useful if lyric can selectable so user can copy text or use built-in translator to translate the lyric.
This can be done by add attribute selectable to Text element.

Add more icons

Since there too many websites, So I'll target on popular sites first.

  • Facebook
  • Twitter
  • Bilibili

Not sure if anymore I should add?

How to add icon

  1. Looking (or create) icon file size with 128x128px. File size must small as much as possible.
  2. Add icon image to src/common/assets/img
  3. Add new Regex to file src/common/assets/iconSites.js This regex will check matching with web link or pv url.

Friendly back-button

Currently the back button exits the app when navigating in-app, which should not be the case.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.