1
00:00:01,080 --> 00:00:04,799
How'd you like to listen to dot
net rocks with no ads? Easy?

2
00:00:05,360 --> 00:00:09,480
Become a patron for just five dollars
a month. You get access to a

3
00:00:09,480 --> 00:00:14,279
private RSS feed where all the shows
have no ads. Twenty dollars a month.

4
00:00:14,279 --> 00:00:18,440
We'll get you that and a special
dot net Rocks patron mug. Sign

5
00:00:18,519 --> 00:00:35,960
up now at Patreon dot dot NetRocks
dot com. Hey guess what, it's

6
00:00:36,000 --> 00:00:40,560
dot net rocks. I'm Carl Franklin
and I'm Richard Campbell here for your dot

7
00:00:40,679 --> 00:00:45,000
net edification, as we are every
week since two thousand and one, well

8
00:00:45,119 --> 00:00:47,880
almost every week two thousand and two, I think it was two thousand Did

9
00:00:47,920 --> 00:00:50,600
I say two thousand and one?
Yeah, yes, I'm at two thousand

10
00:00:50,640 --> 00:00:53,439
and two. How silly of me, and I wasn't even there and I

11
00:00:53,520 --> 00:01:00,600
know, right what's wrong here?
Okay, So thanks again, and we

12
00:01:00,679 --> 00:01:03,640
have some good stuff coming up today. Nick Randolph is here and we're talking

13
00:01:03,680 --> 00:01:07,920
about who Know and other things.
And Richard, how are you, my

14
00:01:08,040 --> 00:01:11,920
friend? I'm good. I really
want you to get into your better know

15
00:01:11,120 --> 00:01:17,439
because I have comments on it,
so very cool. As I've been working

16
00:01:17,480 --> 00:01:21,840
on some home assistant stuff which should
not surprise you, knowing me okay,

17
00:01:22,640 --> 00:01:26,680
and it relates all right, so
let's roll crazy music for better no framework

18
00:01:26,760 --> 00:01:36,760
awesome? All right, man,
what do you got? I think I

19
00:01:36,799 --> 00:01:41,799
know so not that you don't know. Yeah. So this is from Danny

20
00:01:41,879 --> 00:01:47,920
Avila and it's a GitHub repo called
libra chat l I, b R E

21
00:01:48,400 --> 00:01:57,040
chat And the explanation is enhanced chat
GPT clone features, open Ai, GPT

22
00:01:57,280 --> 00:02:04,120
for vision bing and THROP, open
router, Google, Gemini AI model switching,

23
00:02:04,879 --> 00:02:10,159
message search, lang chain, dal
E three chat GPT plugins, Open

24
00:02:10,199 --> 00:02:15,800
AI functions, secure multi user system
presets. It's completely open source for self

25
00:02:15,800 --> 00:02:20,840
hosting, more features and development,
film and eleven. So this is the

26
00:02:22,159 --> 00:02:27,319
sort of hip thing these days,
is to host your own GPT engine in

27
00:02:27,400 --> 00:02:30,240
one form another. Although it sounds
like it does, does it actually call

28
00:02:30,280 --> 00:02:34,159
out all these different services? It
looks like it calls out. Yeah,

29
00:02:34,199 --> 00:02:37,560
it's sort of like the one place
that you can put your prompts through and

30
00:02:37,599 --> 00:02:40,280
then it calls out to all these
different services with API keys. That's I

31
00:02:40,319 --> 00:02:43,439
don't know. I haven't run it, but that's what it looks like to

32
00:02:43,479 --> 00:02:45,360
me. Yeah, it does look
like that's what it's doing is doing.

33
00:02:45,520 --> 00:02:52,000
You can go to the per call
apikes, which I've also done. Yeah,

34
00:02:52,039 --> 00:02:54,039
in home and new house, I
a sture. We've had this house

35
00:02:54,039 --> 00:02:57,520
for years, and I put in
some simple things for when it was a

36
00:02:57,560 --> 00:03:00,680
rental house, so how to manage
it. But now that it's ma place,

37
00:03:00,879 --> 00:03:05,400
you know, things are getting a
little more sophisticated. And one of

38
00:03:05,439 --> 00:03:10,080
the features that was popular for us
is voice control. And the voice control

39
00:03:10,080 --> 00:03:14,599
systems were typically done through Google or
Amazon, both of which are not that

40
00:03:14,719 --> 00:03:17,879
good and seem to be going away
like they're both kind of failures. Do

41
00:03:17,919 --> 00:03:21,919
you remember when they were awesome?
Yeah, you know, and we kind

42
00:03:21,960 --> 00:03:24,960
of laughed at them. Oh isn't
that funny? You know she thought,

43
00:03:25,000 --> 00:03:29,319
I said, you know, mud
raker when I sent something, I was

44
00:03:29,400 --> 00:03:30,960
yeah, yeah, yeah, totally
right like that. That and then and

45
00:03:31,039 --> 00:03:36,280
so ha. Last year in twenty
twenty three, had this big open source

46
00:03:36,319 --> 00:03:40,240
initiative to do their own voice systems
that would be independent of those vendors of

47
00:03:40,280 --> 00:03:44,879
the of the big providers, which
is a big movement in a change general

48
00:03:44,960 --> 00:03:47,800
is to have everything hosted internally,
and so folks have already done extensions to

49
00:03:47,879 --> 00:03:53,479
it to access things like open ai'. So yeah, because the local recognizers

50
00:03:53,439 --> 00:03:57,360
are only so good, and I
could make them better with more compute,

51
00:03:57,479 --> 00:03:59,800
Like that's one of the things that's
like switch up to higher and hardware.

52
00:04:00,199 --> 00:04:01,759
But just to see if it would
really make a difference, I set up

53
00:04:01,759 --> 00:04:08,719
my open ai a PI account and
hooked it in. And the the problem

54
00:04:08,759 --> 00:04:12,439
is you're used to saying very simple
phrases to h A to do stuff right

55
00:04:12,560 --> 00:04:14,560
now. The fact that you can
say I watched you this, this,

56
00:04:14,560 --> 00:04:16,480
this, this, and this right
and it goes all right, I did

57
00:04:16,480 --> 00:04:20,360
this, this, this, this
is this dude, It's like it's kind

58
00:04:20,399 --> 00:04:24,800
of scary. Yeah, so and
once the boss is using it, you

59
00:04:24,839 --> 00:04:28,560
know it's going to stay right.
So yeah, of course, of course

60
00:04:28,959 --> 00:04:31,959
I was just looking at the math
and for using I'm using GPT three plus

61
00:04:32,000 --> 00:04:36,079
through open a AI a P I
cost me about a dollar a month.

62
00:04:36,360 --> 00:04:39,959
It's not bad, pretty easy.
I mean, because you're not using it

63
00:04:40,000 --> 00:04:42,160
all the time, you're just no, you're using it only when you need

64
00:04:42,199 --> 00:04:46,360
to interact, and it just doesn't
cost that much, you know, realistically.

65
00:04:46,439 --> 00:04:49,160
Yeah, I got used to chat
GPT on my phone. I could

66
00:04:49,199 --> 00:04:53,399
just pull up with a voice interface. I gotta ask it anything, and

67
00:04:53,439 --> 00:04:59,319
it, you know, has this
great understanding if you will, and it

68
00:04:59,319 --> 00:05:02,079
does great re sponsors. But then
I get used to that, and I

69
00:05:02,160 --> 00:05:06,759
say to the one who starts with
a something that's a little more complex,

70
00:05:08,000 --> 00:05:12,879
and it just goes I'm sorry,
yeah, oh yes, right, I'm

71
00:05:12,959 --> 00:05:18,199
talking to farr chat device. So
so these things are going away, you

72
00:05:18,279 --> 00:05:20,680
say, I mean, I kind
of knew they would, but I thought

73
00:05:20,680 --> 00:05:25,480
I would have thought Amazon would have, you know, said now with GPT

74
00:05:25,800 --> 00:05:28,600
or now with open Ai. Yeah, you wonder if they will. Of

75
00:05:28,680 --> 00:05:30,160
course, then they have to go
to a vendor that you know, supports

76
00:05:30,160 --> 00:05:32,839
someone else. Like now you get
to the reality. Let's face it,

77
00:05:32,879 --> 00:05:36,319
that product that Amazon made and we're
not saying it's name, so we don't

78
00:05:36,319 --> 00:05:40,439
make people unhappy. Right. We
got in trouble for that once, We've

79
00:05:40,439 --> 00:05:44,480
gotten in trouble for that before.
Was originally built to sell more stuff on

80
00:05:44,519 --> 00:05:46,959
Amazon, right right, I mean
they said as much. They basically gave

81
00:05:46,959 --> 00:05:49,879
away the hardware for costs because they
presume that you would say, hey,

82
00:05:50,160 --> 00:05:54,000
you know, get me more laundry
soap, that kind of thing, which

83
00:05:54,120 --> 00:05:57,319
largely people didn't do. Didn't do
it, and back you know, a

84
00:05:57,360 --> 00:06:00,120
couple of three years ago, Amazon
basically mane of this is like, we

85
00:06:00,160 --> 00:06:02,839
spent billions on this thing, it's
not paying for itself. We're going to

86
00:06:02,879 --> 00:06:08,519
be cutting back. And the Google
devices are even weirder because Google didn't even

87
00:06:08,600 --> 00:06:12,360
have that mechanism other than it was
just more search information. It was just

88
00:06:12,399 --> 00:06:15,560
more corporate spying. Effectively, there
was no real incentive for them, and

89
00:06:15,600 --> 00:06:17,759
they said the same thing. It's
like, this is not working out for

90
00:06:17,839 --> 00:06:20,560
us. We're going to cut it
back. Just before you know, within

91
00:06:20,600 --> 00:06:26,000
a year or two, then we
have this breakthrough with open AI and language

92
00:06:26,160 --> 00:06:30,319
fundamentally transforms language interfaces anyway. Now
it's a scramble to se who's going to

93
00:06:30,319 --> 00:06:34,040
implement what. Meantime, you know, Microsoft's kind of laughing here. All

94
00:06:34,079 --> 00:06:38,240
that open a stuff runs on Azure, so it's like, oh, if

95
00:06:38,240 --> 00:06:43,600
you're going to use it, come
on down and need some EMPA. So,

96
00:06:43,720 --> 00:06:45,560
I mean, it's a crazy time
for all of us, There's no

97
00:06:45,600 --> 00:06:47,959
two ways about it. But I
am finding you know, I find I

98
00:06:48,120 --> 00:06:53,680
use get hub copilot a lot and
having it added into Aha, Now I'm

99
00:06:53,720 --> 00:06:56,720
going to look at can I make
it totally inside the house right like it's

100
00:06:56,759 --> 00:07:00,399
all especially here or we're battling outages
all the time, it's like, will

101
00:07:00,439 --> 00:07:02,879
let's function without the Internet? Like
can your smart home function without the Internet?

102
00:07:02,879 --> 00:07:05,360
And that's the goal always is to
get to that point. Well,

103
00:07:05,399 --> 00:07:11,920
at least a smart device, right, a smart a Amazon thing like that

104
00:07:12,000 --> 00:07:15,519
you can actually use, would be
really good. Anyway, check out librachat.

105
00:07:15,639 --> 00:07:18,319
There's the link there. But if
Ferry company to just speak at,

106
00:07:18,399 --> 00:07:24,319
it's getub dot com slash Danny Dash
a vila a v I la slash librachat.

