Während der Programmierung rennt man ständig in Probleme und Fehlermeldungen. Diese können oft harmloser Natur sein (z.B. fehlendes Semikolon, falsch definierte Variable). Nicht selten tritt jedoch auch das Gegenteil auf. Blöd ist dann immer, wenn die Fehlermeldung keine konkrete Aussage zum Problem macht:

04-04 16:28:40.182 26842 26842 W System.err: at com.tns.Runtime.callJSMethodNative(Native Method)
04-04 16:28:40.182 26842 26842 W System.err: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1197)
04-04 16:28:40.182 26842 26842 W System.err: at com.tns.Runtime.callJSMethodImpl(Runtime.java:1061)
04-04 16:28:40.182 26842 26842 W System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1047)
04-04 16:28:40.182 26842 26842 W System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1028)
04-04 16:28:40.182 26842 26842 W System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1018)

In solchen Fällen versuche ich die Komponente dann schrittweise zurück zu konstruieren, bis der Fehler wieder verschwindet. Dadurch kann ich feststellen, wo der Ursprung einer solchen Fehlermeldung im Code lag. Doch selbst nach stundenlanger Fehlersuche und alternativen Herangehensweisen, kann es dazu kommen, dass ein Fehler nicht behoben werden kann.

Dies liegt dann meistens nicht an der eigenen Programmierung, sondern entweder an Nativescript, oder dem Plugin, welches man gerade nutzt. In solchen Fällen kann man die Probleme auf Github adressieren („Issue“ gennant).

Die Entwickler von Nativescript (bzw. des Plugins) melden sich dann zu dem Problem und versuchen es zu lösen. Das funktioniert manchmal (Github: Nativescript Issue 3177) auch richtig gut! Oft sind die Ursachen eines unbekannten Problems jedoch weitaus komplexer und schwierig zu reproduzieren. Ich wollte beispielsweise Notifications (Übe-Anstupser) in die App integrieren, dies wird jedoch vorerst aufgrund von Nativescript Kompatibilitäts-Problemen nicht möglich sein (Github: Nativescript-Local-Notifications Issue 40  & Github: Nativescript Issue 3924).

Besonders toll ist es, wenn man ein gepostetes Problem nach einiger Zeit selbst lösen und damit weiteren Entwicklern (die das selbe Problem erfahren) aushelfen kann (z.B. Github: Nativescript-Firebase Issue 207). Ziemlich cool ist ebenfalls, wenn ein Vorschlag, den man als Issue auf Github postet von den Entwicklern übernommen und umgesetzt wird. So ist es auch bei einem meiner Issues geschehen: Ich habe vorgeschlagen, dass für den Typ eines Inputs bei Dialog-PopUps nicht nur „Text“ oder „Passwort“ zur Auswahl stehen, sondern auch die Option „E-Mail“ angeboten wird. Tatsächlich wurde diese Idee als gut empfunden und wird in der nächsten Nativescript Version (3.0) verfügbar sein! Dieses Beispiel zeigt, wie einfach man sich in die Open-Source-Entwicklung grosser Software miteinbringen kann. Die Funktionserweiterung wird allen Entwicklern dank meinem Vorschlag in der nächsten Nativescript Version verfügbar sein (Github: Nativescript Issue 3118)! Es folgt nun eine Liste aller meiner Issues (kategorisiert in „ausstehend“ und „gelöst“).

Gelöste Issues:

Ausstehende Issues:

Als äusserst hilfreich hat sich für mich auch das Durchlesen der Dokumentation zu einzelnen Methoden und Funktionen Javascripts / Typescripts erwiesen. Ich empfehle die Webseite w3schools für Javascript-Funktions-Erläuterungen und Beispiele (auch geeignet für PHP, HTML, CSS, SQL).