Scrivere App per Android Studio con Codice Java e C/C++ .

Lo sviluppo di applicazioni per il sistema operativo Android ha acquistato negli ultimi anni grande importanza a seguito della diffusione di tablet, telefoni e dispositivi che adottano questo sistema operativo creato da Google.
Tra i principali fattori che a mio avviso hanno favorito questa forte espansione ci sono sicuramente:

  • Il costo, non ci sono licenze da pagare.
  • La disponibilità dei codici sorgenti e la possibilità di analizzare, studiare e/o modificare ogni singola riga di codice su cui è costruito il sistema operativo.
  • Il mantenimento continuo del sistema operativo viene costantemente sviluppato da centinaia di programmatori e aziende che lo tengono aggiornato e lo arricchiscono di funzionalità.
  • La sicurezza elevata del sistema; Android è molto attento alle policy sulla sicurezza e all’accessibilità delle risorse.
  • L’affidabilità del sistema il quale è molto ben pensato e strutturato e permette sempre il recovery, il ripristino, il riavvio etc…
  • La disponibilità gratuita dei tools per lo sviluppo di applicazioni e programmi.

Per sviluppare un’applicazione Android infatti servono poche cose:
Continua a leggere

Audio Pitch Shifter for Dummies!

Grazie alla segnalazione di un’amico, nel coso degli ultimi mesi, mi sono imbattuto in uno stupendo software dal nome reTune in grado di manipolare il pitch di una frase audio in modo estremamente evoluto e potente.
Questo software sembra realizzare gran parte dei miei desideri legati alla mia attività nel campo dell’audio musicale. Oltre ad offrire la possibilità di modificare il pitch di un loop audio in tempo reale, permette infatti di riintonare i frammenti audio sulla chiave desiderata e anche di trasportare il loop da una tonalità maggiore ad una minore per esempio.
In effetti questa è la features più interessante e che potrebbe risultare molto utile a chi sino ad oggi ha fatto salti mortali per far suonare strumming audio di chitarra da adattare istante per istante, all’accompagnamento riprodotto dalla sezione MIDI.

Continua a leggere

Android Open Source Project quanto basta.

android

Android è il sistema operativo sviluppato da Google che negli ultimi anni si è diffuso su milioni di device e dispositivi elettronici probabilmente grazie alle sue indiscusse ottime funzionalità ma anche alla sua natura di progetto Open Sources.

Quando si parla di progetto Open Source si pensa sempre ad un progetto aperto, di cui si conosce ogni aspetto o in cui ogni modifica e ogni cambio di direzione sia stato condiviso e discusso da una comunità di sviluppo secondo lo schema classico e già collaudato da anni dagli sviluppatori di Linux o di uno dei tanti altri progetti Open relativi al mondo dell’ IT.

Android però differisce in molte parti da questo “schema classico di sviluppo” sia per le modalità di creazione ( Android è ed è stato sviluppato a porte chiuse dal team di Google che poi successivamente ha rilasciato e rilascia il lavoro svolto sotto forma di sorgente) sia per il modello interno dei componenti software e delle funzionalità e delle loro relative licenze di utilizzo.

Quando si legge la documentazione relativa ad Android compare sempre l’acronimo AOSP il quale stà ad indicare l’insieme del Progetto Open Source, che Google ha creato nel mettere insieme il sistema operativo Android.
Ma con quale licenza d’uso vengono rilasciati i componenti dell’AOSP e quali sono i componenti principali di Android?

Nelle righe seguente cercherò di spiegare questa complessa questione, almeno per quanto ne sono riuscito a capire io,  nella speranza di poter fare un po di chiarezza su questa spinosa materia.
Qualora nel corso della lettura rilevate delle inesattezze o delle mancanze, siete veramente pregati di segnalarmelo.

Nota per gli utilizzatori “quotidiani” di Android: la lettura di questo articolo non vi aiuterà a far funzionare meglio il vostro telefonino, al massimo può risultare interessante per gli smanettoni e per coloro che si occupano di adattare Android per i propri prodotti embedded.
Lettore avvisato, mezzo salvato!

Continua a leggere

Qt Embedded in Domande e Risposte.

QtembeddedNei giorni in cui  la Digia rilascia la versione 5.6 del suo framework, nel quale ho trovato alcune interessanti novità ma anche qualche spiacevole mancanze come il supporto per Enginio e la cancellazione del WebKit, voglio condividere con i lettori curiosi ed interessati del mondo della programmazione un documento che ho redatto nel corso della passata estate.
Nel pdf che potete scaricare da questo link, ho raccolto alcune delle domande e delle relative risposte che nel corso degli anni mi sono personalmente posto durante l’utilizzo e le fasi di apprendimento del framework Qt.
Le problematiche in esso affrontate e le relative soluzioni fornite, sono mirate alla realizzazione di interfacce grafiche su piattaforme embedded e puntano ad illustrare i passi e le nozioni di base utili alla realizzazione di applicazioni grafiche basate su widget al cui applicare un proprio Look&Fill. Oltre agli aspetti di pura programmazione e ad esempi di codice scritti in C/C++, vengono esposte le problematiche legate alle licenze d’uso e dei vincoli da rispettare per la realizzazione dei software e dei prodotti commerciali anche partendo dalla versione OpenSource del framework.
Il presente documento non vuole assolutamente essere una “guida completa” all’utilizzo di Qt, per il quale servirebbe un numero di pagine  enormemente maggiore, ma solamente essere una raccolta di spunti ed idee che possono risultare utili sia all’apprendimento di chi per la prima volta si avvicina a questo framework, sia per coloro che già lo conoscono e vogliono conoscere alcune particolarità e alcune delle sue funzionalità utili nel mondo embedded.
Spero che possa essere di vostro interesse.

 

