Archivi tag: app

app

Lista database popolari nello sviluppo delle app Mobile

fonte: five-popular-databases-for-mobile- 2014 – 2017 (tradotto e migliorato by Vargas Carmen)

http://www.lillysfreshpasta.com/4-questions-to-ask-when-you-buy-fresh-pasta/
http://www.lillysfreshpasta.com/4-questions-to-ask-when-you-buy-fresh-pasta/ appissue

pouchdb

Database Tipo di dati immagazzinamento Licenza Piattaforme supportate
BerkeleyDB
(Oracle)
relazionale, oggetti, coppie chiave-valore, documenti AGPL 3.0 Android, iOS (?)
Couchbase Lite documenti Apache 2.0 Android, iOS
LevelDB coppie chiave-valore New BSD Android, iOS (2017 OS X, Linux, Windows Phone, Illumos
SQLite relazionale Dominio Pubblico Android, iOS, Windows Phone, Blackberry
UnQLite coppie chiave-valore, documenti BSD 2-Clause Android, iOS, Windows Phone
Siaqodb oggetti, documenti (database che corre su .NET…) Siaqodb MonoMac, Universal Windows Platform (UWP), Xamarin.iOS, Xamarin.Android, Xamarin.Mac and Unity3D.
pouchdb (javascript) Pouchdb

BerkeleyDB

Berkeley DB è una famiglia di librerie open-source che consentono di gestire i dati sia in modo relazionale tradizionale (usando SQL) o come coppie chiave-valore (in cui entrambe le chiavi e i valori sono array di byte) o come oggetti Java o come documenti XML . Indipendentemente delle API che si sceglie, Berkeley DB promette l’indicizzazione, memorizzazione nella cache, transazioni, scrittura-singola / accesso de multi-lettura, ricerca full-text (per l’interfaccia SQL),  ripristino automatico dei guasti, replica, compressione e crittografia. Supporta inoltre sia in memoria e su disco i database.

Un’altra caratteristica interessante di Berkeley DB è che l’API SQL fornisce piena compatibilità con quella di SQLite. Di conseguenza, è possibile creare delle applicazioni SQLite utilizzano Berkeley DB come il motore di storage (immagazzinamento) sottostante, senza doverlo riscrivere. Tutto quello che se deve fare è creare un collegamento  (link) a una versione adatta della libreria Berkeley DB. Questa combinazione di SQLite e Berkeley DB  è stata segnalato como una che dona un eccellente rendimento in caso di altamente di app e dati altamenti concorrenti, e di una intensa scrittura di dati sul datbase.

Berkeley DB prevede API attacchi (BINDING)  per svariati linguaggi di programmazione, tra cui C ++ e Java, ed è stato compilato, eseguito e testato su diversi sistemi operativi, tra cui Android e iOS. Tuttavia, potrebbe essere messo al di fuori dalla sua licenza AGPL, nel caso in cui si desidera utilizzarlo nella vostra applicazione, ma non si desidera di distribuire il proprio codice sorgente, in cambio.

Si noti inoltre che, soprattutto a causa del suo sforzo per fornire funzionalità che ci si aspetta nei database client / server tradizionali, Berkeley DB è considerata come una soluzione relativamente pesante. Quindi, a meno che non si voglia assolutamente una caratteristica che viene offerto solo da Berkeley DB, si possono trovare e sgliere nel mercato altre alternative più leggere.

Aggiornamento: Anche se Berkeley DB supporta tecnicamente iOS, non può essere utilizzato in App “Apps Store” a causa di incompatibilità con licenza termini e condizioni di App Store.

Couchbase Lite

Couchbase Lite è un databaseorientato ai documenti (document-oriented) dove i dati vengono memorizzati come documenti JSON. Ciascun documento può avere uno o più allegati, che sono essenzialmente dati binari memorizzati e non interpretati  e caricati separatamente dal documento stesso. Couchbase Lite supporta indici persistenti (chiamati Viste – visualizzazioni), e usa Mappa-ridotta  per gestire e interrogare i dati.

Couchbase Lite, insieme a Couchbase Sync Gateway e Couchbase Server, sono i tre componenti della soluzione di database NoSQL JSON soluzione per mobile database offerto da Couchbase chiamato Couchbase Mobile. Una delle caratteristiche chiave di Couchbase mobile è built-in di sincronizzazione (attraverso Couchbase Sync Gateway) tra le banche dati locali (Couchbase Lite) e database nel cloud (Couchbase Server), che allevia lo sviluppatore dall’onere di scrivere il proprio codice di sincronizzazione. Al fine di supportare questa funzionalità, Couchbase Lite è dotato di un meccanismo di risoluzione dei conflitti che è molto simile a quello usato da Git.

Couchbase Lite fornisce un’API nativa sia per Android che per iOS, così come dei plug-in per gli strumenti, piu  ampiamente utilizzati (multipiattaforma), nello  sviluppo mobile: PhoneGap (Cordova)  e Xamarin.

aggiornamento (2017): couchbase Mobile è una piattaforma completa per lo sviluppo nel mondo delle app sia mobile, che web e anche per la Internet delle cose… vedi,  couchbase for mobile developer. e anche couchbase Mobile collegamento,

LevelDB

LevelDB è una libreria open-source (scritto da Google) che implementa un archivio di chiave-valore, in cui sia le chiavi che i valori sono array di byte, dove i dati vengono memorizzati in ordine di chiave (sulla base di alcuni, probabilmente personalizzati, funzione di confronto). LevelDB supporta aggiornamenti batch atomici, permette l’ iterazione in avanti e indietro soprai dati contenuti, istantanee (cioè consistenti viste, di sola lettura, dell’intero database del negozio), caching, l’integrità dei dati (utilizzando checksum), e la compressione dei dati automatica (utilizzando la libreria di compressione Snappy ). Un importante limitazione imposta dalla libreria è quella di che in qualsiasi momento, che massimo un processo puo interaggire con un database specifico in un determinato momento uno solo).

