Tag Archives: Alles zum Thema Programmieren

Ionic2 (rc3) mit firebase und google+facebook login

Inzwischen ist Ionic 2 in der RC3 Version vorhanden. Aufgrund von Änderungen zwischen RC0, RC2 und RC3 sowie einigen Änderungen bei firebase und angularfire2, sind leider die meisten Beispiele im Internet nicht mit RC3 kompatibel.

Ionic Projekt

Solltet ihr bisher ionic noch nicht installiert haben, könnt ihr das mit dem folgenden Befehl machen: sudo npm install -g ionic cordova

Falls ihr noch kein npm und node installiert habt, am besten die aktuelle Version installieren.

Danach könnt ihr wie folgt starten: ionic start NamederAnwendung blank --v2

Danach dann noch ios (falls ihr auf mac arbeitet) und android hinzufügen:

Nun könnt ihr die app mit dem folgenden Befehl unter android testen. Es empfiehlt sich das Testen immer im Emulator oder auf einem echten Device vorzunehmen, da für das login bei facebook und google cordova Plugins verwendet werden – welche untern “ionic serve” nicht beachtet werden:

Hinweis: Falls in der package.json > “@ionic/app-scripts”: “0.0.45”, steht. Bitte den Hinweis am Ende der Seite beachten – Firebase is not defined.

Firebase

Unter https://console.firebase.google.com/ erstellt ihr euch eine neue Anwendung. Am besten den geichen Namen wie der Name für die App. Danach unter Authentication >> Anmeldemethoden bei Google und Facebook auf editieren klicken und die Anmeldemethoden aktivieren. Für Facebook benötigt ihr die appId und appSecret, da wir aber noch keine Facebook App erstellt haben – dort aktuell nur einen Platzhalter eintragen.

Danach unter Einstellungen/Projekteinstellungen gehen (findet man beim klick auf das Zahnrad oben links) und auf “Firebase zu meiner WebApp hinzufügen” klicken. Danach erscheinen die Keys für eure Firebase Einstellungen:

Diese werden in eine Temporäre Textdaten kopiert, da sie später benötigt werden. Die messageId Variable wird nicht benötigt – wer Firebase Messaging verwenden möchte, kann das mit Ionic2 Push machen.

Facebook

Zuerst unter https://developers.facebook.com/apps eine neue App erstellen. Danach dann in der App unter “Produkt hinzufügen” auf “Facebook Login” klicken. Bei “Gültige OAuth Redirect URIs” die Url welche ihr unter von https://console.firebase.google.com/ >> Authentication >> Anmeldemethoden >> Facebook findet eintragen. Danach unter Einstellungen für eure Facebook App gehen und auf “Platfform hinzufügen” klicken. Daher erkläre ich im folgenden wie man mit ionic2 und firebase einen Google Login/SignIn und Facebook Login/SignIn realisieren kann:

Bei “Google Play Package-Name” tragt ihr die id aus eurer config.xml im root Ordner eures Ionic Projektes ein.

Den Schlüssel Hash bekommt ihr mit dem folgenden Befehl auf euer Command Line:

Linux:  keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base6

Win:  keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Den Schlüssel am besten in die Zwischenablage kopieren bzw. eine Textdatei – da diese bei Google wieder benötigt wird.

Danach SingleSignOn aktivieren und speichern.

Dann die AppId und den App-Geheimcode unter https://console.firebase.google.com/ >> Authentication >> Anmeldemethoden >> Facebook eintragen und speichern.

Google

Wieder auf https://console.firebase.google.com/ >> Projekteinstellungen gehen und auf “Firebase zu meiner Android App hinzufügen” klicken. Dort dann wie schon bei Facebook den Paketname (id) und den Hash eintragen und speichern. Continue reading Ionic2 (rc3) mit firebase und google+facebook login

Minimal Software Application Development

Software Entwicklung ist heute einfacher wie vor 10 Jahren. Dies liegt unter anderem an Tools die das erstellen von Anwendungen einfacher machen, aber auch an den Geräten auf denen die Anwendungen laufen.

Z.B. kann man mit den folgenden Frameworks in wenigen Minuten ganze Webanwendungen erstellen:

Oder mit Vaadin ein schnelle UI für eine Java Webanwendung erstellen. Durch Plugins und eine große Community gibt es zudem eine große Menge an Standard Funktionen dazu.

Aber was erleichtern diese Frameworks und Tools?

Wer eine Idee für ein Produkt bzw. Anwendung hat, kann mit dieser Hilfe einfach das MVP realisieren und dabei mit wenig kosten eine erste Prototyp Version erstellen und schauen ob die Annahmen dem Markt entsprechen. Z.B. kann man mit Ionic, AngularJS und einer Grails REST-API ganz schnell eine App mit einem Backend bauen.

HTML5 / Javascript für Desktop Anwendungen

Eine Anwendung die mit HTML5 und Javascript erstellt wird, kann auf vielen Plattformen verwendet werden. Als Mobile App oder auch als Desktop Anwendung und ist zudem nicht an ein Betriebssystem gebunden wie das z.B. bei nativen Android Apps der Fall ist.

Wer aber in Google nach “javascript html5 desktop application” sucht bekommt als Ergebnisse TideSDK, AppJS, BracketsShell, Sencha und Node-webkit. Während bei TideSDK und AppJS es anscheinend keine Entwicklung mehr gibt, ist Sencha Desktop eine kommerzielle Lösung. Ich habe mir daher mal Node-Webkit im Zusammenhang mit NodeJS näher angeschaut. Sucht man nach Beispielen und versucht diese unter Linux 64bit und “grunt” zum laufen zu bringen, landet man sehr schnell bei einem Fehler mit “libudev.so.0”. Um diesen Fehler zu lösen hat bei mir nur das Script von rockiger aus seiner Anwendung https://github.com/rockiger/akiee/blob/master/scripts/build_binaries.sh geholfen.