107
00:07:24,319 --> 00:07:27,079
Who's talking to us? Richard Grady
comments off the show sixteen eighty nine,

108
00:07:27,120 --> 00:07:30,279
which is the last time I think
we talked about who knows with Kenzie

109
00:07:30,319 --> 00:07:35,319
Whalen, Like there's a while ago
who used to be with Uno and we

110
00:07:35,319 --> 00:07:39,560
were talking about building apps. So
that's back in May of twenty twenty,

111
00:07:39,600 --> 00:07:44,759
hence the you know show number and
this particular comment from that time. This

112
00:07:44,800 --> 00:07:46,759
is from Devin Global, who's a
longtime listener as well. Hey Devin,

113
00:07:47,160 --> 00:07:51,759
Hey, and Devinnead is very concrete
comment. He says, the promise of

114
00:07:51,759 --> 00:07:56,000
cross platform tools is great, build
once, run everywhere. Boy, we've

115
00:07:56,000 --> 00:07:58,680
been telling ourselves that live for a
while. Yeah, that's right, ohly

116
00:07:58,800 --> 00:08:03,279
Man, Like you know zamor Informs
and now dot net Maui. You get

117
00:08:03,279 --> 00:08:07,240
the timing rights back in twenty twenty, allowing smaller teams a much broader reach.

118
00:08:07,399 --> 00:08:11,360
There's one kind of expertise that seems
to get glossed over, and that's

119
00:08:11,480 --> 00:08:15,800
all of the nuances in the native
design language. Sure I can use these

120
00:08:15,879 --> 00:08:18,480
tools to make control look native across
several platforms. However, it still seems

121
00:08:18,480 --> 00:08:22,759
like you need an expert in iOS, Android and Windows UX to show where

122
00:08:22,839 --> 00:08:28,000
and how to use those controls in
a way the user expects. There's an

123
00:08:28,000 --> 00:08:31,320
incredible opportunity for these cross platform tools
to help developers quote fall into the pit

124
00:08:31,360 --> 00:08:37,240
of success by using the right thing
on each platform. Also, it'd be

125
00:08:37,320 --> 00:08:41,399
nice to see cross platform documentation.
It helps developers understand things from the perspective

126
00:08:41,399 --> 00:08:45,360
of a cross platform developer instead of
as a single platform developer, as each

127
00:08:45,639 --> 00:08:50,759
vendor seems to assume. A good
start is the documentation from the Zamoran team.

128
00:08:50,879 --> 00:08:54,519
In many cases, their docks of
iosapis is better than the ones that

129
00:08:54,559 --> 00:08:58,120
are provided by Apple because they had
to reverse engineer a lot of that documentations

130
00:08:58,720 --> 00:09:03,039
back the day too. There are
credible things on the horizon and I beg

131
00:09:03,120 --> 00:09:11,200
the tool vendors not to let JavaScript
win this one. Please please, because

132
00:09:11,480 --> 00:09:16,320
when you talk about the original cross
platform language, man like that JavaScript has

133
00:09:16,440 --> 00:09:20,440
been there a long long time.
Yeah, or so for better or worse.

134
00:09:20,240 --> 00:09:24,120
I know Nick's got some great comments
on this, so we're gonna we'll

135
00:09:24,159 --> 00:09:26,320
do his intro with Devin. Hang
in there. We're gonna have some comments

136
00:09:26,399 --> 00:09:30,399
for you on this and a copy
music Coby is on its way to you,

137
00:09:30,440 --> 00:09:31,399
and if you'd like a copy used
to Cobey, I write a comment

138
00:09:31,440 --> 00:09:35,639
on the website at dot now rocks
dot com or on the facebooks you publish

139
00:09:35,639 --> 00:09:37,480
every show there, and if you
comment there and a real the show,

140
00:09:37,519 --> 00:09:39,320
we'll leend you copy music to Goby. And you can follow us on Twitter

141
00:09:39,399 --> 00:09:43,440
or ex or whatever the hell they're
calling it today, but you can also

142
00:09:43,480 --> 00:09:46,360
follow us on mastadon I'm at Carl
Franklin at tech hub dot social, and

143
00:09:46,399 --> 00:09:50,080
I'm Rich Campbell at masadon social sent
us dute, Okay, let's bring on

144
00:09:50,159 --> 00:09:54,919
Nick Randolph. Nick currently runs built
to Rome, which focuses on building rich

145
00:09:54,960 --> 00:10:01,159
mobile applications. Nick's been identified as
a Microsoft MVP and recognition of his work

146
00:10:01,159 --> 00:10:05,600
and expertise with the Microsoft Application platforms. He's still an active contributor in the

147
00:10:05,600 --> 00:10:11,960
device application development space via his blog
at Nisnettravels dot built to Rome dot Com.

148
00:10:11,320 --> 00:10:15,360
Put a link to that on the
show page too. Nick has been

149
00:10:15,360 --> 00:10:18,559
invited to present at a variety of
events, including Techhead and I Night Australia

150
00:10:18,600 --> 00:10:24,519
and New Zealand, DDD, NDC, and local user groups. He's also

151
00:10:24,600 --> 00:10:28,320
authored multiple books on Visual Studio Windows
development and helped judge multiple world finals for

152
00:10:28,360 --> 00:10:33,600
the Imagined Cup. Nick has worked
on numerous mobile applications and has helped hundreds

153
00:10:33,600 --> 00:10:37,799
of developers build their own mobile applications. Nick has been involved with apps for

154
00:10:37,840 --> 00:10:43,799
well known brands such as Domain dot
com, dot Au, ninesman AFL,

155
00:10:43,000 --> 00:10:48,799
NRL, Quantis, JB, hi
Fi, nab Stand, and boost Juice,

156
00:10:48,320 --> 00:10:52,720
and is also working on the UNO
platform. What is your uh,

157
00:10:54,159 --> 00:10:56,919
what's your role on UNO because it's
not in your bio. Yeah, my

158
00:10:56,960 --> 00:11:01,159
bio is basically the one that I
used to build your OW and so I

159
00:11:01,200 --> 00:11:05,159
mean I am working full time for
the Owner platform and so as part of

160
00:11:05,159 --> 00:11:11,120
that, I wanted the sort of
the senior team there, and there's a

161
00:11:11,200 --> 00:11:16,200
huge amount of stuff that we're working
on to basically accelerate developing on a cross

162
00:11:16,240 --> 00:11:20,799
platform, and so I'm across quite
a lot of the day to day stuff

163
00:11:20,799 --> 00:11:22,679
there, which is really awesome to
see, very cool. So for those

164
00:11:22,720 --> 00:11:28,039
who don't know about UNO, or
don't remember it or whatever, I can

165
00:11:28,200 --> 00:11:35,039
maybe give you the elevator pitch it. It's sort of it's for it's sort

166
00:11:35,039 --> 00:11:43,039
of zamorin right and MAUI, but
instead of using the zamorin flavor of Zamal,

167
00:11:43,679 --> 00:11:50,279
you're actually building your apps to win
those Universal platform Is that right?

168
00:11:50,480 --> 00:11:54,200
Well, it used to be.
Yeah, so what used to be the

169
00:11:54,279 --> 00:11:58,519
Universal or UWP which is now sort
of evolved, or you know Microsoft's V

170
00:11:58,679 --> 00:12:01,679
two version of it, which is
when u I three and the winn app

171
00:12:01,799 --> 00:12:07,159
SDK. So yeah, So UNO
is quite a lot of things, and

172
00:12:07,320 --> 00:12:11,360
the name kind of alludes to that. So the un platform, but definitely

173
00:12:11,399 --> 00:12:16,159
you're right, at the heart of
it is a cross platform and framework UNO

174
00:12:16,159 --> 00:12:22,279
Core that is essentially taking the API
set that comes with when you I or

175
00:12:22,279 --> 00:12:28,720
win app STK and making it available
across all of the other platforms. And

176
00:12:28,759 --> 00:12:31,840
so the goal there is that you
know, wherever dot net will run the

177
00:12:31,919 --> 00:12:35,519
un platform will run. What's different
about this in MAUI is that Maui seems

178
00:12:35,519 --> 00:12:41,799
to be backing away from when UI
or just like not maybe backing away from

179
00:12:41,840 --> 00:12:46,399
it, but the focus isn't on
the Windows desktop experience with MAUI, even

180
00:12:46,399 --> 00:12:50,240
though it does work, whereas you
know that that's what you sort of start

181
00:12:50,279 --> 00:12:54,039
with on the UNER platform, is
that right? Yeah? And so again

182
00:12:54,080 --> 00:12:58,080
this comes down to the heritage of
all of these cross platform tools, is

183
00:12:58,080 --> 00:13:01,399
they all come with their own sort
of therefore own point of origin. So

184
00:13:01,720 --> 00:13:05,360
in the case of dot m MAUI, obviously that came from Zarat forms which

185
00:13:05,399 --> 00:13:09,879
came from Zarath, and so their
heritage is in the Zaron platforms, and

186
00:13:09,919 --> 00:13:16,159
so they've evolved as such an abstraction
over those and then they integrated Windows or

187
00:13:16,240 --> 00:13:20,279
UWP and with now it's now based
on when you I three. But they've

188
00:13:20,279 --> 00:13:24,440
got their own abstraction there and their
own direction that they're then taking that to

189
00:13:24,559 --> 00:13:31,000
go cross platform. And yet bringing
on board Desktop for them has been something

190
00:13:31,000 --> 00:13:35,200
that they brought into the fold,
whereas the platform team have almost come from

191
00:13:35,200 --> 00:13:39,120
the other direction. We've come from
a Windows centric API set and making that

192
00:13:39,279 --> 00:13:45,679
available cross platform, and so you
know, part of the platform approach is

193
00:13:45,720 --> 00:13:48,840
that we have extra things like the
toolkit, which allows us to take what

194
00:13:50,039 --> 00:13:54,600
is essentially a Windows framework and make
it cross platform in the sense of and

195
00:13:54,960 --> 00:13:58,720
you alluded to this in the introduction
of the reader's comments, is that,

196
00:13:58,919 --> 00:14:01,519
you know, if you're building cross
platform, when you're building for iOS or

197
00:14:01,559 --> 00:14:05,919
androids, you kind of wanted the
app to feel natively at home on there,

198
00:14:05,919 --> 00:14:09,840
so you'd expect things like a navigation
bar, or you'd expect, you

199
00:14:09,840 --> 00:14:13,279
know, the swipe interactions and things
like that. And that's where the platform

200
00:14:13,360 --> 00:14:18,519
part really comes into it. Isn't
there a philosophical point here about do you

201
00:14:18,679 --> 00:14:22,279
maybe your app look neative to the
device versus make the app consistent across all

202
00:14:22,320 --> 00:14:26,399
devices. Yeah? Absolutely, like
the Facebook apps kind of the same no

203
00:14:26,399 --> 00:14:28,399
matter whether you're using iOS or Android
or anything else. Yeah. So,

204
00:14:28,399 --> 00:14:31,919
so if we look back at the
sort of the origins of cross platform,

205
00:14:31,960 --> 00:14:37,600
particularly in the dot net space and
another technologies were similar to this, is

206
00:14:37,639 --> 00:14:41,039
that when you know, this framework
came about, there was definitely a philosophy

207
00:14:41,159 --> 00:14:45,799
of make it look at home on
the device. So for Android it would