“LevelDB ha buone prestazioni in una vasta gamma di carichi di lavoro (lavori specifici)” per quello che dicono i suoi autori, e per i risultati di un punto di riferimento (benchmarking) che si sono messi insieme per dimostrare la loro richiesta attraverso il LevelDB with SQLite and Kyoto Cabinet (un’altra implementazione memoria dei coppie di chiave-valore).

LevelDB è scritto in C ++. sviluppatori iOS possono utilizzare direttamente nelle loro applicazioni o attraverso uno dei numerosi involucri Objective-C che sono disponibili per esso. Gli sviluppatori Android possono utilizzare LevelDB tramite JNI e NDK.

SQLite

SQLite è una libreria open-source C per la gestione dei database relazionali che possono essere memorizzati sia su disco che in memoria. Supporta la tipizzazione dinamica (dei tipi sono assegnati a dei valori, piuttosto che a delle colonne), le transazioni, la ricerca full-text, l’accesso sscrittura singola / multiplelettura, svariata ed efficienti gamma di query (filtri)- (utile per la memorizzazione di dati geografici), e la caching condivisa (attraverso connessioni aperte,  allo stesso database, fatte da un unico filo (thread)).

SQLite immagazzina ogni database come un singolo file su disco,  in un formato multipiattaforma. Ciò implica che è possibile creare un database SQLite su una macchina e poi utilizzarlo su un’altra macchina con un’architettura completamente diversa semplicemente copiando il file corrispondente.
Gli autori di SQLite credono che sia “il database SQL più diffuso”. Attacchi (bind) per SQLite sono disponibili nella maggior parte dei linguaggi di programmazione tradizionali. SQLite è anche incluso in entrambi i sistemi operativi sia iPhone che Android.

UnQLite

Ce un’infinità di persone che crede erroneamente che UnQLite sia la controparte NoSQL di SQLite, anche se i due prodotti sono completamente indipendenti. UnQLite è un database open-source che espone sia un ccoppie di chiave-valore che un’interfaccia di immagazinamento tipo documento. Supporta sia in memoria che su disco le databases, anche le transazioni, più lettori concorrenti, e cursori per l’attraversamento lineare. Come SQLite, UnQLite utilizza un formato di file (multi-piattaforma) cross-platform, e memorizza ogni database in un singolo file su disco.

Non importa quale interfaccia di immagazzinamento si utilizza, il motore di archiviazione di UnQLite funziona con coppie di chiave-valore. Una caratteristica distintiva di UnQLite è che si può cambiare in fase di esecuzione il motore di archiviazione che viene utilizzato. Al momento, UnQLite è dotato di due motori di storage built-in, uno per il disco e uno per la  database in-memory.

UnQLite è scritto in C, e può quindi essere utilizzato sia IOS che delle applicazioni Android (in quest’ultimo, attraverso JNI).

aggiornamento 2017 – altre opinioni:

