kramann.info
© Guido Kramann

Login: Passwort:










EmbSyst
1 day_by_day
2 Eingebettete_Systeme
..2.1 Softwareentwicklung
....2.1.1 AgileSoftwareentwicklung
....2.1.2 Verhalten
....2.1.3 Entwurfsmuster
....2.1.4 FuzzyRegler
....2.1.5 Uebung
..2.2 Arduino
....2.2.1 Uebung1
..2.3 Android
....2.3.1 UML
......2.3.1.1 Volumenberechnung
......2.3.1.2 UML_Klassendiagramm
......2.3.1.3 Konstruktor
......2.3.1.4 Statische_Variable
....2.3.2 bluej
....2.3.3 Threads
....2.3.4 Interfacedesign
....2.3.5 Android
......2.3.5.1 Getting_Started
......2.3.5.2 App
......2.3.5.3 Beispielprojekt
........2.3.5.3.1 Richtlinien
........2.3.5.3.2 Anforderungen
........2.3.5.3.3 Layout
........2.3.5.3.4 Projekt_einrichten
........2.3.5.3.5 Refactoring
........2.3.5.3.6 Icon
........2.3.5.3.7 Icon2
........2.3.5.3.8 Kurzanleitung
........2.3.5.3.9 Architektur
........2.3.5.3.10 Anwendungsklasse
......2.3.5.4 Threads
......2.3.5.5 Activities
......2.3.5.6 Was_ist_wo
......2.3.5.7 Regelungssysteme
........2.3.5.7.1 Servo
........2.3.5.7.2 Fahrzeug
......2.3.5.8 ADB_Apps
......2.3.5.9 Veroeffentlichen
......2.3.5.10 Einzelheiten
........2.3.5.10.1 Bildschirmaufloesung
........2.3.5.10.2 Parameter
........2.3.5.10.3 Permission
........2.3.5.10.4 Latenzzeit
......2.3.5.11 Tonerkennung
........2.3.5.11.1 Wahrscheinlichkeitsrechnung
........2.3.5.11.2 Kovarianz_Scilab
........2.3.5.11.3 Java_Threads
........2.3.5.11.4 Java_Reflection
....2.3.6 Processing
......2.3.6.1 Installation
......2.3.6.2 Erste_Schritte
......2.3.6.3 Mechatronik
......2.3.6.4 Bibliotheken
......2.3.6.5 Uebung
......2.3.6.6 Snippets
........2.3.6.6.1 Dateioperationen
........2.3.6.6.2 Bilder
........2.3.6.6.3 GUI
........2.3.6.6.4 Text
........2.3.6.6.5 PDF
........2.3.6.6.8 Maus
........2.3.6.6.10 Zeit
........2.3.6.6.13 Animation
........2.3.6.6.15 Simulation
......2.3.6.7 Referenzen
....2.3.7 Android_Processing
......2.3.7.1 Basics
......2.3.7.2 Einrichten
......2.3.7.3 Crossplattform
......2.3.7.4 sinus
......2.3.7.5 sample
......2.3.7.6 analyse
......2.3.7.7 synthese
......2.3.7.8 Hilfsapps
......2.3.7.9 Eigene_Library
....2.3.8 Processing_VR
....2.3.9 Shapes3D
....2.3.10 TextToSpeech
....2.3.11 Internetprogrammierung
......2.3.11.1 Codegenerierung
......2.3.11.2 PHP_Programmierung
......2.3.11.3 PHP_OOP
......2.3.11.4 Java
......2.3.11.5 UDP
......2.3.11.6 Internetkontrolle
........2.3.11.6.1 Kamerabild
....2.3.12 OSC
......2.3.12.1 Datenaustausch
......2.3.12.2 i2audiolab
......2.3.12.3 Ardour
....2.3.13 Netzwerkprogrammierung
....2.3.14 JNI
....2.3.15 Erweitern
......2.3.15.1 sprich
......2.3.15.2 spiel
....2.3.16 thbvr
....2.3.17 Reflection
....2.3.18 Script
....2.3.19 Java3D
3 Echtzeitprogrammierung
..3.1 Echtzeit
..3.2 Korrektheit
..3.2 Semaphoren
..3.3 Hardware
..3.5 Synchronprogramm
..3.6 Zustandsmaschine
..3.7 Arduino
....3.7.1 Uebung
....3.7.2 RTOS
....3.7.3 Scheduler
....3.7.4 Semaphor
......3.7.4.1 Laufkatze
......3.7.4.2 Java
......3.7.4.3 Semaphor
....3.7.5 Messages
..3.8 Android
....3.8.2 Threads
......3.8.2.1 Java
......3.8.2.2 Synchronisierung
..3.9 Petrinetze
....3.9.1 Installation
....3.9.2 Test
4 KI
..4.1 Unueberwachtes_Lernen
..4.2 Agentensysteme
....4.2.1 Architekturen
......4.2.1.1 Verhalten
......4.2.1.2 Entwurfsmuster
....4.2.2 SUMO
......4.2.2.1 GettingStarted
......4.2.2.2 Antrieb
......4.2.2.3 Sensoren
......4.2.2.4 Zeitbasis
......4.2.2.5 Fernsteuerung
......4.2.2.6 Umsetzung_Fernst
......4.2.2.7 Fernsteuerung3
......4.2.2.10 Umsetzung
......4.2.2.11 Sockelsoftware
......4.2.2.12 Plan
......4.2.2.13 Lernen
........4.2.2.13.1 Parameter
........4.2.2.13.2 Identifikation
........4.2.2.13.3 Java
..4.3 Genetische_Algorithmen
....4.3.1 Heuristiken
....4.3.2 Genalgorithmus
..4.4 Kalmanfilter
....4.4.1 Vorarbeit
....4.4.2 Minimalversion
....4.4.3 Beispiel
5 Bildverarbeitung
..5.1 Gestalttheorie
..5.2 Bildverarbeitung
6 Technische_Systeme
..6.1 Kulturgeschichte
..6.2 Technikphilosophie
..6.3 Anthropozaen
7 Literatur
kramann.info
© Guido Kramann

