Archivi categoria: app topics

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)

Quanto costa sviluppare una business App personalizzata ? lista siti sui costi 2

PRIMA FONTE TRADOTTO DA :cuanto necesito invertir para tener una aplicacion de calidad

Molti fattori influenzano il costo di un’applicazione, ma siamo in grado di offrire un paio di ordini di grandezza in modo da avere un’idea dei relativi importi. In primo luogo, diamo un’occhiata ai parametri più importanti che influenzano il prezzo di un’applicazione:

la complessità di applicazione: ci sono applicazioni semplici che si sviluppano in poche ore e app giochi o reti sociali complesse che richiedono decine di migliaia di ore di lavoro e un grande team multidisciplinare.

Seamless texture with legumes
Seamless texture with legumes on black background

app_features_appissue
Tipo di contenuti: statici o aggiornabili in modo dinamico.
Content Management System (CMS) nel caso di contenuti dinamici, c’è un sistema di gestione dei contenuti con cui si deve integrare l’applicazione o c’è la necessità di creare un gestore per modificare i contenuti della domanda?
Accesso ai dati: l’applicazione avrà bisogno di connettersi ai server per la ricerca, aggiornare le loro informazioni in tempo reale e visualizzare i risultati?
Geo: informazioni dipendente comprende la posizione di un utente? Ad esempio, è possibile visualizzare le informazioni dal negozio più vicino.
La realtà aumentata: per esempio, vogliamo mostrare un’immagine 3D di una televisione quando stiamo assistendo a un catalogo stampato?
gateway di pagamento: l’applicazione, gestisce delle opzioni di pagamento o sarà utilizzato per commercializzare prodotti? Bisogna integrare il pagamento attraverso un app store o altri gateway di pagamento?
Registrazione Utente: dovrebbe includere un record di utenti? Quali dati devono essere raccolti?
L’invio di notifiche push: in generale, è interessante includere la possibilità di inviare messaggi personalizzati agli utenti attraverso l’applicazione che ha scaricato. Si tratta di un requisito? Che tipo di rapporti? Avete bisogno di creare una interfaccia di gestione e avvisi deve essere integrato con un sistema esistente?
Integrazione con altri sistemi: la complessità dello sviluppo aumenta notevolmente nel caso di dover integrare l’applicazione con i sistemi aziendali esistenti (CMS, database, gestione degli utenti, l’invio di notifiche push, etc.) e può essere di molto a seconda del sistema esistente.
Progetto grafico: evidentemente non è la stessa cosa un design semplice con menu e pagine informative che uno per una applicazione del tipo giochi.
Piattaforme: il numero di piattaforme in cui la domanda deve operare è fondamentale per calcolare il costo. Nel complesso, almeno dovremmo avere l’applicazione disponibile per i sistemi Android e iOS, ma a seconda del paese e / o il tipo di utenti che verrà eseguita l’applicazione, si consiglia di creare una versione per Windows, Blackberry o addirittura Firefox OS.
applicazioni native / ibride: Le applicazioni possono essere fatte in modo nativo o forma ibrida che permettono la generazione di applicazioni multi piattaforma con un unico sviluppo. Con le applicazioni native si può ottenere una maggiore qualità e prestazioni allora più elevati i costi, mentre le applicazioni ibride offrono rendimenti inferiori, ma il costo è notevolmente inferiore.
Costo / ora programmatore mobile Apps: il costo di un’ora di programmazione può variare da 30 € freelance inesperto a più di 120 € applicate dal consulenza da programmatori esperti.

app_admin_features_appissue

Il costo di sviluppo di un app mobile si basa su questi fattori altre considerazioni:

1. Le piattaforme App e ambiente

Costruire per tutte le piattaforme aumenta notevolmente il costo. Questo è perché Apple iPhone utilizza Xcode IDE e Objective-C o Swift linguaggio di programmazione, Android utilizza linguaggio di programmazione Java e Windows utilizza C # linguaggio di programmazione.

Se lo sviluppatore ha bisogno di costruire l’applicazione per tutte le piattaforme, e l’applicazione ha bisogno di essere costruita utilizzando il linguaggio di programmazione nativo di ogni piattaforma, il costo di sviluppo sarà raddoppiato o triplicato a causa della quantità di tempo che è necessario per costruire l’applicazione utilizzando diversi linguaggi di programmazione di ciascuna piattaforma.

Se l’applicazione può essere costruito usando la tecnologia di sviluppo ibrido, lo sviluppatore può costruire una volta utilizzando, ad esempio, HTML5, CSS e JavaScript e utilizzare PhoneGap-Cordovaper preparare l’applicazione per tutte le piattaforme. Questo può ridurre il costo sostanzialmente, di costruzione per tutte le piattaforme.

Per saperne di più sulle differenze tra lo sviluppo di applicazioni native contro lo sviluppo di applicazioni ibride, utilizzare l’articolo qui sotto collegato: nativa App per lo sviluppo vs ibrida / Sviluppo PhoneGap App

2. Le personalizzazioni vs utilizzazione di standard App Widget e congressi

Più personalizzazioni  si fanno, più è il tempo necessario per sviluppare la vostra applicazione.

