Newcomer in der Android-Entwicklungswelt sucht paar Tipps von erfahrenen Programmierer

  • Antworten:12
Homer Simpson
  • Forum-Beiträge: 48

28.07.2010, 05:26:16 via Website

Hi

Als Webdesigner hab ich mich in den vergangenen Jahren recht gut etabliert und lernte alle wichtigen Programmiersprachen in der Web-Welt (php, javascript, xml, html, css ect.)


Aus "neugier" informierte ich mich vor kurzem über die Android-Plattform und schnell wurde mir klar, das es kein grösserer unterschied ist zwischen "Android-Programmieren" und "Webanwendungen-Programmieren"


Aus neugier wurde richtiges interesse, was sich letztentlich in die investition des "Android 2"-Buches von Arno Becker schliesste!!


Das Buch hab ich nun 1x ganz überflogen, 1x ganz durch gelesen und auf Seite 70 mit dem 1:1 durchspielen (nachzumachen)

in der Zwischenzeit kann ich grob beschliessen, wo ich nicht ganz so nachkomme und micht besser erkundigen sollte....


Hauptproblem:

Ich denke da wird ich nicht der einzige sein...es handelt sich um die "Activity" skripte, welche unter "src" gespiechert sind!!!

da dies ja "echter" java code ist, frag ich mich in wie weit es sich lohnen würde micht "noch" intensiever mit java selbst auseinander zu setzten...

einfache ausführung von Grundlegenden Operationen und Ausgaben kenn ich bereits gut (Grundlagen) und da der Activity-Code hauptsächlich bestandteile, welche nur auf der Androidumgebung bekannt sind, enthält frag ich mich ob es sich eher loht mich mehr im Bereich "Android-Code" oder "Java-Code" zu erlernen???


Nebenproblem:
Icch würde gerne noch mehr über die "Spieleprogrammierung" erfahren...gibt es sonst noch gute "HowTo's" auf deutsch (diese hier auf AndroidPitt hab ich durch...EINFACH GENIAL!!!!! DANKE AN DIESER STELLE ;)


allg
Für annder gute Quellen wär ich sehr dankbar....ich versuch zurzeit möglichst viel in mich hinein zu schlingen, bevor ich mich daran mache jede Einzelheit auch gänzlich zu verstehen :D

gruss by_homer

Antworten
Jan Lenke
  • Forum-Beiträge: 47

28.07.2010, 07:30:54 via App

habe es nur kurz überflogen.
Wenn du wirklich ernstzunehmende apps entwickeln ,willst kommst du am Java lernen nicht drum rum! Das Buch habe ich übrigens auch, aber mehr als einmal gelesen habe ich es nicht, denn wenn du java kannst, ist der Rest nur nachgucken, wie die Android Elemente funtionieren.

vom handy und ohne zeit geschrieben. Viel Erfolg :)

Antworten
TheEvilOne
  • Forum-Beiträge: 311

28.07.2010, 08:14:34 via Website

An Java wirst Du nicht drumherum kommen. Es sei denn Du hast vor Apps mit dem Android App Inventor zu erstellen (da braucht man sich gar nicht mit Programmiersprachen auseinanderzusetzen). Allerdings wird man mit dem App Inventor in seinem Tun denke ich schnell an Grenzen stoßen.

Antworten
Homer Simpson
  • Forum-Beiträge: 48

28.07.2010, 19:56:17 via Website

Also wie ich das verstehe, ist nur die "Code-Syntax" die von Java (Grundlegende Elmente wie "switch-case" oder "if-else" ect.)

aber alles andere ist "Android spezifisch" ausgelegt...wie z.b

