Advanced Xamarin.Forms Part 1 – The API

Spanish Version

In this series, we will explore a number of topics on Advanced Xamarin.Forms that have arisen in our work for clients, or at my job as Principal Mobile Developer for IFS Core.

Before we can start, however, we need to build an API that we can program against. Ideally, this API will support all CRUD operations and will reside on Azure.

Continue reading
Posted in API, Xamarin | Tagged , | Comments Off on Advanced Xamarin.Forms Part 1 – The API

Yet Another Podcast: Xamarin.Forms Tools

Microsoft’s Maddy Leger. Program manager for all things Xamarin.Forms Tools, talks about Hot ReLoading and much more

Maddy Leger

Show links:

Posted in Essentials | Tagged | Comments Off on Yet Another Podcast: Xamarin.Forms Tools

Display A Dialog From The ViewModel

In a previous blog post I discussed the problem of being in your ViewModel yet having to display a dialog to the user. You can’t interact with the page from the ViewModel, but you don’t want the logic of your program in the code-behind.

In that previous article, I demonstrated solving that problem using an event. In this blog post, Rodrigo Juarez and I will demonstrate three alternatives:

  • Using the Messaging System
  • Using Events (though here we’ll show a somewhat different approach)
  • Using dependency/service injection

There are significant problems with the first two; the most important of which is that they are difficult or impossible to write unit tests for. The third approach, however, is clean, efficient and very testable using a Mock service.

Continue reading
Posted in Essentials, Xamarin | Tagged , , | Comments Off on Display A Dialog From The ViewModel

CodeMash Xamarin.Forms Workshop

The code for the 1/2 day workshop at CodeMash is available here.  Thanks.

Posted in Essentials | 1 Comment

Happy Holidays to C Programmers

Not sure where I got this, but still like it:

/*
 * find the important things in Life, the Universe, and Everything
 */

typedef short	some;		/* some things are short */
typedef some	very;		/* some things are very short */

#define A			/* The first letter of the English Alphabet */
#define LINE	2		/* 2 points define a line */

#define TRUTH	BEAUTY		/* truth is beauty */
#define BEAUTY	10		/* and beauty is a 10 */

#define bad	char		/* burnt on both sides */
#define old	char		/* the great Chicago Fire */

#define	get	strlen		/* during your life, try to get some sterling */
#define youmake	float		/* you make it, I'll drink it */


#define		yourgoals	in terms you can understand
/*
#include	"yourdreams"	/* for the future */


	/* everyone needs goals */

short	term;
double	yourpleasure();
double	yourfun;

long	Term, play(), agame;

	/* everyone needs diversions */

old *joke = "Why did the chicken cross the road?\n\tTo get to the other side!\n\t\tWocka Wocka Wocka!\n";
	

tell(joke)
bad	*joke;		/* wait- you haven't heard it yet! */
{
	short laugh;	/* please */

	laugh = get(joke);
	write(1, joke, laugh);	/* write it down- don't say it */

}

	/* most folks like music */

long play(record)
long record;
{
	very pleasant = TRUTH;		/* if you like music */

	while (record == pleasant)
		play(record--);

	return( pleasant );		/* music soothes the savage */
}


double	yourpleasure(one, way)		/* this is necessary if */
some	one;				/* is watching ,or if you have a */
long	way;				/* to go  */
{
		/* this can change one while maintaining one's identity */
	one = one * one;
	return( one );		/* after all, it should have at least doubled */
}

hold(temper)			/* good advice */
A short temper;			/* is a dangerous thing */
{
	A long	time;		/* is what you need */
	very calm;		/* is how you should be */

	calm = temper, temper;

	while (calm--)
		wait(&time);

	return(calm);		/* if possible */
}


	/* now, on to the main thing */

main(thing, mustbe)		/* to balance work, play, and goals */
some thing, mustbe;		/* important, or we wouldn't be here */
{

	long	time();		/* know C */
	very	bored;		/* the result of too few goals */

	short	hours;		/* make */
	long	yourwork;	/* which makes for */
	short	tempers;	/* which can be improved by */
	long	laughing;


	/* first, set priorities */
	yourwork = 0;
	yourfun = 1.0e+38;

	if (yourpleasure( mustbe, yourwork ))
		yourfun = yourwork;
	else
		yourfun = play( agame );

	bored = yourfun - yourwork;  	/* nothing to do? */
					/* reach out and touch someone! */

	switch ( bored ) {	/* connects all of this together */
	default:
		hours = hold(LINE); /* no way to avoid it, take a */
		break;
	}

		/* take a music break */
	while ( thing-- ) {	/* you make my heart sing */
		youmake everything;
		very groovy;
	}

		/* focus on what is important to you */
	while ( yourfun < 0 ) {
		yourpleasure( mustbe, agame);
		yourfun = play( agame );
	}

	tell(joke);

	exit( laughing );
}

Posted in Essentials | Comments Off on Happy Holidays to C Programmers

Xamarin.Forms Fundamentals: MVVM

In my previous post we started with a blank Xamarin.Forms app and added manual data-binding.   That is, when a button was pressed, we assigned the value in an entry control to the text property of a label. 

Yuck.

Today we’ll look at a better way of doing that.  But hold on to your hat, and fasten your seat belt, because we’re going to dive into the deep end.   

Continue reading
Posted in Essentials | 3 Comments

Xamarin Fundamentals

In my previous (and first) posting on Learning Xamarin, I demonstrated how to create a pretty cool program out of the box.  Let’s back up now, and start with a blank app, and see what we can build from there.

Create a new project as described in the previous posting, but this time choose a Blank application.

Continue reading
Posted in Essentials | 1 Comment

I’m Back! With Xamarin.Forms Programming

It has been a few months since I’ve posted, and I hope you missed me as much as I missed you.  To re-launch this blog, I’ve decided to provide a series on Xamarin.Forms programming.  

If you prefer to learn by watching a video, check out this video course.

If you are new to Xamarin.Forms (and I’m assuming you are) then there is a lot to learn, but none of it is very difficult… ok some of it is, but not until you’re into very advanced topics.   The one thing you do need to know is C#. You don’t have to be an expert, but you do have to be comfortable with the language.

Continue reading
Posted in Essentials, MVVM, Programming, Xamarin, XAML | 2 Comments

TypeScript for C# Programmers – Slide deck

Here is a link to the slide deck for my presentation at NYC Code Camp.

Thanks!

Posted in Essentials | 1 Comment

Yet Another Podcast: Xamarin.Forms

Microsoft’s Maddy Leger. Program manager for all things Xamarin.Forms Tools, talks about Hot ReLoading and much more

Show links:

Posted in Essentials | Tagged | Comments Off on Yet Another Podcast: Xamarin.Forms

MVVM Ping Pong

Here’s a problem I come across more often than I would have expected.  I want my buttons to use Commands in the View Model, but in response to the command, I have to interact with the user in a way that is much easier to do in the code behind.

Let’s take the example of a user pressing a button to delete a record.  The button calls a command in the ViewModel, but I want to show a confirmation dialog box in the view.  If the user affirms the deletion, I want to do the work back in the View Model.  Oy.

Continue reading

Posted in MVVM, Xamarin | Tagged , | 8 Comments

Xamarin Quick Hit: Dimming a button to indicate it is disabled

I often have to dim a button to indicate that it is disabled, and I want to do that via data binding.

Continue reading

Posted in Essentials, Learning, Xamarin, XAML | Tagged | 2 Comments