Git Product home page Git Product logo

sportsmandb's Introduction

Requirements:

  • KivyMD is API unstable as of now, it's best to use either the version I've used on my computer (1.0.0.dev0), or main branch. A lot of bugs are fixed in the main, so, unless something's broken, install from source, not from PyPI: pip3 install https://github.com/kivymd/KivyMD/archive/master.zip
  • I've used a native filepicker instead of Kivy's (because kivy's picker is horrible). pip3 install plyer is required for it to work

Launch:

python3 main.py should work. XML files for testing are located in the ./examples folder.

What can be improved:

  • A separate type for sending records between controller and view
  • A more sophisticated error handling system, especially for XML parser (with SAX error handler). Seemed to increase the complexity of passing the error to the view a lot, so I've made a generic error message instead, because I was near the deadline on the assignment... Eh.
  • A better way to call the app's controller (pyright's complaining right now)
  • Binding data from the model directly to the view (buggy on KivyMD, see below)
  • Fix the pagination (not my fault, see kivymd/KivyMD#1242)
  • More coherent UI: input field validators, correct sizes for the dropdown menu, action bar based on the MD guidelines, better default window size, accent colors. Honestly, I tried to create a beautiful GUI. Now I couldn't care less. By the time I've finished this project I was (and still am) hoping I won't touch Kivy or KivyMD ever again - here are some of the reasons why:
    • GUI is very slow (maybe OpenGL on macOS is to blame, but generally GUI is very unresponsive)
    • Lack of updated and/or full docs
    • incoherent UI elements, lack of some basic widget variations. Generally you have to write a lot of boilerplate, even for basic widgets (such as dropdown input)
    • Touch emulation creates excessive input lag
    • KivyMD's binding system is very unstable, I had to rely on callback functions and lambdas instead.
    • The layout system is intuitive, but the position customization options are not - it was a hell to figure out how to position elements correctly.
    • The DSL of Kivy (.kv) is nice, but .css would've been nicer.

Preview:

Main window: img Insert dialog: img2 Search dialog flow: img3 Delete records notification: img4

sportsmandb's People

Contributors

fallenchromium avatar

Watchers

 avatar

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.