Login: Passwort:




Icon für TapeEcho und der Name

(EN google-translate)

(PL google-translate)

Hinweis: Icons können im Processing-Ordner in der Größe 36x36, 48x48 und 72x72 Pixel abgelegt werden.
  • Namenskontion für die Icons: icon-36.png, icon-48.png, icon-72.png
  • D.h. man sollte noch in Processing die Icons einführen und dann nach Eclipse übergehen!

Das Icon und die Namensgebung der App sind ziemlich wichtig, da sie dasjenige sind, was auf Google-Play nach außen hin sichtbar ist. Die meisten Besucher der Website werden sich Apps nicht näher anschauen, wo berits das Icon uninterssant oder unprofessionell wirkt.

Grundsätzlich hat man als Einzelkämpfer zunächst einmal schlechte Karten, sowohl weil man eine sehr geringe Manpower für die eigentliche Entwicklung besitzt, als auch dass man wenig Erfahrung und Kapazität für gezielte Werbung hat.

Eine Strategie mit dieser Grundsituation umzugehen, wäre, einfache Dinge zu machen, aber für diese originelle und gute Lösungen zu finden.

Der Entwurf des Layouts dieser App ist sicher nicht besonders ambitioniert. Aber da Schlichtheit hier eine Anforderung ist, passend.

Der Naturforscher Jakob von Uexküll hat die Feststellung getroffen, dass Tiere typischerweise an ihre Umwelt perfekt angepaßt sind. Ein Reh ist nicht besser als ein Pantoffeltier, aber komplexer. In diesem Sinne kann man auch bei der App-Entwicklung mit einer einfachen, aber passenden Lösung punkten.

Der Name TapeEcho

Nach einer kurzen Recherche kam heraus, dass es eine Musikgruppe gibt, die Echotape heißt. Andersherum gäbe es also Konfusion.

TapeEcho gibt einfach wieder, um was es sich handelt: um eine Software-Umsetzung eines Echo Tapes. Der Name ist also weniger ein gefälliger markenname, als eine Suchhilfe.

Das Icon

Alles vorab Gesagte gilt auch für das Icon. Da ich keine Werbefirma und ein Marktforschungsinstitut damit beauftragen kann, das bestmögliche Icon für mich zu entwickeln, muss das Icon auf irgendeine schlichte Weise passend werden.

Die Benutzung von Tools birgt die Gefahr, dass man zwar ein professionelles Aussehen hinbekommt, jedoch das Ergebnis nicht verbergen kann, dass es mit einem Standardtool erzeugt wurde. Das Ergebnis hat damit kein Alleinstellungsmerkmal.

Auf Dinge wie 3D- und Licht-Effekte möchte ich auch verzichten. Auch hier gilt: Das können andere besser. Es wird immer unprofessionell aussehen.

Statt dessen möchte ich mich bewußt für schlichte zweidimensionale Formen entscheiden. Statt eines weit verbreiteten Tools werden die Formen mit Hilfe von Processing erzeugt, als PDF exportiert, dann in Gimp nachbearbeitet, um insbesondere eine Farbe als transparent zu definieren und verschiedene Auflösungen des Icons zu erzeugen.

Eine Besonderheit bei processing ist die Möglichkeit, als vierten Parameter bei der Farbe den Transparenzgrad anzugeben. Dies ermöglicht die Realisierung einiger netter Effekte, die durch die sich ein damit erstelltes Icon von anderen abheben könnte.

Inhalt des Icons für TapeEcho

Auch hier sollte sich visuell wiederspiegeln, um was es sich bei der App handelt.