Implementazioni Open source delle database orientate ai documenti: (fonte wiki / modificato)

  • Apache Jackrabbit – Java (Apache License)
  • BaseX – xml, base di dati XML (Licenze BSD)
  • Apache CouchDB  (Apache License)
  • MongoDB – Database orientato al documento, (GNU AGPL v3.0)
  • OrientDB – Database orientato al documento, ma con una gestione ottimizzata delle relazioni fra documenti come avviene in un database a grafo. Open source con licenza commerciale friendly (Apache License)
  • RavenDB – Transazionale .NET basato su database a documento RESTful (commercial o GNU AGPL v3.0)
  • Redis – Uno store con coppie chiave-valore con supporto per liste ed insiemi (BSD License)
  • Riak – Decentralizzato, tolleranza all’errore, datastore di documenti scalabile orizzontalmente (Apache License)
  • ThruDB ( Licenza BSD)
  • Persevere JSON è un database JSON e un JavaScript Application Server. Fornisce un’interfaccia RESTful JSON per l’acceso alla creazione, lettura, aggiornamento e cancellazione dei dati. Supporta anche le interrogazioni JSONQuery/JSONPath.
  • DBSlayer old è un leggero database abstraction layer (su MySQL) che può parlare ai client via JSON su HTTP usato dal New York Times.

Databases per Mobile Apps

In questo post, consapevoli dell’importanza dei dati e della gestione degli stessi, nello sviluppo di una qualunque app dinamica, elenchiamo una serie di tematiche inerenti le database, la sua creazione e manipolazione, come le più note databases,  all’interno del processo dello sviluppo  siano esse native, web o ibride.

http://www.ilgiornaledelcibo.it/intossicazione-da-metalli-pesanti/
http://www.ilgiornaledelcibo.it/intossicazione-da-metalli-pesanti/
  • Mobile Databases: javascript cordova CRUD
  • Mobile Databases: ajax PHP, CRUD (prossima uscita)
  • Mobile Databases: Android CRUD (prossima uscita)
  • Mobile Databases: iOs CRUD (prossima uscita)
  • Mobile Databases: Windows CRUD (prossima uscita)
  • Lista database popolari per lo sviluppo di Mobile Apps (prossima uscita)
  • vari su i databasi per lo sviluppo di mobile Apps (prossima uscita)

le 10 Caratteristiche fondamentali delle app mobile di successo

articolo by Hungry Jacks iPhone App –  gennaio 2014 – Traduzione VargasCarmen  FONTE: juniorcru    immagini Top10

