Guida alle App di Thingiverse

Da Thingiverse è possibile scaricare un file Stl praticamente per qualsiasi necessità.
Il database di oggetti della piattaforma creata nel 2008 da Bre Pettis e Zach Smith, due dei fondatori di MakerBot MakerBot, è infatti impressionante: attualmente c’è oltre un milione di modelli stampabili.
Da qualche anno è stata introdotta la categoria speciale “Customizable” (oggetti personalizzabili), con cui è possibile intervenire sul file di un oggetto aggiungendo delle personalizzazioni. Gli utenti di Thingiverse vedranno quindi espandersi le potenzialità di utilizzo del sito, grazie ai nuovi
strumenti che arriveranno e alla possibilità di integrare maggiormente i contenuti presenti
con il mondo esterno.
Gli sviluppatori potranno anche pubblicare applicazioni che prevedono pagamenti oltre che a interazioni con i file, aprendo nuovi scenari di business.
Un programma che utilizza le librerie di Thingiverse è genericamente definito “Thing App”
e può assumere varie forme.
Una App può essere quindi un programma integrato in Thingiverse, un sito web indipendente, un programma desktop installabile o una App per smartphone.
Per scrivere un programma che s’integri con Thingiverse è necessario aderire al programma dedicato che fornirà allo sviluppatore i metodi e gli strumenti per accedere alle informazioni contenute in Thingiverse.
Solitamente l’accesso avviene con web service con cui è possibile far comunicare il proprio programma con un sito internet che, in seguito a interrogazioni, restituisce dati interpretabili dal software.

Come sviluppare un’app

I dati presenti all’interno di Thingiverse sono esposti come servizi Rest (REpresentational State Transfer). Un sito che pubblica servizi di questo tipo usa degli indirizzi che corrispondono ai diversi dati che si possono ottenere. Richiamando questi indirizzi con un browser o direttamente da un programma si possono ricevere i dati in una forma adatta per essere elaborata.
Solitamente nei servizi web si usa l’Xml o Json, che sono modi particolari e strutturati per descrivere le informazioni, così che possano essere elaborate da un software.
Thingiverse fa di tutto per semplificare la creazione di app, ma il minimo requisito richiesto è di essere un programmatore. È quindi possibile sviluppare un applicativo integrato con Thingiverse in numerosi modi. Se non siete in grado di scrivere del codice, assumete un programmatore, l’offerta non manca. Attualmente, infatti, scrivere software sta diventando sempre più complesso: esistono numerosi ambienti e framework che dovrebbero semplificare la vita dei programmatori, in pratica però assistiamo a una babele di linguaggi e tecnologie. Vediamo che tipi di approcci è possibile adottare per sviluppare delle app.

Mobile Application

Le app per smartphone oggi sono diffuse e quindi potreste decidere di sviluppare un’app invece che un software più “classico”. Esistono varie piattaforme per scrivere delle applicazioni per telefoni, principalmente esistono il mondo di Android, di Apple e di Microsoft.
Per sviluppare su Android è necessario conoscere il linguaggio Java. Lo strumento da usare per lo sviluppo del codice è Android Studio, che include anche un emulatore per i telefoni. Android Studio si può installare su qualsiasi computer (Win, Mac e Linux). Serve poi una licenza per pubblicare le App sul market: si acquista tramite Google e dura per sempre.
Per sviluppare su iOs serve un Mac, un vero iPhone e una licenza che si deve rinnovare ogni anno. Il codice si scrive con l’ambiente di programmazione Xcode di Apple utilizzando il nuovo linguaggio Swift (che dovrebbe sostituire il complicato Objective C). Xcode include un emulatore con tutti i modelli di iPhone.

Per le piattaforme Microsoft si possono creare app per Windows Phone utilizzando Visual Studio. Con Windows 10 gli sviluppi dovrebbero essere più semplici perché è stata creata la piattaforma Uwp (Universal Windows Platform), che semplifica gli sviluppi per computer, smartphone e tablet.
I sistemi fin qui elencati creano app in codice nativo, cioè nel linguaggio proprio o principale in cui è stato scritto il sistema operativo del telefono.
Le app scritte in questo modo possono accedere anche alle funzioni a basso livello del telefono e in genere hanno prestazioni migliori. Un’alternativa interessante è offerta da sistemi multipiattaforma basati su Apache Cordova. Utilizzando questa tecnologia è possibile sviluppare app che possono girare su diversi sistemi. Lo sviluppo è semplificato perché è fatto in Html5, Css e Javascript.
L’app si crea una volta sola e poi può essere “incapsulata” in una specie di web container creato appositamente per ogni sistema. In questo modo si trasforma una web app in una mobile application.
Un’implementazione famosa di Cordova è PhoneGap PhoneGap, supportata da Adobe e dotata di una serie di utili strumenti per lo sviluppo come l’emulatore e le app per i test sul proprio telefono.
L’integrazione con l’hardware dello smartphone è garantita da speciali librerie in Javascript che possono leggere bussola, accelerometro, accedere alla macchina fotografica e alle funzioni caratteristiche del telefono.