208
00:14:45,799 --> 00:14:50,080
be material, for Windows it would
be fluent for ioscoop Patino, and yet

209
00:14:50,080 --> 00:14:56,240
that that kind of philosophy it runs
into problems because designers essentially have to design

210
00:14:56,279 --> 00:15:01,840
things three times and then you're stuck
with what looks like every other app on

211
00:15:01,879 --> 00:15:05,279
the platform and not really able to
apply your own company's brand very well to

212
00:15:05,360 --> 00:15:09,720
it or in a consistent way.
And so what we found is that the

213
00:15:09,799 --> 00:15:13,320
sort of the design philosophy has sort
of evolved and shipped, and as you

214
00:15:13,360 --> 00:15:16,639
said, what you kind of see
today is that the brand overreach, the

215
00:15:16,759 --> 00:15:22,480
overwrites everything in the sense that you
know your brand is more important than necessarily

216
00:15:22,639 --> 00:15:26,360
making you look one hundred percent like
alioais app. I haven't used, you

217
00:15:26,519 --> 00:15:31,679
know, but I have used Maui
a lot, and I find that if

218
00:15:31,720 --> 00:15:37,639
you go down the Zamal route with
Maui, you find you run in pretty

219
00:15:37,720 --> 00:15:43,080
darn quickly to things that aren't consistent
across the platforms. And something that works

220
00:15:43,279 --> 00:15:48,360
in you know, in Windows desktop
or Mac desktop and might even work an

221
00:15:48,360 --> 00:15:52,519
Android, doesn't work in iOS and
oh it's because you have to wait because

222
00:15:52,519 --> 00:15:56,480
they're working on that, right And
so I got tired of that. And

223
00:15:56,799 --> 00:16:03,039
because I've been doing Blazer since its
inception, I use Blazer as my UI

224
00:16:03,559 --> 00:16:07,360
with Maui. So it's kind of
like the hybrid approach. Yeah, because

225
00:16:07,360 --> 00:16:11,720
as Richard said when he was reading
the comment, you know, JavaScript is

226
00:16:11,720 --> 00:16:17,559
the original cross platform language, and
what is Blazer except the c sharpness of

227
00:16:17,720 --> 00:16:22,679
JavaScript and with all the dom which
is the real cross platform thing. Right,

228
00:16:22,120 --> 00:16:27,960
the browser people have figured out how
to make their platform cross platform and

229
00:16:29,080 --> 00:16:36,639
consistent. And so I find there's
more consistency with Blazer in Maui Native for

230
00:16:36,799 --> 00:16:41,720
mobile apps, right, hybrid apps. Then I don't run into these little

231
00:16:41,759 --> 00:16:45,080
problems that just seem to come out
of nowhere, and they can really put

232
00:16:45,080 --> 00:16:48,919
a dent in your schedule, you
know for sure. And the browser wars,

233
00:16:49,000 --> 00:16:52,039
you know, it's taken them decades
to get to get it to a

234
00:16:52,080 --> 00:16:56,679
point where there are less inconsistencies between
browsers, between platforms, et cetera.

235
00:16:56,879 --> 00:17:03,799
Right, Yeah, emphasis on less, yes, exactly, Yeah, many

236
00:17:03,919 --> 00:17:07,599
less though there are. And and
you know, from a Blazer perspective,

237
00:17:07,599 --> 00:17:11,480
a lot of that those inconsistencies I
had to buy the by the technology,

238
00:17:11,240 --> 00:17:17,680
and so the integration and the hybrid
approach there is a valid approach. Now,

239
00:17:17,920 --> 00:17:19,559
do you get the same level of
performance, do you get the same

240
00:17:19,640 --> 00:17:25,319
level of device integration. You know, those are all questions that come to

241
00:17:25,359 --> 00:17:27,799
it. Well, I get the
same level of device integration, but in

242
00:17:29,000 --> 00:17:33,839
performance, all I care about is
if it's gonna be good enough, right,

243
00:17:33,920 --> 00:17:37,799
Yeah, if the user doesn't care, you know, and yeah,

244
00:17:37,839 --> 00:17:41,240
yeah, you're going to be using
more memory, so you know, lower

245
00:17:41,279 --> 00:17:45,720
memory, lower power devices may have
an issue. But anyway, I didn't

246
00:17:45,720 --> 00:17:49,200
bring that up to diss you know, it's just that I don't know about

247
00:17:49,240 --> 00:17:55,480
it. So is there a sure
and is there a hybrid mode for so

248
00:17:55,480 --> 00:17:59,839
so we can support doing web content. So there is an approach to that.

249
00:18:00,079 --> 00:18:03,799
And one of the things that we're
definitely considering and you know, working

250
00:18:03,799 --> 00:18:07,920
with our customers on, is prioritization
around that hybrid level of support that for

251
00:18:08,000 --> 00:18:12,079
not only Blazer, but other you
know, web components, whether it building

252
00:18:12,160 --> 00:18:17,839
Angular or React, and they will
make sense to integrate into the app platform.

253
00:18:17,880 --> 00:18:21,440
And from our perspective, we would
definitely like to see a more you

254
00:18:21,480 --> 00:18:26,200
know, an approach that goes beyond
just including Blazer. But just to just

255
00:18:26,240 --> 00:18:30,720
coming back to the the you know, the the inconsistencies I should say,

256
00:18:30,759 --> 00:18:37,200
between different technology and different platforms.
One of the philosophies behind the platform is

257
00:18:37,599 --> 00:18:41,599
PicTel perfect everywhere. And so the
idea is that when you build your app

258
00:18:41,599 --> 00:18:44,559
for one platform or you you know, whether you're being you know, working

259
00:18:44,559 --> 00:18:49,519
in the iOS simulator or the Android
emulator or on native Windows, once you

260
00:18:49,640 --> 00:18:53,319
build it, you should have the
same render experience on all of the platforms.

261
00:18:55,160 --> 00:18:57,799
And so you know that, and
that includes the web and Linux and

262
00:18:57,839 --> 00:19:02,839
stuff. You know that they're is
a wealth of different platforms that are available

263
00:19:02,880 --> 00:19:04,960
using the UNER platform, and the
goal is to make sure that they will

264
00:19:04,960 --> 00:19:11,960
render pixel perfect. And that's not
notwithstanding the fact that we are still using

265
00:19:11,000 --> 00:19:15,039
the underlying technology to render. So
what I mean by that is, you

266
00:19:15,079 --> 00:19:21,079
know, on on iOS we're using
you know, the native widgets on iOS.

267
00:19:21,319 --> 00:19:25,440
On Android, the same on the
Web we're using phegmal rendering yep,

268
00:19:25,519 --> 00:19:30,960
exactly, And so you do get
the native capabilities around you know, interaction

269
00:19:30,359 --> 00:19:33,960
around accessibility, so you know,
doing things like text to voice. Those

270
00:19:34,000 --> 00:19:37,839
are important from the accessibility perspective,
and you get all of those because we're

271
00:19:37,920 --> 00:19:42,119
using the device components, even though
we've made sure that we're getting a pixel

272
00:19:42,119 --> 00:19:48,319
perfect rendering between the different platforms.
Yeah, and the other side of pixel

273
00:19:48,359 --> 00:19:53,640
perfect rendering is perfect behavior application.
I mean that's maybe even more important when

274
00:19:53,680 --> 00:20:00,359
I expand you know, a multiple
hierarchy tree or less through whatever, is

275
00:20:00,400 --> 00:20:04,599
it going to behave the same way
on iOS as it does and Android.

276
00:20:04,920 --> 00:20:11,160
This is just one thing I'm thinking
about from you know, lists of lists

277
00:20:11,200 --> 00:20:15,640
within lists and next things have been
a real problem in Maui's AMML last year.

278
00:20:15,759 --> 00:20:19,400
Yeah, and you know, performance
is one of those things that we

279
00:20:19,519 --> 00:20:23,599
keep on coming back to and try
to continue to improve and work on because

280
00:20:23,920 --> 00:20:29,160
you know that because you've got that
obstruction layer, you know, what works

281
00:20:29,160 --> 00:20:32,960
on one platform that doesn't necessarily work
the same one other platforms. So there

282
00:20:33,400 --> 00:20:37,599
is a you know, a continual
effort to make sure that we're performing the

283
00:20:37,640 --> 00:20:41,079
best we can or all platforms.
And so yeah, I think, kind

284
00:20:41,079 --> 00:20:45,680
of calling back to Devon's comment on
all of this, I think there's a

285
00:20:45,720 --> 00:20:52,160
broader idea of are you building this
for internal use versus showing it to the

286
00:20:52,200 --> 00:20:55,640
public. I don't know what your
customer base looks like, nick Like,

287
00:20:55,839 --> 00:20:59,519
because I do think there's a very
different attitude to hey, we need to

288
00:20:59,519 --> 00:21:03,519
make this work for the company on
their mobile devices versus we want the public

289
00:21:03,559 --> 00:21:07,880
to use them. Yeah. Look, absolutely, And what we saw very

290
00:21:07,359 --> 00:21:11,359
very early days of sort of mobile
apps is that the companies would invest no

291
00:21:11,519 --> 00:21:17,960
cycles into anything design related and what
they found is the attrition or the usage

292
00:21:17,960 --> 00:21:21,440
of those of as apps are very
low. So these days, with something

293
00:21:21,480 --> 00:21:23,799
like the Inner Platform, you could
still rapidly build out an application. And

294
00:21:23,839 --> 00:21:27,559
we'll talk a little bit more about
the various Upper platform components that help with

295
00:21:27,640 --> 00:21:33,400
that process. But you can very
rapidly build out an application that looks really

296
00:21:33,400 --> 00:21:37,640
good, it's pixel perfect on every
device, and yet is rolled out really

297
00:21:37,720 --> 00:21:41,880
quickly for the enterprise. Now that's
not to say that you couldn't build a

298
00:21:41,920 --> 00:21:47,599
facebookly world style application or quality level
you know, including animations and things like

299
00:21:47,640 --> 00:21:49,920
that with the Inner Platform. But
what we do see is that a lot

300
00:21:49,920 --> 00:21:53,880
of enterprises that are coming to the
Inner Platform because of that rapid ability to

301
00:21:53,960 --> 00:21:59,079
rapidly roll out applications. And is
it for the internal use apps or are

302
00:21:59,119 --> 00:22:03,599
they thinking about the public facing apps. It can be for both, definitely,

303
00:22:03,599 --> 00:22:06,799
for sure, I'm with you,
It's just I would think that requirements

304
00:22:06,799 --> 00:22:10,599
are different. Look they are,
and for you know, what we refer

305
00:22:10,680 --> 00:22:15,319
to as typically consumer facing apps,
a lot of those will have fairly heavy

306
00:22:15,400 --> 00:22:18,960
graphic kind of requirements on them,
so you know, they'll have very intricate

307
00:22:19,000 --> 00:22:23,480
transitions. You know, some of
some of the apps like Facebook and Twitter

308
00:22:23,480 --> 00:22:27,279
are actually credibly simple from a transitions
perspective. But then you can look at

309
00:22:27,319 --> 00:22:33,920
some of the more creative shopping based
applications and they've got some very sophisticated animations

310
00:22:33,000 --> 00:22:37,960
and things like that, And those
ones are ones where we will prioritize,

311
00:22:37,039 --> 00:22:41,400
you know, the different animations and
different flows as they come in from our

312
00:22:41,440 --> 00:22:47,400
customer requirements. But definitely I'm in
the you know, for people who or

