>> Tune into this week's Xamarin Show,
where I have my good friend, Aaron,
back on from Syncfusion.
>> Yes.
>> To talk about the amazing iOS controls,
charts and graphs that integrate into
your application. So tune in.
>> Welcome back, everyone to The Xamarin Show.
I am your host, James Montemagno,
and today, I have my good friend,
Aaron, back from Syncfusion. How is it going, Aaron?
>> Hey, I am doing pretty good. How are you?
>> Yeah, I am doing great.
We had you on recently to talk
about how Syncfusion makes awesome,
ridiculous, controls for Xamarin forms.
>> However, you wanted
to come back and talk a little bit about
the native side of things with
their traditional approach on Xamarin, iOS and Android.
>> Correct. So, I have a very similar app
to what I showed you before. Same concept.
I just did switch it up a little bit and
use one different control,
but it is going to be this time,
the Kanban and the diagram control.
So, for those who watched the previous video,
I showed a prototype app for controlling a robot toy.
So, I'll show that again,
just slightly different for Xamarin.iOS.
>> Yes. So, people that maybe are
brand new to Syncfusion,
maybe never heard of Syncfusion before.
Can you give them the 101 overview of what Syncfusion is?
>> So, Syncfusion is a now 17-year-old company
that's been building controls
for .NET from various different platforms.
So, we support web, we support
desktop, we support mobile.
So, the general gist is that we provide
a tool kit to simplify development.
>> Any kind of type of control
that you can possibly imagine.
>> Exactly.
>> Often, I am always thinking about the bar charts,
and graphs, and crazy things,
seems like that that was the bread and butter,
if you will, of bread and
margarine of the entire Syncfusion.
But really, even in the last video,
we showed this kind of really optimized list view
and a very cool diagram chart.
There is all sorts of stuff.
>> Absolutely. So, most people
do think of those kinds of controls,
maybe when they think of a third party control vendor,
grids, charts, and things like that,
but there is a lot more.
So, we have Document Viewers, we have PDF Viewer,
we have Document Editor,
we have the Combat Control,
we have Dragon Drop support for things like that,
we have Gantt controls,
we have Radial Menus,
we have Buttons, we have Gauges.
We have everything in between and as well as
all those kind of old school,
boring, line of business type controls.
>> The stuff that you need because
who does not like charts and
graphs and awesome stuff
inside their application is what you need.
>> Yes.
>> Every application needs
a little bit more bar chart in their lives,
as I like to say. So, cool.
Awesome. I have been using Syncfusion for over a decade,
like I mentioned on the previous video,
which I will put in the show notes below,
so make sure you check out that video
for the Xamarin.Forms goodness.
But I am really excited to have you on because I have
been doing a lot of the Xamarin.Forms
stuff and you wanted to show iOS,
specifically, developers and even
just building your native
Xamarin.iOS applications and what Synfusion has to offer.
>> Yes, absolutely. So one
of the reasons we want to show this because it is also
kind of plays into what is
unique about Syncfusion is that we
want to make things really simple.
We want there to be a consistent look
and feel in terms of our own controls,
but also what our customers are able to do.
So, if one of our customers wants to
build an application across multiple platforms,
they probably wanted to be
very consistent in terms of look and feel.
And so really what I am showing today, like I said,
it is going to be very similar to the last demonstration.
It just kind of bring that home,
kind of show you that you can create
the same thing regardless of which approach you take.
>> Got it.
>> So, real quick.
So this is the Syncfusion website.
One of the things that I also want to talk about is,
everything that I am going to show today is available
for free and one of two different ways.
So there is, as you can see right here
on the "Home Page", a "Free Trial" link.
>>Big button "Free Trial". Get it.
>> So that gives you access to everything.
So that is over 800 controls
for all platforms including Xamarin,
Xamarin.Forms, Xamarin.iOS, and Xamarin.Android.
And then, there is also our "Committee License".
So we also do support
any developers and students and
things like that with our "Committee License".
That gives you the access to everything we offer.
So all of those controls for
free as long as you are a company that
makes a million dollars or less in revenue per
year or are five developers or less as well.
>> Perfect. Then there is pricing tier for anything.
>> Yes, absolutely. Before we get into the course,
let us talking about how do we get access to everything.
>> Yes, how do you get started?
>> So, here we have our "Documentation" page.
So you can find this by going to
"help.syncfusion.com" or from our main site,
you can just go to "Learning Support"
and it is under "Documentation".
And so from here, you just
need to find the platform that you are working with.
So in this case, we are dealing with
Xamarin.iOS as what we would be focusing on
since we do not have all the time in the world to go
over everything and the Android side
as well since it is mostly the same.
Again, the idea here is basically
the same regardless of which approach you take.
So, when we get into this,
the first thing you want to do is figure out how to get
access to our Xamarin control.
So there is a couple of different ways.
You can download the assemblies directly to your machine.
So, you can download directly to your Mac, for example,
and that will be the same thing that you
would get if you were doing a free trial for
example you would be downloading them to your machine
or you can just get the NuGet Packages.
So we do have a NuGet feed, so you can do it this way.
It is just up to you and your specific approach.
>> That makes it nice and easy to get
the updates automatically.
>> Absolutely. And so,
now what we are going to do is we're going to
talk about the actual app.
So first, I am going to show
the "Getting Started" here for
the first control that we are going to be looking at and
then I am actually going to show you the apps
that you can kind of visualize it.
>> Perfect.
>> And we will move from there. So for
all of the controls in our documentation,
you will always have a "Getting Started" page.
So you have this list of everything
that is available on the platform.
Then, you click on that control and then,
you get this "Getting Started" page.
>> It is nice. You go and you can see
the control that you want to
get and then go right to this doc,
learn how to load it,
learn how to use it.
>> Absolutely.
>> Very, very beautiful document.
>> Yes. Thank you. So there is
a lot of pictures as well, a lot of screen shots.
And so, the first thing you want to
make sure you do is read it.
You always got to read documentation
or otherwise it is not very use.
And if you read, it will tell you things
like what you need to do for
additional steps in order to get a control
to actually work or to come up.
Sometimes, there are additional steps.
So you just will make sure you read the documentation
and make sure you catch all that.
Another thing that is important here is also,
there is sometimes an overview of the control.
So sometimes there are some concepts that need to
be explained and we will get into that later.
But, just basically, this is what you need to start with
for the first control where we are going
to be looking at, which is the Kanban.
Just a few simple lines of code is all
that is needed to get that up and running.
>> Is it Kanban, Canban?
>> Yeah, I'm not sure.
I will just alternate between the two.
>> That is what I like to do. A lot
of podcasts that I recorded or like
that where the podcast and do not know how
to pronounce anything correctly at all.
So, very cool. So what is a Kanban board?
Maybe, at a higher level since we are
going to be using it, I guess.
Why would someone want to use this specific control?
>> So, at a high level,
it is essentially a very interactive way
of organizing data.
So it is a very visual and very,
like I said, interactive way of visualizing things.
So that you essentially have these cards on
a grid and this grid is mainly comprised of columns.
And in these cards, you can
drag from one column to another,
and using that kind of interaction,
you can create workflows,
you can assign things to other resources,
you can assign tasks to people or task to departments,
however you wanted to configure that.
So, that is what we
are going to be using to, in this case,
give commands or actually set up a mission structure for
our robot toy which will then be
given commands based off of that for it.
So speaking of, let us go ahead and take a look at that.
There we go. So, I'm going to go ahead
and run the application.
>> First, it was a Visual Studio for
Mac here and then our iOS simulator.
>> Here's our iOS simulator.
So this is the Kanban control or the Kanban control.
So you can see here this is you do
have the ability to scroll
left and right depending how many columns you have.
There's no limit on how many columns you can create.
In this case I just have two.
You can see up here I have available missions
and accepted missions.
Again, for anyone who saw
this the previous administration
is the same exact concept.
The only thing is that the
interaction here is kind of reverse.
So before you got
all the missions set for you automatically.
You had to get rid of the ones you didn't want to.
Here, you have to move the ones that you want into
position in order to choose or to build
out your mission scenario here.
So this is essentially
the basic interaction you get with the Kanban.
You have these cards and you can move things around.
>> Is order reordering just magically, or I mean,
what's kind of the flow of I
add some cards and then magically things happen.
>> There is some magic.
>> Okay.
>> But there is actually some configuration
that has to be done with the Kanban control.
>> Okay we'll at-
>> We'll look into that, yes.
>> Okay.
>> So essentially once you choose
your missions in this app what happens is you
click accept at the bottom and
then it builds out a diagram builder.
>> Oh, cool. So these are the ones that we put
only in the accepted column.
These are the things that I want the
little toy robot to do.
>> Exactly. So then the idea
from here is that now you've built out
your scenario and so you could then
get to create a-using a flowchart,
you get to essentially give the
little robot its commands.
So you can imagine this being moved
10 feet this way or target this.
>> Target right, target left, target this.
>> Yeah, shoot this missile here.
Whatever you want it to be.
So once we get to this point,
there's a little bit more configuration that goes on
here because there's a lot of objects on the screen,
each one of them is configurable.
So we'll get into that. All right.
So that's the app in a nutshell,
so let's go ahead take a look at how this was done.
>> Sure.
>> So the way I chose to do this I
actually didn't really use the iOS designer much at all.
The only thing that I use that for,
so if we look at my storyboard,
the only thing I used that for was essentially
to link up my segues between views.
So I had to set up a navigation controller to kind of be
the route view and
then from there I kind of connected everything else.
But beyond that as you can see
here just three simple views really too.
That's the only thing that was used for.
Everything has its own code.
>> Build your own diagram inside of-
>> Yeah, exactly. So everything else is done in the code.
So we're going to start by looking at
the main view controller as I've named it here.
So what we've got is
a couple of fields that were created.
So we've got two observable collections to
hold the initial set of data so the initial set of
missions and then the ones that we are
ultimately accepting and passing over to our diagram.
>> Perfect. So you're using observablecollection for
a specific reason instead of a list
that way it kind of like updates
when you get notification.
>> Yeah. So part of the reason is because it's also
copy and pasted from the previous project,
which was also kind of the idea of showing this.
Reusable code is something that everyone loves.
So this was really just a way
of showing that if you needed
to support more than one platform
or more than one approach,
it's easy to do if you've already built it one way.
>> Yeah, because here mission type
and view models if we look at
your code structure actually it seems like that's
in a .NET standard library right.
You saw the android in here.
>> Yes.
>> Even though we're showing iOS but you
have view models and you can reuse some code there.
>> Yes, absolutely.
>> Oh, very cool.
>> Yeah but yet to your point, yeah, these
could probably could have just been lists.
>> Very cool.
>> So we're moving on from there
we create our Kanban control.
So just in this case one line.
So we create new instance of that and then we start
to configure it onto the view.
So the first thing that I did was I calculated
the size of the view balance
and then I did some basic math here.
So I subtracted 40.
>> Yeah.
>> I don't know what units those are. Pixels I'll say.
>> Yeah.
>> Then that way to give myself
room for the button at the bottom.
>> Perfect.
>> So based on that we also calculate where
the position of the button
should be should be at the bottom of that.
Got a view bound and then put it there.
So that's essentially what's going on here.
So you can see some of the math
that's going on to create the-
>> The button on the bottom.
>> Yeah, the Kanban button and the button.
So from there we
actually get to set up the Kanban control.
>> Got it okay. So.
>> The important stuff.
>> Yeah, the important stuff. So we
give the Kanban an item source.
So it has that initial set of data for
the first cars that are set up.
Then we get to set up the columns
that are inside of the Kanban control.
So the first thing you need to do is to
tell the Kanban control
which field from your data is going to
be the column mapping path.
So where is it going to figure out where these cars go.
>> Okay.
>> So in this is we have a field called Category,
so we mapped to that.
So you'll see that down here in
these several lines of code we've actually
created manually the columns themselves.
So I've managed to create
an available missions column and I've
managed to create an accepted missions column.
>> Got it.
>> But, if you look at what I've commented out here,
we can also let the Kanban control do it on its own.
So I can look at your item source,
it can look at your data,
figure out what all the different options
are and just automatically create those columns for you.
>> Very cool.
>> So yeah. It's up to you
depending how your data is structured.
So then really the last thing that's in here
is handling what happens when you drag and drop.
So there's really only one event that I'm handling in
this case and that's drag
and so what happens when you actually drop.
So there's a couple of different scenarios here.
So what happens if you drag within
the same column we are just moving,
changing the index value of
that item within that same column.
>> Got it.
>> Then for the other two scenarios
here is what happens if you move from one column
to the other and then back and forth so we add or we
remove or we just change index values.
>> So you have a source which
is where it started and then
target where it ends and you figure you want to do.
>> So you can grab your source column of variables,
so you can get the title, you can get
the the index value.
So you can do a lot with those are those values.
>> Very cool.
>> Yeah, and that's pretty much it.
>> Like really not that much code.
So that's all you need. That's it.
That's the whole code for the whole thing.
Yeah. So that's the entire Kanban control.
Nothing else is needed. Then what
we saw in the simulator,
let me bring that up again is
rendered just from that- those little bits of code.
>> Do you get a bunch of things for
free here because I didn't- I don't see any code
for like this items count or I don't
see like there's all of that arrow thing.
What are these arrow things?
These are what allow you to collapse
the columns so that you do you get all that for free.
It is customizable so there is
a template you can access to change that,
but it just comes with it.
So there's no additional set up for any of that.
>> How does it know what to render
inside this little card.
>> Yes. So inside of the card
the card itself is also a template
that's pretty much set up for you,
and one of the things that I did
to get them to look the way they do is,
if we go into my model here in the,
in the shared solution.
I have a mission type model.
This was carried over from the previous project.
What I did was I had it inherit from Kanban model.
>> Oh, cool.
>> So the Kanban control does have a model defined within
it that gives you some basic fields and
they are already mapped to those card widgets.
>> Wow, cool. So you don't have to worry
about building- it just does it for you.
>> Yeah.
You don't have to do any kind of
binding or anything like that.
You just set up the fields and you're good to go.
It supports a lot, so it gives you support
for the title description tags,
images all that's built in.
>> Very cool.
>> Yeah. So, from there,
we get to move onto our diagram control.
So, there is a button here and that button
is essentially moving us over to diagram control.
>> Got it. Makes sense.
>> So, once we get to the diagram view,
then this actually was
literally "Copy" and "Paste" from the previous project.
>> Because that one we did in Code Behind.
What I'm thinking of saying Fusion,
if I'm developing Xamarin.Forms app or Xamarin.iOS app,
really there's the designer views,
there is the Code Behind views
and there's the XAML views,
and it seems as if
the Code Behind views are
the same names and the same property.
Is that correct or is it very similar?
>> They are exactly the same.
So, there are very, very few
tweaks that had to be made here.
I think I had changed maybe
the names of some of the collections,
and maybe I had to add this in there.
>> And add it to the iOS view
instead of the Xamarin.Forms view. Very cool.
>> For those who haven't seen
that, what's happening here,
is we are again
creating an instance of the diagram control,
we're setting up its view bounds,
and then we are handling a couple of events.
So, we have a node clicked and a user node clicked.
So, this is where we get into what I mentioned before,
with the concepts of
different objects in some of these controls.
So, if we go into the "Diagram Control,
"Getting Started", there is
a section here called Basic Building Blocks in Diagram.
>> Got it. To learn a little bit about what you're doing.
>> Right. So, the view is comprised of the diagram.
And inside the diagram, we have nodes,
which are the main shapes that you interact with.
Between nodes are connectors,
and those are configurable,
there are different styles you can choose from.
On a node, are multiple ports that you can create,
and each port allows you to
connect multiple connectors to a single node.
So, you can have one on the side,
on the top, on the corners, wherever you want.
And then, annotations are
the blocks of text that go inside of nodes.
>> Got it.
>> So, all these things you need to account
for when you're creating a diagram,
because it will change how
you represent data but depending how you set these up.
>> Cool.
>> So, what we're doing in the code here,
is essentially handling the creation of each of those.
So, when we bring in our initial set of data,
we're going through and we're
picking out each item and creating a node out of it.
So, nodes are very similar to the cards
in a Kanban and that they're preset.
There's already a default template
there, that you don't have to buy anything.
>> I see I have a shape type of a ellipsis,
so I can have a rectangle.
>> Yeah and you can even draw your own shapes.
If you wanted to create
a new graphics item, is draw it out.
You can do that and set that as your shape.
We can also create new annotation.
So, when you create a new node you get to add
a default set of text that you can put in there.
And one thing I didn't show you
was that when you do that,
by default it is editable.
So, if a user double clicks on an annotation,
they get a- there you go.
>> Policy and editor right away.
>> You can change text and do that.
So, one of the things that you
can also do when
you create a node is, of course, control that.
So, you can set it up so that users cannot resize,
rotate, or edit what's inside of the node.
>> They are in control.
>> Yes. So, once we create the nodes,
then we're also handling the creation of new nodes,
after the initial ones based off that initial data set.
>> Every time you hit that "Plus" button.
>> Right. So, every time we hit that "Plus" button.
So, that also gets us into,
so this is where we create that's
handling adding new nodes, which are a different size.
We also calculate the offset,
so that they're not created right on top of each other.
So, we have to figure out
where the original one is and then
move our controls off to the side of it.
Then here, you can see we've chosen
a different shape for them as well.
In addition to shapes, one of the things I didn't
do was do anything with colors,
but you can also
select different colors or
create nodes with different colors.
You can randomize that, you can assign it to
different node types, however you want to do it.
Then, what we're doing after that,
or in between that is,
when we're also creating the new nodes,
we're also going ahead
and creating connectors between them.
So, whenever we create these nodes,
we want to make sure that they're connected to
the previous node and that it was created from.
>> "Source and target" very similar
to the come on board, where things are moving around.
>> Absolutely. So, very simple to handle that.
Pretty easy to understand there.
Also, since we are creating the connection,
so you can see how it can customize them.
We can change the width of the stroke,
we can change the brush type.
We saw the color. We can change the type of segment,
so it can be the step line,
it can be a curved line,
it can be dotted line as well.
>> Got it.
>> Then down here, we have our different actions
that happen when you
click on those "Plus" and "Minus" buttons.
So, we have the "Delete" node and
we have an "Add" node button.
Then, that brings us to the handles themselves.
So, those little "Plus" and "Minus" buttons,
those are user handles.
And just like with ports,
you can have them on all corners
and all sides of the nodes.
So, you can have up to seven,
applied to a node.
Here, I'm just using two.
You can see here, we simply create- in this case,
I'm just creating two button images.
So, an image for the
"Plus" sign an image from the "Minus" sign.
So, what we do, is when we add the user handle,
we give it a name,
we select "Position" relative to the node,
and then we pass through that image.
>> Nice!
>> And that's it.
>> That's it. Not too bad at all.
Again, like almost just about 100 lines of code,
but the entire thing is done for you.
You don't have to worry about the dragging and dropping,
you just writing what you want to happen at that point.
>> Exactly.
>> Very cool.
>> One thing that was mentioned in
the previous session as well is,
with the "Diagram Control",
it's not just a free form flow diagram.
It does support automatic lay out.
So, if you want to create
an organizational chart for example,
if you do something hierarchical,
you can give it a data set
and just have it figure it out.
>> Done.
>> And do it. So, you just got to set
your parent/child relationships and that's it.
So, you can do mind maps, you can do org charts,
you can do flowcharts as well automatically,
and you can pick and
choose which nodes the users can edit.
So, you can have an automatic lay up,
but the users can still edit different parts of it.
>> Nice! Now, those
are just two of the controls that we show,
but can we see them on
the Website or something like that too?
>> Yes. Yes we can.
>>When you go there, and see what else because,
I can imagine this application,
I might want to have some charts or graphs of like,
was it success or what was it
failure, things like that, right?
>> On the website, as we mentioned,
in addition to the free trials,
you can also just look at demos of all the products.
So, there's a view demo section here that lets you see
the controls for all of our platforms.
Mostly the web is visible on the website.
But when we get to mobile and desktop,
we have some sample apps.
For Xamarin, we have a Google Play
or an Android application.
>> On Google Play?
>> On Google Play and in iOS
application on the App Store.
So, you can download that, and that gives you access
to all the controls that we currently have for Xamarin,
and you'll be able to see them for
Xamarin.Forms, iOS and android.
You will get to see all of the features laid out in
very nicely designed example.
So, my example here wasn't
designed, I didn't design anything.
>> Looks pretty good. Actually, what you did is you
just use what was built
in and it actually looks pretty great.
I mean, imagine if you were building
a Com on Board by yourself.
Right? It takes so much time and energy
to imagine how did I do that? Right?
>> Yeah. That's one of the things that's great about it,
is that you can create something like
that without really putting too much effort into it.
If you did put effort into it,
our sample browser shows you what it can look like.
So, you can add more animations,
you can add more images and things like that.
If you visit our site,
click on these links or just go to
the App Store so you can download that.
>> Anything else you want to show off really
quick or you think you've got it all.
>> I think I got it all.
>> Awesome. It's been awesome.
I love seeing the worlds of how we can,
no matter what type of
application we're building whether it's a Xamarin.Forms,
Xamarin Native, VP and web,
you share these great controls everywhere.
>> Absolutely.
>> Thanks for coming on,and showing it off.
>> Thank you for having me.
>> Absolutely. Well thanks everyone for tuning in.
Check out Syncfusion@syncfusion.com.
We'll have all of the links in the show notes below.
Thanks again, of course, for tuning in,
and don't forget to subscribe,
where you can get notifications each and every episode.
So, make sure you hit that subscribe button
over there, down over there.
Ding that bell and become part of the notification squad,
so you get updated every time a new episode is released.
So, until next time.
I'm James Montemagno, and this has been The Xamarin Show.
For more infomation >> Are you ready for the weekend? August 2nd - Duration: 4:06.
For more infomation >> 4 Cities Suing President Donald Trump For 'Violating The Constitution' | Velshi & Ruhle | MSNBC - Duration: 3:34.
For more infomation >> For Evil Spirit - Duration: 10:21. 
Không có nhận xét nào:
Đăng nhận xét