Inoltre, è bene sapere che l’ambiente di sviluppo di applicazioni per ogni piattaforma fornisce alcuni widget per la costruzione della convenzione standardizzata come la navigazione, cambiando schermi, animazioni e altri elementi di interazione dell’utente della app. Quando si utilizza la convenzione standard, i costi di sviluppo di app sarà più conveniente.

3. Numero di schermate della App

Il numero di schermi ha un impatto diretto sul costo; i più schermi più hai, più lavoro andrà in costruzione della app.

4. La complessità delle schermate

Si raccomanda di costruire schermi più puliti (e meno trafficati) con la semplice navigazione che utilizza le convenzioni app standard. Ciò fornirà la migliore esperienza utente e ridurrà i costi di sviluppo.

Se si costruisce schermate molto piene con svariate elementi di navigazione e complessi, il costo dello sviluppo di app sarà più alto

5. E-commerce e acquisti in-app

Ogni volta che si sta lavorando con il denaro, lo sviluppatore ha bisogno di essere molto attento con i calcoli e con gli aspetti legati allasicurezza.

Quindi, gli acquisti in-app e dovere  trattare con i soldi aggiungono del tempo per lo sviluppo perché il tempo supplementare è necessario per fare in modo che i calcoli siano esatti, e l’applicazione sia sicura.

Anche dopo che lo sviluppo è stato completato, vi consiglio di fare ulteriori test sulle transazioni per garantire l’accuratezza dei calcoli prima di andare in diretta con l’applicazione.

6. L’integrazione con le API di terze parti

Quando l’applicazione ha bisogno di comunicare con gli altri servizi, lo sviluppatore ha bisogno di imparare ad interfacciarsi con le API di terze parti.

Ciò richiederà più tempo per imparare le API di terze parti e implementare correttamente. In molti casi, lo sviluppatore non può valutare la quantità di lavoro che si prenderà nello  interfacciarsi con le API di terze parti, fino a che lui / lei trascorre qualche tempo a imparare l’API e l’interfacciamento con esse.

7. Animazione Complesse

Animazione personalizzata e complicate e/o giochi che possono prendere il tempo di sviluppo sostanziale.

animazioni complesse che non forniscono alcun scopo pratico possono anche rallentare la vostra applicazione e vanificare l’utente. Quindi, cercare di stare lontano da animazioni complesse che non servono ad uno scopo pratico.

8. Il supporto alle multiple risoluzioni degli schermi degli smarphone

Ci sono tre tipi di dispositivi mobili:

  • Smartphone – Esempi: Apple iPhone 3,4,5,6 o Samsung Galaxy S2, S3, S4, S5, o LG Nexus 4, 5.
  • Phablets (la dimensione dello schermo è tra smartphone e tablet), esempi: Apple iPhone 6 Plus o Motorola Nexus 6.
  • Compresse esempi: Apple iPad più versioni, più versioni mini, Aria, Samsung Galaxy Tab (più versioni)

I dispositivi di cui sopra tutti hanno diverse risoluzioni dello schermo. Per le versioni più recenti di OS dei dispositivi ‘, ci sono modi per ridimensionare il contenuto per abbinare la maggior parte degli schermi, ma per costruire interfacce personalizzate per supportare tutte le risoluzioni dello schermo può essere molto in termini di tempo e denaro.

9. Supporto per tutte le versioni del sistema dispositivi operativo (OS)

Di seguito è riportato l’elenco di tutti i dispositivi mobili versioni del sistema operativo e tutte le versioni del sistema operativo popolari. Se stai cercando di supportare tutte le versioni del sistema operativo di tutti i dispositivi, il costo sarà molto più alto.

Suggerirei selezionando solo le versioni popolari del sistema operativo dei dispositivi a supporto.

  • Dispositivi mobili di Apple OS mobile di Apple si chiama iOS. iOS ha versioni che vanno dalla versione 1.0 alla 8.0 (uscito nel settembre 2014).
    Di seguito è riportato l’elenco delle versioni popolari iOS, e le percentuali approssimative della loro quota di mercato a partire da febbraio 2015:

    • iOS 8: 80%
    • iOS 7: 19%
  • Di Android dispositivi mobili Android OS ha versioni che vanno 2,2-5,0 (rilasciato nel novembre 2014) A partire dal febbraio 2015, le popolari versioni di Android OS sono: (le percentuali sono approssimativi)
    • OS Android 4.4: 60%
    • OS Android 4.3: 7%
    • OS Android 4.2: 13%
    • OS Android 4.1: 12%
    • OS Android 5.0: 5%
  • Windows Mobile Devices di Microsoft Phone OS ha versioni che vanno 7-8 (uscito nell’ottobre 2012) A questo punto non ho dati sufficienti per fornire la percentuale approssimativa di quota di mercato di ogni versione.

Supporto 10. Offline

Sviluppare delle funzionalità  disupporto offline può richiedere molto tempo e, a sua volta possono aumentare i costi di sviluppo.

Caratteristica 11. Continuità / Handoff

caratteristica Handoff fornisce la funzionalità di connessione e la condivisione / informazioni e dati tra diversi dispositivi in ​​movimento.

