Archivio Categoria: c#

Articolo il tuo sito in un’app su ioprogrammo

4-213g

Sul numero 213 di questo mese di ioprogrammo √® stato pubblicato il mio articolo su come utilizzare Xamarin per portare il vostro blog wordpress in un’app su Windows, Android e iOS.

Buona lettura ūüėÄ

Utilizzare il ProgressRing nell’ActivityIndicator in Xamarin Forms

Su Xamarin forms per le app UWP il componente ActivityIndicator √® mappato sulla classe ProgressBar e come √® possibile¬†potete vedere nello screen non √® un comportamento congruente con le altre piattaforme e la momento¬†non c’√® modo di cambiarlo con un ProgressRing.

activityindicatorCon il meccanismo dei CustomRenderer possiamo ovviare a questo problema in modo molto semplice inserendo una semplice classe nel nostro progetto UWP

[assembly: ExportRenderer(typeof(ActivityIndicator), typeof(RingActivityIndicatorRenderer))]
namespace DoGethersApp.UWP
{
    public class RingActivityIndicatorRenderer : ViewRenderer<ActivityIndicator, Windows.UI.Xaml.Controls.ProgressRing>
    {
        private Brush foregroundDefault;
        protected override void OnElementChanged(ElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            if (e.NewElement != null)

            {
                if (Control == null)
                {
                    SetNativeControl(new Windows.UI.Xaml.Controls.ProgressRing());
                    Control.Loaded += OnControlLoaded;
                }
                UpdateIsRunning();
            }
        }

        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
            if (e.PropertyName == ActivityIndicator.IsRunningProperty.PropertyName)
            {
                UpdateIsRunning();
            }

            else if (e.PropertyName == ActivityIndicator.ColorProperty.PropertyName)
            {
                UpdateColor();
            }
        }

        void OnControlLoaded(object sender, RoutedEventArgs routedEventArgs)
        {
            foregroundDefault = Control.Foreground;
            UpdateColor();
        }

        void UpdateColor()
        {
            Color color = Element.Color;
            if (color == Color.Default)
            {
                Control.Foreground = foregroundDefault;
            }
            else
            {
                Control.Foreground = color.ToBrush();
            }
        }

        void UpdateIsRunning()
        {
            Control.IsActive = Element.IsRunning;
        }
    }

    internal static class ConvertExtensions
    {

        public static Brush ToBrush(this Color color)
        {
            return new SolidColorBrush(color.ToWindowsColor());
        }

        public static Windows.UI.Color ToWindowsColor(this Color color)
        {
            return Windows.UI.Color.FromArgb((byte)(color.A * 255), (byte)(color.R * 255), (byte)(color.G * 255), (byte)(color.B * 255));
        }
    }
}

in questo modo verranno modificati tutti gli¬†ActivityIndicator per utilizzare il ProgressRing, se vogliamo avere per√≤ maggior libert√† e decidere se ¬†e quando utilizzarlo ci baster√† fare nel progetto comune una nuova classe che estende¬†ActivityIndicator e modificare il CustomRender facendo riferimento a quest’ultima classe.

In questo modo potremo decidere su utilizzare una o l’altra a seconda delle esigenze, sulle altre piattaforme sar√† visualizzato sempre lo stesso componente mentre su windows verr√† visualizzato un tipo di progressbar o l’altra in base alla classe che utilizzeremo.

Buon coding!!!

 

UWP: ricreiamo la funzione ToTitleCase

Come ben sappiamo la piattaforma UWP non dispone di tutte le funzionalità presenti nella versione del .Net Framework versione desktop. Una funzione che può essere utile in alcuni casi è ToTitleCase che come possiamo intuire dal nome converte il testo in parole con iniziali maiuscole come è possibile vedere nella documentazione ufficiale

https://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

La¬†versione standard permette di fare controlli pi√Ļ fini anche in base alla lingua di sistema ma se abbiamo bisogno solo della sua funzione base possiamo¬†utilizzare questo semplice metodo

