Sviluppatore Android mid-level

marker

Stiamo cercando uno sviluppatore Android nativo da inserire all’interno del team di sviluppo interno, con comprovata esperienza sulla piattaforma Google e/o CyanogenMod e una buona autonomia operativa.

I candidati verranno coinvolti nello sviluppo dei progetti aziendali e potranno occuparsi anche della formazione delle risorse interne.

Principali responsabilità:
– sviluppo di app native per Android (smartphone, tablet, wearable, custom hardware, custom firmware)
– formazione delle risorse junior interne
– delivery delle applicazioni su Play Store e gestione certificati

Competenze richieste:
– buona conoscenza di Java
– ottima conoscenza del sistema operativo Android
– ottima conoscenza dell’ambiente di sviluppo Eclipse e/o Android Studio
– almeno 1 anno di esperienza in ruolo analogo
– esperienza in ambito REST web services e scambio di dati con strutture dati JSON

Completano il profilo:
– la conoscenza di iOS e/o PhoneGap
– esperienza con i framework AngularJS e/o Ionic
– esperienza nello sviluppo Web (HTML/JS/CSS, PHP)
– App pubblicate su Play Store e/o App Store

Per candidarti a questo annuncio decodifica l’indirizzo e scrivici una mail a am9ic0Btb2JpbWVudHVtLml0

Sede di lavoro: Bologna

Posted in Jobs.

Sviluppatore PhoneGap mid-level

marker

Stiamo cercando uno sviluppatore PhoneGap da inserire all’interno del team di sviluppo interno, con comprovata esperienza sulla piattaforma Cordova e una buona autonomia operativa.

I candidati verranno coinvolti nello sviluppo dei progetti aziendali e potranno occuparsi anche della formazione delle risorse interne.

Principali responsabilità:
– sviluppo di app ibride per iOS e Android
– formazione delle risorse junior interne
– delivery delle applicazioni su App Store e Play Store e gestione certificati

Competenze richieste:
– buona conoscenza di JavaScript
– ottima conoscenza dell’architettura PhoneGap
– ottima conoscenza e dimestichezza con strumenti di sviluppo e debug JavaScript
– almeno 1 anno di esperienza in ruolo analogo
– esperienza in ambito REST web services e scambio di dati con strutture dati JSON

Completano il profilo:
– la conoscenza di Android e/o iOS native e/o Appcelerator Titanium
– esperienza con i framework AngularJS e/o Ionic
– esperienza nello sviluppo Web (HTML/JS/CSS, PHP)
– App pubblicate su Play Store e/o App Store

Per candidarti a questo annuncio decodifica l’indirizzo e scrivici una mail a am9ic0Btb2JpbWVudHVtLml0

Sede di lavoro: Bologna

Posted in Jobs.

Sviluppatore iOS mid-level

marker

Stiamo cercando uno sviluppatore iOS nativo da inserire all’interno del team di sviluppo interno, con comprovata esperienza sulla piattaforma Apple e una buona autonomia operativa.

I candidati verranno coinvolti nello sviluppo dei progetti aziendali e potranno occuparsi anche della formazione delle risorse interne.

Principali responsabilità:
– sviluppo di app native per iOS (iPhone, iPad)
– formazione delle risorse junior interne
– delivery delle applicazioni su App Store e gestione certificati

Competenze richieste:
– buona conoscenza di Obj-C e/o swift
– ottima conoscenza del sistema operativo iOS
– ottima conoscenza dell’ambiente di sviluppo Xcode
– almeno 1 anno di esperienza in ruolo analogo
– esperienza in ambito REST web services e scambio di dati con strutture dati JSON

Completano il profilo:
– la conoscenza di Android e/o PhoneGap
– esperienza con i framework AngularJS e/o Ionic
– esperienza nello sviluppo Web (HTML/JS/CSS, PHP)
– App pubblicate su Play Store e/o App Store

Per candidarti a questo annuncio decodifica l’indirizzo e scrivici una mail a am9ic0Btb2JpbWVudHVtLml0

Sede di lavoro: Bologna

Posted in Jobs.
eu-cookie-law

E il tuo sito è in regola con le nuove normative europee?