‘impossibile ignorare la tendenza verso il consumo di contenuti mobili. la penetrazione di smartphone in Australia è ora al 52% (http://mumbrella.com.au/australian-mobile-users-more-sophisticated-than-us-or-uk-counterparts-says-google-australia-92082) e l’australiano medio ha 25 applicazioni sul proprio telefono (di cui 8 sono pagate – http://www.smh.com.au/digital-life/mobiles/australias-white-hot-smartphone-revolution-20110908-1jz3k.html).

10_appissue_2016

Come questa informazione può avere un  impatto sulla vostra attività? Sarà arrivato il momento di considerare meglio la propria strategia mobile business?

In questo articolo ho elencato le 10 Caratteristiche fondamentali che una app mobile di successo dovrebbe avere. Potresti essere sorpresi da quanto tappando (cliccando) su alcune delle funzionalità meno conosciute del proprio telefono si possono sviluppare nuove connessioni contatti con i propri clienti.

Ecco la mia top 10  un elenco di caratteristiche (basilari e non) che potrebbero cambiare il modo in cui la app mobile può funzionare per voi.

 

1. Notifiche Push
inviare messaggi ai vostri clienti. Questo è una caratteristiche basilare, e una delle più essenziale per qualsiasi applicazione mobile. Sono più facili da trasmettere da una e-mail, in quanto non finiscono nello spam. Possono contenere grafica completa e sono un ottimo modo per fare arrivare ai clienti , offerte e promemoria direttamente  nel loro smartphone.

Quest’anno sono stato in grado di godermi la app mobile delle Olimpiadi di Londra del 2012, che mi ha permesso di selezionare i miei sport preferiti, i paesi e gli atleti, e di potere ricevere notifiche push  e/ o promemoria su partite specifici in tempo locale,  quindi cosi non avrei perso quella partita molto importante .

2. messaggistica basate sulla propria ubicazione (posizione geografica)
è fondamentalmente la combinazione della informazione sul luogo e sui comportamenti degli utenti che crea una mira intelligente (targeting to)  degli users.

I nuovi sviluppi da Urban Airship permettono ora agli sviluppatori di applicazioni mobili di conformare meglio i messaggi su misura per Utenti, partendo dai dati memorizzati sulla loro sorte (ubicazione) negli ultimi minuti o anche nell’anno scorso. Semplicemente ciò significa che alcune delle mie applicazioni preferite saranno in grado di inviarmi le notifiche push  sugli sconti speciali, di questa sera,  nel mio ristorante preferito, o se sto frequentando una partita di basket la applicazione della squadra può offrirmi una offerta speciale per me, mentre sono al gioco.

Ecco un esempio di applicazione 2012 di Londra usando queste notifiche push e messaggi basati sulla localizzazione. Top10-PushNotifications

Top10-PushNotifications

3. Realtà Aumentata
è probabilmente una delle caratteristiche più interessanti e dinamiche che ho visto in un app mobile. E ‘piuttosto semplice, questa funzione va oltre i regni della realtà e fornisce all’utente con qualcosa di diverso, eccitante ed estremamente interattivo. Mentre ci sono molte applicazioni che utilizzano questa funzione per divertimento, ci sono sicuramente modi più pratici perché questa funzione possa essere utilizzata.

Il snapshop Showroom è un app che permette di provare dei mobili nella vostra casa senza dover spostare nulla intorno!  Top10-SelectFurniture

Top10-SelectFurniture

4. Google Maps Indoor (mappe interne)
è una caratteristica relativamente nuova, e non è ancora disponibile in Australia. Tuttavia il concetto è estremamente comodo. Nelle mie avventure di viaggio, ho trovato me stesso perso in centri commerciali e aeroporti di volta in volta. La maggior parte di questi luoghi , infatti, hanno applicazioni mobili, sarebbe fantastico se in questi luoghi si avesse delle mappe interne. cosi gli utenti potrebbero trovare la toilette più vicina,  i bar o caffè, il  negozio preferito in pochi secondi, a portata di mano. Ho trovato un annuncio su YouTube elegante che riassume alcuni dei vantaggi di questa caratteristica. https://www.youtube.com/watch?v=2DdEjaJHRyA&feature=relmfu

5. Pagamenti Mobile
questa caratteristica per me è la prova propria di come la tecnologia di gran lunga è venuta nella mia vita. So che ci sono ancora alcune persone che non avrebbero mai pensato di pagare per qualsiasi cosa tramite il loro cellulare (mia madre per esempio), ma il valore stimato di pagamento di transazione con un cellulare supererà  i $ 171,5 miliardi  quest’anno e un 61,9 percento in più della fine dal 2011 con $ 105.900.000.000 la prove è chiara. E con l’introduzione del Google Wallet, la tecnologia dei pagamenti mobile continuerà a crescere.

“Non ci sono praticamente limiti a come i consumatori stanno usando i loro telefoni per l’acquisto” Top10-Stats

Top10-Stats

Si può vedere di più sulle caratteristiche dei pagamenti con lo smartphone e i suoi vantaggi qui. https://www.youtube.com/watch?v=0z46KzHOgmM

6. Integrazione con le reti sociali 
è davvero una caratteristica necessaria per qualsiasi tecnologia digitale. Tuttavia, a seconda della natura della vostra attività (business) in questa fase potrebbe essere solo un concetto . Ma la maggior parte di Gen Y sarà  quella di “condividere” qualsiasi cosa alla quale si sentono appassionati o fedeli. Così, se il marchio ha bisogno di un app mobile, ha un bisogno di integrazione sociale. la condivisione sulle reti sociale sono un ottimo modo per guidare il coinvolgimento degli utenti,una parola in bocca …un passaparola, con la approvazioni di altri utenti loro amici, della propria famiglia e dei contatti di altre imprese- tutto gratuitamente.

7. Geo-localizzazione e mappe Integrate
In poche parole, le applicazioni di geo-localizzazione riportano la  tua posizione ad altri utenti (checkin su Facebook, Foursquare, ecc) e consentono di associare luoghi del mondo reale (come ristoranti ed eventi) per la posizione corrente. Una delle mie applicazioni preferite che utilizza questa funzione è “Yelp”, che mi permette di cercare il più vicino ristorante, caffè e bar, stazioni di servizio, farmacie ed altro, in base alla mia posizione attuale. Il sito “Yelp” permette inoltre agli utenti di rivedere, check-in e condividono questo info- utilizzando la maggior parte delle altre caratteristiche che ho appena citato. Un app mobile che rende  più conveniente la vita di qualcuno, è a mio parere una che adempie al suo scopo. Top10-YelpMobile

Top10-YelpMobile

 

8. Uno scatto di contatto (contatto con un click – tap)
è probabilmente una delle caratteristiche più importanti per un app di cellulare ricordiamoci che è un cellulare, il suo scopo originale è quello di effettuare chiamate telefoniche. cosi, detto questo, ogni azienda dovrebbe avere uno scatto di contatto. Si tratta di un semplice pulsante all’interno della vostra applicazione che indirizza l’utente a chiamare il business con un solo clic (tap).  Uno studio di Google Mobile in Movimento dimostra che “il 61% degli utenti di telefonia mobile fanno una chiamata dopo avere fatto una una ricerca di attività commerciali locali”. Quindi, questa funzione sarà conveniente collegare i consumatori con il proprio business, quando sono in viaggio. Secondo rete mobile ad xAd (Q4 2011), il 52 per cento delle persone che fanno clic sugli annunci di ricerca tendono a chiamare l’inserzionista.

9. Integrazione di Scanner di QR e di codice a barre
è anche un’altra caratteristica che mette in mostra davvero come è  dinamica la tecnologia mobile oggi.   QR che sta per Quick Response consente all’utente di puntare il proprio smartphone al quadrato del codice a barre e accedere a una serie di informazioni diverse. Avrete notato i codici a barre quadrati spuntando sempre in più nelle vetrine dei negozio-f e nelle riviste, solo per citarne alcuni.  Il codice QR collega marketing-offline e online che consente agli utenti di accedere a tagliandi on-line, sito web della società e alle informazioni di contatto, tra le altre cose. Esso consente una risposta immediata da pubblicitarii se non si  ricordano un numero di telefono o un sito web ora con la tecnologia di codice QR. Sono anche stati aggiunti in alcuni biglietti da visita.Top10-nstantListingInfo

Top10-InstantListingInfo

10. Buoni GPS
è un ottimo modo per ottenere che i clienti interagiscono con la tua applicazione, offrendo loro un incentivo. il (log in – accedi)  consente all’azienda di raccogliere dati, e cosi meglio collegarsi con il consumatore, consentendo ai consumatori anche di ‘sbloccare’ speciali offerte / tagliandi.  Ultimamente Hungry Jack per iPhone offre sconti in loco. Mi sarebbe piaciuto  fare il login (check-in”)  su un’applicazione o una pagina Facebook per avere un bonus di sconto o un omaggio!

Top10-HungryJacks

 

Hungry Jacks iPhone App  – traduzione Vargas Carmen

Quanto tempo si può prendere lo sviluppo di una applicazione mobile (app) ? 18 settimane il numero magico.

Quanto tempo si può prendere lo sviluppo di una applicazione mobile (app) ?

 

tempo sviluppo mobile app
tempo di svilupo mobile app

Gli ultimi anni hanno visto un’esplosione di applicazioni mobili. Già alla fine del 2014, Android e iOS avevano quasi 1,5 milioni di applicazioni nei suoi negozi on line (market). E queste cifre sono destinate a continuare a crescere ad un ritmo vertiginoso.

Da dove vengono tutte queste applicazioni? Migliaia di sviluppatori di tutto il mondo stanno lavorando arduamente per lanciare giochi, reti sociali, lettori di notizie, applicazioni di utilità e di produttività. E se voi lo desiderate, la applicazione del vostro negozio può fare parte del mercato delle applicazioni mobile.

In questo articolo, vedremo a che ora lo sviluppo di un’applicazione mobile.

più di quattro mesi ?

In un sondaggio di 100 sviluppatori mobili native, l’azienda Kinvey ha determinato che creare un’applicazione mobile completamente funzionale e con stile dura circa 18 settimane dall’inizio alla fine.

Questo comprende siano la progettazione front-end (design e layout) della l’interfaccia utente e l’integrazione back-end tali come le notifiche, la amministrazione degli utenti e loro autenticazione, la gestione della memoria della applicazione e della sua integrazione con le reti sociali.
E’ molto probabile che molti sviluppatori pensino che 18 settimane sia un tempo troppo lungo. Inoltre, gli sviluppatori di progetti di business su larga scala possono pensare che 18 settimane sia troppo poco.

Dato l’elevato volume di applicazioni pubblicate su base mensile (nel 2013 le nuove applicazioni mobili App Store una media di 641 al giorno), prendersi 4,5 mesi per sviluppare una app in sé sembra un ciclo di sviluppo lungo. Ma se si è un utente Smartphone abituale si sa che la maggior parte delle applicazioni pubblicate non sono buone (non funzionano bene). E questo può essere dovuto al breve tempo dedicato al suo sviluppo.

Inoltre è fondamentale osservare che non tutte le applicazioni hanno lo stesso livello di complessità.

Le applicazioni di Facebook e Twitter sono applicazioni che hanno avuto un lungo periodo di tempo (mesi o anni) di sviluppo e di miglioramento continuo.

Un’applicazione nativa o ibrida  può avere un tempo di sviluppo medio di 18 settimane.

Quanto diventa importante il tipo di applicazione nella contabilizzazione del tempo di sviluppo ?

Come accennato in un articolo (app nativa web o ibrida ?), ci sono tre tipi di applicazioni:

applicazioni native. Si tratta di applicazioni che vivono sul dispositivo alle quale si accede tramite le icone sulla schermata iniziale o nel menu delle applicazioni. Le applicazioni native sono installate attraverso l’app store (Google Play o App Store). Esse sono generalmente sviluppati per una piattaforma (Android, iOS) e possono utilizzare delle funzionalità specifiche del dispositivo (come la fotocamera, il GPS).
applicazioni web. Le applicazioni Web sono in realtà siti web che in molti modi, si vedono e si sentono come applicazioni native, ma non sono state sviluppate come quelle. Esse sono eseguite mediante un browser e di solito sono scritte in HTML5.
applicazioni ibride. applicazioni ibride sono una combinazione di applicazioni native e applicazioni web. Queste devono essere scaricate dallo App Store e possono sfruttare delle numerose funzionalità del dispositivo mobile su cui sono state installate.

La media di 18 settimane è applicabile a progetti di applicazioni native e ibride. Queste hanno bisogno di più tempo di sviluppo, perché hanno delle diverse versioni (implementazioni) per i diversi tipi di dispositivi e dovrebbe anche passare attraverso un processo di rilascio in App Store e Google Play market.

Di altro canto, siccome il processo di sviluppo delle applicazioni web può diventare meno complicato (nt. css permettendo), i tempi di sviluppo può essere molto inferiore a quello delle applicazioni native o ibride.

Un’applicazione web può avere un tempo di sviluppo inferiore a 4 settimane.

Il tempo di sviluppo delle applicazioni è un elemento da prendere in considerazione in qualsiasi progetto.

Queste informazioni possono servire a stimare il tempo in cui la vostra azienda o attività vuole lanciare una applicazione mobile.

 

fonte: tradotto e migliorato da cuanto-tiempo-toma-desarrollar-una-aplicacion

 

 

Java REST e RESTful: implementazione con Restlet

Proseguendo con l’articolo anteriore nelle  prossime righe verranno illustrati tutte le  diverse implementazione per poter progettare un servizio Rest (applicativi, framework). in particolare implementazione JAX-RS con Apache CXF.

REST_implementations_implementazioni
REST_implementations_implementazioni

Le implementazioni di REST ( implementazione JAX-RS):

Apache CXF Web Service Development
Apache CXF è un Framework open source che permette lo sviluppo di servizi web in forma facile, semplice e basato sugli standard.

Web services possono essere implementati utilizzando i più svariati protocolli tali come SOAP, XML, JSON,RESTful HTTP,  e anche possono supportare varii protocolo di trasporto come HTTP o JMS (JavaMessage Service).

Caraterristiche di CXF (non solo REST)
il servizio CXF ha infinite caratteristiche per facilitare la programmazione delle interfacce (frontEnd); il trasporto e le connessioni fra i dati; il supporto a diversi protocolli e altri concetti avanzati come Features (caratteristiche) e Invokers ( con due componenti principali: una classe Java runnable con public static main mettodo), e una classe loader (che carica), che è utilizzata per istanziare l’altra classe riducendo cosi la complessità dello classpath management)  proporziona un modello di programmazione per creare e distribuire servizi web RESTful.