Costruire funzionalità handoff può richiedere molto tempo e può aggiungere il costo sostanziale al progetto.

nota: da considerare anche le lingue e la gestione dei diversi panelli di impostazioni.

La ricerca di questo articolo è stato completato 24 febbraio 2015; informazioni possono cambiare.

SECONDA FONTE  TRADOTTO mobile-app-development-cost

tradotto e completato by CarmenVargas

 

Quanto costa sviluppare una business App personalizzata ? calcolatori automatici e sondaggi 1

Quanto costa sviluppare una business App personalizzata ?

 

FONTE formotus   Tradotto CarmenVargas
Ecco un compendio delle migliori informazioni provenienti da tutto il Web per semplificare l’impostazione delle aspettative ragionevoli di costo che potrà avere una business mobile app personalizzata.

Aggiorniamo questo post periodicamente in modo di fare sapere di tutte le eventuali novità sulla presente tematica.
Il mese scorso la società di New York Fueled ha condiviso questa informazione su ciò che i loro clienti pagano per lo sviluppo di applicazioni mobili:
Anche se Fueled ha costruito la versione di uno dei prodotti per un minimo di $ 150.000, l’agenzia si rivolge anche ai clienti che hanno avuto più ampi requisiti per il loro prodotto Minimo – che possono costare costare fino a $ 500.000 per la loro prima versione app.
Allo stesso modo un’altra società, Savvy Apps , nel 2015 ha descritto i suoi servizi di sviluppo app come un costo “ovunque tra $ 150.000 a $ 450.000.”
Questi sono due dati simili, ma le indagini forniscono una gamma più ampia di dati.

sul costo di sviluppo di App … sondaggi 2015

il sondaggio Kinvey ha dato come $ 270,000 costo medio per una business app
Un rapporto Kinvey basato su un’indagine dei CIO e dei Leader del mobile ha scoperto che lo sviluppo di applicazioni mobile è Secondo questa indagine di novembre 2014 “costosa, lenta e frustrante.”:

Il 56 per cento dei leader di telefonia mobile intervistati dicono che dura da 7 mesi a più di un anno per costruire un app.  18 per cento dicono che spendono da $ 500.000 a più di $ 1.000.000 per app, con una media di 270.000 $ per ogni app.

Kinvey-indagine-Set-2014-costi-556x196

Fonte: Indagine Kinvey

sondaggio Clutch: $ 171,450 costo medio per una business app
Un sondaggio di 12 “aziende leader nello sviluppo di applicazioni mobili” di frizione hanno chiesto il numero di ore necessarie per le attività di sviluppo di applicazioni mobili, e ha calcolato che “in mediana il  costo va da 171.450 $, con una gamma molto ampia di meno di $ 30K a più di $ 700 K.  Il rapporto, pubblicato nel gennaio 2015, comprende una ripartizione dettagliata dei centri di costo:

mediana-Cost-range-app-Sviluppo-fasi frizione-indagine-

Fonte: indagine della Clutch 2015

È interessante notare che i piu significativo centro di costo secondo l’indagine Clutch non sono le caratteristiche funzionali della app ma l’infrastruttura, che comprende:

  • Controlli di base
  • Archivio dati
  • integrazione di 3.ze parti
  • L’accesso ai dati (archivi)  aziendali
  • Crittografia dei dati
  • Scaleability (portabilità)

app calcolatrici per individuare i costi di sviluppo…

Diverse app dell aziende di telefonia mobile e delle diverse piattaforme di sviluppo (andorid, ios, windowsphone, desktop ecc)  ora stanno offrendo calcolatrici che consentono di specificare le funzioni necessarie per consentire agli sviluppatori di fare una stima del costo che portà avere la vostra applicazione.  Abbiamo inserito un progetto di applicazione ipotetica attraverso ogni calcolatrice, rispondendo a delle domande sulle principali caratteristiche funzionali che dovrebbe avere la ipotetica app (faccia alta).

Il nostro progetto di esempiodoveva essere sviluppato per due piataforme iOS e Android e include l’autenticazione di accesso, la logica di business complessa e una interfaccia utente, delle funzionalità offline, e delle connessioni di back-end.

Mantenere la stima in parallelo è stato difficile. è una scienza inesatta, perché si aveva a che fare con delle domande diverse, ma abbiamo fatto lo sforzo. Di seguito sono riportati i risultati.

Calcolatrice Otreva: 360.000 $

howmuchtobuildanapp-example1-192x300

Esempio preventivo da howmuchtobuildanapp.com

Tusnua Design calcolatrice: 215.000 €

Tusnua-Designs-App-Stima-215 €-300x264

Esempio Stima da Tusnua Designs

occhi calcolatrice: $ 267,000

Nota: Questa calcolatrice in grado di generare una stima più di un milione di dollari se si mantiene l’aggiunta di funzionalità. Il nostro primo tentativo di calcolare un app con caratteristiche simili di smarphone a $ 473.000, che sembrava in linea con gli altri calcolatori. Un po ‘di indagine ha rivelato che una singola caratteristica che avevamo scelto – il flusso di lavoro – ha rappresentato per oltre oltre $ 200K di quella totale. La nostra nuova stima senza flusso di lavoro ( “un processo 5-10 passo che coinvolge la logica di business aziendale complessa e le decisioni”) ha prodotto la stima più tipica di $ 267.000.