Il 31 Maggio entrerà in vigore la nuova normativa europea che obbliga i siti Web ad informare gli utenti sull’utilizzo dei cookie. Gli utenti quindi devono dare il consenso per essere tracciati tramite cookie.

Il riferimento normativo è la legge del Garante sulla Privacy del 08/05/2014 che recepisce la direttiva europea 2009/136 ed è stata convertita in legge dello Stato il 03/06/2014.

Questa nuova legge prevede l’obbligo per i titolari/gestori di siti web di:

  • inserire sul proprio sito l’informativa riguardante l’utilizzo e la gestione dei cookie (cookie policy)
  • inserire l’ avviso (banner, pop-up, lightbox, ecc) che il sito utilizza i cookie
  • spiegazione di cosa sono i cookies

Se non si ottempera l’obbligo entro i tempi stabiliti si può incappare nelle sanzioni previste per l’omessa o inidonea informativa all’interessato (Art.161 Codice privacy) con sanzioni da 3.000 a 18.000€, oppure da 5.000 a 30.000€ se dati sensibili. La somma può essere aumentata sino al triplo quando risulta inefficace in ragione delle condizioni economiche del contravventore.

I cookie

Ma cosa sono i cookie? Sono piccoli file di testo che vengono scaricati e memorizzati dal browser sul vostro PC e servono per salvare informazioni persistenti. I cookie sono usati, solitamente, a fini statistici o salvare alcune preferenze del visitatore: un esempio pratico consiste nel ricordare l’utente, nei siti Web che richiedono l’accesso ad un’area riservata, al fine di non dovergli chiedere nuovamente username e password al prossimo accesso.

Tutti i cookie devono necessariamente essere autorizzati? No, soltanto quelli che profilano l’utente, in paricolare si definiscono “cookie tecnici” per i quali non è necessaria l’autorizzazione:

  • cookie di navigazione o sessione utilizzati al solo fine di effettuare la trasmissione di una comunicazione, compreso il cookie che memorizza il carrello
  • cookie di analisi della navigazione che non vengono associate ad un identificativo utente ma aggregano e rendono anonime le informazioni

Queste considerazioni, tuttavia, non si applicano a cookie di terze parti come Google Analytics per i quali invece è necessaria l’autorizzazione!

L’informativa

In caso di cookie esenti da consenso, non ci sono specifiche su come comunicare l’informativa. Negli altri casi, il garante suggerisce una modalità semplificata per fornire l’informativa: una prima informativa (di primo livello) sotto forma di banner con contenuto minimo (ma occorre segnalare se si usano cookie di terze parti), che attiri l’attenzione del navigatore con un link verso l’informativa di secondo livello.

Proseguendo la navigazione stiamo di fatto prestando consenso a ricevere cookie dal sito. L’informativa estesa deve poter consentire di selezionare i singoli cookie.

L’informativa estesa deve:

  • essere linkabile da tutte le pagine del sito
  • contenere tutti gli elementi ex art 13 codice privacy
  • descrivere in maniera precisa la finalità dei cookie installati (anche quelli tecnici)
  • consentire di selezionare e deselezionare i singoli cookie
  • contenere i link alle informative dei cookie di terze parti
  • indicare all’utente la possibilità di configurare il browser per la più congeniale gestione dei cookie

Aiuto!

Se avete dubbi su come procedere o non avete le conoscenze tecniche necessarie per mettervi in regola contattaci e indicaci il tuo sito, ti faremo un preventivo gratuito per metterlo in regola.

 

phband-190322-352x300

Smartphone Android dual-SIM: quale e come scegliere

Oggi esaminiamo un argomento poco tecnico… ma decisamente androidiano: gli smartphone dual-sim!

Una delle caratteristiche sicuramente più interessanti del robottino verde è la versatilità: gli sviluppatori la chiamano con accezione dispregiativa frammentazione, indicando l’enorme quantità di modelli disponibili; per gli utenti, invece, è indiscutibilmente un grande vantaggio!

Una “nicchia” (ma neanche troppo) all’interno dell’ecosistema Android è costituita dai modelli dual-SIM che offrono la possibilità di inserire due SIM nel telefono. Le schede possono essere di operatori diversi e si accendono o spengono in modo del tutto indipendente, scenario ideale per chi ha numeri di casa e lavoro, due numeri personali o diverse promozioni per chiamate e sms.