Yocto Progetto: il sistema di sviluppo per Linux embedded.

yoctoNel corso degli ultimi 10 anni abbiamo visto crescere continuamente  le funzionalità e le prestazioni  delle apparecchiature elettroniche immesse sul mercato.
Quello che una volta poteva sembrare un sogno come ad esempio un telefono che risponde ai propri comandi vocali o una TV che si collega autonomamente ad internet e cerca il filmato da visualizzare, oggi è realtà e probabilmente è solo una minima parte di quello che i “guru” della tecnologia e della tecnica stanno progettando per il nostro futuro.

La crescita di funzionalità e prestazioni di questi dispositivi è sicuramente dovuta sia alla presenza sul mercato di CPU sempre più potenti e performanti ( oggi la maggior parte dei dispositivi sono equipaggiati con cpu ARM multi-core ad oltre un GHz di clock ) sia alla possibilità di includere nei propri device, sistemi operativi liberi e facilmente integrabili ed utilizzabili. Ne sono un esempio lampante tutte le apparecchiature basate sui sistemi Android.

Ma quali sono le complicazioni e le difficoltà che si incontrano quando si decide di realizzare un nuovo apparato che utilizza una simile tecnologia e quali sono gli strumenti necessari per gestire e realizzare un sistema di sviluppo fruibile e funzionale?

Continua a leggere

L’Arranger Open Source

programamtoreRicevo molto spesso richieste di consigli e suggerimenti da persone che in un modo o nell’altro vorrebbero realizzare dei software o delle applicazioni in ambito musicale.
Alcuni lettori mi chiedono dei semplici consigli, altri chiedono funzioni specifiche e più sofisticate, altri ancora si spingono oltre il limite non valicabile del segreto professionale al quale ovviamente sono legato e per il quale non posso spiegare “come funziona internamente” quel software o quella macchina nella quale negli anni ho avuto occasione di lavorare.
In questa ultima categoria ricadono tutte le richieste di aiuto e suggerimenti che riguardano il mondo degli arranger e delle macchine d’accompagnamento automatiche.
Sembrerà curioso, ma sembra che in giro per il mondo vi siano diverse persone e diverse realtà interessate a realizzare applicazioni software di questo tipo.
Personalmente ritengo che tali richieste o tali fantasie ( quelle di realizzare un arranger appunto) siano legate principalmente alla non conoscenza approfondita della materia; molto spesso chi avanza tali richieste pensa che sia sufficiente realizzare un buon software per costruire e mettere sul mercato un super arranger e sfortunatamente  non hanno la minima cognizione del lavoro, della fatica e delle professionalità che debbono essere presenti dietro un progetto di questo tipo.
Un buon arranger è costituito si da un buon programma software, ma è anche indispensabile disporre di una generazione sonora di qualità, di una programmazione maniacale e certosina degli accompagnamenti e delle parti musicali, di una struttura hardware e software in grado di operare anche nella peggior situazione possibile e sempre pronta a reagire alle richieste e agli interventi dell’utente.
In ogni caso per venire incontro alle richieste di alcuni lettori del blog e grazie ad una segnalazione di un mio amico, ho trovato un software Open Source che emula un arranger.
Visto che questo programma è di pubblico dominio, la sua analisi e  la sua “divulgazione” non viola alcuna regola di riservatezza.
Nelle pagine che seguenti mostrerò come poter compilare, debugare, questo software; queste due fasi sono attività sono infatti indispensabili se si vuole cercare di analizzare e capire il funzionamento.

Continua a leggere

Il regalo di Natale di Qt

qtNataleProprio a ridosso delle imminenti feste natalizie, la Digia ha rilasciato l’ultima versione del framework multi piattaforma Qt che contiene molte interessanti novità sia per gli addetti ai lavori che per gli appassionati e gli smanettoni del codice.
Con la versione 5.2,   Qt è stato finalmente “portato” anche sui sistemi Android ed iOS; in poche parole da ora in poi, le applicazioni Qt funzionano nativamente su tutti i principali desktop, su tutti i sistemi embedded e su tutte le  più grandi e diffuse piattaforme mobile!

Queste nuove possibilità, forniscono agli sviluppatori e alle aziende che adottano tale sistema,  la grande opportunità di essere in prima linea nei mercati del software della telefonia mobile a livello mondiale. Continua a leggere