1@Override
2 protected void onCreate(Bundle savedInstanceState) {
3 super.onCreate(savedInstanceState);
4 Log.d(TAG, "onCreate(): startseite Anzeigen ");

all diese "objektorientierung" und übergaben sind explizit für die Androidumgebung...deshalb sollte man sich eher mit diesen beschäfftigen als mit "fortgeschrittenem" java (also zubegin miene ich.....klar sollte man ab einem gewissen Punkt auch diesen Schritt auf sich nehmen!)


ich weis eben nur nicht was ich zuerst machen sollte....

mich mit der java-android-syntax oder erstm mal "vollständig" nur mit der java-syntax auseinanderzusetzen!!


Nochmals....mir ist schon klar das ich beides kennen sollte (wie gesagt...ich möchte nur die richtige reihenfolge erwischen)



ach...nein ich möchte kein "inventor" oder der gleichen verwenden!!!

dies ist mir, wie du auch vermutest, zu "begrenzt".....zudem ist mein leztzentliches Ziel die "Spieleprogrammierung" welche sehr wahrscheinlich in keinem "Inventor" programmierbar ist!!


gruss by_homer

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

28.07.2010, 20:37:52 via Website

Moin Homer,

Du irrst Dich ein klein wenig wenn Du vermutest, das nur die Code Syntax die von Java ist. Android ist zu 100% Java Programmierung!

Das Beispiel welches Du da angeführt hast ist Standard Java Code. onCreate() ist lediglich eine von vielen in den Librarys der API implementierte Methode die wiederum mit Standard Java entwickelt wurde. Auch super.onCreate() hat nichts Android-Spezifisches an sich.

Das beste wäre sicherlich sich mit den Java - Grundlagen zu beschäftigen. Du kannst Dich ja nebenbei einfach weiter mit den Android BAsics beschäftigen. Nur ohne das Du die Java - Grundlagen beherrscht, wirst Du vermutlich sehr schnell, sehr frustriert sein da Du u.U. an einfachsten Dingen scheiterst wie eine Zahl in einen String umzuwandeln oder ähnlichem.

Gerade wenn Du Spiele programmieren willst, musst Du extrem effizient programmieren. Und das geht nur mit excellenter Beherrschung der Grundlagen.

lg Voss

Antworten
Tobias E.
  • Forum-Beiträge: 180

28.07.2010, 20:47:23 via Website

Homer Simpson
Also wie ich das verstehe, ist nur die "Code-Syntax" die von Java (Grundlegende Elmente wie "switch-case" oder "if-else" ect.)

aber alles andere ist "Android spezifisch" ausgelegt..

[...]

ich weis eben nur nicht was ich zuerst machen sollte....

mich mit der java-android-syntax oder erstm mal "vollständig" nur mit der java-syntax auseinanderzusetzen!!

Die Java Syntax an sich ist nicht so umfangreich. Konzepte wie Schleifen, Verzweigung etc. kennst Du wahrscheinlich schon alle. Viel mehr gibt's da nicht. Alles andere steckt in den libraries, deren Funktionsumfang Du Dir nach und nach erarbeiten musst.

Wichtig ist zunächst daß Du das Grundprinzip von Objektorientierung und Vererbung gut verstehst. Das würde ich erstmal mit Java ohne Android lernen und auf jeden Fall angehen bevor ich in Android einsteige.

Für das Programmieren mit Android musst Du Dich kann in die ganzen Android Libraries einarbeiten, sowie darin wie eine App funktioniert. Anders als ein klassisches PC Programm kann eine App jederzeit unterbrochen werden und muss bei erneutem Aufruf wieder genau dort weiter machen wo sie unterbrochen wurde. Dazu ist ein recht ausgeklügelter "Activity LifeCycle" nötig den Du Dir zu Gemüte führen musst.

Ich würde anfangen mit:
Objektorientierung in Java allgemein (inklusive Vererbung, abstrakte Klassen etc.)
Dann zum Einstieg in Android die Beispiele des Android SDK durchgehen um die folgenden Sachen zu verstehen:
Activity Life Cycle
UI Komponenten (da findest Du wahrscheinlich etliche Komponenten wieder die Du schon vom Web-Design kennst)

Wie Du dann weiter machen möchtest kommt darauf an was für eine Art App Dir vorschwebt: 2D Spiele, 3D Spiele, Tools, ...

Antworten
TheEvilOne
  • Forum-Beiträge: 311

28.07.2010, 21:03:18 via Website

Was mir damals sehr geholfen hat war die Vorbereitung auf den SCJP (Sun Certified Java Programmer). Vor der Prüfung hatte ich schon ein paar Jahre Java-Programmieren auf dem Buckel, konnte aber mein Wissen damit vertiefen und hatte auch einiges Neues dazugelernt. Wenn man mit Java bisher noch nichts zu tun hatte kann man sich ja mal den Sun Certified Associate anschauen, der ist etwas leichter als der SCJP.

Antworten
Homer Simpson
  • Forum-Beiträge: 48

29.07.2010, 00:58:08 via Website

Danke herzlichst!!!

Diese Tipps haben geholfen...

dann mach ich mich nun erstmal dran java ansich "vollständig" zu beherschen.


Wenn man mal paar Programmiersprachen kennt, dann ist es viel einfacher einen Bezug herzustellen und man versteht recht schnell WIE WAS funktioniert.


Zudem hab ich ein Video2Brain über Java6 und Java5.5!! Wer v2b kennt weiss was ich meine wenn ich sage: EINFACH KLASSE ;)