La fascia media (150-250€) è decisamente sovraffollata e ci sono decine di modelli disponibili. Nella fascia alta invece (>250€) c’è meno concorrenza, segno di un mercato evidentemente meno appetibile per i produttori. Molti dei modelli di punta, inoltre, sono delle vere e proprie “padelle” (termine tecnico che identifica smartphone con schermo di 5.5”).

Vediamo quindi quali sono gli smartphone dual-SIM più interessanti, con buone caratteristiche hardware, dimensioni contenute e prezzo interessante:

  • ZTE Nubia Z7 mini: quad-core, 2GB RAM, schermo 5” e batteria da 2300mAh, ha un design originale anche se non modernissimo. Si trovano in rete ottime recensioni ed è sicuramente uno dei nostri modelli preferiti, unica pecca esce con Android 4.4.2 e ha un “vecchio” processore a 32-bit.
  • Lenovo Vibe X2: processore octa-core, 2GB RAM, schermo 5” e batteria da 2300mAh, design originale e curato. Questo smartphone ci piace molto, peccato solo per la batteria un po’ inadeguata per un processore octa-core.
  • Coolpad Dazen X7: quad-core a 64-bit e 2GB RAM, schermo 5.2” e batteria da 2700mAh. Il nostro preferito come design e caratteristiche hardware, il processore a 64-bit lo rende già pronto per Lollipop. Anche se… quegli 0.2” lo rendono qualche millimetro troppo ingombrante…
  • Oppo R1C: processore quad-core a 64-bit con 2GB RAM, schermo 5” e una “strana” batteria da 2420mAh con design molto curato ed elegante. Anche l’Oppo è già pronto per Lollipop… ma arriverà mai su questo terminale?
  • ZTE Blade S6: octa-core con 2GB RAM, schermo 5” e batteria da 2400mAh, è noto come “miglior clone dell’iPhone 6″ anche se le somiglianze, tolto il tasto home, non sono poi così evidenti. Al momento è l’unico dual-SIM con Lollipop già all’uscita di fabbrica… bravi ZTE!

Noi stiamo valutando quale acquistare… anche se con il Mobile World Congress alle porte forse vale la pena di temporeggiare un mesetto! E voi quale modello scegliereste oggi?

 

Gestione del layout in Appcelerator Titanium e Adobe Phonegap - Mobimentum

Titanium e Phonegap: gestione del layout

Nel precedente post Titanium e Phonegap: il nostro punto di vista abbiamo analizzato le differenze architetturali e le caratteristiche delle due piattaforma.

La caratteristica con cui ci si scontra maggiormente quando si parla di applicazioni cross-platform è sicuramente la UX dell’applicazione. Cercare di fornire un’esperienza utente che non dia la sensazione di trovarsi davanti ad una pagina web, ma ad una vera e propria applicazione. Lo sviluppo cross-platform vorrebbe puntare proprio a questo risultato ma, fino a non molto tempo fa, le differenze con lo sviluppo nativo erano davvero palesi, oggi fortunatamente i passi avanti in questa direzione sono stati notevoli.

Vediamo le differenze che le due piattaforme forniscono allo sviluppatore.

Phonegap è il più semplice da spiegare, offre una webview. Semplice ed immediato.
A noi “basta” riempire interi file di codice HTML, CSS e Javascript per ottenere un risultato praticamente omogeneo. In realtà alcune differenze di gestione dei CSS ci sono tra iOS ed Android, e soprattutto con le versioni pre-KitKat di Android stesso. Questi sono problemi che i webdevelopers incontrano quotidianamente a causa delle differenze tra i vari browser, per cui è veramente facile trovare supporto e soluzioni anche ai problemi più particolari.
Con CSS3 sono stati fatti notevoli passi avanti nella gestione dei layout della pagina e si riesce ad operare in maniera discretamente precisa per quanto riguarda la disposizione degli elementi, ma necessita di una conoscenza abbastanza buona per poter essere sfruttato al meglio e, come detto, le complicazioni aumentano in maniera esponenziale se si lavora con Android pre-Kitkat (che oggi, dicembre 2014, rimangono comunque la maggioranza).
I problemi sono per lo più causati da HTML, che non era stato pensato come un linguaggio per l’impaginazione verticale e solo adesso si sono iniziate a strutturare le pagine con quel fine.