Desktop Application

Anche lo sviluppo desktop offre numerose alternative. Un applicativo desktop è un programma con una finestra principale e un’interfaccia più o meno complessa, che può essere disegnata “a mano” o utilizzando degli strumenti di composizione visuale (Ide visuali). Ogni sistema ha i propri linguaggi “preferiti” che solitamente sono C# o VisualBasic per i sistemi Windows e Swift o Objective C su Apple.

I sistemi Linux offrono numerose possibilità: Java, Python, Perl, Mono, C e C++ solo per citarne alcune. Le tecnologie opensource utilizzabili su Linux permettono a volte di scrivere app multipiattaforma che possono essere utilizzate su tutti i sistemi.
Va considerato però che oggi si cerca di sviluppare sempre meno questo tipo di soluzioni per le difficoltà nella distribuzione e nell’aggiornamento delle stesse.
Anche le applicazioni desktop possono collegarsi a servizi web come quelli offerti da Thingiverse per ottenere dati o per compiere delle operazioni.
I servizi web si possono usare direttamente oppure tramite librerie come quelle messe a disposizione da Thingiverse.

Web Application

Uno dei metodi preferiti per creare applicazioni moderne è quello Web application, cioè dei siti Internet che prendono le informazioni da un database e da servizi web. I browser supportano molte tecnologie oltre all’Html ed è possibile fare praticamente di tutto e con più facilità rispetto alla programmazione classica: si pensi alle applicazioni prodotte da Google, come Gmail o Drive. Per realizzazioni di questo tipo è necessario disporre di un server che può essere proprio o preso in service. A volte può bastare una semplice porzione di server (hosting) per ospitare un sito dinamico. È possibile realizzare applicazioni web utilizzando i principali linguaggi di programmazione Java, C#, python, Ruby, php combinati a un database per la memorizzazione dei dati.
Anche in questo caso esistono numerose librerie che facilitano le operazioni: per accedere ai database, per definire la struttura del sito, per accedere a speciali servizi.
Ormai ha preso piede tra i linguaggi di sviluppo anche Javascript (nodejs). Javascript nacque come linguaggio per i browser, per creare contenuti dinamici, ma nel tempo è stato potenziato e reso stabile e affidabile. Ora può essere utilizzato come linguaggio indipendente per scrivere intere applicazioni dinamiche.

Nelle pagine web, Javascript utilizzato con librerie speciali come jQuery.com o AngularJS facilita la creazione di App interattive, semplificando gli sviluppi. Questi framework sono di grande aiuto anche per l’utilizzo di servizi web come quelli di tipo Rest pubblicati da Thingiverse.
Va anche ricordato che per gli sviluppatori php, un linguaggio molto popolare per lo sviluppo sul web, esistono librerie che possono interrogare direttamente i servizi di Thingiverse.

Thing App

Le App sono scritte in linguaggio Javascript, combinato con le librerie fornite da Thingiverse (Thingiverse Iframe Javascript Sdk). Per creare un’app è necessario scrivere un file Html che utilizzerà queste librerie e sarà visualizzato in un iframe, cioè una particolare cornice che può essere “aperta” all’interno di una pagina web. La pagina che scriverete dovrà essere ospitata su un vostro server: Thingiverse non offre il servizio di “hosting” né copierà la app sui suoi server. Per scrivere un’app in questo modo basta un editor di testo e un hosting web. Per iniziare a creare una Thing App visitate le pagine Getting Started e la descrizione della libreria di Thingiverse RestApi.

Per registrare l’App si deve compilare il modulo presente nella pagina Create.
Vanno fornite alcune informazioni:
• il nome dell’app;
• la descrizione di quello che fa;
• il tipo di app e la piattaforma su cui funzionerà (web, thing, mobile, desktop);
• l’indirizzo web dell’App Thing;
• un indirizzo per il meccanismo di autenticazione di Thingiverse.

Le Api di Thingiverse

Le Application Programming Interface di Thingiverse permettono agli sviluppatori software di interagire con semplicità e senza conoscere i dettagli dell’implementazione di tutto il sito. Le librerie si devono “includere” al software che scriverete e vi forniranno metodi per creare nuovi oggetti, farne delle copie, modificarli, raggrupparli e anche per fare dei pagamenti. Le librerie di Thingiverse utilizzano, per lo scambio dati, il formato Json (una rappresentazione testuale e formale delle informazioni che può essere interpretata sia da computer che da
esseri umani). Un’App Thing deve comportarsi in modo corretto all’interno della piattaforma e quindi non è possibile vendere contenuti di qualsiasi tipo agli utenti senza avere l’approvazione da parte di Thingiverse e degli utenti stessi. È vietato anche estrarre contenuti da Thingiverse per riversarli all’interno di altre piattaforme, generare “spam”
e pubblicità invasiva. Per questi motivi e quindi per salvaguardare l’esperienza degli utenti, ogni software sottoposto dovrà essere approvato.
L’approvazione richiede un massimo di 3 giorni e mentre è in corso si possono nominare fino a 10 tester che potranno verificare che il software funzioni correttamente.
CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here