Tools support
CXF provides different tools for conversion between JavaBeans, web services, and
WSDL. These tools assist developers in generating web service clients like Java and
JavaScript from WSDL or generating a WSDL file from a service implementation.
CXF provides support for Maven and Ant integration for build and dependency
management. Some of the tools supported are as follows:
• Java to web service
• Java to WSDL
• WSDL to Java
• WSDL to JavaScript
• WSDL to Service
• WSDL to SOAP
• WSDL to XML
• WSDL Validator
• XSD to WSDL


per saperne di più … altre fonti

Come e quando si usa AsyncTask in android (thread) – code esempio

 

Un’attività asincrona è definita da un calcolo che viene eseguito su un thread (filo o processo) in background (sottofondo) e il cui risultato è condiviso e pubblicato sul thread UI (processo della UI).

android AsyncTask
android AsyncTask (image  lucadentella)

Un thread o thread di esecuzione, in informatica, è una suddivisione di un processo in due o più filoni o sotto processi, che vengono eseguiti con-correntemente da un sistema di elaborazione.

AsyncTask consente un uso corretto e semplice del thread UI (processo o filo principale della Interfaccia Utente).

Questa classe consente di eseguire operazioni in background (sottofondo) e di condividere i loro risultati sul thread UI ossia sul filo o processo dell’interfaccia utente, senza dover gestire processi/fili o utilizzare maipolatori di eventi (handlers).