313
00:22:47,440 --> 00:22:51,480
for companies that want to build out
an application, even if it's consumer facing,

314
00:22:51,720 --> 00:22:53,359
the inner platform is a great choice
and a great starting point for them,

315
00:22:53,519 --> 00:22:59,960
right, I mean, and you're
mostly describing the esthetic elements that consume

316
00:23:00,240 --> 00:23:02,799
are going to want a really good
looking up but it's worth putting time in

317
00:23:02,799 --> 00:23:07,759
it where your employees can live with
a mediocre interface as long as it's functional.

318
00:23:08,640 --> 00:23:11,559
Actually, my Firm Media thought was, well, we know that these

319
00:23:11,720 --> 00:23:15,680
cross platform frameworks have an overhead,
their apps tend to be larger and so

320
00:23:15,759 --> 00:23:18,920
forth, but I wonder if the
consumer cares at all. Yeah, like

321
00:23:19,000 --> 00:23:25,039
who looks at memory usage in an
app except a geek. I think only

322
00:23:25,079 --> 00:23:27,599
three or four years ago, you
know, it's size of app and download

323
00:23:27,599 --> 00:23:32,839
speeds and stuff like that was super
critical. I think with modern devices particularly

324
00:23:32,880 --> 00:23:37,240
and like the you know, the
developed world, we don't tend to focus

325
00:23:37,319 --> 00:23:41,920
on those as much. Definitely,
if you're targeting you know, areas where

326
00:23:41,960 --> 00:23:45,759
there's low coverage and devices will be
typically you know, a generational too older,

327
00:23:45,960 --> 00:23:49,000
then that can still be a priority. And yeah, there's definitely one

328
00:23:49,039 --> 00:23:53,079
area where you know native will win
out. So if you build the pure

329
00:23:53,160 --> 00:23:56,839
native tools, you'll always be able
to get a smaller run time, of

330
00:23:56,839 --> 00:23:59,799
smaller footprint, et cetera. Yeah, I would argue when you get down

331
00:23:59,799 --> 00:24:03,960
to old bandwidth and so forth,
you switch to web like they're not going

332
00:24:03,960 --> 00:24:07,799
to run the client anyway. Possibly, although you know, when you're talking

333
00:24:07,839 --> 00:24:11,839
about low bandwidth, you know,
if you're going to rural areas, web's

334
00:24:11,920 --> 00:24:15,079
not an option because you don't have
any local caching and you don't have any

335
00:24:15,440 --> 00:24:19,519
you know, off lines, right
and well PWA supposedly, but yeah you

336
00:24:19,559 --> 00:24:25,519
can. Yeah, it's just none
of it's good. All of it's bad.

337
00:24:25,720 --> 00:24:27,839
I was going to say Peter w
A. But the investment that you've

338
00:24:27,880 --> 00:24:30,519
been getting it to work on,
Peter wa, you could have built using

339
00:24:30,519 --> 00:24:36,400
the platform and have a full synchronization
solution. You just download my code from

340
00:24:36,400 --> 00:24:41,359
blazer train. Fair. But I
mean, but to your point that when

341
00:24:41,400 --> 00:24:45,799
it comes to disconnected scenarios, these
frameworks help a lot, and you know

342
00:24:47,039 --> 00:24:49,960
specifically, Yeah, and one of
the really interesting things about that is that

343
00:24:51,319 --> 00:24:55,680
you know, there are other technologies
out there, so Flutter and you know,

344
00:24:55,880 --> 00:24:59,480
cross platform frameworks that are out there. And one of the nice things

345
00:24:59,480 --> 00:25:03,079
that we've benefit it from being in
the Microsoft ecosystem is all of the libraries

346
00:25:03,359 --> 00:25:07,400
and technology and all of the open
source that goes on in terms of these

347
00:25:07,440 --> 00:25:11,319
things like synchronization frameworks, and you
know, people have got there's so much

348
00:25:11,359 --> 00:25:17,799
invested by Microsoft and third parties into
making such a broad ecosystem that we will

349
00:25:17,839 --> 00:25:21,279
benefit from. And so you know, if something's that's built for don Ed

350
00:25:21,319 --> 00:25:25,920
eight or seven, you can bring
into your UNO platform application just buyer and

351
00:25:26,000 --> 00:25:30,440
you get reference and it's just incredible
amount of stuff that just works. So

352
00:25:30,519 --> 00:25:33,559
yeah, it's an old estradation line. It's like it was easier to make

353
00:25:33,599 --> 00:25:37,680
connectivity everywhere than it was to make
a good disconnected line that was That was

354
00:25:37,880 --> 00:25:41,960
true twenty years ago and it's true
today. Yeah, you know, it's

355
00:25:41,000 --> 00:25:45,319
like, yeah, we just meet
their you know, starlink more Internet everywhere.

356
00:25:45,920 --> 00:25:49,000
I caught it with one of the
fellow MVPs probably a couple of weeks

357
00:25:49,039 --> 00:25:52,039
ago now, and we were reminiscing
about the old Pocket PC e days.

358
00:25:52,119 --> 00:25:56,680
And I swear that we are still
building this still tackling the same fundamental problems

359
00:25:56,799 --> 00:26:00,759
in terms of app development today that
we work fifteen sixteen years ago. You

360
00:26:00,799 --> 00:26:03,359
know, it's just incredible. I
mean, we have a better user experience

361
00:26:03,400 --> 00:26:07,640
and it's easier to use that al
to build an incredible you know, user

362
00:26:07,680 --> 00:26:12,079
interface, But fundamentally we're still solving
the same problems. Well, and it's

363
00:26:12,079 --> 00:26:15,599
still the same issue, which is
the customer couldn't care less about Crafts platform.

364
00:26:15,640 --> 00:26:18,279
It's only us that cares about The
customer just wants to work on their

365
00:26:18,319 --> 00:26:25,640
device. Absolutely yes. And this
is where the investment into technology such as

366
00:26:25,720 --> 00:26:30,759
web assembly is going to be really
interesting because and web assimbly not just in

367
00:26:30,799 --> 00:26:33,720
the browser, but also if you
think about the ability to run a web

368
00:26:33,720 --> 00:26:40,160
assembly app in a native in essentially
a sandbox on any device. That's kind

369
00:26:40,160 --> 00:26:42,079
of like an interesting story because now
all of a sudden, you back to

370
00:26:42,079 --> 00:26:45,640
your point about having it web technology
that now runs everywhere. If you can

371
00:26:45,680 --> 00:26:51,440
make it work in web assembly or
any language you could, yeah, exactly,

372
00:26:51,480 --> 00:26:53,240
you can now run it on any
piece of technology that's able to run

373
00:26:53,480 --> 00:26:57,559
you know, a sandbox web assembly, right, it's the universal well then

374
00:26:57,720 --> 00:27:03,720
the Nescent Universe, our Soul runtime
operating system. Yeah, yeah, will

375
00:27:03,160 --> 00:27:07,160
you know where it gets weird?
And I've had conversations with Sanderson on this.

376
00:27:07,359 --> 00:27:11,680
You know, over a whiskey or
two is at the edge, like

377
00:27:11,799 --> 00:27:15,759
on a CDN, I could be
running a w A container. So you

378
00:27:15,759 --> 00:27:18,519
know, headla, it's not the
client, it's not the server, it's

379
00:27:18,599 --> 00:27:22,680
in between. Yeah, and you
know he's already thought of all these things.

380
00:27:22,839 --> 00:27:25,400
Of course he has, and he
thought about it years ago, years

381
00:27:25,440 --> 00:27:27,599
ago, yeah, ten years ago. Like I'm pretty sure he's actually an

382
00:27:27,599 --> 00:27:33,799
alien and he's just come down to
help us, you know, but we

383
00:27:33,799 --> 00:27:37,599
should probably take a break. Yeah, let's do that. We'll be right

384
00:27:37,599 --> 00:27:45,240
back after these important messages and we're
back. It's dot net rocks on Carl

385
00:27:45,240 --> 00:27:49,039
Franklin. That's Richard Campbell, Hey, and we're talking to Nick Randolph about

386
00:27:49,039 --> 00:27:52,759
the UNO platform, the latest,
the greatest, the newest, which I

387
00:27:52,759 --> 00:27:56,880
don't think we've talked about all that
much yet. Actually, no, no,

388
00:27:56,680 --> 00:28:00,200
no, we've sort of been in
philosophy land and over here. So

389
00:28:00,279 --> 00:28:07,240
let's talk about We talked about the
philosophy around the core, but there's the

390
00:28:07,279 --> 00:28:10,759
platform, and you know, one
of the motivations behind the name is that,

391
00:28:11,200 --> 00:28:14,279
you know, it's all about building
you know, just not just the

392
00:28:14,319 --> 00:28:17,960
core, but all of the bits
that are developer needs, from design all

393
00:28:18,000 --> 00:28:21,279
the way through to publishing your app. And so you know, over the

394
00:28:21,319 --> 00:28:25,559
last you know, X number of
years we've been building not just the core,

395
00:28:25,640 --> 00:28:29,359
but there's things like the toolkit.
We've got a raft of extensions that

396
00:28:29,400 --> 00:28:32,640
are based on you know, what
Microsoft's done with the Microsoft Extensions, but

397
00:28:32,839 --> 00:28:37,279
tailor to building an UNO platform.
So you know, there's device specific feats

398
00:28:37,279 --> 00:28:41,359
and bits in that that we can
leverage our extensions. We've got support for

399
00:28:41,400 --> 00:28:44,400
sea shup markups, so you're not
just restricted to zamble anymore. You can

400
00:28:44,440 --> 00:28:48,960
now you know, use a very
fluent or structured c sharp markup language to

401
00:28:48,000 --> 00:28:52,680
basically create your apps that's very cool. Yeah, and again that's about breaking

402
00:28:52,680 --> 00:28:56,240
down the lane the learning that developers
have to go through to actually building apps.

403
00:28:56,319 --> 00:28:59,720
Right, you still need to understand, you know, things like what's

404
00:28:59,720 --> 00:29:03,119
a tech block and what's a button
and stuff like that. Sure you know

405
00:29:03,200 --> 00:29:07,200
you're not learning a you know,
a language to which was really designed for

406
00:29:07,519 --> 00:29:10,759
a tool. Right at the end
of the day, nobody likes writing zamle

407
00:29:11,200 --> 00:29:15,920
or XML. I mean, those
who are always tool orientedy technologies, even

408
00:29:15,920 --> 00:29:18,359
though some of them, like myself, just did get very fluent to be

409
00:29:18,400 --> 00:29:22,480
able to write them. But yeah, I mean, we now have incredible

410
00:29:22,480 --> 00:29:27,519
sea sharp markup, which which mirrors
the capability of z owl and yet it

411
00:29:27,519 --> 00:29:33,279
gives us this ability to write the
entire app just in C sharp and I

412
00:29:33,279 --> 00:29:34,640
mean, I certainly that's appealing to
folks. It's like, this is the

413
00:29:34,720 --> 00:29:38,400
language I know and I'm comfortable in. This is what my team knows,

414
00:29:38,440 --> 00:29:45,200
like as as little JavaScript as possible, please exactly, And we look,

415
00:29:45,200 --> 00:29:48,359
we get that feedback consistently and hence
the investment over the last twenty four months

416
00:29:48,799 --> 00:29:53,400
around bringing offerings like c sharp mark
up to the table. The other the

417
00:29:53,519 --> 00:29:57,079
really one development that we've been spending
a lot of time on is there is

418
00:29:57,119 --> 00:30:03,400
that gap between where designers finish and
where developers pick up. And so we've

419
00:30:03,440 --> 00:30:07,480
got a component that actually lives within
Figma and allows you to essentially export not

420
00:30:07,599 --> 00:30:11,039
just down but also cea sharp markups. So if you want to live in

421
00:30:11,039 --> 00:30:15,200
the sea sharp world, you can
just explore your design into Seashell markup,

422
00:30:15,480 --> 00:30:18,400
drop it into your app, and
off you go. And so that's we

423
00:30:18,480 --> 00:30:22,400
see that as quite an important tool
in breaking down that barrier between you know,

424
00:30:23,240 --> 00:30:29,000
the cognitive loss that gets that happened
between designers and where they were thinking

425
00:30:29,039 --> 00:30:32,559
about how things should look and stuff
like that, and the way you developers

426
00:30:32,599 --> 00:30:37,960
tend to put things together, which
we've won't be there right well, and

427
00:30:38,599 --> 00:30:41,640
I appreciate you bringing up Figma because
a couple of years ago it was a

428
00:30:41,759 --> 00:30:47,640
beloved tools like this is the way, and then Adobe showed up and we

429
00:30:47,759 --> 00:30:49,559
all kind of held our brows.
It's like, well, that's where good

430
00:30:49,599 --> 00:30:55,480
software goes to die. And now
they're not buying it, Like I feel

431
00:30:55,480 --> 00:30:57,599
like we're going to have a Figma
renaissance. Because the deal failed, they

432
00:30:57,599 --> 00:31:02,680
had to pay they had to pay
a billion bucks as a saddle because they

433
00:31:02,680 --> 00:31:04,240
couldn't buy it. So, Okay, I don't know what's going to happen

434
00:31:04,279 --> 00:31:07,079
to Figma now, but if I
was a designer, there's there's a lot

435
00:31:07,119 --> 00:31:11,240
of stuff. I'm partying like,
that's such great news. Yeah, there's

436
00:31:11,240 --> 00:31:14,599
a lots of having in the people
world. They've got, you know,

437
00:31:14,720 --> 00:31:19,160
a new dev mode and then again
they've they've identified that the one of their

438
00:31:19,200 --> 00:31:23,960
markets is this, you know,
ability for designers to create this app experience,

439
00:31:25,079 --> 00:31:27,400
not just single pages and web pages
and stuff like that, the whole

440
00:31:27,400 --> 00:31:33,000
app experiences and then be able to
pull out the resources and the assets from

441
00:31:33,039 --> 00:31:37,599
that in a way that it's consumable
for developers. And you hit only the

442
00:31:37,720 --> 00:31:40,599
key point here, which is how
many times is a designer finished with a

443
00:31:40,640 --> 00:31:42,359
design? Hey, the devs and
they're looking to go, well, we're

444
00:31:42,400 --> 00:31:48,519
not making that just so detached from
the tool set I've got and I think

445
00:31:48,559 --> 00:31:53,039
Thing was aware of the software development
of life cycle. Obviously they build their

446
00:31:53,039 --> 00:31:56,640
own tool but they're aware of it
at a at a general level because they're

447
00:31:56,680 --> 00:32:00,039
not just investing in the tools within
Figma, they're all working on things like

448
00:32:00,079 --> 00:32:06,160
design systems and so essentially what that
means is that they're making it so that

449
00:32:06,200 --> 00:32:10,000
you can export parts of Figma as
assets, so whether those be you know,

450
00:32:10,039 --> 00:32:15,359
your color assets, your style assets, your font assets in a way

451
00:32:15,440 --> 00:32:17,920
that can be consumed into things like
your cee iPods, right right, So

452
00:32:19,319 --> 00:32:22,480
you know that they're aware and they're
starting to think along the same lines as

453
00:32:22,480 --> 00:32:27,599
developers have beat for years, and
so UN is trying to leverage that and

454
00:32:27,640 --> 00:32:31,119
recognize that we need to be part
of that pipeline. There's definitely that moment

455
00:32:31,240 --> 00:32:39,519
between the first designer paths that gets
approved and the devs successfully rendering that page.

456
00:32:39,680 --> 00:32:45,359
It's almost an interim step, like
until we convert their design language into

457
00:32:45,400 --> 00:32:49,680
our design language, you can't really
get rolling. You know that I was

458
00:32:49,720 --> 00:32:53,119
introduced to Figma just as an assign
a couple of years ago, and the

459
00:32:53,720 --> 00:32:58,079
customer wanted me to, you know, do the design and Figma and then

460
00:32:58,200 --> 00:33:04,480
copy the you know, the the
CSS into my project and that was fine.

461
00:33:04,559 --> 00:33:07,920
And I don't know if it does
this now, but back then there

462
00:33:07,039 --> 00:33:12,440
was no responsiveness and that you know, you put a you get some design

463
00:33:12,519 --> 00:33:15,720
and all that stuff and I copy
it and you know, it's static,

464
00:33:16,240 --> 00:33:21,240
it doesn't move with the page.
Which seemed to me like really stupid.

465
00:33:21,680 --> 00:33:24,160
I don't know if that feature is
there now, but you know, it's

466
00:33:24,160 --> 00:33:28,640
the little details like that to drive
you nuts. Yeah, so I think

467
00:33:28,720 --> 00:33:31,279
Thigma has definitely come a long way
on that, and definitely a lot of

468
00:33:31,279 --> 00:33:37,000
their components and I'm definitely no wizard
here, but definitely their components now understand

469
00:33:37,079 --> 00:33:40,720
a little bit of responsive side.
It's not to the extent of knowing between

470
00:33:40,839 --> 00:33:45,880
like portrait and landscape, but they
know how things like should expand and things

471
00:33:45,920 --> 00:33:47,240
like that. So you know,
yeah, that's good. It was a

472
00:33:47,240 --> 00:33:52,920
couple of years ago, and I'm
certainly no expert in CSS. Well.

473
00:33:52,000 --> 00:33:55,920
Yeah, and responsive design is hard
at the best of times, much less

474
00:33:57,240 --> 00:34:01,640
cross platform responsive design, absolutely,
yeah, and you know that that is

475
00:34:01,680 --> 00:34:06,559
one of the common problems that surfaces
all the time, and will continue to

476
00:34:06,640 --> 00:34:10,480
invest in better controls and better widgets
to help developers deal with that. And

477
00:34:10,679 --> 00:34:15,679
you know, we see various break
points, particularly on desktop or web,

478
00:34:15,960 --> 00:34:19,280
where you go from a sort of
a more portrain oriented, you know,

479
00:34:19,519 --> 00:34:21,880
layout where you might have a pit
in to the left and you want to

480
00:34:21,960 --> 00:34:24,760
kind of looking like a list,
and then when you navigate it should show

481
00:34:24,800 --> 00:34:30,440
you the details almost on a new
page versus a more landscape or desktop experience

482
00:34:30,440 --> 00:34:35,559
where you typically have them side by
side, and you know, they should

483
00:34:35,599 --> 00:34:37,239
all work within an app and it
should be consistent, and then things like

484
00:34:37,280 --> 00:34:40,000
deep linking should work so that you
could navigate to it on the web.

485
00:34:40,639 --> 00:34:45,559
So you know, it poses very
interesting challenges and you know, those are

486
00:34:45,599 --> 00:34:50,679
the types of things where you know, our investment into extensions allows for things

487
00:34:50,719 --> 00:34:54,159
like deep linking and for resolvable addresses
and stuff like that comes into the play

488
00:34:54,440 --> 00:34:58,639
in toolkit. We have things like
responsive views and stuff like that that will

489
00:34:58,639 --> 00:35:02,079
help one, you know, deal
with having different visual states essentially for that

490
00:35:02,159 --> 00:35:06,760
sort of portrayed look and the landscape
look. And this gets back to that

491
00:35:06,840 --> 00:35:08,719
mapping stage. Just like now I
pick up the Uno toolkit, I've got

492
00:35:08,719 --> 00:35:13,239
the output from Figma, and I'm
trying to figure out how to map it

493
00:35:13,320 --> 00:35:15,440
under the toolkit to say, well, this is what they wanted in Figma.

494
00:35:15,480 --> 00:35:20,079
When it scales, how do we
make sure that Uno does that for

495
00:35:20,119 --> 00:35:22,320
it? Yeah, and that's where
the Figma plugin comes in. Okay,

496
00:35:22,760 --> 00:35:28,679
And so you know that plugin that
sits within Figma. One of the really

497
00:35:28,719 --> 00:35:31,320
cool things about it is that there's
actually a rendering that actually happens within the

498
00:35:31,360 --> 00:35:36,480
plug in and that's actually running the
web or then't version of UNO, so

499
00:35:36,519 --> 00:35:40,079
it actually shows you what it's going
to look like with your like basically takes

500
00:35:40,079 --> 00:35:45,559
your design, converts it to Zammle
behind the scenes, runs it so that

501
00:35:45,599 --> 00:35:47,119
it actually shows you what it's going
to look like and how it's going to

502
00:35:47,199 --> 00:35:51,840
behave when you click in the textbox
and stuff like that. So it's pretty

503
00:35:51,840 --> 00:35:53,599
incredible that the plugin is capable of. And then of course you can then

504
00:35:53,920 --> 00:35:59,239
take that and actually drop it into
your running app, like you go to

505
00:35:59,280 --> 00:36:01,280
the Zamble file, drop it in
whilst your apps running, and really will

506
00:36:01,280 --> 00:36:06,199
actually show it and your running app. Nice. So it's all the wonders

507
00:36:06,519 --> 00:36:09,480
of the Microsoft ecosystem. Hot real
load of somebody that came out of Microsoft.

508
00:36:10,079 --> 00:36:14,199
That the UNER platform is basically built
part of makes world. Yeah,

509
00:36:14,280 --> 00:36:16,440
and live debugging too, right,
like is all part of that effect.

510
00:36:16,960 --> 00:36:22,119
So I could be tweaking this.
I mean, I'm hoping the plug is

511
00:36:22,159 --> 00:36:25,239
perfect, but I imagine I have
to do some stuff and then look across

512
00:36:25,639 --> 00:36:30,199
the different platform renders too, like
fire up the woll the stimulators. Yeah,

513
00:36:30,239 --> 00:36:34,960
correct, and you know there,
We don't claim that there's never any

514
00:36:36,199 --> 00:36:38,599
discrepancies between different platforms, So there's
always a need to run it up on

515
00:36:38,639 --> 00:36:42,920
each platform, the planet ship being
verifying that it's going to that it is

516
00:36:42,960 --> 00:36:46,639
looking and behaving exactly how you want
it, because yure scaling may work differently

517
00:36:46,679 --> 00:36:51,320
on different with that one the break
points between say portraited and landscape may not

518
00:36:51,400 --> 00:36:54,440
be the same, or you may
want to tweak it based on feedback from

519
00:36:54,440 --> 00:37:01,440
different platforms. So definitely consistencies there. One of the interesting things that we

520
00:37:01,480 --> 00:37:07,039
added to the Wizard and so I'll
talk about that in a second, but

521
00:37:07,199 --> 00:37:12,119
we added the ability for it to
generate your CI pipeline. And so one

522
00:37:12,119 --> 00:37:15,280
of the things we consistency see from
developers them struggling at the other end of

523
00:37:15,360 --> 00:37:19,800
the build process is that, Hey, I've got my app that I've spent

524
00:37:19,880 --> 00:37:22,760
time building. How do I ship
it? How do I make sure that

525
00:37:23,000 --> 00:37:25,119
you know when I'm making changes to
it, I don't break it? How

526
00:37:25,159 --> 00:37:30,599
do I run tests and unit uy
tests and things like that. So out

527
00:37:30,639 --> 00:37:32,159
of the Blox, we give you
the ability to have a you know,

528
00:37:32,280 --> 00:37:36,800
a CI pipeline that's set up to
at least build your application, so you're

529
00:37:36,840 --> 00:37:40,920
already in a winning state there the
wizard itself. One of the things we

530
00:37:42,000 --> 00:37:45,039
had trouble with with the whole platform
is that we have all of these different

531
00:37:45,039 --> 00:37:49,280
bits and pieces. Unless you've spent
time reading through the documentation, you wouldn't

532
00:37:49,280 --> 00:37:52,239
know existed. You know, there
was a very good template that I'll add

533
00:37:52,280 --> 00:37:54,519
you to get started with an Uto
app, but it kind of left everything

534
00:37:54,519 --> 00:37:58,719
else to you. And so one
of the things we invested in, you

535
00:37:58,760 --> 00:38:01,400
know, in the last twelve months
that is a wizard that brings in a

536
00:38:01,440 --> 00:38:06,360
good proportion of the capability of the
whole platform. And so you know,

537
00:38:06,400 --> 00:38:09,119
there's ten or eleven screens that you
can go through and customize everything from.

538
00:38:09,320 --> 00:38:14,079
You know what target platforms you want
to use all the way through to do

539
00:38:14,159 --> 00:38:16,480
I want authentication and if so,
do I want to write it myself with

540
00:38:16,559 --> 00:38:22,000
custom worth or do I want to
use m cell and so, And the

541
00:38:22,039 --> 00:38:23,760
CI pipelines are there as well,
so you can pick between it asure and

542
00:38:23,800 --> 00:38:29,400
get other actions as your pipeline of
choice. I'm sure there's others that people

543
00:38:29,400 --> 00:38:32,079
want those then will consider adding those
as well. But the idea is that

544
00:38:32,159 --> 00:38:37,360
when you file a new project,
you get a good percentage of the way

545
00:38:37,440 --> 00:38:40,679
you want with all of the you
know, most of the almost best practice

546
00:38:40,760 --> 00:38:45,639
or guidance that we can do to
get you into that winning state. So

547
00:38:45,719 --> 00:38:49,320
all you do is push it up
to your repository and at least you'll have

548
00:38:49,559 --> 00:38:53,800
a positive experience with a build that
you know works. Because people's integration pipelines

549
00:38:53,800 --> 00:38:58,159
are pretty personal too, right,
so I guess it's very challenge to have

550
00:38:58,280 --> 00:39:00,760
if you're going to generate part of
that pipeline, is it match with the

551
00:39:00,800 --> 00:39:04,639
way we're doing things? Yeah?
Sure, And look right now, what

552
00:39:05,000 --> 00:39:07,079
the Wizard generates is very much a
starting point, so we make sure that

553
00:39:07,119 --> 00:39:12,840
you're set up to do a build
of the whole solution. We are working

554
00:39:12,840 --> 00:39:15,519
on extensions there that will help you
run the at least the tests and the

555
00:39:15,639 --> 00:39:21,119
UI tests because those are actually quite
difficult to particularly the UI test to get

556
00:39:21,199 --> 00:39:28,280
running in a CI pipeline. And
then the additional parts that well, you

557
00:39:28,280 --> 00:39:30,679
know, considering down the line,
is that the support for things like app

558
00:39:30,719 --> 00:39:35,679
Center and actually pushing to the store, because those are again where where a

559
00:39:35,760 --> 00:39:38,000
lot of developers really struggle. Sure, yeah, so just giving them a

560
00:39:38,039 --> 00:39:40,920
template to go get get downe the
right path is great. I mean I

561
00:39:42,280 --> 00:39:46,639
appreciate that you're doing this devop stuff
for your platform so that we have a

562
00:39:46,679 --> 00:39:50,480
good experience with your platform. But
if you can make us better elsewhere,

563
00:39:50,599 --> 00:39:57,320
Nick, I'm all over that because
Australia. The nice thing and you should

564
00:39:57,360 --> 00:40:01,519
work mostly is that because we're all
the dot ecosystem, A lot of that

565
00:40:01,559 --> 00:40:07,000
stuff so dot net built. You
know, you can point that at an

566
00:40:07,360 --> 00:40:10,880
app, but you could also point
it at an other technology after it should

567
00:40:10,920 --> 00:40:15,199
build, and so a lot of
those stages like pointing to the store or

568
00:40:15,239 --> 00:40:19,599
pointing to app Center and things like
that, those are work for other dot

569
00:40:19,679 --> 00:40:22,639
net based applications as well. It's
excellent. We haven't talked much about app

570
00:40:22,679 --> 00:40:24,920
Center because it's just one of those
things you should use. I mean,

571
00:40:24,960 --> 00:40:29,239
this is like the remnants of the
old Hockey app plus a bunch of other

572
00:40:29,360 --> 00:40:34,199
Azure stuff. Yeah, and it's
one of those things that Microsoft acquiet and

573
00:40:34,320 --> 00:40:39,440
brought together and actually started elevating.
And I've always viewed it as I had

574
00:40:39,480 --> 00:40:45,920
some really winning features. So the
simplification of the bill process and encouraging developers

575
00:40:45,960 --> 00:40:50,760
to actually have that kind of approach
to the build and test the ability to

576
00:40:50,840 --> 00:40:53,760
run UI tests and device tests and
stuff like that was really cool, and

577
00:40:54,280 --> 00:40:59,559
the deployment side of things for testing
was one of the killer features of app

578
00:40:59,599 --> 00:41:05,599
Center. And so yeah, definitely, we're highly encouraged developers to push the

579
00:41:05,639 --> 00:41:08,719
app Center to provide that distribution.
But it's not to say that you can't

580
00:41:09,159 --> 00:41:12,800
do it without app Center. So
you can push to you know, the

581
00:41:13,119 --> 00:41:17,800
you know, the Android Beta store
and the iOS using the essentially test flight

582
00:41:19,320 --> 00:41:25,119
to actually push out the d Bible
pre built versions. But app Center definitely

583
00:41:25,199 --> 00:41:29,360
made those problems easier to deal with. Well, I mean you mean testl

584
00:41:29,400 --> 00:41:32,719
like for ioas are you meaning testlate
for iOS? Test flight? Yeah?

585
00:41:32,960 --> 00:41:37,079
Yeah, what's the Android equivalent?
I can't remember. Well, they have

586
00:41:37,159 --> 00:41:40,239
a beta version of their store,
so you basically submit to the store and

587
00:41:40,320 --> 00:41:44,159
then you market it as beta and
it allows you to do that kind of

588
00:41:44,239 --> 00:41:47,559
same process. Oh your Android does
Yeah, Okay, so you're talking about

589
00:41:47,719 --> 00:41:52,440
test flight, which is Apple's way
to do beta deploys. Yeah, and

590
00:41:52,639 --> 00:41:55,719
so you know, each of the
stores, so Apple will have a way

591
00:41:55,760 --> 00:42:02,119
of doing essentially beta deploys. The
Android store has away, and the Microsoft

592
00:42:02,159 --> 00:42:07,119
Store actually has a mechanism for doing
that as well, so flighting essentially pre

593
00:42:07,360 --> 00:42:09,800
released versions of their apps, So
all all of the platforms have that,

594
00:42:09,880 --> 00:42:13,800
and obviously in the web you can
point to a staging environment and you know

595
00:42:13,880 --> 00:42:20,119
lock it down, et cetera.
So it's definitely a good mechanism to follow

596
00:42:20,159 --> 00:42:22,960
through with you apps as they go
into that sort of pre release of testing

597
00:42:23,039 --> 00:42:29,239
phase is to make them available for
a select group of audience. And you

598
00:42:29,320 --> 00:42:31,760
know, internally in we actually make
use of those processes to make sure that

599
00:42:31,880 --> 00:42:38,519
we have you know, canary builds
available for our internal testing. And just

600
00:42:38,719 --> 00:42:43,280
touching on that, one of the
things that we do try to encourage for

601
00:42:43,480 --> 00:42:46,000
all of our customers is so logo
this thing that we talk about it is

602
00:42:46,039 --> 00:42:51,239
being canary builds, and what we
mean by that is basically taking your existing

603
00:42:51,320 --> 00:42:55,280
app that you're currently working on and
testing forcibly, updating it to all of

604
00:42:55,400 --> 00:43:00,239
the latest versions of the of all
your packages, because this are something that

605
00:43:00,320 --> 00:43:06,880
developers typically don't do frequently enough,
and then running it through your CI pipeline

606
00:43:06,880 --> 00:43:08,800
to make sure it builds, it
runs all your tests, and it hasn't

607
00:43:08,840 --> 00:43:14,679
broken anything. The advantage there is
that as soon as one of your dependencies

608
00:43:14,920 --> 00:43:19,360
upgrades to a new version, you're
going to be aware that it's now breaking

609
00:43:19,480 --> 00:43:22,760
something and that you will not necessarily
have to fix it right now, but

610
00:43:22,840 --> 00:43:25,159
you'll know that you need to address
it in the upcoming versions. Because what

611
00:43:25,280 --> 00:43:30,880
we typically see time and time again, and this is true for Core itself,

612
00:43:30,280 --> 00:43:35,519
is that developers don't upgraad because something
has broken, and then they end

613
00:43:35,639 --> 00:43:38,239
up three versions behind, and now
you're really in trouble. Yeah, and

614
00:43:38,480 --> 00:43:43,760
you know we've stopped shipping updates to
that version, so you know you really

615
00:43:43,840 --> 00:43:46,480
need to update. And now it's
a really painful process. And so by

616
00:43:46,599 --> 00:43:51,360
encouraging developers to have canary builders that
they might run once a day or once

617
00:43:51,400 --> 00:43:57,760
a week to see what packages have
changed, it gives them early warning as

618
00:43:57,800 --> 00:44:00,960
to when things will be when they
need to modify their code. Yeah,

619
00:44:00,960 --> 00:44:04,519
you only have to miss a couple
of sprints, you know, well you

620
00:44:04,639 --> 00:44:07,719
try, Well, we'll fix that
later. Let's go finish these other features,

621
00:44:07,320 --> 00:44:09,880
and then it misses around or two, and now it's a year.

622
00:44:10,159 --> 00:44:13,840
I mean, I think we're incredibly
lucky that, you know, the upgrade

623
00:44:13,880 --> 00:44:17,480
cycle from you know, NET sixth
and at seventh and at eight hasn't typically

624
00:44:17,599 --> 00:44:22,000
required significant rework. In fact,
the only work that you typically see is

625
00:44:22,039 --> 00:44:28,880
things like the analyzers improve and they're
now throw more warnings because the code analysis

626
00:44:29,000 --> 00:44:30,079
is better, and they can say, okay, well you're going to get

627
00:44:30,079 --> 00:44:35,199
performance gained if you do this over
this, And so typically what you're going

628
00:44:35,280 --> 00:44:37,519
to have to do is go through
and address those and a lot of our

629
00:44:37,559 --> 00:44:40,679
projects we typically have them, you
know, warning setters error, so that

630
00:44:40,800 --> 00:44:45,159
we're forced to go and fix them. Yeah, and that's great right up

631
00:44:45,199 --> 00:44:47,880
until you do get one of the
updates and now there's a thousand fricking warnings.

632
00:44:49,199 --> 00:44:52,480
Yeah, but you know, warnings
could just be warnings. Yeah.

633
00:44:52,400 --> 00:44:57,079
Luckily a lot of those ones that
generate a thousand warnings are very consistent,

634
00:44:57,519 --> 00:45:00,440
Yeah, like their search and replaceable. Yeah, and quite often we'll point

635
00:45:00,519 --> 00:45:02,880
to you an era of your code
where you may be able to do a

636
00:45:02,960 --> 00:45:07,159
global refactor beyond what they're talking so
you know, you might have missed the

637
00:45:07,239 --> 00:45:12,159
fact that you're reusing the same bit
of code three times or something. So

638
00:45:12,360 --> 00:45:16,440
yeah, yeah, I mean,
I'm with you, it's just I also

639
00:45:16,559 --> 00:45:21,039
needed to ship features, right,
Like, there's just this that's the constant

640
00:45:21,159 --> 00:45:24,000
battle between he there's a better way
to do this versus Yeah, but they

641
00:45:24,079 --> 00:45:29,119
really need this thing out this month. Yeah, And look that's why canaris

642
00:45:29,119 --> 00:45:31,519
are great because they give you that
really early warning you can start to factor

643
00:45:31,960 --> 00:45:36,519
any rework and get them on the
board. Yeah, exactly, And so

644
00:45:36,639 --> 00:45:39,199
it doesn't become this, Hey we've
got to dedicate three sprints to just catching

645
00:45:39,280 --> 00:45:44,920
up. Yeah, I'd rather than
get behind on it. What is the

646
00:45:45,119 --> 00:45:49,320
testing approach for you know, you
hinted at it in the papeline. Yeah,

647
00:45:49,400 --> 00:45:52,559
So so we do a couple of
different testing and some of these come

648
00:45:52,639 --> 00:45:58,440
from our guidance around what we do
internally, so where possible. For a

649
00:45:58,480 --> 00:46:00,440
lot of your business logic, unit
tests are still the way to go.

650
00:46:00,760 --> 00:46:04,719
So you know, if you have
services that make calls and you have view

651
00:46:04,800 --> 00:46:07,039
models and stuff like that, we
can you still want to be running unit

652
00:46:07,119 --> 00:46:13,599
test to verify you know, the
logic of your application is sound. But

653
00:46:14,079 --> 00:46:16,559
you know where most of the testing
and mobile apps goes is in the UI

654
00:46:16,679 --> 00:46:20,760
side of things and making sure that
the flow works and so that for that

655
00:46:20,960 --> 00:46:23,719
we have we do have UI tests. So essentially this is running the app,

656
00:46:24,800 --> 00:46:29,719
stepping through various parts of the app
and verifying conditions so it may be

657
00:46:30,239 --> 00:46:34,360
verifying that snapshop one page the next
hasn't changed, but one iteration of the

658
00:46:34,360 --> 00:46:37,239
built and one next that hasn't changed. Are you using verify same in craps

659
00:46:37,280 --> 00:46:42,920
tool. We don't use it internally. I would recommend using it. It's

660
00:46:43,000 --> 00:46:46,599
an absolutely awesome tool. And so
you know again, you know, doing

661
00:46:46,639 --> 00:46:51,360
comparison for screenshots and stuff like that
is absolutely fantastic. I know, we

662
00:46:51,800 --> 00:46:52,920
we had the good forces you to
talk to same crap and you were an

663
00:46:52,960 --> 00:46:55,760
instant believer, Carl as I recall, like you've used it ever since.

664
00:46:57,000 --> 00:47:00,719
Oh yeah, yeah, yeah,
very cool stuff. Yeah that sign crops

665
00:47:00,800 --> 00:47:04,920
out and developed some amazing tools over
the time and verifies one of them.

666
00:47:05,360 --> 00:47:10,760
He's one of you. Yeah.
Well, and that's I mean, and

667
00:47:10,840 --> 00:47:15,840
I brought that whole line of thinking
up, Nick, because testing uys is

668
00:47:15,960 --> 00:47:19,239
hard. It's just you know,
I love a unit test. That's because

669
00:47:19,280 --> 00:47:22,320
I have a clear input and output
it if they don't match, say something

670
00:47:22,719 --> 00:47:27,880
especially native uy, right, because
you're generally comparing pixels sometimes, aren't you.

671
00:47:28,079 --> 00:47:30,239
Yeah. Well, if you've ever
taken it, stopped in and taken

672
00:47:30,280 --> 00:47:35,239
a look at the platform pipeline,
it takes about four hours to run because

673
00:47:35,440 --> 00:47:37,599
you know, we're running UY tests
and that's doing a lot of stuff in

674
00:47:37,679 --> 00:47:42,480
parallel, like we run UY test
on the Highways Android where you know the

675
00:47:43,000 --> 00:47:45,760
works for the court framework and that, and that gives us a lot of

676
00:47:45,840 --> 00:47:50,920
confidence where we ship new versions.
Yeah, that the core is very well

677
00:47:51,000 --> 00:47:53,360
tested. That's great. It's good
to know well and and it speaks to

678
00:47:53,400 --> 00:47:57,000
you. You know, I'm realizing, like we've been talking about UNO for

679
00:47:57,280 --> 00:48:00,079
five six years now, Like there's
a reason you guys are still out there.

680
00:48:00,119 --> 00:48:04,039
You've been you've transformed a couple of
times. You know, once upon

681
00:48:04,079 --> 00:48:08,039
a time you were the WUP guys, but that's all changed and you had

682
00:48:08,039 --> 00:48:13,079
that w A hook the early days
before it was cool, that's right.

683
00:48:13,480 --> 00:48:16,280
Yeah. So the u WP things
interesting because even today, if you're going

684
00:48:16,320 --> 00:48:19,760
to build an u WP app and
you want to take a cross platform you

685
00:48:19,840 --> 00:48:22,760
can still use the tool set to
do that. We still fully support you

686
00:48:22,920 --> 00:48:24,960
WP. And you might think,
well, why would you do that if

687
00:48:24,960 --> 00:48:29,760
you're supporting you know when you I
The reason being is that there are still

688
00:48:29,800 --> 00:48:34,119
some platforms, name the Xbox where
you have to build WP and so you

689
00:48:34,199 --> 00:48:37,639
know those scenarios are still out there. We still have customers who and people

690
00:48:37,679 --> 00:48:42,519
out there with UWP apps that want
to take the cross platform or want to

691
00:48:42,599 --> 00:48:45,159
take parts of their app cross platform. Sure, and it may have some

692
00:48:45,440 --> 00:48:50,440
and they're looking at or I rewrite, right, It's like given that choice,

693
00:48:50,480 --> 00:48:52,480
it's like we committed UWP back in
the day. We've got this stuff,

694
00:48:52,559 --> 00:48:57,440
we have these we're concerned about what
Microsoft's do with YOUWP or not doing,

695
00:48:57,480 --> 00:49:00,960
as the case may be. Uh
and and want to go to the

696
00:49:00,000 --> 00:49:02,320
cross plat port and you guys can
pick a lot of that up. Yeah,

697
00:49:02,519 --> 00:49:06,039
just to be clear, when you're
talking about Xbox apps, you're really

698
00:49:06,079 --> 00:49:09,119
talking about like, you know,
forms apps if you will, on Xbox,

699
00:49:09,199 --> 00:49:14,360
not games, not graphics correct.
Yeah. Yeah, And you know

700
00:49:14,440 --> 00:49:17,320
there was a time when Microsoft wanted
Xbox to be center of the living room

701
00:49:17,800 --> 00:49:22,039
and so you know they did do
a very big push for you know,

702
00:49:22,119 --> 00:49:25,039
app developers to come on board,
and UWP was that platform. I mean,

703
00:49:25,079 --> 00:49:30,960
there there was a great vision about
UWP being you know, this capability

704
00:49:30,000 --> 00:49:35,159
of running everywhere, and some of
that still exists today. There's some hints

705
00:49:35,199 --> 00:49:37,840
that they're going to make another stab
at it too, you know, like

706
00:49:37,159 --> 00:49:46,239
XN a version the just just a
sense that the team is reorganizing, like

707
00:49:46,320 --> 00:49:51,119
there's there seems to be something going
on there that we're living on. You

708
00:49:51,199 --> 00:49:52,679
know. I spent some time over
on the Windows Weekly side too, and

709
00:49:53,480 --> 00:49:57,880
this has been a recurring threat.
It's like there's something going on over you.

710
00:49:58,000 --> 00:50:00,800
I wonder if that'll trickle over to
hollow Lands. Yeah. So the

711
00:50:00,880 --> 00:50:04,159
interesting thing is if you we've been
watching the whin UI, the winn app

712
00:50:04,239 --> 00:50:07,400
SDK team over the last couple of
years, it feels like they really haven't

713
00:50:07,440 --> 00:50:12,199
been moving very fast. No,
but they're doing a lot of investment,

714
00:50:12,239 --> 00:50:15,079
which is actually one of the very
first times we've seen this with one of

715
00:50:15,119 --> 00:50:21,440
their UI frameworks internally to use it
for first party apps, so things like

716
00:50:21,519 --> 00:50:24,199
file Explorer, you know, probably
one of the most used apps on Windows

717
00:50:24,440 --> 00:50:28,880
right. New version of that's being
done in winn app is DK. Yeah,

718
00:50:29,280 --> 00:50:31,039
and that's smart, right, Like
we like it when Microsoft eats the

719
00:50:31,119 --> 00:50:36,880
dog food a you know, it'll
never go away, Yeah, exactly,

720
00:50:36,960 --> 00:50:43,639
and b it they beat their own
teams up, Like WPF was pretty much

721
00:50:43,760 --> 00:50:46,599
unusable until the studio team used it, yeah, back in twenty ten.

722
00:50:46,800 --> 00:50:52,920
Like the difference between WP two and
WP four because numbers are hard. Was

723
00:50:53,599 --> 00:50:57,960
the studio team, and it implemented
inside of studio. It had problems,

724
00:50:58,000 --> 00:51:01,320
but they'd also kick the snart.
Yeah yeah, I remember those days,

725
00:51:01,400 --> 00:51:07,719
how fondly. Just interesting on that. One of the other sort of areas

726
00:51:07,760 --> 00:51:10,760
where we see customers coming to the
platform are from you know, companies that

727
00:51:10,840 --> 00:51:15,639
have invested in WPF and so one
of the really neat things that you can

728
00:51:15,719 --> 00:51:21,480
do with there is to start building
new components with the UNO on your existing

729
00:51:22,639 --> 00:51:25,480
WPF app. So we have the
ability to integrate with an existing app,

730
00:51:27,039 --> 00:51:30,360
run the UNO parts, and that
gives you the ability to take parts of

731
00:51:30,440 --> 00:51:34,679
your app cross platform. And you
know, obviously probably wouldn't be necessarily too

732
00:51:34,760 --> 00:51:37,239
much on the desktop, but makes
a lot of sense for iOS and androids

733
00:51:37,239 --> 00:51:40,320
to take part of your app cross
platform. So for example, maybe a

734
00:51:40,400 --> 00:51:45,079
new data capture part. You can
really use all of your business logic that

735
00:51:45,119 --> 00:51:46,920
you already have, all of your
service calls, all of that stuff,

736
00:51:47,400 --> 00:51:52,719
build the parts that you need for
your mobile data capture part in UNO,

737
00:51:52,519 --> 00:51:55,159
and all of a sudden you haven't
had to rebuild your app, just so

738
00:51:55,280 --> 00:51:59,400
you can take a cross platform.
Right, So you've got a WPF app

739
00:51:59,440 --> 00:52:01,159
and at one point you were kind
of looking at Zamma informs and like,

740
00:52:01,320 --> 00:52:05,440
is this gonna work for me?
Then now it's become Maui, and you're

741
00:52:05,440 --> 00:52:08,119
still wonder if it's going to work
for you. And we're not even gonna

742
00:52:08,119 --> 00:52:13,079
say so. We're like, oh
down ha, yes, we all we

743
00:52:13,159 --> 00:52:16,039
all love that. But they I
mean, but what I hear you describing

744
00:52:16,119 --> 00:52:19,920
is essentially saying, hey, I
can add into this a couple of Uno

745
00:52:20,000 --> 00:52:23,000
components and we have this piece of
this larger w p F app that now

746
00:52:23,079 --> 00:52:30,440
runs on iOS and Android. Yeah. Absolutely, what is the mac os

747
00:52:30,920 --> 00:52:35,119
story for Uno? So the mac
Os is mac Catalyst, so basically the

748
00:52:35,320 --> 00:52:39,360
the the the mac Light kind of
work version. It's kind of like that

749
00:52:39,639 --> 00:52:44,760
that sort of the technology that came
from iOS land went through iPad and came

750
00:52:44,840 --> 00:52:47,840
over on Catalyst. But you know, for for the vast majority of apps,

751
00:52:47,880 --> 00:52:51,880
that is a great technology to use. Do we have access to native

752
00:52:52,679 --> 00:52:57,760
platform tools there it is more of
a sandbox device than what you get with

753
00:52:57,840 --> 00:53:00,880
the mac os app. So same
as MAUI, basically correct, and and

754
00:53:00,960 --> 00:53:06,440
a lot of this is driven by
the fact that the Microsoft support for mac

755
00:53:06,480 --> 00:53:12,199
Os as a you know, as
a as an alternative to mac Catalyst has

756
00:53:12,280 --> 00:53:15,280
not had the same amount of attention
that the mac caitalyists got courtesy of their

757
00:53:15,320 --> 00:53:20,320
being driven by the Maui team.
So yeah, so you know that that's

758
00:53:20,440 --> 00:53:23,079
kind of where we are in that
sort of Microsoft ecosystem running on mac scenario.

759
00:53:24,840 --> 00:53:29,920
Yeah. I don't think there's a
whole lot of Mac os desktop development

760
00:53:30,000 --> 00:53:34,360
going on except for like your you
know, your adobees and your music and

761
00:53:34,599 --> 00:53:37,320
video editing and all that stuff,
and that's all pretty neative. It's not

762
00:53:37,679 --> 00:53:43,199
very needative and very close to the
metal. Yeah, but but there's there's

763
00:53:43,239 --> 00:53:45,239
definitely an opportunity there, particularly,
I mean if you if you do have

764
00:53:45,320 --> 00:53:50,840
a lot of customers in the iOS
space Catalysts and being able to have that

765
00:53:50,960 --> 00:53:54,280
same level of information available on the
on the Mac Sense and the and the

766
00:53:54,400 --> 00:53:59,079
ability to that you basically get it
for free with like in the sense of

767
00:53:59,239 --> 00:54:04,159
you know you're building for all these
other platforms. You know you've got desktop

768
00:54:04,159 --> 00:54:07,280
support through Windows, it's going to
look very similar on Mac os through Catalyst.

769
00:54:07,400 --> 00:54:09,760
Yeah, Yeah, exactly, awesome, very cool. So neck,

770
00:54:09,840 --> 00:54:14,440
what's next for you? What's in
your inbox? So the big news is

771
00:54:14,519 --> 00:54:20,079
that we'll continue to invest in that, in that sort of ecosystem, so

772
00:54:20,320 --> 00:54:24,960
life like beginning to end of the
developer life cycles, so continue to invest

773
00:54:25,000 --> 00:54:30,599
in the Wizard. We're likely to
see some some updates to improve productivity in

774
00:54:30,679 --> 00:54:34,760
terms of developers and the areas that
developers really struggle with in terms of building

775
00:54:34,840 --> 00:54:37,840
and deploying apps, and that cycle
will continue to go this year. And

776
00:54:37,960 --> 00:54:42,880
that that is hansol of what the
platform is about, you know, And

777
00:54:43,039 --> 00:54:45,400
that's not to say that we're continue
to not continue to invest in the core.

778
00:54:46,000 --> 00:54:49,800
There is part of the team that's
devoted to that, so you know,

779
00:54:49,920 --> 00:54:52,599
performance is still front of mind.
There's still a lot of updates that

780
00:54:52,679 --> 00:54:59,280
are to come across for various platform
pieces. There there's there's there are new

781
00:54:59,360 --> 00:55:05,320
controls that are on the horizon for
things like toolkit and extensions. But definitely

782
00:55:05,400 --> 00:55:09,719
that life cycle that's beginning design ending
with an app that's produced out of our

783
00:55:09,760 --> 00:55:15,800
platpline into the stores. Trying to
improve the productivity for end to end for

784
00:55:15,880 --> 00:55:19,920
developers is where the team's going for
this. And I love your green Field

785
00:55:19,960 --> 00:55:22,840
story, but I'm starting to love
your brown Field story. I got an

786
00:55:22,840 --> 00:55:25,079
app and I can add you know, in part way through like thank you,

787
00:55:25,239 --> 00:55:28,719
because that's real life. And look, we recognize that as well.

788
00:55:29,679 --> 00:55:34,079
And look, the reality is that
just one little extra bit here is the

789
00:55:34,199 --> 00:55:38,480
reality is that you know, not
every control manufacturer or vendor is actually building

790
00:55:38,559 --> 00:55:43,960
controls for the Bunau platform. And
so what we can do with the Maui

791
00:55:44,000 --> 00:55:47,360
embedding that we've got is the ability
to take controls from sinfusion from Tellery and

792
00:55:47,519 --> 00:55:52,320
bring them on to an application.
Now, obviously those will only be supported

793
00:55:52,360 --> 00:55:55,119
on the platforms that they support.
For Mali, so they choose to support

794
00:55:55,880 --> 00:56:00,239
all of the Marie platforms. I
always adroid Catalyst windows. Then you'll get

795
00:56:00,320 --> 00:56:05,280
those on, you know, by
embedding those within the inner platform. So

796
00:56:05,440 --> 00:56:08,360
yeah, we totally recognize that that
brownfield story where things aren't as neat and

797
00:56:08,480 --> 00:56:13,800
tidy as we'd expect them to be. It's totally every piece of software I've

798
00:56:13,840 --> 00:56:17,119
ever built. That's fine. Yeah, yeah, And just to be perfect

799
00:56:17,159 --> 00:56:22,039
clear, there's an open source project
with paid supportive ill that is exactly right,

800
00:56:22,199 --> 00:56:25,239
yep. So it's one hundred percent
open source and there is this paid

801
00:56:25,400 --> 00:56:30,559
enterprise support available. That's how you
guys stay alive. Absolutely, it pays

802
00:56:30,599 --> 00:56:31,960
the bills. Now I want people
to know, right, it's like,

803
00:56:32,039 --> 00:56:36,119
hey, you can take this other's
been I like your free support, it's

804
00:56:36,159 --> 00:56:38,199
good, but if you're going to
commit your business to this, buy some

805
00:56:38,320 --> 00:56:42,960
support so that you get priority and
so you keep a platform you care about

806
00:56:43,000 --> 00:56:45,800
a live Yeah. And look if
you if you monitor the GitHub repolagers and

807
00:56:45,800 --> 00:56:51,320
there's a few of them, you'll
see that virtually all of them have an

808
00:56:51,480 --> 00:56:54,679
active contributor from the inner platform team. Yes. I also like that you

809
00:56:54,920 --> 00:57:00,239
drive your paid support through issues in
GitHub too, so that everybody and if

810
00:57:00,239 --> 00:57:02,480
it's from it, Yeah, absolutely
exactly, it's really I mean, you

811
00:57:02,559 --> 00:57:07,400
know, there's a subtext of their
algoing conversation for us to dynam Rocks about

812
00:57:07,559 --> 00:57:10,320
how we make sustainable open source,
and you guys are on my list of

813
00:57:10,400 --> 00:57:14,760
people doing it right, like showing
a model that works. Yeah. Look,

814
00:57:14,880 --> 00:57:20,960
it's just sustainable open source is a
challenge and there's no one model that's

815
00:57:20,960 --> 00:57:23,760
going to fit everyone. I think
that there was there was a view that

816
00:57:23,880 --> 00:57:28,599
things like you know, sponsorship and
things like that might be an answer,

817
00:57:29,199 --> 00:57:31,199
but I think that people are walking
away from that because you know, the

818
00:57:31,320 --> 00:57:37,559
reality is that the people who who
should be paying, which typically the companies

819
00:57:37,880 --> 00:57:40,880
are not the ones who are typically
fronting the money and offers. There's developers

820
00:57:40,920 --> 00:57:45,519
who recognize the hard work that you
know, so many contributors put in that

821
00:57:45,639 --> 00:57:50,119
are contributing you know, a dollar
here or ten dollars there, you know,

822
00:57:51,440 --> 00:57:54,639
in supporting. Yeah, that's that
cancer staining company now, and I

823
00:57:54,760 --> 00:57:58,039
want to fix that first part that
I could. I agree with you is

824
00:57:58,079 --> 00:58:01,519
not happening. But I also preciate
that there are business models out there that

825
00:58:01,599 --> 00:58:05,199
work, that have their challenges.
I just mean, you know, I

826
00:58:05,280 --> 00:58:07,880
wish we could be better, but
we'll all try and do the right thing.

827
00:58:07,320 --> 00:58:10,880
The schew Nick, it's been a
pleasure talking to you and keeping us

828
00:58:12,079 --> 00:58:15,199
up to date on UNO and what
you've been doing. Thanks, thanks,

829
00:58:15,400 --> 00:58:16,920
thanks for having me on. It's
been fantastic. Bet. All right,

830
00:58:17,000 --> 00:58:40,760
we'll talk to you next time.
I'm dot net rox. Dot net Rocks

831
00:58:40,880 --> 00:58:45,440
is brought to you by Franklin's Net
and produced by Pop Studios, a full

832
00:58:45,519 --> 00:58:51,840
service audio, video and post production
facility located physically in New London, Connecticut,

833
00:58:52,159 --> 00:58:57,519
and of course in the cloud online
at pwop dot com. Visit our

834
00:58:57,559 --> 00:59:00,400
website at d O T N E
t R o c ks dot com for

835
00:59:00,639 --> 00:59:06,440
RSS feeds, downloads, mobile apps, comments, and access to the full

836
00:59:06,599 --> 00:59:10,039
archives going back to show number one, recorded in September two thousand and two.

837
00:59:10,719 --> 00:59:14,760
And make sure you check out our
sponsors. They keep us in business.

838
00:59:15,280 --> 00:59:19,920
Now go write some code, See
you next time you got JAD middle vans