public string toTitleCase(string value)
{
    if (value == null)
        return null;
    if (value.Length == 0)
        return value;

    StringBuilder result = new StringBuilder(value);
    result[0] = char.ToUpper(result[0]);
    for (int i = 1; i < result.Length; ++i)
    {
        if (char.IsWhiteSpace(result[i - 1]))
            result[i] = char.ToUpper(result[i]);
        else
            result[i] = char.ToLower(result[i]);
    }
    return result.ToString();
}

che converte in maiuscolo l’iniziale di ogni parola ed in minuscolo quelle seguenti.

Una piccola utility che a volte può tornare utile

Buon coding!!!

UWP: ListView con larghezza degli elementi al 100%

Se volete che in una vostra app gli elementi di una ListView occupino il 100% dello spazio disponibile orizzontalmente dovrete andare a modificare il tema del controllo ListView e non sar√† sufficiente utilizzare la solita propriet√†¬†HorizontalAlignment=”Stretch” del controllo in questione.

Lo stile che andr√† modificato √® pi√Ļ precisamente¬†l’ItemContainerStyle.

E’ possibile farlo in modo molto semplice utilizzando le seguenti righe da codice da inserire all’interno del tag <ListView><ListView> della vostra app

<ListView.ItemContainerStyle>
 <Style TargetType="ListViewItem">
 <Setter Property="HorizontalContentAlignment" Value="Stretch" />
 </Style>
 </ListView.ItemContainerStyle>

Buon coding!!

La nostra prima UWP su XBox

Build, la conferenza pi√Ļ importante per sviluppatori di Microsoft¬†di quest’anno √® stata piena di novit√† per noi¬†sviluppatori (tra cui anche xamarin gratuito) e forse una delle pi√Ļ attese era la possibilit√† di far girare le proprie app UWP sulla XBox di casa senza necessit√† di acquistare nessun devkit o dover fare sblocchi particolari.

Per fortuna dopo qualche anno di attesa siamo stati accontentanti e la funzionalità è stata rilasciata pubblicamente con una propria pagina ufficiale sul portale developer di microsoft.

In questo post vedremo insieme come far partire la nostra prima app su XBox e quali sono i limiti al momento.

Prerequisiti

Per poter sviluppare su XBox One abbiamo bisogno di

  • una XBox One (decisamente scontato ūüėÄ )
  • un account sviluppatore per attivare l’XBox (se non lo avete il costo √® di circa 20‚ā¨ una tamtum)
  • un pc con installato Visual Studio 2015 update 2 (v√† bene qualsiasi versione, io ho utilizzato la community)
  • Windows 10 SDK preview build 14295¬†(non √® obbligatorio utilizzarlo ma ci permette di avere gli strumenti pi√Ļ aggiornati per le nuove funzionalit√† e classi)

Attiviamo la modalità sviluppatore sulla nostra XBox

Innanzi tutto abbiamo bisogno di una XBox One che non faccia parte di nessun programma di preview, quindi se la nostra console fa gi√† parte dell’update preview dobbiamo uscirne. L’operazione pu√≤ essere fatta direttamente dall’app¬†Xbox Preview Dashboard, unico neo √® che non sar√† immediata ma potr√† richiedere alcuni giorni per essere effettiva (nel mio caso ci sono volute circa 48 ore), tutti i dettagli sulle operazioni da eseguire sono disponibili nelle FAQ ufficiali del programma preview

Una volta che la nostra console sar√† nel canale standard degli aggiornamenti, dovremo installare dallo store XBox l’app¬† Dev Mode Activation e seguire le semplici operazioni a schermo che ci guideranno all’attivazione della nostra console tramite il nostro account developer.

xbox_dev4

Tutto quello che dovremo fare è raggiungere la pagina https://developer.microsoft.com/xboxactivate ed inserire il codice fornito. Da questa stessa pagina sarà anche possibile disattivare le console che avete precedentemente attivato.

E’ disponibile una guida ufficiale a questo indirizzo se avete problemi (ma il tutto √® veramente semplice)

Una volta seguiti tutti i passaggi ci verrà chiesto di scaricare un aggiornamento del sistema operativo che porterà la nostra console nel ramo di sviluppo Redstone di Windows 10