Dall’altro lato Titanium invece sfrutta le View native. Ogni finestra che creerete utilizzando le API specifiche verrà convertita in una finestra nativa, godendo appunto di tutti i vantaggi che questo comporta nella gestione dei layout. Potrete facilmente e velocemente gestire le spaziature ed il posizionamento centrale degli elementi, ma non ne esce indiscusso vincitore. È comunque necessario prestare notevole attenzione alla differenza tra i vari SO. Infatti è molto probabile che un’impostazione perfettamente funzionante su Android risulti completamente errata su iOS, questo in maniera ancora più frustrante che con CSS. Situazione che peggiora considerando l’assenza di tool di sviluppo in tempo reale. Esistono tool esterni per simulare un livereload ma si tratta comunque di modificare il file, attendere la compilazione e l’aggiornamento e verificare le modifiche: nulla a che vedere con la velocità di utilizzo dei Chrome Developer Tools.

Gestione del layout in Appcelerator Titanium e Adobe Phonegap - Mobimentum

Titanium e Phonegap: il nostro punto di vista

Ci apprestiamo ad entrare in un campo minato, quello dell’annoso scontro. Iniziamo subito con le ovvietà: non esiste un vincitore. Entrambe le piattaforme presentano peculiarità specifiche e problematiche con cui finirete per scontrarvi.

Nessuno dei due necessita di presentazioni approfondite. Iniziamo con alcune considerazioni di carattere generale che andremo poi ad approfondire nelle prossime settimane.

PhoneGap
Espone una webview che può essere estesa con plugin per godere dell’integrazione con funzionalità native. L’uso di HTML/CSS nudo e crudo con Javascript consente uno sviluppo molto rapido su linguaggi conosciuti e rodati, con ampie community di supporto; trattandosi di una semplice webview che mostra pagine HTML la compatibilità cross platform è praticamente assoluta finché ci si attiene alle API dei linguaggi, ma alcuni problemi possono sorgere quando si utilizzano plugin che interagiscono con elementi nativi molto differenti tra le piattaforme come la gestione della memoria fisica. Gli strumenti di sviluppo sono molteplici, perfezionati e ciascuno può basarsi sulle proprie preferenze. Inoltre ampie community stanno portando avanti l’integrazione con i più moderni framework per lo sviluppo di webapp.

Titanium
Quello che per me è il suo più grande difetto è l’assoluta dipendenza da Titanium Studio per il debugging. Per iOS è disponibile uno strumento di uno sviluppatore indipendente ma per Android è obbligatorio l’utilizzo della piattaforma Studio che, sebbene soggetto a continui miglioramenti, è derivato da una vecchia versione di Eclipse e potrebbe non essere il vostro strumento di sviluppo preferito. Dal canto suo Titanium consente di ottenere applicazioni cross platform con un feeling nativo incredibile rispetto a PhoneGap ed una maggiore integrazione con i moduli grazie alla traduzione delle view in vere e proprie finestre, molto più semplici da gestire che non tramite CSS. Questo però si paga con la necessità di dover utilizzare le API specifiche di Titanium che, sebbene siano ottimamente sviluppate e coprano la quasi totalità delle necessità, rimangono un “linguaggio” da comprendere ed utilizzare, più limitato rispetto a CSS (tipicamente vittima di amore ed odio) oltre a dover prestare attenzione alle differenze di gestione dei vari layout tra le piattaforme che possono creare anche notevoli problemi. La community di supporto è appcelerator-centrica, quasi tutti i problemi che potrete incontrare sono risolti sul forum per developer proprietario di appcelerator e qualche sporadica risposta su Stackoverflow. Questo è un bene, denota una viva attenzione della società per i suoi sviluppatori, oltre a porsi essa stessa come punto di riferimento, ma potrebbe diventare una limitazione in futuro. Decidete voi se lo reputate un bene od un male.

Maggiori dettagli tecnici sulle differenze tra le due piattaforme sono disponibili nel post Titanium e Phonegap: gestione del layout.