Grundidee wäre ein Tonbandgerät abstrahiert darzustellen und einen Aufnahmekopf verbunden mit einem Mikrofon darzustellen und dahinter zwei Abspielköpfe verbunden mit jeweils einem Lautsprecher.

Die Farbgebung kann aus dem Layout-Entwurf übernommen werden:

Element      ROT  GRÜN BLAU
Blaue Kästen 114  159  207
rot2         255  102  102
grün2        102  255  102
orange2      255  153    0
Nav hellgrün 153  255   51
Nav darkgrn    0  204    0
Nav hellgrau 178  178  178
Nav mittgrau 128  128  128 
Nav darkgrau  51   51   51

Code 0-1: Elemente im Layout und deren Farbwerte.

Es wird versucht im Icon nur diese Farben zu verwenden, die sich dann auch in der App wiederfinden.

import  processing.pdf.*;

    size(512,512);
    stroke(0);
    fill(0);


beginRecord(PDF, "echotape.pdf"); 
    background(255,255,255);
    
    noStroke();
//Hintergrundkreis    
    fill(114,  159,  207);
    ellipse(256.5f,256.5f,512,512);

//Band
    fill(51,   51,   51);
    rect(128,128,256,10);
//Rolle 1 
    //rotate(2.5f);
    translate(256.5f+128.0f,256.5f);
    fill(178,  178,  178);
    ellipse(0,0,256,256);
    
    fill(51,   51,   51);
    ellipse(0,0,64,64);
    
    fill(51,   51,   51);
    rect(250-256.5f,140-256.5f,12,64);
    rect(250-256.5f,512-140-64-256.5f,12,64);
    rect(140-256.5f,250-256.5f,64,12);
    rect(512-140-64-256.5f,250-256.5f,64,12);
    translate(-256.5f-128.0f,-256.5f);
    
//Rolle 2    
    translate(256.5f-128.0f,256.5f);
    fill(178,  178,  178);
    ellipse(0,0,256,256);
    
    fill(51,   51,   51);
    ellipse(0,0,64,64);
    
    fill(51,   51,   51);
    rect(250-256.5f,140-256.5f,12,64);
    rect(250-256.5f,512-140-64-256.5f,12,64);
    rect(140-256.5f,250-256.5f,64,12);
    rect(512-140-64-256.5f,250-256.5f,64,12);
    translate(-256.5f+128.0f,-256.5f);
    
//Mikrofon
    fill(51,   51,   51);
    rect(64,32,100,64);
    fill(51,   51,   51);
    rect(128+64-28,48,16,32);
//    fill(51,   51,   51);
    fill(255,  153,    0);
    rect(128+64-28+16,48+8,16,16);
    rect(128+64-28+16+16,48+8,16,48);
    int x = 128+64-28+16+16+8;
    int y = 48+8+48;
    fill(255,  153,    0);
    triangle(x-16,y,x+16,y,x,y+32);

    x+=48;
    fill(255,  102,  102);
    rect(x-16,y,32,32);
    rect(x-8,y-48-32,16,48+32);
    rect(x-8,y-48-32,48+32,16);
    fill(51,   51,   51);
    rect(x-8+48+32,y-40-32-24+8,24,32);
    int xx = x-8+48+32+8-8;
    int yy = y-40-32-24+8+16;
    triangle(xx,yy,xx+48,yy-32,xx+48,yy+32);
    
    
    x+=48;
    fill(102,  255,  102);
    rect(x-16,y,32,32);
    rect(x-8,y-24,16,24);
    rect(x-8,y-48-32+32+16,48+32+32,16);

    fill(51,   51,   51);
    rect(x-8+48+32+16,y-40-32-24+8+32+16,24,32);
    xx = x-8+48+32+8-8+16;
    yy = y-40-32-24+8+16+32+16;
    triangle(xx,yy,xx+48,yy-32,xx+48,yy+32);
    
    
    fill(51,   51,   51);
    ellipse(64,64,96,96);
    
    //Einen Monospace Font festlegen, der dann auch
    //in der App verwendet wird und in diese eingebettet wird.
    
    ///usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
    fill(255,  153,    0, 120);
    PFont p_font = createFont("DejaVuSansMono",96,true);
    textFont(p_font);
    text("tape",24,512-32);
    
    fill(102,  255,  102,120);
    text("echo",24+256-8,512-32);

    fill(51,   51,   51);
    rotate(-0.75);
    PFont p_font2 = createFont("DejaVuSansMono",20,true);
    textFont(p_font2);
    text("kramann.info",45,540);

endRecord();

Code 0-2: echotapeicon003.pde - Erstellt ein Icon als pdf-Datei.

Import des pdf-Icons nach Gimp.

Bild 0-1: Import des pdf-Icons nach Gimp.

tapeecho-Icon.

Bild 0-2: tapeecho-Icon.