Schüler-Uni eichelberger@sse.uni-hildesheim.de
Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App? 10 5. War das smart? Geht es smarter? 22 6. Ist Informatik etwas für mich? 25, AG SSE 1
Wer ist das? Wer ist das? Geboren in Franken WDR Computerecke Erster Computer Schule: Wahlkurs Informatik Studium in Würzburg Abschluss und Doktorarbeit in Würzburg Jetzt: SSE Uni Hildesheim Programmierpraktikum I, AG SSE 2
Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App? 10 5. War das smart? Geht es smarter? 22 6. Ist Informatik etwas für mich? 25, AG SSE 3
Was ist ein Smartphone? Was ist ein Smartphone?, AG SSE 4
Was ist ein Smartphone? Sind alle Smartphones gleich? Gerät: Display, Sensoren, Akko Betriebssystem Apple ios: iphone Google Android: HTC, Samsung, Sony, LG, Motorola, Windows Phone: HTC, LG, Samsung, Nokia, Apps Apple App Store > 580.000 Google Play > 360.000 Microsoft Marketplace ~20.000 jeder kann Apps entwickeln., AG SSE 5
Was ist ein Smartphone? Ist das was für mich? Ich habe kein Smartphone Ich kann aber nicht Programmieren Geht dabei mein Smartphone kaputt? Ziel: Kleines Spiel Zutaten: Man nehme ein wenig Idee Mathematik Programmierverständnis Alle Folien und Beispiele unter www.sse.uni-hildesheim.de, AG SSE 6
Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App? 10 5. War das smart? Geht es smarter? 22 6. Ist Informatik etwas für mich? 25, AG SSE 7
Wie entwickelt man für Smartphones? Wie funktioniert Software-Entwicklung? Anforderungen Entwurf Smart? Programm (Quelltext) Android: Java iphone: ObjectiveC Die Entwicklungsumgebung ist kostenlos Download Ausführbares Programm Android: Eclipse iphone: Xcode (nur Mac) Test 8
Wie entwickelt man für Smartphones? Was sind unsere Anforderungen? Das Spiel muss aus einem einfachen Spielfeld bestehen. Es muss eine Schlange dargestellt werden. Die Schlange muss sich bewegen. Der Schlange soll durch Neigung des Smartphones gesteuert werden. Das Spiel kann Spielregeln haben Punkte (positiv, negativ) Spielende (Game over) Das Spiel kann weitere Funktionalität bereitstellen Highscore-Tabelle Hauptmenü, Hilfe, Einstellungen Nicht heute! 9
Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App? 10 5. War das smart? Geht es smarter? 22 6. Ist Informatik etwas für mich? 25, AG SSE 10
Wie bauen wir die App? Wie zeichnen wir eine Schlange mit dem Smartphone? (1) Mathematik: Koordinatensystem 0,0 20 320 x Was können wir damit machen? 34 72 104 480 y Linien, Rechtecke, Text, Bilder 2D und 3D Grafik mit Schatten (nicht jetzt) Bei der Schlange fehlt was Hausaufgabe Was passiert, wenn das Display eine andere Größe hat? Bibliothek, die sich darum kümmert Ggf. geeignete Bilder bereitstellen Smart? 11
Wie zeichnen wir eine Schlange mit dem Smartphone? (2) Typisches Vorgehen In Eclipse ein neues Android-Projekt anlegen Name eingeben Android Ziel-Version auswählen Paketname eingeben, z.b. de.schueleruni Das neue Projekt kann direkt ausgeführt werden Auf dem Smartphone: Menu Settings Applications Development USB debugging Auf dem Projekt rechte Maustaste drücken Run as Android Application Wir verwenden ein vorbereitetes Projekt, das uns die Arbeit erleichtert. 12
Wie zeichnen wir eine Schlange mit dem Smartphone? (3) Relevanter Ausschnitt: public void present(float deltatime) { Graphics g = game.getgraphics(); g.drawpixmap(assets.background, 0, 0); } g.drawpixmap(assets.headup, 20, 34); g.drawpixmap(assets.tail, 20, 72); g.drawpixmap(assets.tail, 20, 104); 13
Wie bauen wir die App? Wie bewegt sich die Schlange? links! links! runter! rechts! hoch! rechts! Erkenntnisse: Rasterpositionen vereinfachen die Arbeit Wir benötigen vier Richtungen Die Richtung bestimmt die nächste Position des Kopfes Plan: Alle restlichen Teile werden genau auf die Position des Vorgängers gesetzt Dann wird die Position des Kopfes gesetzt 14
Wie bauen wir die App? Was passiert an den Kanten? hoch! hoch! hoch! Wenn die Kopf-Position kleiner 0, dann mache an größter Raster- Position weiter. rechts! rechts! rechts! Wenn die Kopf-Position größer als Raster, dann mache an 0 weiter. 15
Wie bauen wir die App? Wie verwalten wir die Schlange? Wir beschreiben eine Schlange durch Bewegungsrichtung des Kopfes Ihre Teile als Liste, wobei jedes Teil x-position (Ganzzahl, in Rastereinheiten) y-position (Ganzzahl, in Rastereinheiten) Teile In Java (vereinfacht) class SnakePart { class Snake { int x, y; Direction direction; } List<SnakePart> parts; } 16
Wie bauen wir die App? Wie sieht der Bewegungs-Algorithmus aus (update-methode)? SnakePart head = parts.get(0); // Setze alle Teile auf die Position des Vorgängerteils for (int i = parts.size(); i > 0; i--) { before = parts.get(i-1); part = parts.get(i); part.x = before.x; part.y = before.y; } // Setze neue Kopfposition aufgrund der Liste if (direction == Direction.UP) { head.y -= 1; } // analog DOWN, LEFT, RIGHT // Korrigiere Randpositionen falls notwendig if (head.x < 0) { head.x = WORLD_WIDTH; } // analog x>word_width, y<0, y>world_height 17
Wie bauen wir die App? Wie wird die Schlange gezeichnet (present-methode)? Zeichnen der Schlange Für alle Teile in der Liste: zeichne an (x * Rasterbreite, y * Rasterhöhe) In Java SnakePart head = parts.get(0); drawpixmap(head.getpixmap(), head.x * WORLD_CELL_WIDTH, head.y * WORLD_CELL_HEIGHT); for (int i = parts.size(); i > 0; i--) { drawpixmap (Assets.tail, parts.get(i).x * WORLD_CELL_WIDTH, parts.get(i).y * WORLD_CELL_HEIGHT); } 18
Wie bauen wir die App? Wie können wir mit dem Smartphone die Schlange steuern? (1) Beschleunigungssensor Drei Achsen Werte als Anteile der Beschleunigungskonstanten g Für den Wurm bedeutet x < 1 rechts x > 1 links y < 1 hoch y > 1 runter. Sonst steht der Wurm Smart? z > 0 z < 0 19
Wie bauen wir die App? Wie können wir mit dem Smartphone die Schlange steuern? (1) float accelx = game.getinput().getaccelx(); float accely = game.getinput().getaccely(); dir = Direction.UNDEFINED; if (accelx < -1) { dir = Direction.RIGHT; } else if (accelx > 1) { dir = Direction.LEFT; } else { if (accely < -1) { dir = Direction.UP; } else if (accely > 1) { dir = Direction.DOWN; } } 20
Wie kann ich nun zuhause selbst entwickeln? Java installieren (oracle.com) Android SDK installieren (developer.android.com) Mindestens: 2.3.3 (API 10), 2.2 (API 8), 1.5 (API 3) Android Virtual Device (AVD) konfigurieren (für Android 2.3) Eclipse installieren (www.eclipse.org) Android plugin für Eclipse installieren Help Install new Software, dort als Quelle eingeben http://dl-ssl.google.com/android/eclipse/ Installationsort des Android SDK eingeben Beispiele in Eclipse importieren via File Import General Existing Project into Workspace 21
Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App? 10 5. War das smart? Geht es smarter? 22 6. Ist Informatik etwas für mich? 25, AG SSE 22
War das smart? Geht es smarter? Was war bislang smart? Wir haben nicht drauflos gehackt! Wir haben Android nicht direkt verwendet sondern über eine Bibliothek. Skaliert die Ausgaben Gleicht Unterschiede der Betriebssysteme aus Ist wiederverwendbar In Industrie: domänen-spezifisch Konzentrieren auf das Wichtige Beispiel: Physik-Engines wie phys2d, emini, metali Wir haben Android-Sensoren ausgenutzt 23
War das smart? Geht es smarter? Geht es smarter? Energie Smartphones sind anders 97 Wunsch: Automatische Optimierung des 95 Energieverbrauchs Wunsch: Entwicklung für mehrere Plattformen Android, Windows, iphone 99 93 91 89 87 85 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 0 1 2 3 4 5 6 7 8 24
Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App? 10 5. War das smart? Geht es smarter? 22 6. Ist Informatik etwas für mich? 25, AG SSE 25
Ist Informatik etwas für mich? Was macht ein Informatiker? Programmieren? Berater (Consultants) Software Entwicklung Lehre / Forschung Gibt es Stellen? Männerberuf? Softwareentwickler für das Warenwirtschaftssystem eevolution ngroup, Hildesheim IT Consultant in Frankfurt Projektmanager im Dialogmanagement bei www.otto.de Otto GmbH & Co. KG Prozessmanagement Schahper METRO Group Qualitätsmanagement im Gutenberg Rechenzentrum GmbH & Co. KG, Hannover IT-Consultant bei arvato services (Bertelsmann) Strategischer Einkauf bei der NEOMAN Bus GmbH Projektmanagement und Softwareentwicklung bei der Hochschul-Informations- System GmbH, Hannover LANDRÉ GmbH im Bereich Merchandising und Vertriebscontrolling Vertriebsmanagerin bei der HIS GmbH, Hannover Junior Process Expert CRM bei der OSRAM GmbH Logistischer Änderungsdienst bei der NEOMAN Bus GmbH Anwendungsdesignerin bei der FinanzIT Internationales Trainerprogramm StartUp Cross bei Volkswagen Nutzfahrzeuge, AG SSE 26
Ist Informatik etwas für mich? Ist das was für mich? Spaß am Problemlösen Interesse an Mathematik Keine Abneigung gegen Englisch, AG SSE 28 27