CWDroid

Trulla

L18: Pre Master
Thread-Ersteller
Seit
6 Apr 2007
Beiträge
16.877
Steam
Prof. Hackfleisch
Was ist CWDroid?
Eine kostenlose Android app um bequem auf CW zugreifen zu können ;)

Wie weit ist CWDroid?
Noch in der Entwicklung, es kann aber getestet werden.

Welche Features sind geplant?
News, Blogs, PMs - allerdings nur Lesen da die CW Api (momentan) nicht mehr unterstützt.

Ich will CWDroid testen!
Gerne ;)

CWDroid 0.1-5


Installation direkt über das Handy:

a) Astro Dateimanager App installieren (über den Market oder den QR Code)
astroqr.png

b) Apk Downloads erlauben: Astro starten > Optionen > Häkchen bei "Aktivieren Sie Browser-D..." setzen
c) Apps von außerhalb des Markets erlauben: Menü > Einstellungen > Anwendungen > Unbekannte Quellen aktivieren
d) Hier verklinktes CWDroid Paket herunterladen, wenn der Download abgeschlossen ist in der Benachrichtigung draufklicken -> Installation startet

Alternativ geht auch die Variante über das Android SDK ;)
 
Zuletzt bearbeitet:
Asmodiel arbeitet glaub auch an einer cw app, hoffe ich zumindest :D
deine sieht auch schonma ganz nice aus, noch nich so cool wie die iphone app aber immerhin bewegt sich da überhaupt was :lick:
 
Sieht doch soweit schon ganz informativ aus! Simpel und Übersichtlich. Eventuell wäre eine Integration vom Forum in die App noch nice ^^

Das Forum könnten die CW Betreiber gant simpel für alle Smartphones erreichbar machen indem einfach die Tapatalk api genutzt wird.

Tapatalk ist eine native Forum App für Symbian, WM, iPhone und Android.

@Trulla

Wie gut müssen eigentlich die Java Kentnisse sein um für Android zu entwickeln?
 
Aloha,

wollte mir eigtl. nur mal das Android SDK ansehen und etwas mit der CW Api herumspielen, dabei ist jetzt das hier herausgekommen:

News:
techdemo.png


Blogs mit eingeblendetem Menü:
techdemoblogs.png


Der Code ist nur ein paar wenige Stunden alt und ich bin Android Einsteiger, deshalb sieht das ganze auch noch etwas rudimentär aus, allerdings lässt sich darauf imho gut aufbauen - wenn es fertig ist soll es auf den Namen CWDroid hören ;)
Da ich noch kein Android Phone hab konnte ich es bisher auch nur durch dem Emulator jagen ;)

Entwickelt sonst noch jemand eine CW App für Android? Und: Gibt es screenshots von der iPhone Version um Anregungen zu holen? xD
ich muss leider sagen, auf der App siehts vieeeel übersichtlicher aus, sorry.

EDIT: wer hat es entwickelt, du? wenn ja dann trotzdem Gratz ;)
 
Wie gut müssen eigentlich die Java Kentnisse sein um für Android zu entwickeln?
Kommt drauf an was man machen will, für erste Schritte reicht eigtl. auch Basiswissen, das SDK nimmt einem am Anfang einige Arbeit ab.
Früher oder später kommt man aber um fortgeschrittene Dinge wie Threads nicht herum ;)

Und wie gesagt: Bevor man irgendwas stylen kann muss es überhaupt mal da sein ;)
 
Das ist ja witzig. Ich habe mir vor einer Woche ein Desire zugelegt und auch mit dem SDK rumgespielt. Da ich zuvor noch nie in der Java-Welt unterwegs war bin ich auch noch nicht soweit eingestiegen aber auf lange Sicht dachte ich auch daran eine App zu entwickeln. Jetzt schaue ich seit langem mal wieder rein und sehe direkt diesen Thread. Hast du zufällig mit der lib von Cerpin gearbeitet?
 
Jop hab aus Gründen der Einfachheit seine genommen, ist aber nicht immer ganz optimal, ein paar kleine Veränderungen wären nicht schlecht, muss ihn da mal kontaktieren :D
Geht aber auch so, liegt halt an ein paar Android Eigenheiten ;)

Zu dem google Tool:
Sieht interessant aus, aber mal schauen ob es für die Zwecke gut nutzbar wäre, man muss ja auch irgendwie die CW Api miteinbinden, ganz ohne code wird das nicht gehen ;)
 
Inwiefern man die anpassen sollte im Hinblick auf Android kann ich selbst noch nicht abschätzen aber da du schonmal damit gearbeitet hast:

checkAPIToken() gibt mir bislang immer null zurück obwohl die URL stimmt. Hatte noch nicht viel Zeit mir die gesamte lib anzusehen aber hast du dieses Problem auch oder hast du einen Tipp falls ich irgendetwas übersehe?
 
Check ich gar nicht, wenn es nicht stimmt wird eh ne Exception geworfen. Hier ein Beispiel wie ich es etwa mache:

String apiToken = "bla bla" // Dein API Token
int NUM_ITEMS = 10; // Wieviele Elemente sollen geholt werden?
int filter = 0; // filter modus, 0 = alle

API cwApi = new API(apiToken);

// Liste für News Objekte
ArrayList<News> list = new ArrayList<News>();

try {
list = cwApi.getNewsList(NUM_ITEMS, filter);
} catch(ConsolewarsApiException e) {
syso("Api token nicht gültig");
System.exit(-1);
}

for(News n : list) {
syso(n.getTitle());
}
 
Sieht bei mir sehr ähnlich aus:

this.api = new API("mein_key");
try {
AuthStatus status = this.api.checkAPIToken();
if (status != null)
Log.i("mytag", status.getStatus());
else
Log.i("mytag", "status is null"); // output
} catch (Exception e) {
Log.i("mytag", e.getMessage());
}

try {
ArrayList<News> news = this.api.getNewsList(30, 0);

for(News n: news)
{
Log.i("mytag", "Title" + n.getTitle());
}

} catch (Exception e) {
Log.i("mytag", e.getMessage());
}


Keine Exception aber auch keine Daten. Im Manifest hab ich zur Zeit nur die Permission Internet. Braucht man da noch welche, die ich jetzt nicht zuordnen konnte?
 
Hab auch nur die Permission fürs Internet drinne, die Ausgaben solltest du im DDMS sehen können, siehst du denn das "status ist null"?

P.s.
Hab jetzt vorerst meinen Stil gefunden, so wird es etwa aussehen bis alle features drinne sind:

emulator.png
 
Also bei mir geht sowohl der Code von Trulla als auch von |as|. Krieg bei beidem keine Exception:

Code von |as| bei mir:
Code:
public class CW {

    public CW() {
        String apiToken = "Token";
        API api = new API(apiToken);
        try {
            AuthStatus status = api.checkAPIToken();
            if (status != null)
                System.out.println("mytag " + status.getStatus());
            else
                System.out.println("mytag status is null"); // output
        } catch (Exception e) {
            System.out.println("mytag " + e.getMessage());
        }

        try {
            ArrayList<News> news = api.getNewsList(30, 0);

            for (News n : news) {
                System.out.println("mytag " + "Title " + n.getTitle());
            }

        } catch (Exception e) {
            System.out.println("mytag " + e.getMessage());
        }
    }

    public static void main(String[] args) {
        CW cw = new CW();
    }
}

Code von Trulla:
Code:
public class CW {

    public CW() {
        String apiToken = "Token";// Dein API Token
        int NUM_ITEMS = 10; // Wieviele Elemente sollen geholt werden?
        int filter = 0; // filter modus, 0 = alle

        API cwApi = new API(apiToken);

        // Liste für News Objekte
        ArrayList<News> list = new ArrayList<News>();

        try {
            list = cwApi.getNewsList(NUM_ITEMS, filter);
        } catch (ConsolewarsAPIException e) {
            System.out.println("Api token nicht gültig");
            System.exit(-1);
        }

        for (News n : list) {
            System.out.println(n.getTitle());
        }
    }

    public static void main(String[] args) {
        CW cw = new CW();
    }
}

Funzt wie gesagt beides wunderbar. :)
Ich hab bei mir ein einfaches Eclipse genommen und einfach auf mein installiertes JDK verwiesen, also Einstellungen sind alle auf Default.
 
Ich hab gerade die Vermutung dass |as| den code im android emulator laufen lässt und dann auf der Konsole nachsieht ob da was steht, kann das sein? Wenn ja musst du in eclipse in der DDMS Ansicht im LogCat nachsehen, da wird alles was mit den Log Funktionen ausgegeben wird angezeigt, syso verschwindet mehr oder weniger im Nirvana ;)
Wenn ich mich irre steh ich doof da und verkriech mich wieder ;)
 
Zuletzt bearbeitet:
Also ich debugge das Ganze mit dem Desire selbst und LogCat. Es wird mir auch ausgegeben, dass status null ist und ich bekomme wie gesagt keine Exception. Nur egal wie ich die ArrayList auslesen will endet es in 0 Durchläufen. Sowohl mit for als auch mit while.

Die ArrayList news ist allerdings nicht null aber es gibt auch keine Ausgabe. sehr komisch.


edit: hab das Projekt jetzt nochmal für die JRE angelegt und ich bekomme dann auch ne Ausgabe. Weiterhin beim Android nicht. ArrayList ist übrigens empty... :(
 
Zuletzt bearbeitet:
edit: hab das Projekt jetzt nochmal für die JRE angelegt und ich bekomme dann auch ne Ausgabe. Weiterhin beim Android nicht. ArrayList ist übrigens empty... :(
ICh habs mal bei mir getestet, funktioniert alles super:

DDMS:
cwapiddms.png


Source:
cwapisource.png



Was mir noch einfällt, ich hatte anfangs Probleme mit der API...wie bindest du sie ein? Ich hab letztendlich das src Paket entpackt und direkt in mein Projekt kopiert, so ging alles. Macht eigtl. auch Sinn da es für Android mittels Dalvik laufen muss...
 
Zurück
Top Bottom