Restiamo in attesa della presentazione di PhoneGap Enterprise per un eventuale nuovo confronto e stabilire se esiste un vincitore assoluto tra queste due piattaforme che Gartner posiziona tra Leaders e Visionaries nel Magic Quadrant for Mobile Application Development Platforms.

fb-msg

Ricevere i messaggi di Facebook senza installare Messenger

Il post di oggi è un po’ off-topic rispetto ai consueti contenuti del nostro blog, eppure riteniamo che possa essere d’interesse e che valga la pena di conviderlo con i nostri venticinque lettori.

Il problema

Recentemente Facebook ha deciso unilateralmente che per utilizzare la chat da smartphone Android è necessario installare Messenger. Se non vi è ancora successo, tranquilli: succederà a breve! Il contagio, infatti, è incrementale e all’inizio si manifesta come un semplice avviso “Stiamo spostando i messaggi, scarica applicazione?” per poi diventare un “Ok, ora o aggiorni o basta messaggi da smartphone”. Il problema è molto sentito e discusso in rete, molti (giustamente) non hanno gradito questa scelta e la stessa scheda di Messenger sul Play Store è piena di commenti negativi, per non dire peggio.

Ma cosa non va in Messenger? Tanto per cominciare, è – appunto – una scelta unilaterale, e come tale dà fastidio a prescindere. Ma ci sono anche ragioni oggettive per non passare a messenger: è un’altra app inutile, occupa memoria sul telefono, si aggiorna in continuazione, rallenta le prestazioni, richiede tonnellate di permessi e consuma batteria. I vantaggi? Nessuno.

La soluzione

Fortunatamente, i messaggi in realtà sono ancora presenti nell’app di Facebook e sono semplicmente stati nascosti! Possiamo quindi far credere a Facebook che Messenger sia installato anche se non lo è. In questo modo verrà ripristinata la funzionalità di invio/ricezione messaggi nell’app di Facebook. La procedura è molto semplice: è sufficiente scaricare e installare Fake Messenger. Se non l’avete già fatto in passato, dovete sapere che per installare app non provenienti dal market è necessario abilitare l’opzione Impostazioni > Sicurezza > Origini sconosciute (o simile, dipende dalla versione di Android, ad es. sui Samsung è “Sorgenti sconosciute”).

Che vantaggi ha Fake Messenger rispetto a Facebook Messenger?

  • la installiamo perché vogliamo noi e non perché qualcuno ci ordina di farlo
  • occupa circa 11KB invece di 13MB, cioè più di 1000 volte meno
  • non richiede alcun permesso, a differenza di Messenger che ne richiede ben 9 tra cui sapere chi siamo, dove siamo e cosa facciamo
  • non usa batteria: di fatto l’app non fa nulla se non stare lì nell’elenco delle app insieme alle altre
  • non si aggiornerà nel tempo, essendo un’app “vuota” non c’è necessità di migliorarla o correggerne errori

Ultimo ma non per importanza: l’app è assolutamente gratuita e non c’è pubblicità. Virus e malware? Neanche!

Scarica subito Fake Facebook Messenger: clicca qui.

mobimentum-phonegap

PhoneGap: 2 anni dopo

Ebbene sì, sono ormai passati 2 anni da quando abbiamo cominciato ad usare PhoneGap e di acqua sotto i ponti ne è passata parecchia. Guardandoci indietro la scelta si è rivelata azzeccata ma di esperimenti ne abbiamo fatti tanti e certo non sono tutte rose e fiori. È tempo di fare un bilancio tra quello che ci è piaciuto, che conserveremo, e quello che non ci è piaciuto, che abbiamo cambiato o che cambieremo.

Ci teniamo stretti:

  • PhoneGap: partiamo dai punti fermi, PhoneGap è una scelta che si sta rivelando vincente. Sviluppare con PhoneGap ci permette di essere competitivi sul mercato e raggiungere piattaforme sulle quali non abbiamo conoscenze native dirette, come ad es. Windows Phone.
  • AngularJS: Model-View-Whatever lo chiamano gli sviluppatori… per noi ormai la “W” sta per “wherever” perché lo usiamo in tutte le salse. Ci piacciono la pulizia del codice e la facilità d’uso, soprattutto nella sua declinazione Ionic.
  • GitLab: l’infrastruttura di versioning e continuous integration che abbiamo messo in piedi ci piace molto. Ogni commit viene registrato su un server git con backend GitLab e viene automaticamente uploadato su PhoneGap Build in modo da avere immediatamente una build aggiornata disponibile. La continuous integration è sempre basata su GitLab e utilizza lo script deploy-phonegapbuild.sh che abbiamo pubblicato come open source. Puoi trovare maggiori dettagli nel post dedicato alla nostra infrastruttura di build.