AsyncTask è stato progettato per essere una classe di supporto per Thread ed Handler e non costituisce framework di thread generico.
AsyncTask dovrebbe idealmente essere utilizzato per operazioni di breve durata (pochi secondi al massimo).

Se è necessario conservare un thread (filo) in esecuzione per lunghi periodi di tempo, si consiglia vivamente di utilizzare le varie API fornite dal pacchetto java.util.concurrent package tali come Executor, ThreadPoolExecutor e FutureTask.

Un compito asincrono è definito da 3 tipi generici, chiamati (params, progress, result), e di 4 momenti (passaggi nel tempo), chiamati respettivamente OnPreExecute, doInBackground, onProgressUpdate e OnPostExecute.

params, progress, result

 

Android Code Esempio AsyncTask

LA CHIAMATA

package com.apps.xxxx.xxxx;

import android.app.Activity;
...
public class MainActivity extends Activity {
   ...
  public GridView gridview;
  @Override
  protected void onCreate(Bundle savedInstanceState)      {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main1);
     
     // Creating a new non-ui thread
     jsonAsyncTask downloadTask = new jsonAsyncTask();
     ...
 }
}


I QUATTRO (TRE) PASSAGGI
(attenzione ai parametri generici...params, progress, result ... String, Void, String)

/** AsyncTask to download json data */
private class jsonAsyncTask extends AsyncTask
<String, Void, String> {

ProgressDialog dialog;
@Override
protected void onPreExecute() {
   super.onPreExecute();
   //dialog
   dialog = new ProgressDialog(MainActivity.this);
   dialog.setTitle("Connecting server  ");
   dialog.setMessage("Loading, please wait");
   dialog.setIndeterminate(true);
   dialog.setCancelable(false);
   dialog.show();
 }
//last param String
  String data = null;

@Override
protected String doInBackground(String... url) {
try{
   data = getJSONString(url[0]);
   }catch(Exception e){
    return "notok";
   }
    return "ok";
  }

/** Invoked by the Android on "doInBackground" is executed */

@Override
protected void onPostExecute(String result) {
dialog.dismiss();
//dialog.cancel();
//adapter.notifyDataSetChanged();
 if(result =="ok") {
  adapter = new ItemAdapter(MainActivity.this, R.layout.row, listitems);
   gridview.setAdapter(adapter);
  }else{
   showToast("Unable to fetch data from server");                
  }//endif
 }//onPosExecute
}//AsyncTask

come fare il parsering dei dati in formato Json in Android

del formato json si deve conoscere …

appissue json rest http
appissue json rest http

In primo luogo si deve analizzare i dati, gli oggetti o le stringhe in formato Json.

In particolare Items è un oggetto, conformato da un Array da oggetti con CodPro, Brand, FormattedFullPrice.

{"Items": 
   [
	{
	"CodPro": "2234567899",
	"Brand": "XXX ZZZ",	
	"FormattedFullPrice": "Euro 2,620.00",
	},
        {
	"CodPro": "2234123456",
	"Brand": "ALPHA",	
	"FormattedFullPrice": "Euro 1,120.00",
	},
        {
	"CodPro": "2234234567",
	"Brand": "BETA",	
	"FormattedFullPrice": "Euro 1,112.00",
	},
   ]
}

dopo si devono creare le classi per gestire l’oggetto Item. creare la Classe Items con gli getters e setters e infine creare le constanti per gestire i nomi dei componenti degli array di oggetti.

LA CLASSE ITEMS

public class Items{
  private String brand;
  private String codPro;
  private String formattedFullPrice; 
  	
  
  public String getBrand(){
	return this.brand;
 }
public void setBrand(String brand){
	this.brand = brand;
 }
 public String getCodPro(){
	return this.codPro;
 }
 public void setCodPro(String cod10){
	this.codPro = codPro;
 }
 public String getFormattedFullPrice(){
	return this.formattedFullPrice;
 }
 public void setFormattedFullPrice(String  formattedFullPrice){
	this.formattedFullPrice = formattedFullPrice;
}
 	
}
...

LE VARIABILI

 private static final String ENTITY_NAME = "Items";  
 private static final String BRAND = "Brand";
 private static final String CODPRO = "CodPro";
 private static final String FORMATTEDFULLPRICE = "FormattedFullPrice"; 
PARSERING

private Boolean parseJson(String jsonString) {
 String myS;
 try {
  JSONObject jsono = new JSONObject(jsonString);
  JSONArray jarray = jsono.getJSONArray(ENTITY_NAME);

  for (int i = 0; i < jarray.length(); i++) {
    JSONObject object = jarray.getJSONObject(i);
    Items item = new Items();
    item.setCodPro(object.getString(CODPRO));
    item.setBrand(object.getString(BRAND));         item.setFormattedFullPrice(object.getString
    (FORMATTEDFULLPRICE));
    /* myS = (item.getCod10() + " " + item.getBrand()  + " " + item.getCod10());
    Log.d("item iessimo " , myS);*/
    listitems.add(item);
  }//endfor*/
  //test
  /*for (int i = 0; i < jarray.length(); i++) {
    Log.d(" *** ***   iesimo ",   listitems.get(i).getCod10());
   }*/
 } catch (JSONException e) {
      Log.d("Parse Json error ",e.toString());
      return false;
  }//endcarch
 return true;
}

Come usare HttpURLConnection in Android

Una URLConnection per HTTP (RFC 2616) consente di inviare e ricevere dati attraverso il web.

appissue json
appissue json

Questi dati possono essere di qualsiasi tipo e lunghezza.

Questa classe può essere utilizzata per inviare e ricevere dati in streaming cui lunghezza non è nota in anticipo.

  • Ottenere un nuovo HttpURLConnection chiamando URL.openConnection () e lanciando il risultato di HttpURLConnection.
  • Preparare la richiesta. La struttura primaria di una richiesta è suo URI. (la richiesta può comprendere anchei metadati quali le credenziali, i tipi di contenuti preferiti e cookies di sessione.
    Opzionalmente si può caricare un corpo della richiesta.
  • Le istanze devono essere configurati con setDoOutput (vero) se includono un corpo.
  • I dati vengono trasmessi ad un flusso restituito da getOutputStream ().
  • si legge la risposta. Il corpo di risposta può essere letto dal flusso restituito da getInputStream (). Se la risposta non ha corpo, il metodo restituisce un flusso di vuoto.
  • Disconnect. Una volta che il corpo della risposta è stato letto, il HttpURLConnection dovrebbe essere chiuso chiamando disconnessione().  Questa  disconnessione rilascia le risorse detenute dalla connessione in modo che possano essere chiusi o riutilizzati.

vedi su android reference HttpURLConnection


private String getJSONString(String strUrl){
  InputStream is = null;
  URL url = null;
  BufferedReader br = null;
  StringBuilder sb = new StringBuilder();
   HttpURLConnection conn = null;
  String jsonString = null;
  try {
      url = new URL(strUrl);
      conn = HttpURLConnection)url.openConnection();
      //set the timeout in milliseconds
      conn.setReadTimeout(15000);
      //set the timeout in milliseconds
      conn.setConnectTimeout(15000);
      conn.setRequestMethod("GET");
      conn.setDoInput(true);
      conn.connect();

      // Log.d("-----url 1 ", String.valueOf(url));
      int response = conn.getResponseCode();
      is = new BufferedInputStream(conn.getInputStream());
      //Log.d("!!!!!!!!is  2", String.valueOf(is));
      br = new BufferedReader(new InputStreamReader(is));
      byte[] b = new byte[1024];
      // to implement try catch…
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      //readstream
      while ( is.read(b) != -1) {
        baos.write(b);
      }
      //Log.d("+sb 3 ", String.valueOf(sb));
      //String JSONResp= new String(baos.toByteArray());
       byte[] data1 = baos.toByteArray();
      // to implement try catch…
      jsonString = new String(data1);
      //Log.d("JSON jsonSTRing  ", jsonString);
      //call parse json data
       myFlag = parseJson(jsonString);
  } catch (MalformedURLException e) {
       e.printStackTrace();
  } catch (java.net.ProtocolException e) {
       e.printStackTrace();
  } catch (IOException e) {
       e.printStackTrace();
  }finally{
      if(br!=null){
          try {
              br.close();
              is.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
          if(conn!=null) {
              conn.disconnect();
          }
      }
  }
  return jsonString;
}

app e doppiaggio : Dubsmash video selfie abbinato a canzoni famose (menziona Francesco Fiumarella)

sarebbe interessante capire le sue funzionalità e la capacità di fare in forma ottimale quello che la App Dubsmash promette … a voi il compito…

La vita attraverso il cinema

image

image

Grazie a Wikipedia di aver menzionato il mio stile innovativo di doppiaggio segnalando il mio nome nella pagina di Dubsmash ! Contento di essere stato riconosciuto come novità artistica e di sapere che questa app sta avendo un grande successo mondiale… Bravi i ragazzi Tedeschi ad averla sviluppata!

Francesco Fiumarella

View original post

lista di collegamenti (links) sulle api (apis) per lo sviluppo app web e mobile

in questa pagina si presenta una lista con collegamenti internet per aiutare il lettore a conoscere meglio e più consapevolmente il  mondo delle API per lo sviluppo web e mobile.

appissue api mobile app italia
fonte immagini : http://www.businessinsider.com/the-best-social-networking-apps-for-iphone-android-and-windows-phone-2014-10?op=1&IR=T

ecco una anteprima

continua all’interno di questa pagina fonte http://www.programmableweb.com/