Danke nochmals und man wird sich bestimmt noch das ein oder andere mal "lesen"

gruss by_homer

//edit

an dieser Stelle noch ne kleine Frage... da ich von Java5.5 und Java6 gelesen habe (evt gibts zwischenzeitlich noch mehr....ist lange her) frage ich mich, welches von beiden nun für die Programmierung zählt...kann Android die aktuellste Version von Java, oder ist dies auf eine bestimmte vers. beschränkt??

ps:evt ist dies eine sehr dumme Frage :P

— geändert am 29.07.2010, 01:00:40

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

29.07.2010, 03:03:50 via Website

Android basiert größtenteils auf Java 5. Das merkt man vor allen an Generics und dem vereinfachten for-loops. Einige Dinge fehlen wie z.b Swing&AWT was Grafische UI Elemente für Desktop Anwendungen ermöglicht. Dafür sind wieder andere Dinge an Board gekommen wie eine JSON API sowie der HTTPClient.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Christoph Widulle
  • Forum-Beiträge: 42

29.07.2010, 03:07:47 via Website

Android ist Java 6 konform. Bis auf ein paar Ausnahmen.

Java ist immer abwärstkompatibel. Alles was in 5 ist, hat auch die Version 6.

Antworten
Homer Simpson
  • Forum-Beiträge: 48

29.07.2010, 03:13:00 via Website

Wollte gerade fragen, was mit den Swing-funktionalitäten ist....zufällig wurde es aber bereits beantwortet!!!

Schade...swing sieht sehr einfach aus :(


Hab mich nun 4 geschlagene Stunden durch die Videotrainings von Java6 by Video2Brain beschäfftigt und interessante sachen gelernt!

Hauptsächlich sehe ich nun etwas klarer durch die Objektorientierung in Java (Klassen, Methoden ect.) ...wobei ich mich aber noch etwas intensiever beschäfftigen muss, bevor ich wirklich gänzlich den überblick habe...


Weiter sind natürlich auch Fragezeichen aufgetaucht...


was ist mir den bekannten "imports" der vorgefertigten Javakomponenten? sind hier welche auch auf dem Android zugänglich?

um vertändlicher zu werden, nimm ich gleich ein Beispiel....Die "java.net" Komponente, welche man importieren kann, ermöglicht extrem hilfreiche Instanzen welche zur "Netzwerkspielereien" benötigz werden. Kann man dies unter Android auch "importen" oder ist dies nicht möglich? wie sieht es allgemein aus mit dem "import" von zusätlichen "java-komponenten"?


Weiter...

als Webdesigner, versuch ich mich immer daran zu Orientieren, was ich bereits kenne...

da php und java als Konkurenten gelten, bedeutet dies das java das selbe kann!

Nehmen wir z.b die verbindung und zusammenarbeit einer SQL Datenbank:

Mit PHP läuft dies auf dem Server ab...auf dem PC wird klassischerweise nur html ausgegeben...somit ist die "arbeit" auf der Serverseite gelagert d.h auch die ganze Logik und Sicherheit!!


Mit java ist dies direkt möglich....man kann also vom PC aus auf eine MySQL Datenbank zusteuern/verbinden und damit arbeiten!

auf dem Server selbst ist also nicht viel los...

nun bezüglich "sicherheit" kommen da bei mir paar !!! auf :) da aber auch die Logik beim ClientGerät geschrieben steht und somit auch die "Rechenleistung" (was bei Händys nicht gerade gross ist) kommt hier eine NEUE Frage an euch auf:


