Abstimmung 47
-
Ich/Wir brauchen kein (neues) Howto (0) 0%
-
Ich finde die Idee gut (39) 83%
-
Ich kann und werde mithelfen (z.B. Text schreiben, Grafiken erstellen, Links sammeln, Korrekturlesen) (6) 13%
-
Ich bin Anfänger und würde gerne ein Add-on Entwickeln (28) 60%
-
Ich kenne mich bereits aus, bin aber dennoch daran interessiert (5) 11%
-
Nur auf deutsch für mich sinnvoll (18) 38%
Hi zusammen,
da ich momentan Urlaub habe, habe ich mal wieder einen Blick auf meine ständig wachsende ToDo-Liste geschaut, ziemlich weit oben findet sich "Ein gutes und vor allem aktuelles HowTo zum Thema Add-on Development schreiben".
Bevor ich aber am Bedarf vorbei schreibe hätte ich ein paar Fragen, deswegen auch die Abstimmung unten. Ihr könnt (und müsst ggf.) mehrfach abstimmen.
Hier schon mal eine kleine Übersicht worum es in dem Howto gehen soll
Allgemein
- Unterschied Script/Plugin/Service/Widget
- Add-on Struktur / addon.xml
- Python allgemein (Spaces, if/else/for/etc)
- Editoren/debugging/git(hub)
Plugin Development
- Verschiedene Arten ein Plugin zu schreiben, jeweils pro/kontra. Damit meine ich:
- get_param mit int-mode + Regular-Expression (wie die meisten es machen)
- get_param + HTML-Parsing mit Beautifulsoup
- xbmcswift + HTML-Parsing mit Beautifulsoup
- xbmcswift + JSON-API
- Das eigentliche HowTo an einer "richtigen aber einfachen" HTML-Seite (mit get_params und re):
- Wie man an die Daten kommt
- Wie man diese an XBMC übergibt
- Das gleiche wie oben, diesmal allerdings "für Fortgeschrittene" bzw "an schönem Code interessierte" (mit xbmcswift und BeautifulSoup):
- Wie man an die Daten kommt
- Wie man diese an XBMC übergibt
- Add-on Entwicklungs Workflow/Checkliste:
- Gibt es bereits ein Add-on für diese Seite/diesen Dienst?
- Kommt man überhaupt an die Daten (Struktur/Play-Parameter/Mobile Webseite)?
- Lohnt es sich den Betreiber anzuschreiben?
- Gibt es eine offizielle oder versteckte API (Smartphone Apps checken, Ajax checken)?
- Tipps/Tricks/Snippets:
- Pagination
- Suche
- Wie man ein anderes Plugin zur Wiedergabe benutzt und wie man an dessen URLs kommt
- POST Request mit Daten
- Login/Cookie Handling
- Lokale Datenspeicherung
- Settings
- Dialoge (Notification, dialog.yesno, etc)
- Firebug/Chrome DOM-Inspection
- RTMP-Tools/Wireshark/whatever
- Dynmaische Bilder-URLs
- "Hidden features": sortMethods/UpdateListing/setResolvedUrl/etc (Also eher für Fortgeschrittene)
- DO's and DONT's (Was man machen sollte und was nicht)
- Anfängerfehler, typische Fehlermeldungen
- Links
- Python für Anfänger
- Git für Anfänger
- XBMC-API
Script Development
...
Es existieren natürlich schon ein paar Howtos (ich kenne insgesamt mindestens drei verschiedene) allerdings sind diese entweder ziemlich outdated, unvollständig oder einfach (vom Python Standpunkt her) "hässlich" bzw. einfach schlechter Code. Schöner Code ist nicht nur ein " sich an die Regeln halten" - es hat auch "richtige" Vorteile: Der Code ist einfacher zu lesen, hat in der Regel weniger Redundanzen (Die gleiche Zeile/Logik an mehreren Stellen), es findet sich schneller jemand der einem Hilft und er ist einfach stabiler.
Mein Ziel ist es also ein aktuelles, möglichst umfassendes und aus "schönem bzw. richtigem Code bestehendes" Howto zu schreiben. Es sollten auf jeden Fall ein paar Grafiken/Diagramme dabei sein (z.B. den Aufruf-/Beende Workflow von Plugins verglichen mit Scripts und Widgets). Syntax Highlighting ist mir bei Code-Snippets auch sehr wichtig. Die meisten Leser lesen Fließtext sowieso nicht richtig, wenn aber zwischendurch Bunter Code ist, wird zumindest der gelesen ;).
Als Plattform bevorzuge ich aktuell eine Github Page: Ein Git-Repository bestehend aus Markdown-Dokumenten + assets. Das ganze bekommt von github eine eigene Subdomain und ohne viel Gebastel ein nettes und praktikables Design. Siehe http://pages.github.com/
Das hätte auch den Vorteil das es relativ einfach von anderen editiert/erweitert werden kann (Man kann mittlerweile bei Github auch ohne lokale installiertes/eingerichtetes Git einzelne Repositories und dessen Dateien editieren - im Browser. Damit fällt das ganze clone/push/commit/pull-usw Zeugs weg)
Ich werde auch im englischen Forum um Ideen/Feedback und vor allem Mithilfe bitten.
Aber jetzt erstmal hier: Feedback, Ideen, Mithilfe, Abstimmung: Alles gerne gesehen!
Grüße,
sphere