Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1907, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Xamarin

Nuovo eBook: Xamarin.Forms Succinctly

Qualche giorno fa è stato pubblicato da Syncfusion il mio nuovo eBook, Xamarin.Forms Succinctly 2nd edition: Se non avete mai lavorato con Xamarin.Forms prima d'ora, o se volete una "rinfrescata" sulle novità di Visual Studio 2017, questo ebook fa per voi. Come sapete, la serie Succinctly concentra gli argomenti più importanti in un centinaio di pagine, quindi molto altro ci sarebbe da dire. In ogni caso, con questo eBook sarete in grado di: Iniziare con Xamarin.Forms, configurando a dovere l'ambiente di sviluppo Capire come condividere il codice C# tra piattaforme diverse favorendo il riutilizzo, che poi...

posted @ domenica 24 settembre 2017 22:00 | Filed Under [ Xamarin ]

Xamarin for Beginners: video su Xamarin.Android e Xamarin.iOS

Continua la pubblicazione di video per la serie Xamarin for Beginners che ho realizzato per Syncfusion. Sul canale YouTube di Syncfusion sono stati pubblicati altri due video introduttivi, uno su Xamarin.Android e uno su Xamarin.iOS. Nella prossima puntata si parlerà di Xamarin.Forms. Ricordate lo spirito introduttivo, per gli approfondimenti sto preparando dell'altro Alessandro

posted @ giovedì 8 giugno 2017 22:00 | Filed Under [ Xamarin ]

L'app di Visual Studio Tips & Tricks anche per iOS

A concludere il cerchio, grazie a Xamarin.Forms, l'app della community Visual Studio Tips & Tricks è ora disponibile anche per iPhone e iPad. Ci piace essere sempre allineati agli ultimi aggiornamenti, quindi la versione minima di iOS è la 10.3 (che è l'ultima attualmente disponibile) e questo anche sulla base del fatto che i nostri utenti sono mediamente veloci ad aggiornare il proprio sistema operativo :-) Vi riporto, quindi, i link a tutti e tre gli store per il download della nostra app (ricordatevi di farmi sapere cosa vorreste sia migliorato!)    Alessandro

posted @ domenica 28 maggio 2017 22:00 | Filed Under [ Community and friends Xamarin ]

Video-serie introduttiva a Xamarin

Ho recentemente collaborato con Syncfusion per la realizzazione di una serie di video di introduzione a Xamarin. In 5 video, viene fornita un'infarinatura sullo sviluppo per Android e iOS + Xamarin.Forms con C# e Visual Studio 2017. E' una serie introduttiva e come tale va considerata, quindi la ritengo particolarmente utile per coloro che hanno sentito parlare di Xamarin e vorrebbero capire meglio di cosa si tratta e cosa ci si può fare, senza avere la pretesa di essere un corso o un approfondimento. Il primo video della serie è disponibile sul canale YouTube di Syncfusion: I prossimi arriveranno con cadenza regolare. Alessandro

posted @ venerdì 26 maggio 2017 07:54 | Filed Under [ Xamarin ]

Visual Studio for Mac, Xamarin e iOS: Risolvere l'errore MT2001 "Could not link assemblies"

Come sapete, Visual Studio 2017 for Mac è stato rilasciato ormai una decina di giorni fa. Nelle prossime settimane vorrei dedicare qualche post e video a questo fantastico strumento, nel frattempo segnalo un problema e come risolverlo. Lo scenario è una solution Xamarin.Forms in cui la build del progetto iOS solleva l'errore MT 2001: "Could not link assemblies. Reason: value cannot be null" dove viene specificato il nome di un qualche metodo o costruttore nel codice a cui non verrebbe passato un argomento, peraltro non richiesto. Se dovesse capitarvi, con estrema probabilità la causa è legata al fatto che, da qualche parte...

posted @ lunedì 22 maggio 2017 06:56 | Filed Under [ Xamarin ]

Nuovo eBook da Xamarin dedicato a Forms

Microsoft e il team di Xamarin hanno pubblicato un nuovo eBook dedicato a Xamarin.Forms molto interessante, dal titolo: Enterprise Application Patterns using Xamarin.Forms. Nell'eBook si parla di come usare Xamarin.Forms in applicazioni mobile per l'azienda, ricorrendo a pattern come MVVM e all'interazione con servizi esposti tramite Web API, in alcuni casi passando per Docker. Certamente un'ottima risorsa per vedere Xamarin.Forms da un punto di vista più realistico e meno didattico, con spunti sicuramente interessanti. Alessandro

posted @ giovedì 4 maggio 2017 12:16 | Filed Under [ Xamarin ]

Il mio nuovo eBook su Xamarin, in italiano

Ieri Microsoft ha pubblicato un mio nuovo eBook di introduzione a Xamarin, dal titolo Tutti X uno, Uno X Tutti. La X, come potete immaginare, richiama la lettera caratteristica di Xamarin. E' in italiano, prima nota degna di considerazione E' un ebook introduttivo, quindi serve a fare la conoscenza di Xamarin, a prendere confidenza con la tecnologia, a muovere i primi passi con Xamarin.Android, Xamarin.iOS e Xamarin.Forms, oltre che per esplorare alcuni scenari Cloud come il Visual Studio Mobile Center per implementare autenticazione e tabelle per i dati. Colgo l'occasione per ringraziare Francesca Longoni di Microsoft, per aver curato in modo impeccabile...

posted @ mercoledì 12 aprile 2017 22:00 | Filed Under [ Xamarin ]

Xamarin.Forms: gestire il flyout delle MasterDetailPage

Come forse sapete, una MasterDetailPage in Xamarin.Forms è un particolare tipo di pagina che permette di avere un menu laterale a scorrimento, detto Master, e una parte di dettaglio che contiene tipicamente una NavigationPage o anche una ContentPage. In questo post non voglio parlare di come utilizzarla, bensì di come gestire un suo comportamento. Un piccolo fastidio è che, quando tocchiamo elementi che stanno nella parte Master, il flyout rimane aperto e non scompare automaticamente. Questo più che altro se siamo in una visualizzazione "portrait", perché se siamo in "landscape" con maggiore spazio a disposizione non ci dovrebbero essere problemi. Fortunatamente,...

posted @ lunedì 10 aprile 2017 22:00 | Filed Under [ Xamarin ]

Xamarin.Forms e l'orientamento delle pagine

Xamarin.Forms non ha, di suo, strumenti per capire o gestire l'orientamento delle pagine. Bisogna lavorare sui progetti di piattaforma. Tuttavia, se il nostro obiettivo è solamente capire l'attuale orientamento della pagina, si può sfruttare l'evento SizeChanged e dire che l'orientamento è landscape se la larghezza è maggiore dell'altezza. In questo semplice modo: Alessandro

posted @ domenica 9 aprile 2017 22:00 | Filed Under [ Xamarin ]

Nuovo video: Xamarin, pubblicare app Android su Google Play con VS 2017

Sul canale YouTube della nostra community Visual Studio Tips & Tricks è disponibile un nuovo video registrato dal sottoscritto che spiega come pubblicare un'app Android, creata con Xamarin e C#, sullo store Google Play eseguendo la generazione e la certificazione del pacchetto .apk direttamente in Visual Studio 2017, per poi esaminare i passaggi da eseguire all'interno della developer console di Google.

posted @ mercoledì 5 aprile 2017 22:00 | Filed Under [ Xamarin Visual Studio 2017 ]

Xamarin, Android e i crash in chiusura

Può succedere che un'app Android scritta con Xamarin.Forms vada in crash quando, dalla pagina principale, si preme il back button e si porta l'app alla chiusura. Il problema si rileva tipicamente quando la pagina principale è una MasterDetailPage. Il punto è che, non solo si tratta di un bug noto da parecchio tempo, i pacchetti NuGet in pre-release di Xamarin.Forms non hanno ancora risolto il problema. Gli workaround possono essere di tanti tipi, a seconda dello scenario. Per esempio si pu

posted @ lunedì 3 aprile 2017 22:00 | Filed Under [ .NET Framework Xamarin ]

Xamarin.Forms, UWP e le immagini risorsa

Come forse sapete, in Xamarin.Forms è possibile sfruttare immagini da considerare come risorse aggiungendole al progetto PCL e impostandone la proprietà Build Output come Embedded Resource. Quindi, per assegnarle da codice a un Image, è sufficiente una riga simile a questa: MyImage.Source = ImageSource.FromResource("MyProjectName.ImageFolder.Filename.png"); dove il nome del file deve comprendere anche il fully-qualified name. Se però lavoriamo anche con un progetto UWP, è necessario passare al metodo FromResource anche un Type contenuto nell'assembly in cui sono contenute anche le immagini/risorsa, questo perché altrimenti, in modalità Release, UWP non troverebbe le immagini. Quindi potete scrivere questo: var assembly = typeof(App); MyImage.Source = ImageSource.FromResource("MyProjectName.ImageFolder.Filename.png", assembly); Chiaramente, quest'ultimo metodo va benissimo anche con...

posted @ lunedì 3 aprile 2017 12:26 | Filed Under [ Xamarin ]

"Xamarin hands-on" con UgiDotNet il 24 marzo

Venerdì 24 marzo, dalle 14, sarò con gli amici di UgiDotNet a parlare di sviluppo con Xamarin per un mini-corso introduttivo dedicato a questa tecnologia e che si terrà a Milano presso il Palazzo del Lavoro (davanti alla stazione Centrale). Il workshop si chiama "Xamarin hands-on" ed è possibile iscriversi qui. Se siete alle prime armi con Xamarin, o se semplicemente ne avete sentito parlare e volete approfondire l'argomento, questa è l'occasione giusta. Faremo una panoramica della tecnologia e vedremo in azione le varie "branche", quindi Xamarin.Android, Xamarin.iOS e Xamarin.Forms. Ci sono ancora dei posti disponibili, quindi non perdete l'occasione. Ci vediamo a...

posted @ domenica 19 marzo 2017 23:00 | Filed Under [ Community and friends Xamarin ]

Nasce una nuova community: Visual Studio Tips & Tricks

Oggi, lunedì 20 febbraio 2017, abbiamo il piacere di annunciare la nascita di una nuova community tecnica chiamata Visual Studio Tips & Tricks. Il nome è certamente e volutamente evocativo, ma questa community non è assolutamente un’estensione di Visual Basic Tips & Tricks. E’ una realtà totalmente nuova, autonoma e piena di freschezza, che ha lo scopo di divulgare conoscenza sulle tecnologie Microsoft per lo sviluppo di software ad ampio raggio, negli ambiti Mobile, Desktop, Cloud con l’ecosistema di Microsoft Visual Studio, inclusi Visual Studio Code e Visual Studio for Mac. Ciò vuol dire che ci occuperemo massicciamente di cose come Xamarin,...

posted @ lunedì 20 febbraio 2017 08:37 | Filed Under [ .NET Framework Visual Basic C# Varie Windows Presentation Foundation LINQ Community and friends Windows Azure and SQL Azure UWP e Windows Store Apps Visual Studio 2015 .NET Compiler Platform (Roslyn) Windows 10 Xamarin Visual Studio 2017 Visual Studio Code ]

Xamarin, Azure e il Visual Studio Mobile Center - Autenticazione

Dopo aver parlato di sincronizzazione offline nel post precedente, in quest'ultimo post della mini serie dedicata al Visual Studio Mobile Center per Xamarin parliamo di autenticazione, login e accesso autorizzato ai dati. Come promesso, il codice completo della solution con accesso al backend, sincronizzazione offline e autenticazione è disponibile su GitHub. Tipologie di autenticazione Gestire l'autenticazione con gli Azure Mobile App tramite il Mobile Center è semplicissimo se utilizziamo uno dei provider previsti. Si tratta di Microsoft Account, Facebook, Twitter, Google+ oltre alla Azure Active Directory. Ovviamente è possibile implementare l'autenticazione anche nei confronti di Web API custom, ma eventualmente ne riparlermo in...

posted @ martedì 14 febbraio 2017 23:00 | Filed Under [ Windows Azure and SQL Azure Xamarin ]

Xamarin, Azure e il Visual Studio Mobile Center - Sincronizzazione offline

Nel post precedente abbiamo visto come sfruttare i servizi di backend di Azure esposti dal Visual Studio Mobile Center per creare una tabella a cui un'app scritta con Xamarin può accedere per memorizzare e recuperare dati. Nota: il codice sorgente completo sarà fornito nel prossimo post, in cui parlo di autenticazione. Quell'approccio ha un limite: non memorizza i dati localmente e richiede sempre connettività per poter lavorare. Per fortuna, l'SDK Azure Mobile Client e i servizi di Azure Mobile App offrono anche l'infrastruttura per poter avere dati locali e per sincronizzarli quando online. (Nota: quanto vedremo in questo post non è legato...

posted @ lunedì 13 febbraio 2017 23:00 | Filed Under [ Windows Azure and SQL Azure Xamarin ]

Xamarin, Azure e il Visual Studio Mobile Center - Table e backend

Nel post precedente ho fatto un'introduzione del Visual Studio Mobile Center con una panoramica degli strumenti che offre. Avevamo iniziato creando un'app cross-platform con Xamarin, in cui avevamo attivato gli strumenti di analytics ma non avevamo fatto altro. Riprendiamo quindi il discorso parlando dei servizi di backend offerti dalle Tables, o Easy Tables nella terminologia di Azure, grazie alle quali possiamo avere delle tabelle in cui memorizzare dati nella Cloud. Due note: ciò che si fa nel Visual Studio Mobile Center si fa anche nel portale di Azure, con la differenza che il Mobile Center semplifica enormemente le cose da...

posted @ domenica 12 febbraio 2017 23:00 | Filed Under [ Windows Azure and SQL Azure Xamarin ]

Xamarin, Azure e il Visual Studio Mobile Center - Statistica e analisi crash

Con questo post inizio una mini-serie dedicata al Visual Studio Mobile Center e al suo utilizzo connesso ad applicazioni realizzate con Xamarin e Visual Studio. Con questo post iniziamo a vedere le funzionalità telemetriche di statistica e analisi dei crash, nei prossimi post vedremo come sfruttare il servizio di backend per le Table, per poi passare alla sincronizzazione offline dei dati e all'autenticazione/autorizzazione dell'utente. Prerequisiti Il Visual Studio Mobile Center è un servizio Cloud e usa Azure per esporre alcuni servizi. Ciò significa che è necessario avere una sottoscrizione Microsoft Azure, anche trial. Il secondo prerequisito è avere installato Visual Studio 2015, anche...

posted @ giovedì 9 febbraio 2017 23:00 | Filed Under [ Visual Studio 2015 Xamarin Visual Studio 2017 ]

Xamarin.Forms: adattare la UI da XAML a seconda del device

Sapete che Xamarin.Forms espone la classe Device, che ha due metodi OnPlatform e OnIdiom. Il primo consente di eseguire azioni o adattare lo XAML a seconda del sistema (iOS, Android, Windows) mentre il secondo consente di sapere se l'app sta girando su telefono, tablet o desktop (solo UWP). Entrambi possono essere utilizzati anche in modalità dichiarativa. OnPlatform è ben noto, OnIdiom un po' meno. Ecco un esempio che stabilisce il padding di una pagina in modo diverso a seconda che l'app sia su telefono o tablet:   <ContentPage.Padding>     <OnIdiom x:TypeArguments="Thickness">       <OnIdiom.Phone>20</OnIdiom.Phone>       <OnIdiom.Tablet>30</OnIdiom.Tablet>     </OnIdiom>   </ContentPage.Padding> Chiaramente si può fare anche da C#. Alessandro

posted @ lunedì 30 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Celebrity recognition

Dopo aver parlato di OCR nel post precedente, sempre nell'ambito dei Microsoft Cognitive Services utilizzati con Xamarin.Forms, stavolta parliamo dell'ultima area di Computer Vision, ossia quella nota col nome di Celebrity recognition. Come il nome lascia intendere, questo servizio consente di riconoscere celebrità in una foto. Ma è solo l'inizio. Considerazioni sul Domain-specific Model Ciò che abbiamo visto finora sull'analisi di immagini è un qualcosa di alto livello, inteso come analisi generica dei contenuti. Microsoft sta lavorando su un sistema di analisi più specifico, attraverso i c.d. domain-specific model, che consentiranno di eseguire analisi specializzate su categorie ben precise di immagini e/o persone....

posted @ domenica 29 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - OCR

Nel post precedente abbiamo iniziato a parlare di Computer Vision API nell'ambito dei Cognitive Services di Microsoft, sfruttati all'interno di un'app multi-piattaforma scritta in Xamarin.Forms per il riconoscimento di ciò che ci circonda. Computer Vision include anche un servizio dedicato all'OCR (Optical Character Recognition) e che serve per il riconoscimento di testo all'interno di immagini. Riprendiamo quindi il progetto iniziato la volta precedente, non dobbiamo fare aggiunte di librerie perché abbiamo già tutto e va bene ancora la stessa subscription key. Gli oggetti con cui lavoriamo La classe VisionServiceClient espone un metodo chiamato RecognizeTextAsync, che riconosce il testo su un'immagine passata come Stream....

posted @ mercoledì 25 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Computer Vision API

Dopo aver parlato, nell'ambito dei Microsoft Cognitive Services, di Face ed Emotion API nei post precedenti, iniziamo a parlare delle Computer Vision API. Cosa ci permettono di fare? Per capirlo bisogna distinguerle in tre parti, ognuna delle quali occupa anche un post specifico: Vision. Analizza una foto ed è in grado di descriverne il contenuto producendo un testo in linguaggio naturale, oltre a rilevare la tipologia di contenuto (offensivo, razziale), i colori più evidenti e di generare automaticamente una serie di tag per categorizzare il contenuto stesso. OCR. Data un'immagine con del testo, restituisce...

posted @ martedì 24 gennaio 2017 08:18 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Emotion APIs

Nel post precedente abbiamo parlato delle Face API, utilizzandole in un'app cross-platform creata con Xamarin.Forms per il riconoscimento visivo su Android, iOS e Windows. Abbiamo visto come le Face API consentano di riconoscere tratti somatici e caratteristiche di un viso, inclusa l'età (approssimativa), genere, barba e baffi. In questo post parliamo del naturale corollario alle Face API, ossia le Emotion API. Come il nome lascia intendere, le Emotion API consentono di rilevare le emozioni che una persona sta provando a partire da una foto o un video. Se non lo avete già fatto, dovete chiaramente attivare la sottoscrizione per queste API...

posted @ domenica 22 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Face APIs

Nel post precedente abbiamo introdotto i Microsoft Cognitive Services, facendo una panoramica dei servizi che vengono offerti. Da questo post cominciamo a fare degli esempi pratici di alcuni servizi a disposizione e inizieremo dalle Face API. Cosa sono? Le Face API consentono di riconoscere i tratti fisici e caratteristici dei visi nelle immagini e nei video, inclusi quelli "live". Tra le numerose informazioni, ci consentono di rilevare la posizione di tratti come la bocca, il naso, gli occhi, le orecchie attraverso 27 punti del viso. Grazie a questi punti, le Face API ci consentono di rilevare altre informazioni come la...

posted @ mercoledì 18 gennaio 2017 19:22 | Filed Under [ Xamarin ]

Xamarin.Forms e i Cognitive Services di Microsoft - Introduzione

Nei numeri di ottobre e novembre di MSDN Magazine, sono stati pubblicati due miei articoli relativi allo sviluppo di app per Android, iOS e Windows con Xamarin.Forms e i Cognitive Services di Microsoft, nei quali ho descritto il riconoscimento visivo e delle emozioni e la descrizione di ciò che circonda l'utente. L'argomento non solo mi appassiona molto, ma ho iniziato a studiarlo fin dall'annuncio a //Build 2016, ma avendo degli accordi di univocità con MSDN Magazine, riesco a farne dei post solo ora (e in italiano, certamente ). Inizio quindi una mini-serie di post dedicata ai Cognitive Services con Xamarin.Forms per vedere...

posted @ martedì 17 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms, ListView ed effetti indesiderati

Ancora su Xamarin.Forms e la ListView, in binding a una collection. Su un progetto Android che sto seguendo mi è capitato di avere un data template XAML abbastanza articolato, ma in realtà con pochissimi elementi da visualizzare eppure con un problema di rendering. Nel mio caso, i vari elementi della lista dovevano espandersi e richiudersi al touch. Il problema è che, una volta chiusi, rimanevano disegnati sul display alcuni elementi della visualizzazione "aperta". Sparivano solamente ad un successivo tocco sul display e anche forzare un refresh della UI non portava beneficio, con un pessimo effetto visivo per l'utente. Il codice non...

posted @ lunedì 16 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms, ListView e ObjectDisposedException

Con particolare riguardo ai progetti Android, se in Xamarin.Forms avete una ListView in cui c'è un DataTemplate che visualizza immagini in binding, molto probabilmente otterrete una ObjectDisposedException durante lo scorrimento della lista, con conseguente crash dell'applicazione. Si tratta di un problema noto, peraltro non ancora risolto. Si verifica perché Xamarin istanzia uno stream per ciascuna immagine, ne fa il dispose, ma poi non lo riapre al ritorno su un'immagine precedentemente visualizzata. Dovreste risolvere, almeno nel mio caso ha funzionato, impostato la caching stategy della ListView per memorizzare in cache locale i contenuti. In questo modo:     <ListView ItemsSource="{Binding}" CachingStrategy="RecycleElement" > L'enumerazione CachingStrategy ha due valori, RecycleElement...

posted @ domenica 15 gennaio 2017 23:00 | Filed Under [ Xamarin ]

Xamarin.Forms: Roadmap per il 2017

E' stata pubblicata la roadmap per il 2017 relativa a Xamarin.Forms, disponibile a questo indirizzo. Forms sta indubbiamente crescendo molto, ci vuole il suo tempo, ma cresce e finalmente cominciano ad arrivare funzionalità e caratteristiche importanti e interessanti. Non vedo l'ora di avere a disposizione il Picker col supporto al data-binding, cosa che più di tutti mi ha fatto "soffrire" lavorandoci Le prossime versioni sono previste per febbraio e maggio, quindi non manca molto. Alessandro

posted @ giovedì 5 gennaio 2017 18:20 | Filed Under [ Xamarin ]

Xamarin.Forms: considerazioni sulle performance e come migliorarle

Per lavoro mi sto occupando di un'app scritta con Xamarin.Forms in cui le performance non sono un optional e quindi ho voluto raccogliere una serie di considerazioni e analisi fatte, con alcune piccole premesse. Di seguito alle premesse, farò le considerazioni del caso. Non inserisco codice né esempi, perché voglio che leggiate e non vi distraiate . Troverete tutto approfondito nella documentazione, linkata successivamente. Premessa 1: E' davvero sempre colpa di Xamarin.Forms se ho problemi di performance? Risposta breve: no. Ricordiamoci che Xamarin genera app native, ovviamente si porta dietro le proprie librerie e le sue modalità di compilazione e questo può...

posted @ domenica 18 dicembre 2016 23:00 | Feedback (0) | Filed Under [ Xamarin ]

Connect(): Le novità per Xamarin

Xamarin è una tecnologia che, per vari motivi, mi interessa particolarmente. Come riportato nel blog ufficiale, per Xamarin ci sono le seguenti novità e annunci (in alcuni casi si tratta di RTM di prodotti già in preview): Xamarin Profiler, dedicato a Visual Studio Enterprise, che consente di analizzare performance e scoprire colli di bottiglia e memory leak nelle proprie app per Android, iOS e Windows. Xamarin Inspector, uno strumento per Visual Studio Enterprise che si collega all'app in fase di debug e consente di analizzare, modificare e visualizzare in tempo reale il comportamento della...

posted @ mercoledì 16 novembre 2016 19:36 | Feedback (0) | Filed Under [ Xamarin ]

I resource dictionary in Xamarin.Forms

La versione 2.3.0.49 di Xamarin.Forms ha introdotto il supporto ai resource dictionary, che ci consentono di separare e riutilizzare risorse di tipo XAML come gli stili. Non vi aspettate quanto potete avere con WPF o UWP... ma almeno è già qualcosa. Per creare un resource dictionary devo: 1. Aggiungere una nuova ContentPage XAML al progetto 2. Cambiare l'elemento radice da ContentPage a ResourceDictionary. 3. Nel code-behind, togliere l'ereditarietà da ContentPage. 4. Mettere le risorse di mio interesse all'interno del dizionario così ottenuto. In altre parole, nello XAML una cosa di questo tipo: <?xml version="1.0" encoding="utf-8" ?> <ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"                      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"                      x:Class="DelSole.XamUtilities.Styles.SharedResources">   <!-- Sample resource -->   <Style x:Key="baseStyle" TargetType="Label">     <Setter Property="FontSize" Value="Small" />     <Setter Property="FontAttributes" Value="Italic" />   </Style> </ResourceDictionary> Mentre in C#, questo: public partial class SharedResources {     public SharedResources()     {         InitializeComponent();     } } Utilizzare un resource dictionary richiede poi, nella pagina in...

posted @ lunedì 26 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

XamUtilities, una nuova libreria open source per Xamarin.Forms

Se avete seguito i miei ultimi post, avete visto come abbia voluto condividere alcune problematiche incontrate nello sviluppo di app con Xamarin.Forms attraverso controlli, behavior, converter. Ho quindi pensato di raccogliere il tutto in una nuova libreria che ho chiamato XamUtilities, il cui codice sorgente è disponibile su GitHub. La libreria contiene i behavior descritti nei post sulla validazione lato client, i controlli per il binding di enumerazioni e di date nullable, i converter utilizzati per il funzionamento di questi ultimi. Inoltre, è anche inclusa una piccola app di esempio che mostra come usare il tutto. Nota: è richiesto Xamarin.Forms 2.3.0.49 o...

posted @ domenica 25 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms e la validazione dell'input lato client - parte 2

Nella prima parte abbiamo implementato dei behavior da utilizzare per validare l'input dell'utente, ma quella è l'infrastruttura che ancora non abbiamo visto in azione, perché da collegare alla UI e quindi allo XAML. L'obiettivo è mostrare anche una Label di colore rosso, oltre alla logica applicata dal behavior sulle Entry. Per farlo devo convertire lo stato del behavior in un oggetto bool per capire se lo stato del controllo è valido oppure no e, conseguentemente, mostrare o nascondere la label. Mi serve quindi un converter, tipo di oggetto caro a chi conosce XAML e che si implementa sempre attraverso l'interfaccia IValueConverter,...

posted @ giovedì 22 settembre 2016 20:07 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms e la validazione dell'input lato client - prima parte

Premessa Ho avuto la necessità di implementare la validazione dell'input dell'utente in un'app scritta con Xamarin.Forms. Per esempio, dire all'utente che un campo non può essere vuoto o più lungo di un certo numero di caratteri. L'obiettivo è quindi mostrare un messaggio all'utente per dire che qualcosa non va, all'interno della UI. In questa prima parte vi parlo dell'implementazione della validazione tramite behavior, nella seconda parte di come associarla alla UI e allo XAML. Problema... Ho molti difetti ma a cercare su Internet o sui libri me la cavo abbastanza bene e, a meno di sviste, la situazione di Xamarin.Forms (ieri e) oggi...

posted @ martedì 20 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms, il TimePicker e la selezione dell'ora

In Xamarin.Forms esiste il controllo TimePicker che serve a selezionare un'ora, di tipo TimeSpan. In alcuni casi potreste avere la necessità di intercettare un evento scatenato allo scegliere dell'ora sul controllo. Vi aspettereste di trovare un SelectedTime, al pari del SelectedDate che esiste sul DatePicker ma.. Sopresa: non c'è   A tutto c'è però soluzione, si può gestire l'evento PropertyChanged. Sebbene meno rimediato rispetto a qualcosa che inizi con Selected, va bene lo stesso. L'evento sul TimePicker si gestisce così: private void OnTimePropertyChanged(object sender, PropertyChangedEventArgs e) {     if(e.PropertyName==TimePicker.TimeProperty.PropertyName)     {         // Dove sender è l'istanza del TimePicker     } } Ovviamente cambierete il nome del gestore come meglio credete e lo assegnerete nello XAML sulla dichiarazione del controllo. Alessandro

posted @ lunedì 19 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms, il controllo Editor e iOS

Xamarin.Forms mette a disposizione due controlli per la scrittura di testo: Entry ed Editor. Entry è paragonabile alla classica TextBox di altre piattaforme, Editor consente la scrittura multilinea. Tra i due, Entry è quello (leggermente) più personalizzabile. In realtà soffre di varie mancanze, tra cui ad esempio non è disponibile una modalità read-only, ma parliamo dell'Editor che, a sua volta, soffre di mancanza di personalizzazione. Come sapete, i controlli di Xamarin.Forms dietro le scene vanno a richiamare i corrispondenti controlli nativi, ciò significa che ne assumono anche l'aspetto relativo alla piattaforma. Su iOS, il controllo Editor non ha bordo e non c'è...

posted @ giovedì 15 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms: binding di Enum

Altro problema di Xamarin.Forms è che il controllo Picker si può popolare con una serie di elementi, ma il data-binding non è supportato se vogliamo che l'elenco di elementi provenga da un'enumerazione. Girando su Internet alla ricerca di soluzioni, ne ho trovate diverse anche nei forum di Xamarin ma alla fine ho optato per quella mostrata in questo sito, Intellitect. Viene spiegato come creare un picker che supporti enumerazioni, che sia "bindable", e che supporti anche enumerazioni per le quali vi sia una descrizione per ciascuna voce nell'enum. Per questo vi rimando al codice mostrato nel post per implementare il picker custom,...

posted @ mercoledì 14 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms: binding di Nullable

Il controllo DatePicker di Xamarin.Forms funziona bene ma non supporta il data-binding a oggetti di tipo Nullable<DateTime>. Ovviamente la problematica è cara a molte persone In questo thread nei forum di Xamarin ci sono diverse soluzioni, a fattor comune tutte aggiungono una bindable property chiamata NullableDate a un controllo che eredita da DatePicker e alla quale poi si fa binding e che conterrà l'effettivo valore della proprietà Date esistente. Tra le varie soluzioni proposte nel thread, io mi sono trovato bene con quella che vi riporto: public class CustomDatePicker : DatePicker {     private string _format = null;     public static readonly BindableProperty NullableDateProperty = BindableProperty.Create<CustomDatePicker, DateTime?>(p => p.NullableDate, null);     public DateTime? NullableDate     {         get { return (DateTime?)GetValue(NullableDateProperty); }         set { SetValue(NullableDateProperty, value); UpdateDate(); }     }     public static readonly BindableProperty DateFormatProperty = BindableProperty.Create<CustomDatePicker, string>(p => p.DateFormat,             defaultValue: default(string),             defaultBindingMode: BindingMode.OneWay,             propertyChanging: (bindable, oldValue, newValue) =>             {                 var ctrl = (CustomDatePicker)bindable;                 ctrl.DateFormat = newValue;             });     public string DateFormat     {         get { return (string)GetValue(DateFormatProperty); }         set { SetValue(DateFormatProperty, value); }     }     private void UpdateDate()     {         if (NullableDate.HasValue)         {             Format = DateFormat;             Date = NullableDate.Value;         }         else         {             _format = Format;             Format = "...";         }     }     protected override void OnBindingContextChanged()     {         base.OnBindingContextChanged();         UpdateDate();     }     protected override void OnPropertyChanged(string propertyName = null)     {         base.OnPropertyChanged(propertyName);         if (propertyName == "Date")             NullableDate = Date;     } } Non dovrete far altro che aggiungere il solito namespace XML per...

posted @ martedì 13 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms: pinch-to-zoom di immagini

In Xamarin.Forms il controllo Image per la visualizzazione di immagini non supporta il pinch-to-zoom, ma questo è abbastanza normale. La documentazione spiega come raggiungere l'obiettivo in modo abbastanza semplice, ovvero aggiungendo una gesture recognizer al controllo Image e poi puntando a un gestore che esegua il resize matematico dell'immagine. Se però doveste visualizzare un'immagine che riempia la pagina, dovete agire a livello di contenitore. Il codice che vi riporto l'ho trovato nei forum di Xamarin, non è mio, purtroppo non trovo più il link originale ma non sarà difficile cercare. Innanzitutto si crea un contenitore di livello più alto per supportare questa gestualità: public class PinchToZoomContainer : ContentView {     double currentScale = 1;     double startScale = 1;     double xOffset = 0;     double yOffset = 0; ...

posted @ lunedì 12 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms Starter Kit, un altro progetto open source per iniziare con Xamarin.Forms

Ultimamente sto avendo molto a che fare con Xamarin.Forms per vari motivi, sia lavorativi che editoriali e ho trovato spesso parecchie difficoltà nel fare cose che altrove, come in WPF o UWP, sono estremamente semplici ma che qui, per gioventù della piattaforma, diventano a volte eccessivamente complicate. Questo per dire che seguiranno post in cui condividerò varie esperienze, intanto vi segnalo che ho pubblicato un progetto open source chiamato Xamarin.Forms Starter Kit, il cui codice è su GitHub a questo indirizzo. L'app in se è abbastanza semplice, un newsreader per Channel 9, ma contiene un sacco di cose utili come: ...

posted @ domenica 11 settembre 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Visual Studio "15" Preview 4 disponibile

E' stata rilasciata proprio qualche giorno fa la quarta preview di Visual Studio "15", prossima versione dell'ambiente di sviluppo di casa Microsoft e che ci consente di vedere in anteprima una serie di innovazioni sulle quali stanno lavorando a Redmond. In questa pagina ci sono le note di rilascio con tutto ciò che è stato introdotto in questa nuova release intermedia unitamente al link per il download. Ovviamente, non dimenticate che si tratta di una release non supportata e da non usare su macchine di produzione. Alessandro

posted @ mercoledì 24 agosto 2016 12:52 | Feedback (0) | Filed Under [ Visual Studio 2015 Xamarin ]

Xamarin, il simulatore iOS per Windows

Forse non tutti sanno che Xamarin offre anche un simulatore iOS per lo sviluppo su Windows con Xamarin Studio e Visual Studio 2015. Questo strumento è in grado di simulare sia iPhone che iPad. Ovviamente, il simulatore da solo non basta dal momento che per compilare per iOS è necessario avere un Mac, ma di questo vi parlerò nel prossimo post, unitamente a un esempio di come utilizzarlo. Per ora vi lascio il link al simulatore, con relativa documentazione, nella pagina apposita nel sito Xamarin. Alessandro

posted @ venerdì 19 agosto 2016 11:57 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin: usare MacInCloud per compilare app per iOS in Visual Studio 2015

Come sapete, Xamarin permette di sviluppare app per diverse piattaforme: Android, Windows e iOS, sia attraverso Xamarin Studio che con Visual Studio 2015. Mentre per le prime due non ci sono problemi di sorta, in quanto sviluppo, compilazione, debug, test e tutto il resto possono essere eseguiti su Windows, per la parte iOS non è così in quanto le policy di Apple impongono che per compilare un'app ci voglia un Mac con XCode installato sopra. Sottolineo il "per compilare". Ovviamente, non tutti hanno un Mac (incluso il sottoscritto), ma potreste avere la necessità di sviluppare anche per iOS. Quindi, come...

posted @ giovedì 18 agosto 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin.Forms e i servizi WCF

Windows Communication Foundation è una delle tecnologie su cui molti sviluppatori hanno investito, nel tempo, per offrire informazioni, dati e operazioni all'interno di reti e di architetture SOA. Sebbene oggi si preferiscano maggiormente servizi che supportano lo standard REST, tipo Web API, WCF riveste ancora una grande importanza per due motivi: fare tutto ciò per cui Web API è meno indicato e perché, appunto, ci sono investimenti esistenti. Chiaramente, da quest'ultimo punto di vista, può emergere la necessità di far dialogare anche un'app per dispositivo Android, iOS e Windows con un servizio WCF e, per quello che interessa noi, Xamarin e la...

posted @ martedì 12 luglio 2016 22:00 | Feedback (0) | Filed Under [ Xamarin ]

Nuovo articolo su MSDN Magazine: Xamarin Forms e l'accesso ai dati con SQLite

Con il numero di luglio 2016 di MSDN Magazine è stato pubblicato un mio nuovo articolo dal titolo "Working with local databases in Xamarin.Forms using SQLite". L'articolo descrive come utilizzare SQLite per memorizzare dati locali nelle app cross-platform che possiamo creare per Android, iOS e Universal Windows Platform con Xamarin Forms e come SQLite sia un'ottima scelta nel caso in cui non ci servano database server o comunque dati remoti. Con l'occasione ricordo che anche su VB T&T stiamo dedicando spazio a Xamarin, in particolare a Xamarin Forms: nell'area Video potete trovare tre video introduttivi. Ci stiamo poi attrezzando per altri contenuti. Alessandro

posted @ giovedì 7 luglio 2016 12:00 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin Forms, MVVM e il refresh dei command

Per questo post prendo spunto da una domanda ricevuta durante un corso che ho appena tenuto su Xamarin Forms, fornendo una soluzione che abbiamo recuperato tramite Internet ma che merita qualche approfondimento. Se anche voi provenite da WPF e siete abituati ad utilizzare il pattern Model-View-ViewModel, sapete che la classe RelayCommand implementa l'interfaccia ICommand, che obbliga la classe ad avere, tra gli altri, un metodo CanExecute. Questo serve a dire agli oggetti in binding se un comando può essere eseguito oppure no. Se ad esempio un pulsante è in binding con un comando e CanExecute è False, il pulsante risulta disabilitato....

posted @ giovedì 30 giugno 2016 17:29 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin: risolvere l'errore "Build action EmbeddedResource is not supported"

Un altro problema piuttosto fastidioso che può capitarvi con Xamarin è legato soprattutto a parecchi esempi di codice che potete scaricare dal Web, inclusi (anzi, per primi) quelli nel repo ufficiale su GitHub. In buona sostanza succede questo: aprite la solution, la compilate ma la build fallisce col seguente errore "Build action 'EmbeddedResource' is not supported by one ore more of the project's target", che tipicamente si verifica nel progetto Android. Per risolverlo, innanzitutto non ignoriamo gli warning nella Error List Se troviamo un messaggio con codice IDE0006, espandiamolo: ci verrà praticamente detto cosa fare. In sintesi: Per tutti...

posted @ domenica 26 giugno 2016 17:01 | Feedback (0) | Filed Under [ Xamarin ]

Xamarin Forms e l'emulatore Android che non va

Se vi state cimentando con lo sviluppo cross-platform di app per dispositivi mobili usando Xamarin Forms, potreste incontrare un problema con l'emulatore Android di Visual Studio. In sostanza succede che premete F5 per avviare il debug sul citato emulatore, ma non appena l'applicazione parte viene immediatamente interrotta, il controllo torna a Visual Studio 2015 e l'emulatore.. non fa nulla Se doveste incappare in questo problema: Aprite Hyper-V Manager Tasto destro sull'emulatore Android, quindi Settings Espandete Processor e selezionate Compatibility Selezionate il flag Migrate...

posted @ domenica 26 giugno 2016 11:56 | Feedback (0) | Filed Under [ Xamarin ]

Powered by:
Powered By Subtext Powered By ASP.NET