Development: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>NedBot
m (Robot: Changing Category:XBMC Live to Category:XBMCbuntu)
mNo edit summary
(27 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{DevsHeader|'''XBMC Development'''}}<br />
{{cleanup}}
{{XBMC development nav}}
{{XBMC development nav}}
{{mininav}}
__TOC__
__TOC__
{{-}}
{{-}}
==Topics==
== Topics ==
{{see also|Category:Development}}
{{see also|Category:Development}}
{{development links}}
{{development links}}


==Source code==
== Source code ==
*See: https://github.com/xbmc/xbmc
* See: https://github.com/xbmc/xbmc


==Development Tools==
== Development Tools ==
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen] - Source code documentation generator tool.
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen] - Source code documentation generator tool.


==Other tools and resources==
== People who can help you with specific development areas of Kodi ==
{{main|Development advisors}}
{{intro|Development advisors}}
 
== Other tools and resources ==
Though any other tools or resources are not required they can possibly help in development.
Though any other tools or resources are not required they can possibly help in development.
* [[Eclipse CDT Setup For XBMC Development]]
* [[Eclipse CDT Setup For XBMC Development]]
Line 21: Line 25:
* [http://www.daimi.au.dk/~sandmann/sysprof/ Sysprof] (for Linux) - a free System-wide Linux Profiler for tracking CPU usage. Sysprof is a sampling CPU profiler for Linux that uses a kernel module to profile the entire system, not just a single application. Sysprof handles shared libraries, and applications do not need to be recompiled. In fact they don't even have to be restarted. Just insert the kernel module and start sysprof.
* [http://www.daimi.au.dk/~sandmann/sysprof/ Sysprof] (for Linux) - a free System-wide Linux Profiler for tracking CPU usage. Sysprof is a sampling CPU profiler for Linux that uses a kernel module to profile the entire system, not just a single application. Sysprof handles shared libraries, and applications do not need to be recompiled. In fact they don't even have to be restarted. Just insert the kernel module and start sysprof.


==General guidelines==
== General guidelines ==
* Code documentation (DocBook, rst, or [http://www.doxygen.org doxygen] for the code documentation steps, preferably the latter, [http://www.doxygen.org doxygen])
* Code documentation (DocBook, rst, or [http://www.doxygen.org doxygen] for the code documentation steps, preferably the latter, [http://www.doxygen.org doxygen])
* Self-containment - XBMC should be as little dependent as possible on operating-system and third-party services/deamons/libraries
* Self-containment - Kodi should be as little dependent as possible on operating-system and third-party services/daemons/libraries
** XBMC should for example contain all file-system and network-client (like samba) support built-into the XBMC package
** Kodi should for example contain all file-system and network-client (like samba) support built-into the XBMC package
* Modular design - independent modules made up by localized/isolated code libraries without dependencies
* Modular design - independent modules made up by localized/isolated code libraries without dependencies
** XBMC should still compile and run if a non-essential module/library is disabled or removed
** Kodi should still compile and run if a non-essential module/library is disabled or removed
* Aim for the GUI/interface to run smoothly on a low spec computer (single core with less than 1Ghz)
* Aim for the GUI/interface to run smoothly on a low spec computer (single core with less than 1Ghz)
** 3D graphic controller (GPU) will always be required hardware for XBMC so try to utilize the GPU as much as possible
** 3D graphic controller (GPU) will always be required hardware for Kodi so try to utilize the GPU as much as possible
* Avoid hard-disk trashing (excess read/write/erase cycles), so no hard-drive paging, (utilize RAM memory instead).
* Avoid hard-disk trashing (excess read/write/erase cycles), so no hard-drive paging, (utilize RAM memory instead).
** End-users will be running XBMC and the operating-system on Solid-State memory as a [http://en.wikipedia.org/wiki/LiveDistro Live CD (LiveDistro)] of a USB-key
** End-users will be running Kodi and the operating-system on solid-State memory as a [http://en.wikipedia.org/wiki/LiveDistro Live CD (LiveDistro)] of a USB-key
* Fast load and boot times for end-user perception (other things can still run/start in the background without the user knowledge)
* Fast load and boot times for end-user perception (other things can still run/start in the background without the user knowledge)
** 15-seconds or less from when the end user press the power-button on the computer till he/she can browse the GUI
** 15-seconds or less from when the end user press the power-button on the computer till he/she can browse the GUI
== Code guidelines and formatting conventions ==
[[Official:Code_guidelines_and_formatting_conventions|Official: Code guidelines and formatting conventions]]


== User-friendliness is next to godliness ==
== User-friendliness is next to godliness ==
{{#lst:XBMC manifesto|User-friendliness}}
{{#lst:XBMC manifesto|User-friendliness}}


==Contact methods==
== Contact methods ==
* IRC: [irc://irc.freenode.net/xbmc-dev #xbmc-dev on freenode] official [http://freenode.net IRC network channel] focused on XBMC development
* IRC: [irc://irc.freenode.net/kodi-dev #kodi-dev on freenode] official [http://freenode.net IRC network channel] focused on Kodi development
* [http://forum.xbmc.org/forumdisplay.php?fid=93 XBMC Development Community Forum]
* [http://forum.kodi.tv/forumdisplay.php?fid=93 Kodi Development Community Forum]
* [[HOW-TO submit a patch]] (where and how to submit source code)
* [[HOW-TO submit a patch]] (where and how to submit source code)


[[Category:Development|*]]
[[Category:Development|*]]
[[Category:Skin Development]]
[[Category:Skin development]]
[[Category:Linux]]
[[Category:Manual]]
[[Category:XBMCbuntu]]
[[Category:Mac OS X]]
[[Category:XBMC Manual]]

Revision as of 13:39, 17 July 2017

Template:XBMC development nav

Home icon grey.png   ▶ Development


Topics

Kodi development
Specific topics
Skinning
Add-ons

Source code

Development Tools

  • Doxygen - Source code documentation generator tool.

People who can help you with specific development areas of Kodi

Development advisors


Other tools and resources

Though any other tools or resources are not required they can possibly help in development.

  • Eclipse CDT Setup For XBMC Development
  • Doxygen - Source code documentation generator tool.
  • Valgrind (for Linux) - a free Linux programming tool for memory debugging, memory leak detection, and profiling.
  • Sysprof (for Linux) - a free System-wide Linux Profiler for tracking CPU usage. Sysprof is a sampling CPU profiler for Linux that uses a kernel module to profile the entire system, not just a single application. Sysprof handles shared libraries, and applications do not need to be recompiled. In fact they don't even have to be restarted. Just insert the kernel module and start sysprof.

General guidelines

  • Code documentation (DocBook, rst, or doxygen for the code documentation steps, preferably the latter, doxygen)
  • Self-containment - Kodi should be as little dependent as possible on operating-system and third-party services/daemons/libraries
    • Kodi should for example contain all file-system and network-client (like samba) support built-into the XBMC package
  • Modular design - independent modules made up by localized/isolated code libraries without dependencies
    • Kodi should still compile and run if a non-essential module/library is disabled or removed
  • Aim for the GUI/interface to run smoothly on a low spec computer (single core with less than 1Ghz)
    • 3D graphic controller (GPU) will always be required hardware for Kodi so try to utilize the GPU as much as possible
  • Avoid hard-disk trashing (excess read/write/erase cycles), so no hard-drive paging, (utilize RAM memory instead).
    • End-users will be running Kodi and the operating-system on solid-State memory as a Live CD (LiveDistro) of a USB-key
  • Fast load and boot times for end-user perception (other things can still run/start in the background without the user knowledge)
    • 15-seconds or less from when the end user press the power-button on the computer till he/she can browse the GUI

Code guidelines and formatting conventions

Official: Code guidelines and formatting conventions

User-friendliness is next to godliness

XBMC manifesto

Contact methods