sabato 27 aprile 2013

Step da seguire per creare un app in Android

Come creare un app per Android? E' una domanda che spesso mi è stata rivolta; semplice, ecco una piccola guida formato smart con immagini per creare una nuova app su android.

1) download e installazione dell'ambiente (eclipse + sdk) che ormai si puo' trovare a questo link
http://developer.android.com/sdk/installing/bundle.html (fino a qualche tempo fa dovevi installarti eclipse più plugin e configurazioni varie)
2) ad esempio estrarre il contenuto dallo zip sotto c:\
3) eseguire eclipse (volendo si puo' modificare il file ini portando la ram a 512)
4) con android sdk manager selezionare il pacchetto o i pacchetti da utilizzare per creare il progetto, procedere con il download e l'installazione
5) creare un nuovo device come emulatore tramite il Android Virtuale Device Manager
6) creare il nuovo progetto e utilizzare le stesse Api del device impostato sull'emulatore
7) far partire l'emulatore
8) eseguire il progetto sull'emulatore (ad esempio tasto destro sul progetto "run as" e "android application")
9) se si ha un device android basta collegarlo via usb, attendere qualche secondo ed eseguire il punto 8 scegliendo poi il device nella finestra che appare (ricordarsi di abilitare il device/telefonino all'installazione di app non ufficiali ed eventualmente abilitarlo al debug)

Da non dimenticare: se si vuole sviluppare un nuovo progetto o importarne uno gia creato con api che utilizzano banner, è necessario disporre il device con le api che accettino i banner, altrimenti non sarà possibile eseguire l'applicazione sul device.
Ad esempio se la l'applicazione è con banner e sdk 4.2.2 utilizzerò come target la "google api level 17"

Apertura del manager


Selezione del pacchetto da utilizzare


Creazione del nuovo progetto con Eclipse


Nuovo progetto test


Deploy dell app sul device

giovedì 25 aprile 2013

Aggiornamento MyBookstore

Aggiornata MyBookstore sul market di Android.

Di seguito gli aggiornamenti:
- possibilità di acquisire più dati con lo scan sul codice ISBN del libro; una volta partita l'applicazione premere su "Scan ISBN" e indirizzare la fotocamera del telefono sul codice del libro; il programma interroga il servizio di Google per caricare alcuni dati;
- inserite più proprietà del libro;
- rivisto il layout e spostati i banner in basso allo schermo.

martedì 16 aprile 2013

Lettura contenuto di un file da carattere a carattere in java

Con queste poche righe è possibile leggere il contenuto di un file dalla posizione di un carattere ad un altra; può ad esempio essere utile quando riceviamo un errore in un punto di un file xml e non possiamo ottenere altri tipi di errore.

public class main {

 public static void main(String[] args) {
  try {  
   FileInputStream fstream1 = new FileInputStream("c:\\test.txt");
   DataInputStream in1 = new DataInputStream(fstream1);
   try {    
    Writer writer = new StringWriter();      
    char[] buffer = new char[10024];   //esempio dimensione buffer

    Reader reader = new BufferedReader(new InputStreamReader(in1));    
    int n; 
    int fromChar=9; //esempio dal carattere 9
    int toChar=11; //esempio leggo 2 caratteri
    while ((n = reader.read(buffer)) != -1)
     writer.write(buffer, 0, n);   
    System.out.print("testo intero: "+writer.toString()+"\n");
    System.out.print("testo trovato: "+writer.toString().substring(fromChar,toChar));
   }catch(Exception e){
    System.out.print("errore lettura: "+e.getMessage());
   }
   finally{
    in1.close();
   }

  }catch(Exception e){
    System.out.print("errore: "+e.getMessage());
  } 
 }
}

venerdì 12 aprile 2013

Upload di un file con java servlet da una jsp

L'esempio mostra come inviare un file ad una servlet premendo un pulsante su di una form e salvarlo su una directory.
Il test risulta valido già dalla jdk 1.4.2
Ad esempio con Eclipse si crea un nuovo progetto web, si imposta il file xml secondo i parametri elencati qui sotto, si crea una form sulla index.jsp e infine si crea una nuova classe servlet.


web.xml e index.jsp
<?xml version="1.0" ?>
<web-app>
<display-name>nameproject</display-name>
<servlet>
<servlet-name>SaveFileUpload</servlet-name>
<servlet-class>namePackage.SaveFileUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SaveFileUpload</servlet-name>
<url-pattern>/SaveFileUpload</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


<form method="post" name="form2" action="SaveFileUpload" enctype="multipart/form-data">
Select file:<input type="file" name="file_upload" />
<input class="submit1" name="btn_sub" value="Upload" type="submit" />
</form>

class SaveFileUpload
public class SaveFileUpload extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
saveFile(request, response, "GET");
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
saveFile(request, response, "POST");
}

public void saveFile(HttpServletRequest request,
HttpServletResponse response, String methodGetPost)

ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
List fileItemsList=null;
try {
fileItemsList = servletFileUpload.parseRequest(request);
} catch (FileUploadException e1) {
errorServlet=true;
e1.printStackTrace();
}

FileItem fileItem = null;

Iterator it = fileItemsList.iterator();

String fileName = "";
while (it.hasNext()){
fileItem = (FileItem)it.next();

if(fileItem.getFieldName().equals("file_upload"))
{
String pathFile="";
Init init = new Init();
pathFile = "c:\\"; //example
pathFile = pathFile + request.getSession().getAttribute("user");
File dir = new File(pathFile);
if (!dir.exists()) dir.mkdirs();



fileName = fileItem.getName();
if (fileItem.getSize() > 0){
fileName = FilenameUtils.getName(fileName);
}

File saveTo = new File(dir, fileName);
try {
fileItem.write(saveTo);
}catch(Exception e){
e.printStackTrace();
}
response.setContentType("text/html");

PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title></title>");
out.println("</head>");
out.println("<body>");
out.println("File salvato correttamente.");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
}
}
}

lunedì 1 aprile 2013

Rimuovere link da apertura nuova scheda o tab in Firefox

Alla fine ce l'ho fatta, sono riuscito a rimuovere maledetti link che si aprivano quando selezionavo una nuova scheda o tab in firefox.
Come fare? Digitare nella barra degli indirizzi: about:config
Quindi trovare la voce: keyword.url
rimuovere il maledetto link e modificarlo ad esempio con http://www.google.com/search?ie=UTF-8&oe...&gfns=1&q=
Controllare bene con il cerca, che non ci siano altri link nelle varie keyword, altrimenti elimnarli o sostituirli con altri valori.