occhi calcolatrice-556x286

Esempio preventivo da imason

Kinvey calcolatrice : 321.000 $

kinvey-app-costo-calcolato

Esempio preventivo da Kinvey

Questa stima Kinvey era il prezzo di costruzione delle applicazioni da sole. Per essere onesti, Kinvey calcolato anche il minor costo di $ 139.000 per costruire l’applicazione utilizzando la propria piattaforma baas.

Kony: 256.000 $

Kony calcola il costo totale di 3 anni di proprietà. Come Kinvey, Kony suggerisce anche la stessa applicazione sarebbe sostanzialmente meno costoso ($ 133.000) sulla propria piattaforma MADP.

Applicazioni mobili sono costosi … A meno che non si utilizza Formotus

 

i costi continui dopo lo sviluppo…
Sarebbe un errore pensare che la progettazione e lo sviluppo di una app  sono un costo costo una tantum. Creare l’applicazione potrebbe essere solo la punta di un iceberg, o meglio ancora, il primo passo di un lungo percorso.
I COSTI DI SVILUPPO DEVONO ESSERE  MOLTIPLICATI PER 3
Un Forrester Survey , una volta scoperto che l’importo medio speso per un app mobile tipica ($ 50.000 a $ 150.000) risulta essere solo il 35% del costo reale di due anni.
MIGLIAIA DI BILANCIO AL MESE
Commentum nel 2015 ha stimato il costo di manutenzione per un progetto di applicazione media impresa di essere nel range di $ 5.000 a $ 11.000 al mese. Anche il più basso preventivo per un piccolo progetto non è inconsistente a $ 3.000 al mese – e in un più ampio progetto spazia fino a $ 25.000 al mese.
PIANO PER DIVERSI AGGIORNAMENTI ALL’ANNO
Secondo un sondaggio AnyPresence di professionisti dello sviluppo di applicazioni mobile enterprise, ha rilevato che oltre l’80% ha riferito di aggiornare le loro applicazioni, almeno due volte l’anno e quasi un terzo sono stati l’aggiornamento, almeno una volta al mese . gli Aggiornamenti frequente può essere un importante fattore di costo in corso.

mobile-business-app-update-frequency-556x378

Fonte: indagine AnyPresence

ALTRE FONTI E CALCOLATORI

http://howmuchtomakeanapp.com/estimates/question/type

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

 

 

Tutorial risorse e video corsi per imparare Java JSF in Eclipse – prima PARTE

Tutorial risorse e video corsi per imparare Java JSF  in Eclipse – WTP tools con Apache Tomcat

In questo post, si presenterà un elenco di collegamenti a risorse, tutorial e corsi video utili alla creazione delle java web application (desktop), con Eclipse e Apache Server utilizzando le Facelet di JSF 2.0.

java server pages jsf dynamic web apps java appissue
java server pages jsf
dynamic web apps
java appissue

how to use Java JSF into Eclipse with Apache Tomcat Server ? which are the best practices ?

jse apache tomcat eclipse
appissue: how to use Java JSF into Eclipse with Apache Tomcat Server

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

Gradle da dove iniziare ? – principi fondamentali – Build Language Reference – 2015

FONTE ORIGINALE (docs.gradle.org)
FONTE IMMAGINI (www.drdobbs.com)

Gradle build è un programma, che utilizza un linguaggio chiamato Groovy(linguaggio di programmazione ad oggetti per la Piattaforma Java alternativo al linguaggio Java).

Gradle gestisce diversi compiti (task), ogni task è un oggetto (object) che ha una API e deve compiere una lista di attività, la forma delle task utilizza a directed acyclic graph algorithm.

Introduzione

Questa guida descrive i vari tipi che compongono il linguaggio di “Build” Gradle o DSL (Linguaggio di Dominio Specifico).

Gradle appissue
Gradle appissue

Alcuni principi fondamentali

Ci sono alcuni concetti di base che si dovrebbero capire, che vi aiuteranno  a scrivere degli scripts in Gradle.

In primo luogo, gli scripts Gradle sono degli script di configurazione (realizzazione). Come lo script viene eseguito, si configura un oggetto di un tipo particolare. Un esempio, di come viene eseguito uno script di Build (configurazione), si configura un oggetto di tipo di Progetto (Project). Questo oggetto è chiamato l’oggetto delegato(Delegate) dello script.

La tabella seguente mostra il delegato per ogni tipo di script Gradle.

Tipi di script                                                                                     Delegati come istanza di

Build script (di configurazione o realizzazione)           Project (progetto)

Init script (di inizializzazione)                                                  Gradle

Settings script (di impostazioni)                                             Settings (Impostazioni)

Le proprietà ei metodi dell’oggetto delegato sono disponibili per il suo utilizzo nello script.

In secondo luogo, ogni script Gradle implementa uno script di tipo interfaccia(script interface) . Questa interfaccia definisce una serie di proprietà e di metodi che è possibile utilizzare all’interno dello script.

