Invité Posté(e) 2 mai 2010 Share Posté(e) 2 mai 2010 (modifié) Bonjour la communauté FrAndroid, nouvellement inscrit ici (1er Post) J'ai récemment fait l'acquisition d'un LG "Eve", et donc en bon bidouilleur qui se respecte je me suis dit, pourquoi pas commencer à faire des petites applis simples, puis augmenter le niveau petit à petit... restait un problème de taille, je suis plus C++ que Java... mais après tout... je fais donc fi de tout ça et me replonge un peu dans Java, glanant des infos par ci par là sur le fonctionnement du SDK d'android... Et aujourd'hui premier cap franchi, j'ai crée ma première appli (minimaliste certes) C'est une clin d'oeil à une autre de mes activités "l'Airsoft" NOM : AAC : Android Airsoft Converter VERSION ACTUELLE : 1.0.1 SITE WEB : Cliquez-la COMPATIBILITÉ : 1.5, 1.6, 2.1 (Testé) DESCRIPTIF : Petit gadget pour effectuer facilement et sans se prendre la tête les conversion "usuelles" pour la pratique de l'airsoft, cette application est dédiée aux gens qui n'aiment pas, ou son mauvais en calcul, qui ne se souviennent pas des formules de conversion, qui n'ont pas forcement un papier et un stylo sur eux pour les faire, ou bien qui sont tout simplement un peu fainéants et préfèrent une méthode simple et rapide. SUIVI DU DÉVELOPPEMENT : 01/05/2010 : Sortie de la version initiale (v1.0) 04/05/2010 : Sortie de la version 1.0.1 - Réorganisation du code pour le rendre plus clair et maintenable. - Transfert de toutes les chaines de caractères dans le fichier "strings.xml". - Correction d'erreur de formulation pour certains textes. - Ajout des conversions m/sec vers FPS et inversement. - Fixation de l'utilisation de l'application en mode "portrait". - Correction d'un bug : (Clavier virtuel qui ne s'affichait pas automatiquement au focus sur un EditText). PHOTOS : VIDÉO VERSION 1.0.1 : http://www.youtube.com/watch?v=TpvvKB5X_EQ Modifié 5 mai 2010 par Davidou2a Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
kartouche Posté(e) 2 mai 2010 Share Posté(e) 2 mai 2010 (modifié) Airsofteur aussi je vais teste, en revanche je suis pas contre un petit QR Code pr DL Edit : Je l'ai téléchargé, sympa mais un ajout des fonctions FPS -> M/S et M/S -> FPS serrait utile, le M/s reste l'unité légale Modifié 2 mai 2010 par kartouche Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 2 mai 2010 Share Posté(e) 2 mai 2010 (modifié) C'est envisagé ;) c'etait qu'un premier jet... Je prends donc note... QR Code ajouté :) Modifié 2 mai 2010 par Davidou2a Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 3 mai 2010 Share Posté(e) 3 mai 2010 Une petite correction dans les messages : Dire plutôt "Votre lanceur tire à" Et corriger "Vous êtes plus dans la la légalité ..." par "Vous n'êtes plus dans la légalité ..." ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
SlaXX Posté(e) 3 mai 2010 Share Posté(e) 3 mai 2010 Mêmes remarques de mon côté :) Mais pour une 1ère app ça va :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 4 mai 2010 Share Posté(e) 4 mai 2010 UP : Sortie v 1.0.1 (Voir 1er post) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ADNFX Mobile Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 Sympa la petite vidéo de démo .... des ptits screenshots dans le premier post seraient cool également :) Bon je prends pour tester même si l'airsoft je connaissais pas lol Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 Salut, j'aurai bien voulu mettre quelques screeshoots, mais bizzarement j'arrive pas a faire reconnaitre mon LG GW620 à ma Gentoo david@MyBox ~/Desktop/ANDROID/android-sdk-linux/tools $ adb devices * daemon not running. starting it now * * daemon started successfully * List of devices attached ???????????? no permissions Donc forcement "ddms" marche pas... je cherche si je trouve je posterai des screens... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 C'est bon pour les screens :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ADNFX Mobile Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 ;) merci pour les screens (ça donne envie d'en savoir plus :) ) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 (modifié) Bah je compte mettre éventuellement les sources en totalité ou en partie en-ligne a titre éducatif, bon après comme je dis toujours chacun code de telle ou telle façon, personnellement j essai d être le plus "propre" possible ne pas faire de surplus inutile, néanmoins je suis pas parfait du tout ;) Sinon j essai de rester fidèle a mes "conventions" de nommage, et ma façon de faire pour que l'ensemble soit cohérent un minimum et maintenable par la suite Pour ma prochaine appli je pense faire un Widget avec les alertes GLSA (Alertes de sécurité) de GNU/Linux Gentoo... Sinon je pense a un truc avec Google Maps mais comme je suis en API 3 sur mon tel je pourrai pas le tester sauf si j'arrive a faire du code compatible en ascendant... mais bon avant d'en parler va falloir bien reflechir ;) Modifié 5 mai 2010 par Davidou2a Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ADNFX Mobile Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 t'as complètement raison ! Aussi un truc important (et je vais devoir revoir entièrement mon code pour ça) dans le dév, l'optimisation et la non surcharge de la mémoire. Et utiliser des design pattern, ça simplifie vraiment un max :) Rien que le singleton peut vraiment sauver la vie .... l'observateur me semble aussi très judicieux (par exemple actuellement je code moi même salement les actualisations d'interface alors que le design pattern observateur pourrait s'en charger tout seul) ... bref je m'en foutais un peu au début mais les performances de l'appli s'en ressentent vite quand tu fais n'importe quoi lol .... En tout cas, je suis complètement d'accord avec toi sur les conventions de nommage et le code propre!! :D Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 mai 2010 Share Posté(e) 5 mai 2010 (modifié) En general j'adopte une convention elle plais ou pas, mais j'y reste plus ou moins fidele... Genre mes nom sont du genre MaClasse_TypeUnNomClair | FPS2Joules_EditTextUserTypeFPS par exemple... c'est clair et on a pas besoin de chercher 50ans perso je préfère ajouter le nom de la classe en prefixe pour pas me planter quand 2 classes se ressembles comme c est le cas dans mon appli... Voila une partie de ce que j'ai fait (j'ai volontairement pas séparé les listeners des boutons des classes de "base" Point d'entrée du programme la Classe AAC.java package com.android.aac; import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.widget.Button; public class AAC extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /** Defs */ Button AAC_BoutonLancer = (Button) findViewById(R.id.AAC_BoutonLancer); /** Launch */ AAC_BoutonLancer.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { /** Sound Click */ MediaPlayer mp = MediaPlayer.create(AAC.this, R.raw.machine_gun); mp.start(); /** Next Page -> */ Intent intent; intent = new Intent(AAC.this, MenuAAC.class); startActivity(intent); } } ); } } main.xml <?xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical"> android:id="@+id/AAC_Logo" android:layout_gravity="center_horizontal" android:scaleType="fitXY" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/airsoft"> android:text="@string/AAC_BoutonLancer" android:id="@+id/AAC_BoutonLancer" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_width="fill_parent"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:id="@+id/AAC_TextCopyright" android:text="@string/AAC_TextCopyright"> FPS2Joules.java package com.android.aac; import java.text.DecimalFormat; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class FPS2Joules extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fps2joules); /** Defs */ Button FPS2Joules_BoutonCalculer = (Button) findViewById(R.id.FPS2Joules_BoutonCalculer); /** OnClick To Calculate */ FPS2Joules_BoutonCalculer.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { /** Defs */ EditText FPS2Joules_EditTextFPS = (EditText) findViewById(R.id.FPS2Joules_EditTextFPS); EditText FPS2Joules_EditTextPoids = (EditText) findViewById(R.id.FPS2Joules_EditTextPoids); TextView FPS2JoulesTextViewResultat = (TextView) findViewById(R.id.FPS2JoulesTextViewResultat); DecimalFormat FPS2JoulesDecimalFormat = new DecimalFormat("########.00"); String FPS2Joules_StringFPS = FPS2Joules_EditTextFPS.getText().toString(); String FPS2Joules_StringPoids = FPS2Joules_EditTextPoids.getText().toString(); double FPS2Joules_DoubleFPS = Double.valueOf(FPS2Joules_StringFPS) * 0.3048; double FPS2Joules_DoublePoids = Double.valueOf(FPS2Joules_StringPoids) / 1000; double FPS2Joules_DoubleResultat = 0.5 * FPS2Joules_DoublePoids * FPS2Joules_DoubleFPS * FPS2Joules_DoubleFPS; /** Def a String with the value of "FPS2Joules_DoubleResultat" convert in String for the TextView */ String FPS2Joules_ResultAlertString = getResources().getString(R.string.FPS2Joules_AlertString, String.valueOf(FPS2JoulesDecimalFormat.format(FPS2Joules_DoubleResultat))); String FPS2Joules_ResultValidString = getResources().getString(R.string.FPS2Joules_ValidString, String.valueOf(FPS2JoulesDecimalFormat.format(FPS2Joules_DoubleResultat))); String FPS2Joules_ResultValidStringMinusZero = getResources().getString(R.string.FPS2Joules_ValidStringMinusZero, String.valueOf(FPS2JoulesDecimalFormat.format(FPS2Joules_DoubleResultat))); /** Sound Click */ MediaPlayer mp = MediaPlayer.create(FPS2Joules.this, R.raw.gunshot); mp.start(); /** Conditions */ if(FPS2Joules_DoubleResultat > 2.0) { /** Sound Alert */ MediaPlayer mp1 = MediaPlayer.create(FPS2Joules.this, R.raw.alert); mp1.start(); /** Show Results */ FPS2JoulesTextViewResultat.setText(FPS2Joules_ResultAlertString); } else { /** Workaround for the number with 0.45 for example */ if(FPS2Joules_DoubleResultat < 1.0) { /** Show Results */ FPS2JoulesTextViewResultat.setText(FPS2Joules_ResultValidStringMinusZero); } else { /** Show Results */ FPS2JoulesTextViewResultat.setText(FPS2Joules_ResultValidString); } } } } ); } } fps2joules.xml <?xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#fff"> android:id="@+id/FPS2Joules_ImageWarning" android:src="@drawable/warning" android:layout_gravity="center_horizontal" android:scaleType="fitXY" android:layout_height="wrap_content" android:layout_width="wrap_content"> android:id="@+id/FPS2Joules_LLayout_01" android:orientation="horizontal" android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content"> android:id="@+id/FPS2Joules_LLayout_02" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:paddingLeft="10px"> android:id="@+id/FPS2Joules_TextViewAskFPS" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#000" android:padding="10px" android:text="@string/AskTextViewFPS"> android:id="@+id/FPS2Joules_TextViewAskPoids" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#000" android:paddingLeft="10px" android:paddingTop="22px" android:text="@string/AskTextViewPoids"> android:id="@+id/FPS2Joules_LLayout_03" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="10px" android:layout_weight="2"> android:id="@+id/FPS2Joules_EditTextFPS" android:layout_width="fill_parent" android:layout_height="fill_parent" android:inputType="numberDecimal" android:lines="1" android:maxLines="1" android:textColor="#000" android:minWidth="100px"> android:id="@+id/FPS2Joules_EditTextPoids" android:layout_width="fill_parent" android:layout_height="fill_parent" android:inputType="numberDecimal" android:lines="1" android:maxLines="1" android:textColor="#000" android:minWidth="100px"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="15px" android:id="@+id/FPS2Joules_BoutonCalculer" android:text="@string/ALL_BoutonCalculer" android:padding="20px"> android:text="" android:id="@+id/FPS2JoulesTextViewResultat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:paddingLeft="10px" android:paddingRight="10px" android:paddingTop="10px" android:textColor="#f00"> Voila en gros comment j ai concu le bouzin... j'ai pas tout mis mais bon c est juste pour en parler et puis toutes remarques peut etre que benefique, surtout que je suis pas tres tres java... D'ailleurs on le vois j'indente façon C pas facon java ;) Modifié 5 mai 2010 par Davidou2a Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nenzo Posté(e) 8 mai 2010 Share Posté(e) 8 mai 2010 (modifié) sa sent le : "rohh putin mon écran est cassé me suis prit une bille en plein de dans !!! robert tu fait galèré !!!! " bonne appli cependant Modifié 8 mai 2010 par Nenzo Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 8 mai 2010 Share Posté(e) 8 mai 2010 Ahah ça sent l'habitude de la casse de téléphone ;) j'ai cassé des tas de choses en partie cependant jamais le telephone :) bien que ce dernier en general souffre avec moi... il est meme tombé en mer du bateau... si si :o Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.