Buttiamo via:

  • Sencha Touch: framework molto potente che eredita pregi e difetti del “papà” ExtJS. I layout preconfezionati e l’architettura MVC ci sono piaciuti ma la complessità nel montare le grafiche ne annulla i benefici. Tuttavia, Sencha continua a piacerci per applicazioni “di backend” che non richiedono personalizzazioni sul tema grafico.

Rimandiamo a settembre:

  • jQuery Mobile: croce e delizia dei framework per lo sviluppo mobile. Per progetti molto semplici è ancora la scelta preferita, soprattutto nelle versioni più recenti (1.4+) dopo la “dieta” che ha snellito molto il codice boilerplate che lo sviluppatore era costretto a scrivere. Al crescere della complessità del progetto però le performance cominciano ad essere insoddisfacenti e la mancanza di una architettura MVC rende più onerosa la manutenzione nel tempo.
  • PhoneGap Build: quando va è una bomba ma spesso ha problemi. A peggiorare la situazione i problemi sono “intermittenti” e apparentemente casuali: le build rimangono appese per ore e poi improvvisamente si sbloccano. L’impressione è che di tanto in tanto siano necessari dei provisioning di nuovo hardware per far fronte alla crescente richiesta da parte degli utenti e che in corrispondenza di questi deploy si verifichino problemi alle build. Da Adobe però ci aspettiamo un servizio più affidabile, eventualmente anche account Premium con code prioritarie.

In passato abbiamo già parlato di framework, forse ti interessa leggere Mobile Application Development Platforms: Quale?La tua app è lenta? Forse hai il freno a mano tirato!

 

Android Debug

Debug di applicazioni PhoneGap su Android

Come promesso nel precedente post riguardante iOS oggi diamo una spolverata ad una delle più gradite novità di Android 4.4 KitKat, almeno per chi sviluppa cross-platform con webview (Phonegap, etc.): parliamo naturalmente della possibilità di fare il debug delle applicazioni direttamente dal device. Se ancora non doveste sapere di cosa stiamo parlando, fidatevi, non potrete più farne a meno.

Innanzitutto è necessario che l’applicazione sia abilitata al debug via ADB, Phonegap ha introdotto questa possibilità ma solo nelle nuove versioni, assicuratevi quindi di avere la 3.3 o superiore.

Sul device andate nelle Impostazioni -> Opzioni sviluppatore. Se non doveste trovare la sezione è necessario un piccolo trick per renderla visibile: da Impostazioni -> Info sul dispositivo tappate 7 volte sul campo “Versione di build” questo vi farà apparire una serie di tooltip fino ad abilitare le “Opzioni sviluppatore“. Da lì attivate l’opzione “Debug USB“.

A questo punto, una volta installata l’applicazione sul cellulare non vi servirà nemmeno l’ADK installato sul computer, perché Chrome (v. 32 o superiore) arriverà già fornito di tutto l’occorrente.

Collegate il cellulare al computer, avviate Chrome e andate all’indirizzo chrome://inspect/. Sul cellulare apparirà un avviso che vi chiederà se autorizzare il computer ad accedere, ovviamente accettate e, se il PC è vostro, spuntate pure l’opzione “Autorizza sempre“. Così da non dover ripetere l’operazione ogni volta.

Fatto!

Avviando la vostra applicazione sul cellulare, o andando su di un sito con Chrome per Cellulare, vedrete apparire la relativa webview nell’elenco. Un click su “Inspect” ed ecco i Developer tools di Chrome in tutta la loro magnificenza e pienamente funzionali.

Addio Android Monitor e “console.log” per risolvere i più strani comportamenti, diamo il benvenuto ai breakpoint! Siamo finalmente rientrati nel 21° secolo della programmazione.