Ist es möglich, dass der Server (serverseitig am liebsten mit php) die gesammte "Netzwerk-Logik" erledigt und somit auf spezifische "Fragen" des Android-Geräts die richtige Antwort spuckt?

Ich würde das am ehsten vergleichen/beschreiben mit AJAX... Dort wirft der Client-Browser mit Javascript bei bestimmten "Ereignissen" ein HTTPRequest an den Server (übergibt lediglich paar bestimmte Parameter) und der Server wertet dies aus...macht demzufolge einen bestimmten Programmablauf....und gibt dann Antwort zurück!

Ein weltweit bekanntes solches AJAX schauspiel sieht man auf der Googel-Suchseite...wenn man dort z.b "ANDR" eingibt, kommt unten eine liste welche das suchwort vervollständigt! Diese Wörter sucht Google "Serverseitig" auf und schickt sie dann dem Client-Browser


Ist ein solches "Zusammenspiel" vom "Serverseitigem-Skript" und "Androidseitigem-Skript" möglich??? Kann Android (java) mit "php-code" zusammenarbeiten


Ich wäre sehr dankbar um hilfe bei diesem Punkt, da ich wirklich kein erfolg hatte bei der Suche nach einer Antwort auf diese Frage

Danke gruss by_homer

— geändert am 29.07.2010, 04:20:08

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

29.07.2010, 07:46:08 via Website

Was die verfügbaren Librarys angeht, liest Dich mal durch die Site: http://developer.android.com/ Dort findest Du eine komplette API - Doc unter dem Reiter "Reference". Unter anderem findest Du dort auch die Netzwerk Apis .. ist alles im SDK enthalten. Sofern Du mit Eclipse arbeitest, wird alles nahezu automatisch importiert, spätestens nach [CTRL] + [Shift] + [O] ....

Auch wenn Android eine eigene SQ-Lite implementierung eingebaut hat, kannst Du natürlich eine klassische Client - Server App entwerfen, die via Ajax, Soa, JSON oder so ähnlich simple Parameter an eine Server Applikation weitergibt und die Ergebnisse entgegen nimmt. Oder Du erledigst das selber... je nach Bedarf.

Du solltest Dir aber überlegen ob so eine simple Netzwerkanfrage an Server XY die Du an Deinen Server und Dein PHP Skript stellen willst, nicht auch Dein Handy erledigen könnte. Die zusätzliche Rechenleistung, die Du am Handy für evtl. zusätzliche Frameworks zur Umformulierung Deiner Suchanfrage benötigst wird durch das direkte Abfragen am Handy u.U. schon wieder wett gemacht. :)

Sinn macht es wenn größere Datenmengen durchforstet werden müssen, die Du auf Deinem Server auslagerst um die knappen Handy Ressourcen zu schonen.

lg Voss

Antworten
Homer Simpson
  • Forum-Beiträge: 48

29.07.2010, 20:19:38 via Website

Danke Jörg

Denke auch, das kleine Netzwerkaufgaben direkt vom Handy gemacht werden sollten...wie du sagst, nur für intensieve Netzwerkaufgaben macht dies sinn!!

:D Zum Glück hat mich das "Webdesigne" dem ENGLISH bemächtigt...sonst wär ich schön aufgeschmissen :D

ps: cooles Bild/Avatar Jörg ;)

Antworten