2017-07-11, 05:12
Some UI Kodi problem (every body complain about this horrible UI... nice colors... but we doesn't care, that is not the problem of colors or to be awsome...) is not from Skin development, that is a fact you need absolutly to undersatnd for increase Kodi really.
Because if a skin development should change all the Kodi way of access it, so Kodi Model/Controller part of code has a low power for stability when a dev comes to code a skin. And that precisely is a design pattern code problem who makes Kodi all the time tricky easy.
The code should absolutely lock Skin devs in a way to do things for stability of end users to easy use, easy to understand how Kodi works, how to add and read movies, TV, musics, any content never mind if stream or other.
For that, the design pattern should be thinking better... all of the design pattern. Said that it is the fault of skin devs is just a way to
1/ show you not understand what is a good design pattern (and by the way you stay a bad dev).
2/ reject the problem fault on people who can not resolve your problem (the name for describe that is "send far away the hot patatoes" because of lazy or not understand the problem)
For example:
In Kodi 17 and up, how you can do for select easy many movies and put them as watched ? you can not, and that is a shame. In older Kodi, you had to go back in particular files list mode and select a directory and just find on right click the option for design all the content of a directory for set them as watched... all the content and not some off them if you would like. It was better than nothing, but it was already bad.
The database organisation is ok (not perfect but well)... the code can do every-think ok... but design pattern kill Kodi.
Solution: have an edit class for object (objects like movies files...), and then a function to call for watch/unwatch with a hash list of id files... easy !!!
Then on the skin, in the left menu options, just add a selector ON/OFF for edition mode for content of what ever you are in. The view on right change color (that is a way to increase View to just show a state mode by color and not change all... every body directly understand what's happen), then add a column on left side in list mode, or a case on thumbnail on other modes for user can select movie and show a green cross when selected.... then on left option menu, because edit mode is enable, appears the list options of what you want to do on the list of selected movies. That is the way to do it easy and every body users should directly understand how to do, in all view, for all objects, with any device input you have (CEC remote or keyboard or mouse, anyway...).
For go on that, you should thinking about your design pattern (again and again...).
An other example:
On Kodi, you open on a view where already there is list of content type... but there is no content on start.
That is not a good design.
If there is nothing inside, so you should at open time show nothing content type, but instead, a easy way to add what ever the user want in big and in the middle !
Also, the user should be able to define which organisation /content type he want to define.
In the code, a content can be herited from a content class... this content class should herit a content type, this content type should have a name the user want... and more flexible things like that.
That is definitely not a problem of skin...
By this way, user add a content who can be in a hierarchy two level order inside some other contents, define a content type for this content, give it a name, a type, some abilities, some restriction... then at final end, it see a new content type like:
"Movies", then a list "English", "Russian", "Italian", "French", etc...
it just click on the content virtual container...
the window show these content and in the menu bar let the selector of design view contents... that's fine.
You should have the same kind of ability content in all the view selectors... the fact to have different access depend on the views make Kodi confused an tricky... do it simple and power-full is much much more better from far. You can add an option in left menu bar to add some specific user view the way that user can enable or disable some content on views... like that people do what they want but at start, have a full access everywhere.
That is much more easy to understand for every body and it is much more power-full because full flexible.
An other one problem of Kodi is to not care about addons validity.... a code can be add for check that installed addons is actually working and actually list of content exist really (can be readable). That way the devs can be alerted on change things from sources content, but also the user no more have to install addons who doesn't work or run around contents and wait one hour before see on content is working really...
From version 12 of Kodi, i never understand why major number changed so many times... because Kodi just stay the same horrible design pattern.
I think increase the design pattern for something more serious should be, this time, a real change of major number for next version of Kodi.
So the ideas are:
1/ make a serious dev design patern code instead of a newbie one dev design patern who never evolute from version major changed...
2/ take care that this design pattern should lock skin devs the way they can not break usability and they not have to thinking in place of Controller devs device pattern to add something they forget, but just make a skin. It should offer Kodi the garanty that Kodi will stay very easy usable and flexible if the skin is horrible or not... all the time Kodi stay Kodi on that way (so... a strong Kodi).
3/ add addons code for control what's going on and protect users for bad or outdated addons or contents of thess addons. This code should also be by itself... an addon.
And then every body should love Kodi like never before, just because that is flexible, easy to understand... good designed. Simply the best one.
Sure, for do that, first Kodi devs team need to be able (and they have to want to understand also) that fact... and do it easy then.
good luck for Kodi users, and good job coming soon maybe for devs tema Kodi by the way to do a great design pattern code.
Because if a skin development should change all the Kodi way of access it, so Kodi Model/Controller part of code has a low power for stability when a dev comes to code a skin. And that precisely is a design pattern code problem who makes Kodi all the time tricky easy.
The code should absolutely lock Skin devs in a way to do things for stability of end users to easy use, easy to understand how Kodi works, how to add and read movies, TV, musics, any content never mind if stream or other.
For that, the design pattern should be thinking better... all of the design pattern. Said that it is the fault of skin devs is just a way to
1/ show you not understand what is a good design pattern (and by the way you stay a bad dev).
2/ reject the problem fault on people who can not resolve your problem (the name for describe that is "send far away the hot patatoes" because of lazy or not understand the problem)
For example:
In Kodi 17 and up, how you can do for select easy many movies and put them as watched ? you can not, and that is a shame. In older Kodi, you had to go back in particular files list mode and select a directory and just find on right click the option for design all the content of a directory for set them as watched... all the content and not some off them if you would like. It was better than nothing, but it was already bad.
The database organisation is ok (not perfect but well)... the code can do every-think ok... but design pattern kill Kodi.
Solution: have an edit class for object (objects like movies files...), and then a function to call for watch/unwatch with a hash list of id files... easy !!!
Then on the skin, in the left menu options, just add a selector ON/OFF for edition mode for content of what ever you are in. The view on right change color (that is a way to increase View to just show a state mode by color and not change all... every body directly understand what's happen), then add a column on left side in list mode, or a case on thumbnail on other modes for user can select movie and show a green cross when selected.... then on left option menu, because edit mode is enable, appears the list options of what you want to do on the list of selected movies. That is the way to do it easy and every body users should directly understand how to do, in all view, for all objects, with any device input you have (CEC remote or keyboard or mouse, anyway...).
For go on that, you should thinking about your design pattern (again and again...).
An other example:
On Kodi, you open on a view where already there is list of content type... but there is no content on start.
That is not a good design.
If there is nothing inside, so you should at open time show nothing content type, but instead, a easy way to add what ever the user want in big and in the middle !
Also, the user should be able to define which organisation /content type he want to define.
In the code, a content can be herited from a content class... this content class should herit a content type, this content type should have a name the user want... and more flexible things like that.
That is definitely not a problem of skin...
By this way, user add a content who can be in a hierarchy two level order inside some other contents, define a content type for this content, give it a name, a type, some abilities, some restriction... then at final end, it see a new content type like:
"Movies", then a list "English", "Russian", "Italian", "French", etc...
it just click on the content virtual container...
the window show these content and in the menu bar let the selector of design view contents... that's fine.
You should have the same kind of ability content in all the view selectors... the fact to have different access depend on the views make Kodi confused an tricky... do it simple and power-full is much much more better from far. You can add an option in left menu bar to add some specific user view the way that user can enable or disable some content on views... like that people do what they want but at start, have a full access everywhere.
That is much more easy to understand for every body and it is much more power-full because full flexible.
An other one problem of Kodi is to not care about addons validity.... a code can be add for check that installed addons is actually working and actually list of content exist really (can be readable). That way the devs can be alerted on change things from sources content, but also the user no more have to install addons who doesn't work or run around contents and wait one hour before see on content is working really...
From version 12 of Kodi, i never understand why major number changed so many times... because Kodi just stay the same horrible design pattern.
I think increase the design pattern for something more serious should be, this time, a real change of major number for next version of Kodi.
So the ideas are:
1/ make a serious dev design patern code instead of a newbie one dev design patern who never evolute from version major changed...
2/ take care that this design pattern should lock skin devs the way they can not break usability and they not have to thinking in place of Controller devs device pattern to add something they forget, but just make a skin. It should offer Kodi the garanty that Kodi will stay very easy usable and flexible if the skin is horrible or not... all the time Kodi stay Kodi on that way (so... a strong Kodi).
3/ add addons code for control what's going on and protect users for bad or outdated addons or contents of thess addons. This code should also be by itself... an addon.
And then every body should love Kodi like never before, just because that is flexible, easy to understand... good designed. Simply the best one.
Sure, for do that, first Kodi devs team need to be able (and they have to want to understand also) that fact... and do it easy then.
good luck for Kodi users, and good job coming soon maybe for devs tema Kodi by the way to do a great design pattern code.