Nach den ersten Gehversuchen hat sich aber schnell gezeigt das mit Hilfe von Node-Webkit im zusammen spiel mit NodeJs die Entwicklung von Desktop Anwendungen schnell und einfach möglich ist. Es wird zudem Windows, Linux und Mac unterstützt (https://github.com/nwjs/nw.js/wiki/How-to-package-and-distribute-your-apps). Desweiteren kann mit den gleichen Dateien eine Android App erstellt werden oder eine Webseite.

Elm unter Linux installieren / How to install elm-lang under linux

Um unter Linux mit der Sprache Elm zu programmieren, muss man diese installieren. Leider findet man unter http://elm-lang.org/Install.elm nur etwas für Mac und Windows.

Mit den Debian GHC und cabal packages konnte ich elm nicht installieren. Daher am besten diese selbst compilern und installieren. Dafür verwendet man die Anleitung https://gist.github.com/yantonov/10083524 um GHC und cabal in der aktuellen Version zu installieren.  Wichtig, am Ende gib es den Punkt “# add path to cabal to PATH environment”. Dort muss vor die beiden zeilen noch ein export und dann kann das ganze wie bei ghc in der Datei ~/.profile eingetragen werden.

Danach kann man dann der Anleitung “Build from Source” auf http://elm-lang.org/Install.elm  folgen:

Es ist möglich das es danach dann zu Fehlern kommt. Sollte es Probleme bei einem Package geben, findet man das log unter ~/.cabal/logs/<packagename>.log

Bei mir gab es einen Fehler bei der Installation von haskeline-0.7.2.1. Die Lösung war die Pakete lib64tinfo5 und libtinfo-dev über den Paketmanager Synaptic zu installieren.

For english:

Use for install ghc and cabal not the debian or suse packages. Use the step for step howto from https://gist.github.com/yantonov/10083524. Please add the steps after “# add path to cabal to PATH environment” to your ~/.profile file and add the word “export” for each line.

After this you can use the howto from http://elm-lang.org/Install.elm for “Build from source”.

I you have a problem, check the logs under ~/.cabal/logs/.

For Problems with haskeline-0.7.2.1 you must install with apt-get the packagelib64tinfo5 and libtinfo-dev.

Informatik für Schüler – Online Tutorials

Robotor Programmierung: http://mp-public.iais.fraunhofer.de/

Spielend Programmieren lernen – Online Kurs auf OPEN HPI https://open.hpi.de/courses/pythonjunior2014

Spielend programmieren lernen mit SCRATCH – http://schuelerlabor.informatik.rwth-aachen.de/modul/spielend-programmieren-lernen-mit-scratch

AntMe – lerne spielend objektorientiert Programmieren – http://www.antme.net/

Einführung in die Informatik – online Tutorial –http://learn.code.org/s/1

JUnit – Daten aus Xml, CSV, Json .. als Liste im Test bereitstellen

Mit Hilfe von DBUnit können Datenbanken mit Daten z.B. aus CSV oder XML Dateien vor einem Test befüllt werden.

In einigen Testfällen werden aber auch Testdaten benötigt die sich noch nicht in der Datenbank befinden und nicht mit “SELECT” aus der Datenbank geholt werden sollten. Eine Möglichkeit ist, Objekte zu erstellen und die Attribute mit Daten zu befüllen.

Ich habe mir mit Hilfe von DBUnit noch eine weitere Möglichkeit geschaffen. Ich lese Daten aus XML, CSV … etc. mit Hilfe von DBUnit ein und schreibe sie dann Continue reading JUnit – Daten aus Xml, CSV, Json .. als Liste im Test bereitstellen

Werkzeuge für die Umsetzung von Projekten Teil 2

Build-Management Tool und Ant

Mit Maven und Ant gibt es zwei Werkzeuge, die das bauen und erzeugen von Programmen vereinfachen. Durch Maven werden Abhängigkeiten und Bibliotheken automatisch heruntergeladen und auch der Wechsel zwischen Versionen einer Bibliothek ist sehr einfach.Maven und Antdienen aber in erster Linie zum bauen und erzeugen von Anwendungen durch einzelne Targets / Lebenszyklen.

Managed Issues Continue reading Werkzeuge für die Umsetzung von Projekten Teil 2

Werkzeuge für die Umsetzung von Projekten Teil 1

Bei der Umsetzung von Software Projekten spielt das dafür verwendete System eine wichtige Rolle. Neben der Planung der Programmierung ist ein System mit hilfreichen Werkzeugen ein Vorteil und Unterstützer für Qualität und Übersicht. Im folgendem werde ich einige Werkzeuge zu verschiedenen Bereichen vorstellen. Alle erwähnten Werkzeuge sind OpenSource und ihre Nutzung daher kostenlos.

Versionierungssystem

Um Änderungen leicht und schnell zu verfolgen, sowie diese wiederherzustellen ist die Verwendung eines Programms zur Versionsverwaltung unabdingbar. Dafür möchte ich zwei Programme näher erwähnen, GIT und SVN (Subversion). Für ein freies OpenSource Projekt würde ich GIT aufgrund Flexibilität und der einfachen Verwendung von Arbeitskopien verwenden, für Projekte Continue reading Werkzeuge für die Umsetzung von Projekten Teil 1