ATTENZIONE: l’installazione non comporter√† la perdita di nessun dato, la formattazione (e quindi la perdita di tutto ci√≤ che √® presente nella console) sar√† necessaria esclusivamente se si vuole uscire dalla developer preview e tornare nel ramo¬†standard (al momento non ho trovato problemi particolari con questa preview, ma devo dire che non sono un gran giocatore quindi non l’ho testata con molti titoli).

Una volta che la nostra console si sar√† riavviata potremo tornare all’app¬†Dev Mode Activation e utilizzare¬†il pulsante Switch and Restart per passare alla modalit√† sviluppatore.

xbox_dev1

L’XBox a questo punto dopo qualche secondo di attesa si riavvier√† (non preoccupatevi se il riavvio sar√† pi√Ļ lungo¬†del solito, √® una cosa normale) e vi troverete davanti una schermata di home molto pi√Ļ scarna di quella a cui siamo abituati, con poche tile e senza i giochi che abbiamo installato.

Sulla destra avremo una nuova app¬†Dev Home fondamentale per avere i dettagli della nostra console per poterci connettere da Visual Studio. Nella parte superiore sinistra √® infatti possibile visualizzare l’indirizzo ip della nostra console, mentre nella colonna centrale sar√† possibile generare un pin per visual studio oppure rimuovere un pin gi√† utilizzato.

xbox_dev2

Lanciamo la nostra app da Visual Studio

Ogni app UWP pu√≤ essere potenzialmente eseguita sulla nostra console, tutto quello che dobbiamo fare √® impostare come piattaforma x64 o x86 e come destinazione “Remote Machine“. Al primo tentativo di avvio ci verr√† richiesto l’indirizzo ip della macchina a cui connettersi ( come detto precedentemente √® disponibile nell’app dev home), √® necessario che l’autenticazione sia impostata su Universal, altrimenti la connessione non avr√† successo.

I parametri di connessione saranno modificabili in ogni momento nelle impostazioni della soluzione nella sezione debug.

xbox_dev3

Come ultimo passaggio ci verr√† chiesto di inserire un pin generato dall’app Dev Home¬†di cui abbiamo parlato in precedenza.

A questo punto la nostra app sarà finalmente eseguita sulla console.

Anche per queste operazioni da eseguire su Visual Studio è disponibile un tutorial ufficiale

Limitazioni

Al ¬†momento altre a molti bug conosciuti pi√Ļ o meno gravi di cui √® possibile trovare una lista QUI¬†quella che abbiamo a disposizione √® una primissima versione dell’ambiente di sviluppo basato sulla piattaforma UWP e quindi con molte api non ancora implementate. Una lista delle implementazioni mancanti √® disponibile QUI.

La mancanza dell’implementazione non porter√† alla non esecuzione dell’applicazione che utilizza queste API ma i metodi semplicemente ritorneranno valori nulli, un esempio √® quello dei vari FilePicker che una volta richiamati non visualizzeranno nulla ma ritorneranno un semplice valore null come se l’utente avesse annullato la selezione.

Lo store

Al momento lo store non √® stato ancora unificato con quello presente sugli altri dispositivi windows 10 ma con il prossimo update la transizione sar√† completa e le nostre app potrannno essere disponibili per tutti, per ora¬†quindi l’unico modo per installare le nostre app √® quello di passare per l’ambiente di sviluppo

Al momento non è dato sapere quali requisiti si dovranno avere per poter pubblicare le proprie creazioni sullo store della console. Per i giochi quasi sicuramente ci sarà un controllo qualità preventivo per mantenere uno standard elevato, per le app invece si spera ci sia una maggior flessibilità e semplicità di accesso.

Sicuramente nei prossimi mesi ne sapremo di pi√Ļ

Conclusioni

Il rilascio dei tool di sviluppo UWP per XBox è stato accolto con molto entusiasmo, al momento però è necessario ancora molto lavoro prima di poter avere una piattaforma utilizzabile e stabile ma i primi sviluppi sono decisamente interessanti e sicuramente con i prossimi aggiornamenti che arriveranno a breve la situazione migliorerà velocemente.