Struttura dello script di configurazione(build)
Uno script di build è composta da zero o più dichiarazioni  di blocchi di script. Le dichiarazioni possono includere metodo di chiamate, assegnazioni di proprietà, e delle definizioni di variabili locali.   Un blocco di script è una metodo chiamante che prende una clousure come parametro. La clousure è trattata come una configurazione  di una clousure che consente di configurare come eseguire (execute) un oggetto delegato.

Gradle appissue
Gradle appissue

Come capire le Clousure ? (a.d.t)
come particolare tecnica di mantenimento dello stato –  una inner function è una funzione che viene definita all’interno di un’altra funzione). vedi (http://stacktrace.it/2007/12/22/javascript-closures/

  • clousure come una una funzione che può essere assegnata ad una variabile e che è in grado di interagire con le variabili presenti nell’ambiente che la definisce** ( vedi http://www.sullaprogrammazione.com/le-closures-e-c.html e http://gafter.blogspot.it/
  • Una clousure è una forma di funzione anonima. Si dichiara con la seguente sintassi:  { parametri formali => istruzioni o espressione }. Parametri formali, dichiarazioni, e l’espressione sono facoltativi in questa clausola. Ad esempio, {int x => x + 1} è una funzione che prende un singolo argomento int e restituisce il suo valore incrementato di 1. La closure può essere richiamata dal Invoke Method. Ad esempio, {int x => x + 1} .invoke (10) chiamerà la chiusura con l’argomento 10.(vedi http://tronicek.blogspot.it/2007/12/closures-closure-is-form-of-anonymous_28.html)
gradle code android vs maven appissue
gradle code android vs maven appissue

I blocchi di scripts di livello superiore sono elencati di seguito.
allprojects { }  
Configura questo progetto(project) e ciascuno dei suoi sotto-progetti(sub-projects).
artifacts { }
Configura gli elementi (artifacts) pubblicate(rilasciate) per questo progetto(project).
buildscript { }
Configura classpath* di build (configurazione) per questo progetto(project)
configurations { }  
Definisce le configurazioni di dipendenza(dependencies)  per questo progetto.
dependencies { }
Configura le dipendenze per questo progetto.
repositories { } 
Configura i repository per questo progetto.
sourceSets { }
Configura impostazioni di origine (source sets)  di questo progetto.
subprojects { }
Configura i sotto-progetti di questo progetto.
publishing { }
Configura le PublishingExtension aggiunte dal plugin di rilascio(pubblicazione).

Uno script di build(impostazioni) è anche uno script Groovy, e quindi può contenere quegli elementi consentiti in uno script Groovy, quali le definizioni dei metodi e le definizioni di classe.

TIPI FONDAMENTALI

Di seguito sono elencati alcuni dei tipi di base che vengono utilizzati negli script di Gradle:

Project (progetto)
Questa interfaccia è l’API principale utilizzata per interagire con Gradle attraverso  il proprio file di build (grade.build)    Da Project(progetto), si ha accesso programmatico a tutte le funzioni di Gradle.

Task (compito)
Una task(compito) rappresenta un pezzo unico e atomica di lavoro per un file di build(impostazioni), come ad esempio la compilazione delle classi o la generazione di un javadoc.

 Gradle
Rappresenta una invocazione(chiamata) a Gradle.

 Settings  (impostazioni)
Rappresenta e dichiara la configurazione necessaria per istanziare e configurare le gerarchie del progetto(project), istanze che faranno parte del suo file di build (file di configurazione).  

Script    (copione)
Questa interfaccia è implementata da tutti gli script(copioni) di  Gradle con il fine di aggiungere alcuni dei metodi specifici di Gradle. Non appena si compila la classe dello script se implementerà questa interfaccia , e si potranno  allora utilizzare direttamente tutti i metodi e proprietà dichiarati nella interfaccia.

 JavaToolChain (catena di strumenti per codice sorgente java)
Una serie di strumenti  per permettere il building(le impostazioni di debug o rilascio) da codice sorgente provenienti da java (from Java source).

 SourceSet
Un SourceSet(impostazioni di sorgente) rappresenta un gruppo logico java di sorgenti(code) e  resources.

 SourceSetOutput (directory di output)
Una raccolta di tutte le directory di output (classi compilate, le risorse processate, ecc) – si noti che SourceSetOutput estende FileCollection.

 IncrementalTaskInputs (compiti incrementli)
Consente di accedere a tutti i file di input che devono essere trattati da un compito incrementale.

Configuration (Configurazione)
unaConfigurazione rappresenta un gruppo di elaborati con  le loro dipendenze. Trova maggiori informazioni sulla configurazione della dichiarazione di dipendenze o sulla gestione delle configurazioni nei documenti per ConfigurationContainer.            

 ResolutionStrategy
Definisce le strategie intorno alla risoluzione delle dipendenze. Ad esempio, costringendo d utilizzare certe versioni di dipendenza, le sostituzioni, la risoluzione dei conflitti o il timeout snapshot.

ArtifactResolutionQuery
Un costruttore  per definire una query in grado di risolvere specifici componenti provenienti da  elaborati software selezionati.

ComponentSelection
Rappresenta una tupla di  componenti selettori,  dentro un modulo e di una versione candidata , da essere valutare in una regola di selezione di componenti.

 ComponentSelectionRules
Rappresenta un contenitore per regole di selezione dei componenti. Le regole possono essere applicate come parte della resolutionStrategy di una configurazione e i singoli componenti possono essere espressamente accettati  o respinti dalla regola. I componenti che non sono stati né accettati né respinti saranno soggetti alle strategie di versione di default corrispondenti.

 ConventionProperty
ConventionProperty può essere assegnata ma non può essere mutata(anche se l’oggetto è mutevole!)

 ExtensionAware
Gli oggetti che possono essere estesi a runtime con altri oggetti.

 ExtraPropertiesExtension
Aggiuntivo, ad-hoc, proprietà per gli oggetti del dominio Gradle.

 PublishingExtension
La configurazione di come “pubblicare” rilasciare i diversi componenti di un progetto.

 Report (Rapporto)
Un rapporto basato su file da creare.

 Reporting (Segnalazioni)
Un oggetto che fornisce opzioni di reporting.

 ReportContainer
Un contenitore di oggetti tipo report, che rappresentano potenziali rapporti(reports).

 ReportingExtension
Un’estensione di progetto chiamato “report”, che fornisce le impostazioni di segnalazione (reporting) di base e le utility.

 IvyPublication
Un IvyPublication è la rappresentazione / configurazione di  come Gradle dovrebbe pubblicare qualcosa in formato Ivy, al interno di un repository Ivy. Aggiungendo  direttamente una chiamata Ivy alla pubblicazione (publishing). il contenitore di Publications del progetto fornirà  IvyPublication come tipo.

 IvyArtifact
Un artefatto(elaborato)  pubblicato come parte di una IvyPublication.

 IvyArtifactSet
Una collezione di IvyArtifacts da includere in una IvyPublication. Essendo un DomainObjectSet, una IvyArtifactSet fornisce metodi utili per l’interrogazione, il filtraggio, e la applicazione di azioni specifiche al set (insieme) di IvyArtifacts.

 IvyModuleDescriptorSpec
Il descrittore di qualsiasi pubblicazione Ivy.

 MavenPublication
Un MavenPublication è la rappresentazione / configurazione di come Gradle dovrebbe pubblicare qualcosa in formato Maven. Si aggiunge direttamente un il nome Maven alla pubblicazione (publishing). il contenitore di Publication del progetto fornirà MavenPublication come tipo.

 MavenArtifact
Un artefatto(elaborato)  pubblicato come parte di una MavenPublication(rilascio).

 MavenArtifactSet
Una collezione di MavenArtifacts da includere in una MavenPublication. Essendo un DomainObjectSet, un aMavenArtifactSet fornisce metodi utili per l’interrogazione, il filtraggio, e applicazione di  azioni specifiche al set (insieme) di MavenArtifacts.

 MavenPom
Il POM per una pubblicazione Maven. Il metodo MavenPom.withXml () può essere utilizzato per modificare il descrittore dopo che è stato generato in base ai dati di pubblicazione.

 PluginDependenciesSpec
Il DSL per dichiarare i plugin da utilizzare all’interno  uno script.

 PluginDependencySpec
Una specifica mutabile di una dipendenza all’interno di un plugin.

 ResourceHandler (gestore delle risorse)
Fornisce l’accesso ai metodi  di utilità di specifiche risorse, per esempio i metodi di fabbrica che creano svariate  risorse.

 TextResourceFactory (costruttore)
Crea TextResources garantite da fonti come le stringhe, file e le voci di archivio.

 TIPI DI CONTAINER
Tipi di container che gestiscono i vari elementi dichiarativi (ad esempio le dipendenze, le configurazioni, i manufatti, etc.):

 ConfigurationContainer
Un ConfigurationContainer è responsabile delle dichiarazioni e della gestione delle configurazioni(.(impostazioni di configurazione). Vedere anche Configurazione

RepositoryHandler
Un RepositoryHandler gestisce una serie di repository, consentendo ad essi (repository ) di essere  da definiti (impostati) e di essere filtrati (interrogati attraverso filtri e query).

DependencyHandler
Un DependencyHandler consente di dichiarare le dipendenze. Le dipendenze sono raggruppate i in configurazioni (vedere Configurazione).

ArtifactHandler
Questa classe serve a definire artefatti (elaborati – documenti) da pubblicare e aggiungerli alle configurazioni. La creazione di artefatti di pubblicazione (rilascio) non significa dovere creare un archivio. Ciò che si crea è un oggetto di dominio che rappresenta un file da pubblicare insieme e contiene informazioni  su come dovrebbe essere pubblicato (ad esempio, il nome).

FONTE VIDEO (youtube Gladeware)

Come diventare uno sviluppatore Android – (android skills 2015)

FONTE ORIGINALE (by 

Si sa che le app mobile (applicazioni per mobile)  collegano sempre più gente del pianeta, e permettono agli utenti di tutto il mondo ad interattuare o  interagire  in modo sempre più interessante e innovativo come non si era mai immaginato, il lavoro dello sviluppatore app mobile è diventato sempre più arricchente, appagante, e necessario per l’economia globale moderna.

Le applicazioni per cellulari che usiamo ogni giorno hanno cambiato il nostro modo di comunicare e di consumare intrattenimento, anche il nostro modo di imparare le cose sul mondo.  Non sarebbe male se si pensasi allo sviluppo delle mobile app come ad una delle industrie di lavoro più cool (di moda – più trainante) del momento.

Quindi, come si fa a diventare uno sviluppatore di applicazioni per mobile (appmobile – mobileapp developer ) ?

Ecco la sua versione essenziale : si sceglie una delle piattaforme – come Android ,iOS o Windows Mobile – si apprendono le competenze tecniche di base, se si cimenta  sulle proprie competenze trasversali -migliorandole (soft skills), e ci si diventa.

Come diventare uno sviluppatore Android ?

Ma veniamo in un  po più in dettaglio. Qui, stiamo andando ad affrontare la prospettiva di diventare uno sviluppatore di Android appositamente (dedicato ).

Perché Android?

Android a livello globale, è il leader indiscusso della quota di mercato degli smartphone. Grazie alla crescita dei mercati emergenti come il Messico, la Turchia e il Brasile, quella posizione dominante non tramuterà nel breve periodo.

android developer
android developer

Grafico via 9to5Mac

facendo si che questa preponderanza di mercato si traduca in una grave  difficoltà, per la sicurezza del lavoro degli sviluppatori di Android.

Inoltre, la piattaforma Android è open source (l’intero codice sorgente di Android è consultabile (browsable)  e condivisibile, anche se con un po di software proprietario come Google Play), rendendo l’ecosistema di sviluppatori dinamico e collettivamente arricchente.

Gli sviluppatori di Android condividono consigli, trucchi e tutorial con tutta la comunità Android, e dal momento che Google gli aiuta  con lo sviluppo di strumenti come Google Play Services  per tutte le attività comuni delle app:  come l’accesso, l’autenticazione, la posizione e la archiviazione di dati,  cosi permettendo agli sviluppatori di Android di concentrarsi sulla costruzione delle ‘funzionalità di base’  delle loro applicazioni

In sostanza, si tratta di un momento particolarmente emozionante per lanciare una carriera nello sviluppo di Android. Vi è una fonte sana di posti di lavoro, la domanda di applicazioni Android promette di aumentare in futuro, e le tecnologie – app indossabile e app TV-  stanno intrigantemente avanzando.

Le Abilità o Competenze richieste (Hard Skills): cosa imparare

Per prima cosa: le competenze tecniche. siccome lo Sviluppo di Android può essere fatto su un computer Mac, PC Windows o Linux. Avrete anche bisogno di un dispositivo Android (è possibile utilizzare un emulatore come Genymotion per lo sviluppo, ma alla fine ti consigliamo di provare su un dispositivo reale).

Ecco il breve elenco degli strumenti da conoscere (must-know skills) per diventare uno sviluppatore Android.

Java

L’elemento più fondamentale  per lo sviluppo con Android è il linguaggio di programmazione Java. Per essere un  sviluppatore Android di successo, è necessario stare bene con i concetti di Java come loop, liste, variabili e strutture di controllo.  Java è uno dei linguaggi di programmazione più utilizzati dagli sviluppatori di software di oggi, in modo cheimparare i suoi pro e  contro ci metterà in una buona posizione per trovare lavoro. (qualcuno dal mondo di sviluppo back-end?) Anche al di là della piattaforma Android.

SQL

Avrete anche bisogno di imparare le basi di SQL per gestire e organizzare i database all’interno delle applicazioni Android.   SQL è un linguaggio per esprimere le query (filtri chiamate) e cosi consultare e recuperare dati o informazioni dai database. Una volta imparate a scrivere (filtri e query), non ci saranno domande che non si possano chiedere ai tuoi database (dati).

SDK- Android Software Development Kit e Android Studio

Una delle parti migliori dello sviluppo per Android è che gli strumenti necessari sono gratuiti e facili da ottenere. L’SDK Android è disponibile per il download free-of-charge -gratis -, come lo è anche Android Studio, l’ambiente di sviluppo integrato ufficiale (IDE) per lo sviluppo di applicazioni Android.     Android Studio è il programma principale con cui gli sviluppatori a scrivere codice e assemblare le loro applicazioni da vari pacchetti e le librerie. L’Android SDK include codice di esempio, librerie software, utili strumenti di codifica, e molto di più per aiutarvi a costruire, testare, e debug-gare (mettere appunto)  le vostre applicazioni Android.

Un altro punto rilevante di sviluppare per Android è la facilità del processo di distribuzione (deploy)  delle app. Una volta che si è pronti per inviare la tua applicazione a Google Play Store, basta registrarsi con un account editore/sviluppatore – Google Play publisher account -(che include il pagamento di una tassa di 25 dollari tramite Google Wallet), seguire passo a passo tutte le voci della lista di lancio di Android (launch checklist), pubblicare la app attraverso il Developer Google Play Console, attendere la approvazione di Google, e vederla apparire. Semplice e soddisfacente.

XML

I programmatori usano XML per descrivere i dati. Le basi della sintassi XML sarà utile – a pieno titolo  – nel vostro viaggio  degli sviluppatori Android  per sviluppare diversi compiti, come la progettazione di interfaccie utente (UI), presentazione( layout) e analisi dei dati alimentati o provenienti da internet. Molto di ciò che è necessario per XML può essere fatto attraverso Android Studio, ma è costruttivo essere fondato nelle basi di questo linguaggio di markup.

Le Abilità o Competenze richieste (Hard Skills): Come imparare a dimostrare di averle

Per gli sviluppatori di Android abbondano  le resource (strumenti) per potere cosi affinare le proprie competenze e  condividere suggerimenti e migliori pratiche (best practice).    Alcuni preferiti del settore includono Stack OverflowAndroid Weekly, il  Android Dev subreddit, vogella tutorials, YouTube(lezioni di Youtube), e il sito ufficiale di  Google per gli sviluppatori Android Developers site—specialmente il Building Your First App modulo.    Se sei un allievo della carta stampata, ci sono del libri molto popolari di Android come  Head First Java, Android Programming (programmazione) : Pushing the Limits(superare i limiti), e Java: A Beginner’s Guide( Guida per principianti di Java.)

Quando si inizia a pensare ad attrarre delle nuove  opportunità di lavoro, e alla vendita (migliore presentazione)  di se stessi come validi candidati,  è importante prendere in considerazione di mettere in in mostra il proprio lavoro sviluppato su Android (apps) nei siti come suon LinkedInXing, attraverso un portfoglio – cartella di (app) personale online, o su siti come e BehanceGitHub.    Gomito a gomito, di persona o  in forma virtuale, incontrarsi con altri sviluppatori Android e con molteplici responsabili delle assunzioni o reclutatori tramite Meetup (incontri conferenze) , tali come droidcon, e concentratori di gruppi o reti digitali (hubs) come LinkedIn groups, Twitter chats, e Quora feeds (sviluppi e notizie). Lei non saprà mai cosa potrà imparare, o a chi potrà mai trovare ?

Le competenze e abilità trasversali (soft skills)

Come per qualsiasi lavoro, non è sufficiente essere completo o senza difetti a livello tecnico, devi fare in modo di affinare le proprie abilità interpersonali tanto quanto quelle di codifica (scrittura analisi di codice).

Perseveranza (e pazienza … a.d.t.)

La pratica rende perfetti davvero quando si parla di sviluppo delle applicazioni. Inevitabilmente, si troveranno dei posti di blocco o degli ostacoli nel processo di sviluppo, in particolare agli inizi dello stesso.  Avrete bisogno di un gran cumulo di perseveranza per poterlo utilizzare a dovere nei momenti frustranti. Per fortuna, dal momento che Android è open-source, cosi che gli sviluppatori di Android potranno  usufruire di librerie e di  framework – pieni di lavori condivisi (codice example)  creati e pubblicati su siti come GitHub.

Avere un atteggiamento Collaborativo

L’atteggiamento Collaborativo è una richiesta di vitale importanza, nella maggior parte dei lavori offerti agli sviluppatori.   Anche se si sta lavorando in un solo progetto, sarà inevitabile dovere lavorare  insieme con altre persone, tali come specialisti in grafica e design (grafici) , personale del marketing, o della alta direzione aziendale (top managers).  Inizia a prendere confidenza con l’accettare semplicemente (umilmente a.d.t)  i feedback (appunti, commenti, e/ o suggerimenti migliorativi) sul proprio lavoro, giungendo a compromessi  con i colleghi, e collaborando con gli altri partecipanti  del progetto per cosi  creare dei prodotti eccezionali.

Sete di conoscenza

Tutti i buoni sviluppatori, mobile e non, sono impegnati nella formazione continua e permanente. Soprattutto nel paesaggio del rapido sviluppo di applicazioni mobile:  con l’avvento di app indossabili, app TV, app per le auto, e altro ancora, gli sviluppatori mobile devono tenere gli occhi e le orecchie aperte alle nuove tecnologie e alle mutabilità continua delle “migliori pratiche”.   Non importa il  livello  raggiunto delle loro conoscenze,essi  non si fermano mai nello  indagare, esplorare, giocare attorno, e fare delle domande.

Sintesi (the bottom line)

Le mobile applicazioni hanno una richiesta altissima, oggi più che che mai, il che rende questo momento uno fra il più incredibile  per lanciare propria carriera come sviluppatore Android. Con l’allargamento Androidoltre lo spazio dei consumatori al lavoro e all’istruzione, e continua a spingere le frontiere i limiti consolidando ricche esperienze utente di tipo cross-device(attraverso molteplice dispositivi) con il nuovo Material design language, Sono tempi eccitanti (momento particolarmente emozionante)  per tuffarsi nello sviluppo di Android. Quindi, andare avanti, con i i piedi per prima. L’acqua è calda (tiepida a.d.t.!).

Molte grazie agli sviluppatori esperti per conto di Google: Enrique López-Mañas (eenriquelopez) ed Etienne Caron, e allo sviluppatore per conto di Udacity Eric Gonzalez per i loro contributi e commenti tecnici all’interno di questo articolo.

a.d.t. (annotazione del traduttore Carmen Vargas)