Al momento lo scopo di questo SDK √® quello di permetterci di poter iniziare ad adattare le nostre app soprattutto nell’interfaccia e nell’utilizzo del joystick che normalmente non √® contemplato come metodo di input nelle nostre app ma qui sar√† l’unico mezzo di interazione.

Bisogna ammettere che veder girare le proprie app su una console √® decisamente una bella soddisfazione ūüėÄ anche perch√® sulle altre piattaforme presenti sul mercato questa cosa non √® possibile per sviluppatori senza un grande team alle spalle.

Se avete una XBox One e siete sviluppatori adesso non dovete far altro che dar sfogo alla vostra fantasia e sviluppare app che potranno veramente entrare nei salotti di tutte le case!

Buon Coding!!

 

Introduzione a xamarin

Ecco il primo di una serie di post sul wiki technet su Xamarin, un mondo nuovo che mi st√† lentamente affascinando e che secondo me non deve mancare nel bagaglio culturale di un programmatore a 360¬į

http://social.technet.microsoft.com/wiki/contents/articles/33618.introduzione-a-xamarin-it-it.aspx

UWP: Controllare il tema utilizzato dal sistema nelle nostre applicazioni

In alcune situazioni può essere utile fare delle piccole modifiche in base al tema chiaro o scuro che il sistema stà utilizzando.

Il framework per facilitarci il compito espone già la proprietà RequestedTheme nella classe Application che ritorna un oggetto ApplicationTheme per il tema selezionato.

Per controllarlo ci basterà fare

if(Application.Current.RequestedTheme == ApplicationTheme.Light)

oppure

if(Application.Current.RequestedTheme == ApplicationTheme.Dark)

in base alle nostre esigenze

E’ utile sempre ricordare che le applicazioni vanno sempre testate con entrambi i tempi per essere sicuri che scritte ed immagini siano sempre visibili

Potete trovare un progetto di esempio sul mio repository GitHub

Evitare che la nostra applicazione funzioni su continuum

Continuum √® una delle funzioni pi√Ļ interessanti pra quelle inserite in windows 10 per mobile, e di default permette di far girare qualsiasi applicazione sviluppata con la tecnologia delle UWP.

Se però per qualche ragione vogliamo evitare che la nostra app possa essere lanciata sul monitor collegato basta inserire qualche riga nel nostro package.appxmanifest

no_continuum.

Dovremo anche aggiungere al progetto il riferimento all’estensione per Windows Mobile

estensioneWindowsMobile

√ą inutile aggiungere che escludere il funzionamento in continuum delle nostre app¬†√® una pratica sconsigliata, in quanto gli utilizzatori potrebbero non comprenderne la motivazione e ripagarvi con commenti negativi ma se proprio volete farlo adesso sapete come ūüėÄ

Continuum cosè e come sfruttarlo al meglio

Grazie agli amici della Microsoft ecco il mio secondo post pubblicato sul blog msdn italiano ūüėÄ

http://blogs.msdn.com/b/italy/archive/2016/02/03/guest-post-continuum-cos-232-e-come-sfruttarlo-al-meglio.aspx

UWP: Come dare un’occhiata a tutte le impostazioni dello stile di default

Per poter modificare lo stile di un elemento di una UWP è risaputo che da Visual Studio oppure da Blend basta premere il tasto destro un elemento e quindi generare una copia del template.

Quello che forse è meno conosciuto è il fatto che è possibile avere accesso in modo veloce allo stile di tutti gli elementi e a tutte le risorse.

Basta recarsi nella cartella

C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP

dove troveremo varie sottocartelle in base alle versioni dell’SDK che abbiamo installato, nel nostro caso c’√® solo la cartella 10.0.10240.0. All’interno di essa c’√® poi un’altra cartella Generic al cui interno troveremo i file che ci interessano

uwp_res

All’interno di essi abbiamo tutti gli stili che possiamo copiare all’interno della nostra applicazione e modificare per dare alla nostra app il tocco grafico che vogliamo.

Buon divertimento ūüėÄ

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi