📺 Develpreneur YouTube Episode

Video + transcript

Kitchen Sink App: The Ultimate Developer Tool for Consistent and Scalable Software Des

2024-10-24 •Youtube

Detailed Notes

In the latest Building Better Developers episode, Rob Broadhead and Michael Meloche discuss the “Kitchen Sink App.” This season emphasizes building better habits for developers. The Kitchen Sink App involves creating a prototype or template with essential project controls and elements. It helps developers refine designs, ensure consistency, and facilitate productive client conversations.

*Read More*... https://develpreneur.com/kitchen-sink-app-the-ultimate-developer-tool-for-consistent-and-scalable-software-design/

*The Episode’s Challenge:* Build Your Own Kitchen Sink App

Rob wraps up the episode with a challenge for developers: build a Kitchen Sink App for your current or upcoming project. Whether you are developing a desktop application or a web-based interface, create a simplified version that includes all essential controls and styles. This exercise not only sharpens your development skills but also prepares you to handle unexpected client requests with ease.

*Additional Resources*

* The Power of Clickable Demos in the Software Development Lifecycle (https://develpreneur.com/the-power-of-clickable-demos-in-the-software-development-lifecycle/) * Building Your Personal Code Repository (https://develpreneur.com/building-your-personal-code-repository/) * Building Out Your Application From a Demo (https://develpreneur.com/building-out-your-application-from-a-demo/) * Successful Presentation Tips for Developers: Effective Demo Strategies (https://develpreneur.com/successful-presentation-tips-for-developers-effective-demo-strategies/)

*Follow-us on:*

* https://develpreneur.com/ * https://www.youtube.com/channel/UCZOuFN_LhczvGyT2KSItH_g/featured * https://facebook.com/Develpreneur * https://twitter.com/develpreneur * http://linkedin.com/develpreneur

Transcript Text
[Music]
so we're going to do oh we're going to
do CSS kitchen sinky type stuff this
time around oh we just hit record as far
as you know uh like Hello everybody we
were back and we were talking about this
episode I think this episode we've
decided last episode um we decided I
think we're g to do talk about like
kitchen sick apps and in particular uh
my focus I want to talk about like the
world of CSS and using an HTML page CSS
file uh you know style
sheet combining those kinds of things in
the world of
uh kitchen sink apps and how you can use
that not just
to uh it's useful from a developer point
of view but also this is to sort of show
some stuff off to your your customers so
I think we'll focus on this one uh any
comments before we dive in no I think we
talked through most of that in the
previous episodes all right because
you're such a whiner I'll give you my
little like here we
go hello and welcome back we are
building better developers we are
developing or we are in season 23 and we
are building better habits this season
so this time around we are going to talk
about something that actually Michael
has talked about many many times uh
particularly in the last season uh I
think we we we've really gotten into
detail on it before but we're going to
swing back around it's the idea of a
kitchen sink app and really what we're
going to look at is using um sort of
like a template or prototype to really
like jump start your development but
also to jump start your conversations
with your customers before we get into
that we should introduce ourselves and
so I'll start by introducing myself my
name is Rob Brad one of the founders of
develop andur of building better
developers also a founder of RB
Consulting where we help you Wrangle in
all of the Technologies out there we do
things from we start with like an
assessment we figure out where you are
we walk you through some things talk
about your business understand your
business your goals and then we find
ways to marry the technology you have
and thech techology that's available
with where you want to go so that you're
prepared not only when we walk away for
today but 6 months six years down the
road beyond that okay it's technology
you're going to have to look at stuff
but we do put things in place so you
don't have to reinvent the wheel five or
10 years from now we do that through
simplification automation integration we
find ways to leverage as all of the
right technology it's not necessarily
build versus buy it's not necessarily
you know um a monolithic approach versus
a uh you know ad hoc kind of approach or
alart kind of approach it is finding the
best way to put those things together
and to pick the best Solutions out of
how it works for you for your
organization good thing bad thing this
is
one that actually goes back to what I
just talked about in technology
sprawl I am working with a new customer
and uh they have the sprawl to end all
sprawls they have had Wild West there
it's a this a big organization they've
got a lot of stuff going on and they've
got a lot of very smart people solving a
lot of really complex problems which
means a lot of times when you're solving
a complex problem you're going to think
that I have to solve this in a very
customized way not entirely wrong but
that doesn't mean that you can't
leverage the work of others so they
haven't done that they have built this
huge thing and sometimes people move on
so there is a there is zero people in
the world that know all of the things
going on in this organization there just
isn't there's and there's a lot of stuff
out there that people have nobody knows
anything about it basically they just
know that it's out there and that's
about it so that's the bad thing this is
a a nightmare of sorts the good thing is
there's a lot of work to do I am not
going to get bored anytime soon and when
you have a fire of this
magnitude anywhere you start is at least
you're making progress so it's one of
those it's like you don't have to you
have a ton of work to do you can really
start literally anywhere and I don't
think anybody's ever going to come back
and say no you shouldn't have worked on
that you should have worked on this
instead because it's all like super
critical priority so it's one of those
it's like okay you the bad thing is
there's a lot of work to do the good
thing is you can start anywhere and
you're immediately going to be making
some progress for it I am going to start
with my big world of things I need to do
with passing stuff over to Michael so he
introduce
himself hey everyone my name is Michael
malash one of the co-founders of
developer building better developers I'm
also the founder of Envision QA where we
build small uh where we help small to
midsize companies and Healthcare
professionals build software that meets
their needs we can help you with
customized soft software we can help you
with existing Legacy software and our
main focus is really building software
with testing in mind so everything we
build is test driven so that any changes
to the software we know immediately
upfront when something breaks versus
getting it in front of the users and you
cannot lose that uh you know your
credibility when software goes out
that's bad good and bad uh I'll start
with the bad um working on a project
we're kind of at the tail end of it and
there's no clear direction from the
business as to where we're going or if
we're even going to be working on this
project in the months to come so we're
kind of in that little limbo and you
kind of we're kind of getting that
anxiety of you know are we going to be
working on this or not uh so it's kind
of one of those things where it's like
you know do you jump ship or not the
good thing is kind of knowing that's
coming along um working with other uh
companies trying to bring in more
business and also looking at some
additional skill sets that I can build
into and expand my company into those
roles so let's talk about a kitchen sync
app and I want to I want to have my
focus is how you utilize this as a way
to Envision sort of as a more like in
the requirements and design phase as a
way to Envision what you're going to
eventually build now some of it is uh
ideal definitely some of this is very
much design driven this is very much
about design because to me it goes back
to really like the core of component
development and object-oriented approach
and stuff like that where even in a
visual sense it makes a lot of sense to
have objects and controls and most
Frameworks Embrace this now so there are
things you have particularly if you if
you look at the world of
like for example responsive design
whether it's you know angular or
bootstrap or uh I forget wa U not
flutter but I think it's the all of
those different things those different
libraries out there I for so much I
always like mix and match their names
they're basically the same thing just
you know slightly different in the
syntax but the core thing is that like
this is what a table looks like this is
what uh a data entry form looks like
this is what a menu item looks like this
is what a
a button looks like you know those kinds
of things those are all controls and
those are all going to have a specific
look and feel for your application now
this holds whether you are using web
applications or whether you're using any
other visual like a desktop
application back in the day when I built
a lot of desktop applications one of the
first things I would do is have a page
and I would go through and I would build
controls that I was going to use all
through the application and it was the
kinds of things where it was like with
this control I'm always going to have
like maybe a a micrel kind of thing or a
specific kind of label thing uh a lot of
times I would group control so I would
have things like this is what an address
form looks like this is what a uh
contact form looks like this is what
your basic input Fields look like as far
as labels and the um the width of the of
the text entry this is what buttons look
like this is what a uh a visual
container looks like you know in the web
World it be things like spans versus
divs and uh field sets and forms and
some of those kinds of things it's like
do I have a uh do I have a different
background color do I have a border do I
have a dash border do I have an inset do
I have an outset all of those kinds of
design
choices I would do that from the start
and that's where this kitchen sync app
kind of thing looks like it's it goes to
of having a page in this sense you have
a page or a form and you have all of
your all your controls live there so you
can think about when you're building
your
application let's say it's a standard
web application you probably have a and
we'll just for lack of better terms
we'll just say let's assume you have a
header a footer uh some sort of
navigation you know menu type items
You've Got U form entry Fields you've
got reports you've got table kind of
stuff you've got search forms you've got
filters
you've got lists you've got dropdowns
those things there's all these things
that are part of your application part
of what you're going to deliver and so
what you do is you build a page you can
just throw random data into there
basically but the key is to show all of
these controls and then for you to be
able to see all of them and decide how
you want to do it because there's going
to be some things that you're going to
say particularly in the world of web and
this happens really in I think almost
every user interface
framework and structures out there you
start with a a panel you start with some
sort of Base you know it's like the body
of an HTML document or some sort of
canvas that you're painting these things
on depending on what you're using it's
actually called a canvas and that is
like the default for everything and so
from there you've got the default for
everything which you want to build that
up and then you want to start with all
of your specific controls say well this
is how this thing differs this is how I
want to approach this now you may have
something that is very complicated where
it's like I want to do this uh I've said
you very often you see it three
different ways I want to do it for like
a phone I want to do it for a sort of
standard mobile device and I want to do
it for a big honkin UI when I have you
know almost infinite real
estate the nice thing about doing this
kitchen sync app whether it's um a web
application or a graphical application
is what you're doing as your
within this these are your in the object
oriented World these are like your core
objects so what you can do is you can
actually inherit from the control for
each of those and then just boom you
bring in all the stuff that you need to
do and that's with and in the web world
that's called cascading stylesheets
basically that's your CSS is you're
going in there and you're saying these
are all of my uh
core uh objects that exist in the world
of HTML you know your headers your
anchors your Di your tables your forms
all that kind of stuff but then you're
also adding within that your classes
your style classes that you're going to
put on top of these or use within these
so they're going to be things like you
know you may have like this this uh if
it's a button that's great but if it's a
informative button versus an action
button uh enabled versus disabled and
those kinds of things that you can build
all that stuff in put it all on a page
and the nice thing is yes you can then
take that and use that as the foundation
for all of the work that you do and save
yourself copy and paste and things like
that and making sure that um all of
these things you know sync up properly
not only that the maintenance side of it
so if a customer suddenly says I don't
want that red I want this other red then
you can just change that it's like boom
everything just inherits that change
that's sort of the stretch goal for this
but the other thing I use that CW
customer is you want to be able to take
this and show it to them to some sent to
say early on say this is sort of how
these things are going to look this is
what a standard report page is going to
look like this is what a data entry page
is going to look like so your you know
your kitchen sync this is where it
becomes maybe an app and not just a page
but you may have three or four different
pages to say this is what this style
looks like this is what this style looks
like and you see that if you want a good
example of how that kind of thing can be
useful go out to Wordpress go to one of
their
themes and you will see effect L the
same thing is they have these themes
which is essentially CSS because usually
it's all of the default standard
WordPress tagging and all that kind of
stuff just with a CSS slapped on top of
it so those are the kinds of things
you're going to have a bonus before I
pass over to Michael is a another place
to look that we've we've both
experienced before and it is really a
useful place to go is go look up CSS zen
garden because it is really it is the
same HTML and they just put different
CSS and it looks dramatically different
which is in itself is that Zen it is
very like relaxing to just look through
those designs but it's also very helpful
because you can steal from some of those
and say oh I really like that style of
text or whatever they're using and then
you can utilize that within your own
site so I've I've laid a lot out there
and now I'm going to let Michael sort of
like you know digest some of that and
add all of his little sprinkles on top
thanks
Rob I really like how you set up the
kitchen sink app especially the way you
were talking about using The Styling in
if you look at the progression of the
web basically how the web and building
applications has kind of transformed
over the last couple of decades we went
from building nothing but desktop
applications and you had to kind of had
this looking feel for Windows you had
this looking feel for Mac uh and Linux
everything kind of was structured like
if you were doing Java it was kind of
all Java apps look the same regardless
of what platform you were on over time
we started having the internet building
web pages having more design structures
it got a lot better we now actually
could take those marketing documents we
had for companies those branding
documents and actually build the brand
into our applications into these
designs and then we got into the mobile
world and all these mobile devices and
now
we kind of had a paradigm shift so we
went from building desktop applications
building web applications building
mobile applications each of these at for
a time was Standalone applications they
did not play well together you could not
write one program and have it apply to
all well here we are today and there are
so many different Frameworks and
languages out there now where you can
write one application and push it out to
multiple devices so the cool thing is
especially with this kitchen sink app
is you can pick one of those languages
or one of those Frameworks and build it
and then at a push of a button you can
show your customer hey here's what a
desktop application would look like oh
but by the way if you want to translate
that and also have it as a web page
click a button here's what it looks like
on the web should look very similar and
then again bring up on a mobile device
here's what it looks like on mobile it
can be native applications they don't
just have to be here's a web browser
we're trying to conform it to the
browser you can actually say hey this is
what it looks like on Windows this is
what it looks like on Mac and ironically
enough they actually look like their
Windows Dev like their native
applications but in reality it's this
kind of neutral application you've built
and you're using all these stylings for
multiple devices it is awesome it is so
much fun I I've Loved this transition i'
fought through this through the '90s it
was hell uh in in the mid 2000s we
started having um cross platform or
cross mobile development because of a
couple lawsuits that thankfully opened
up some of the architectures on the
different devices so we were able to
start doing
things uh at a native level but for
multiple devices so you could actually
create a mobile app that worked on both
uh iPhones and Android devices instead
of just having okay I've got to build an
Android device oh okay I got to
duplicate the codebase and create and
xcode or an iPhone
application so this conversation we've
been having about styling and kitchen
syn apps is more back to that styling
that zen garden because we can now build
those applications in a way where we
basically have a
template every device has the same kind
of controls you have tables you have
buttons you have input Fields how it
looks is what you do with your styling
so you can create multiple different
styles at a push of a button just some
customizations so if you build this
kitchen syn app right it should be a
very simple copy paste change some
styling show it to your new customer and
it should look very similar to what they
currently have if they have anything at
all one interesting note is if you use
web tool if it's a web application and
they have no idea what their styling or
branding is you could use uh tools like
Chrome or Safari open up the developer
tools and over on the right when you go
to a web page you can see all the CSS
all the colors all The Branding right
there so you could go scrape that or
literally copy that put it into your
kitchen sync app and now all of a sudden
Your Design app looks very similar to
that company so there's a lot of
benefits to doing this and it it's a lot
of fun it really from me personally I
like playing with that it's like oh hey
let me go do this let me see how this
works works or if you do it right the
cool part
is the web language or I guess what
we're at now like 3.0 or hasn't really
changed in a while and even when it does
change they really only introduce new
tags they don't really take away too
much um there were a few things they
took away for security reasons to help
uh you know avoid uh fishing and spy
wear but the majority of the the
framework what is a web document what is
a mobile application it's pretty static
these days that doesn't change all the
other stuff changes all the styling
changes all the JavaScript changes all
the stuff behind the scenes that
actually help show those controls is
really what's important and that's what
you just kind of want to go through and
refresh yourself on from time to time
because then you have this app you can
just go hey this works pull it in change
some CSS and then present it to the
customer so that brings us to our
challenge for uh this episode for this
week I think and this really it comes
actually from something I was doing to
to do a a little lecture a little
technology session but I think it's it's
worthwhile for each of us to do this and
I'm actually going to go back and and
flesh this out a little bit more is
particularly if you're doing web
development create a kitchen sync app
for your stylesheet which is all it is
it's an HTML page H maybe a couple but
it's effectively it starts with one HTML
page and one CSS document now you may
have an application that's rather
complex and it needs you know eight
different CSS documents so be it put
them in order particularly like let's
say you're using like I use a lot I use
bootstrap very often uh so I'll have the
bootstrap Library
and then include your customization of
that your CSS library on top of that and
then have an HTML page or series of
pages that is it should be the views of
stuff the views of data that your
application has and it could be things
like a standard
homepage uh reporting page filter search
page uh you know things like that it
maybe like a profile page uh login log
out something like that now some of
these I think as you put these together
you will realize that there's probably
the idea of the general framework of
your page headers and Footers and
navigation and then there is uh like a
main section let's say a Content section
that is maybe report specific or data
entry specific or uh dashboard specific
you know things like that so that you
would the idea is for you to start
thinking through this and say well what
really is what are the core elements
that I'm using to build this interface
now I'm using the words you know CSS and
HTML page if you're building a desktop
application then build take what you've
done and build a stripped down version
of your application that is just the
guey now there are other things we can
do with this idea of kitchen SYNC apps
but this for this app you know this
excise that we want to do is we want to
have a sample of the interface that
ideally is going to be something that
when you're done with this you'll have
something that you can now very quickly
play around with it and say what if I
did this like what if I wanted to change
the color the know the general color
schemes of my application what would
that look like and how would that flow
um it's the kinds of things I think is
very good and Michael sort of got into
it you can do this within Chrome and
Safari and a lot of the browsers you can
start tweaking stuff and see like live
very quickly you can tweak a few values
and the next thing you know it's like oh
this is what that this is what it would
look like if I did this this is what it
look like if I did that but I think it's
nice to have the the full uh expanse of
what of all the different controls or
objects of your application and do that
so that's your your challenge is to
build that
out and if you can put it somewhere if
you want to share it I would love to see
it particularly the interesting thing is
how complicated you don't have to give
us the details but I'd be really
interested like how complicated you make
if you're using the CSS how complicated
do you make that do you have you know
five or 10 things do you have hundreds
of things because it really does get it
can get very long very quickly if you
have a lot of different controls and a
lot of different customizations to it
but I think that's a really good
exercise and you know before we come
around to next time is spend a little
bit of time and play with that if you
want to go flashback to our prior lesson
maybe do a Pomodoro or two where you are
just focused on building this kitchen
snc app out that being said we will wrap
this one up want to make sure we can
give you some time to get back into
whatever that work is that you're doing
you can build your katchen sync shoot
any feedback that you have if you have
ideas for some other uh building better
habits kinds of topics let us know info@
develop ur.com you can reach us on X
develop andur there is a develop andur
page out on Facebook you can go to
developer.com and leave us there's ways
to leave forms and contact us so you can
give us some feedback that way you can
like us and comment and all that kind of
good stuff wherever you find all the
places that you can find podcast uh you
can also go out to YouTube develop
actually the developing Channel there
you can see this plus lots of other
stuff and lead us feedback there that
being said with the big breath we get to
wrap this one up as well so go out there
and have yourself a great day a great
week and we will talk to you next time
and bonus material
so other than of course we've talked
about CSS zen garden look at other
things if you're
not re you know depending upon where
you're at at your skill level you know
if you are just kind of starting out and
really new at this check out things like
the W3 uh C sites they have lots of good
examples on building HTML and the types
of things you can do with CSS there
those are good starting points if you
are a more mid-level to Advanced
developer get a little creative you know
once you get the base down go one step
further especially if like you're
dealing with web navigations and that
apply a framework pick a framework one
of the coolest ones that I run into a
lot and I found a couple good books on
this is build a uh like a table that you
load data into and then how are you
going to load large amounts of data do
you need pagination are you going to
need a reactive search filter where you
just kind of type in you can build the
table with a bunch of divs and just make
it plain vanilla and then you can apply
CSS to add all those controllers at
runtime so then you could just oh I want
to show page Nation click this on yep
your page looks like that oh I don't
want page donation I want where you
click the uh load more button and it
just keeps adding to the list again just
tweak boom it's right there you don't
change the page you change the CSS you
change the controls and think that I'll
take that one step further as sort of a
bonus I think if you are a mid to
advanced level I think one of the things
that's really nice to have is not only
let's say in the stay in the web world
not only the CSS library but actually a
JavaScript library because there's going
to be a lot of things like that that you
start getting into you know clicking a
button and hiding a div clicking a
button and showing the div um some of
the the Ajax related stuff like I want
to click a button and have it submit a
form or I want to have it go out call an
API and then display a value that came
back you there uh sort of like messages
like you how do I do alerts or how do I
do uh shadow boxes and things like that
is like those kinds of things you know
modal windows and stuff like that how do
those work how does it look having those
sections of code to be able to show it
to see it to test it is awesome but it
also allows you a way to quickly then
like I said steal from that and say I
have just this little snippet of code
boom it's available now you may want to
be able to you know if you create a new
application you want may want to strip
that stuff down so you keep it as height
as possible but that's okay you can go
in and then you start with that and you
say well I'm not going to use this not
going to use this not going to use this
knock those things out and then you're
off and running and this goes back to go
ahead and throw it into your own little
personal repository have like a an
application uh template or something
like that that you can work from we will
talk more about that kind of stuff in
the future because we do have some
things there about how to uh some other
habits we want to build that are about
being a better developer through
standards and things like that that
being said I think we've wrapped this
one up we've given you guys enough stuff
to uh to think through and to uh you
know ruminate over we've got your your
task so let us know how that goes give
us feedback what are your thoughts on us
any additional conver uh like
recommendations and stuff like that that
you have uh and challenges as well if
you've got something like that even if
you're like oh I would love to see this
challenge but you don't even know what
the topic is behind it you know give us
that and we'll try to figure out a way
to go from the you know reverse engineer
something like that as always go out
there go out there I'm gonna learn how
to speak that's my challenge of the next
little thing go there and have yourself
a great day and we will talk to you next
time
[Music]
Transcript Segments
1.35

[Music]

28.279

so we're going to do oh we're going to

29.8

do CSS kitchen sinky type stuff this

32.48

time around oh we just hit record as far

34.96

as you know uh like Hello everybody we

38.079

were back and we were talking about this

40.6

episode I think this episode we've

41.96

decided last episode um we decided I

45.36

think we're g to do talk about like

46.399

kitchen sick apps and in particular uh

49

my focus I want to talk about like the

50.48

world of CSS and using an HTML page CSS

54.199

file uh you know style

56.719

sheet combining those kinds of things in

59.12

the world of

60.719

uh kitchen sink apps and how you can use

62.399

that not just

64

to uh it's useful from a developer point

66.88

of view but also this is to sort of show

68.799

some stuff off to your your customers so

71.4

I think we'll focus on this one uh any

73.159

comments before we dive in no I think we

75.799

talked through most of that in the

77.4

previous episodes all right because

79.759

you're such a whiner I'll give you my

81.32

little like here we

83.92

go hello and welcome back we are

87.92

building better developers we are

89.24

developing or we are in season 23 and we

92.2

are building better habits this season

94.56

so this time around we are going to talk

97.56

about something that actually Michael

99.36

has talked about many many times uh

101.2

particularly in the last season uh I

102.759

think we we we've really gotten into

106

detail on it before but we're going to

108.32

swing back around it's the idea of a

109.759

kitchen sink app and really what we're

111.52

going to look at is using um sort of

113.759

like a template or prototype to really

116.64

like jump start your development but

118.799

also to jump start your conversations

120.84

with your customers before we get into

122.96

that we should introduce ourselves and

125.24

so I'll start by introducing myself my

126.96

name is Rob Brad one of the founders of

128.8

develop andur of building better

130.2

developers also a founder of RB

132.2

Consulting where we help you Wrangle in

136.16

all of the Technologies out there we do

138.2

things from we start with like an

139.56

assessment we figure out where you are

141.599

we walk you through some things talk

143.2

about your business understand your

144.519

business your goals and then we find

146.84

ways to marry the technology you have

149.36

and thech techology that's available

151.56

with where you want to go so that you're

153.239

prepared not only when we walk away for

155.2

today but 6 months six years down the

158.12

road beyond that okay it's technology

159.959

you're going to have to look at stuff

161.56

but we do put things in place so you

163.319

don't have to reinvent the wheel five or

165.92

10 years from now we do that through

168.36

simplification automation integration we

170.92

find ways to leverage as all of the

174.239

right technology it's not necessarily

176.04

build versus buy it's not necessarily

178.92

you know um a monolithic approach versus

181.959

a uh you know ad hoc kind of approach or

185.28

alart kind of approach it is finding the

187.519

best way to put those things together

189.599

and to pick the best Solutions out of

192.68

how it works for you for your

194.56

organization good thing bad thing this

197.28

is

198.12

one that actually goes back to what I

201.319

just talked about in technology

203.12

sprawl I am working with a new customer

206.28

and uh they have the sprawl to end all

211.4

sprawls they have had Wild West there

215.2

it's a this a big organization they've

216.92

got a lot of stuff going on and they've

219.2

got a lot of very smart people solving a

221.36

lot of really complex problems which

224.36

means a lot of times when you're solving

226.48

a complex problem you're going to think

227.879

that I have to solve this in a very

230

customized way not entirely wrong but

232.4

that doesn't mean that you can't

233.48

leverage the work of others so they

236.959

haven't done that they have built this

239.2

huge thing and sometimes people move on

242.4

so there is a there is zero people in

244.76

the world that know all of the things

247.079

going on in this organization there just

248.84

isn't there's and there's a lot of stuff

250.439

out there that people have nobody knows

252.28

anything about it basically they just

253.879

know that it's out there and that's

254.92

about it so that's the bad thing this is

259.44

a a nightmare of sorts the good thing is

264

there's a lot of work to do I am not

266.479

going to get bored anytime soon and when

269.28

you have a fire of this

272.12

magnitude anywhere you start is at least

275.84

you're making progress so it's one of

277.68

those it's like you don't have to you

280.08

have a ton of work to do you can really

282.759

start literally anywhere and I don't

285.52

think anybody's ever going to come back

287.16

and say no you shouldn't have worked on

288.8

that you should have worked on this

289.88

instead because it's all like super

292.28

critical priority so it's one of those

295.759

it's like okay you the bad thing is

297.68

there's a lot of work to do the good

299.28

thing is you can start anywhere and

301.24

you're immediately going to be making

302.4

some progress for it I am going to start

305.24

with my big world of things I need to do

307.68

with passing stuff over to Michael so he

309.56

introduce

310.6

himself hey everyone my name is Michael

312.919

malash one of the co-founders of

315.12

developer building better developers I'm

317.639

also the founder of Envision QA where we

320.039

build small uh where we help small to

323.12

midsize companies and Healthcare

325.12

professionals build software that meets

327.8

their needs we can help you with

329.039

customized soft software we can help you

331

with existing Legacy software and our

333.6

main focus is really building software

335.919

with testing in mind so everything we

337.72

build is test driven so that any changes

340.4

to the software we know immediately

342.72

upfront when something breaks versus

344.759

getting it in front of the users and you

346.56

cannot lose that uh you know your

349.08

credibility when software goes out

350.639

that's bad good and bad uh I'll start

353.759

with the bad um working on a project

357.28

we're kind of at the tail end of it and

359.68

there's no clear direction from the

362.84

business as to where we're going or if

365.88

we're even going to be working on this

368.88

project in the months to come so we're

370.68

kind of in that little limbo and you

372.72

kind of we're kind of getting that

374.28

anxiety of you know are we going to be

376.36

working on this or not uh so it's kind

378.639

of one of those things where it's like

379.8

you know do you jump ship or not the

382.479

good thing is kind of knowing that's

384.8

coming along um working with other uh

388.24

companies trying to bring in more

389.639

business and also looking at some

391.72

additional skill sets that I can build

394.24

into and expand my company into those

398

roles so let's talk about a kitchen sync

401.52

app and I want to I want to have my

403.759

focus is how you utilize this as a way

408.8

to Envision sort of as a more like in

412.36

the requirements and design phase as a

414.88

way to Envision what you're going to

416.919

eventually build now some of it is uh

421.28

ideal definitely some of this is very

423.12

much design driven this is very much

425.24

about design because to me it goes back

428.319

to really like the core of component

430.96

development and object-oriented approach

432.879

and stuff like that where even in a

435.56

visual sense it makes a lot of sense to

438.36

have objects and controls and most

442.36

Frameworks Embrace this now so there are

445.879

things you have particularly if you if

448.039

you look at the world of

450.24

like for example responsive design

452.24

whether it's you know angular or

454.68

bootstrap or uh I forget wa U not

458.44

flutter but I think it's the all of

460.44

those different things those different

461.879

libraries out there I for so much I

463.28

always like mix and match their names

465.24

they're basically the same thing just

467.4

you know slightly different in the

469.599

syntax but the core thing is that like

472.319

this is what a table looks like this is

474.68

what uh a data entry form looks like

477.24

this is what a menu item looks like this

478.879

is what a

480

a button looks like you know those kinds

482.4

of things those are all controls and

486.28

those are all going to have a specific

488.759

look and feel for your application now

491.599

this holds whether you are using web

494.039

applications or whether you're using any

496.039

other visual like a desktop

498.159

application back in the day when I built

500.44

a lot of desktop applications one of the

502.4

first things I would do is have a page

504.759

and I would go through and I would build

507

controls that I was going to use all

509.56

through the application and it was the

511.319

kinds of things where it was like with

512.64

this control I'm always going to have

514

like maybe a a micrel kind of thing or a

517.479

specific kind of label thing uh a lot of

519.959

times I would group control so I would

521.519

have things like this is what an address

523.519

form looks like this is what a uh

526.08

contact form looks like this is what

528.2

your basic input Fields look like as far

531

as labels and the um the width of the of

535.16

the text entry this is what buttons look

538.04

like this is what a uh a visual

541.64

container looks like you know in the web

544.04

World it be things like spans versus

545.8

divs and uh field sets and forms and

549

some of those kinds of things it's like

551

do I have a uh do I have a different

553.56

background color do I have a border do I

555.6

have a dash border do I have an inset do

557.839

I have an outset all of those kinds of

561

design

562.6

choices I would do that from the start

564.959

and that's where this kitchen sync app

566.88

kind of thing looks like it's it goes to

569.56

of having a page in this sense you have

571.64

a page or a form and you have all of

574.32

your all your controls live there so you

577.36

can think about when you're building

579.16

your

580.2

application let's say it's a standard

582

web application you probably have a and

584.56

we'll just for lack of better terms

585.76

we'll just say let's assume you have a

587.519

header a footer uh some sort of

589.6

navigation you know menu type items

591.68

You've Got U form entry Fields you've

594.64

got reports you've got table kind of

597.04

stuff you've got search forms you've got

598.88

filters

599.959

you've got lists you've got dropdowns

603.399

those things there's all these things

605.56

that are part of your application part

608.079

of what you're going to deliver and so

609.8

what you do is you build a page you can

611.88

just throw random data into there

613.64

basically but the key is to show all of

615.44

these controls and then for you to be

617.56

able to see all of them and decide how

619.76

you want to do it because there's going

621

to be some things that you're going to

622.16

say particularly in the world of web and

624.64

this happens really in I think almost

626.6

every user interface

629.44

framework and structures out there you

631.48

start with a a panel you start with some

636.6

sort of Base you know it's like the body

640.12

of an HTML document or some sort of

642.639

canvas that you're painting these things

644.279

on depending on what you're using it's

646.04

actually called a canvas and that is

648.839

like the default for everything and so

651.72

from there you've got the default for

653.32

everything which you want to build that

654.639

up and then you want to start with all

656.88

of your specific controls say well this

658.88

is how this thing differs this is how I

661.8

want to approach this now you may have

664.56

something that is very complicated where

666.72

it's like I want to do this uh I've said

669.36

you very often you see it three

670.44

different ways I want to do it for like

671.639

a phone I want to do it for a sort of

673.92

standard mobile device and I want to do

675.48

it for a big honkin UI when I have you

678.079

know almost infinite real

680.56

estate the nice thing about doing this

683.04

kitchen sync app whether it's um a web

685.839

application or a graphical application

688.12

is what you're doing as your

689.839

within this these are your in the object

692.6

oriented World these are like your core

693.959

objects so what you can do is you can

695.76

actually inherit from the control for

697.76

each of those and then just boom you

699.2

bring in all the stuff that you need to

701.079

do and that's with and in the web world

704.76

that's called cascading stylesheets

707.16

basically that's your CSS is you're

709.519

going in there and you're saying these

710.8

are all of my uh

713.6

core uh objects that exist in the world

715.959

of HTML you know your headers your

717.72

anchors your Di your tables your forms

721.04

all that kind of stuff but then you're

723.44

also adding within that your classes

726.2

your style classes that you're going to

727.8

put on top of these or use within these

730.399

so they're going to be things like you

732.48

know you may have like this this uh if

735.279

it's a button that's great but if it's a

737.44

informative button versus an action

739.32

button uh enabled versus disabled and

742.16

those kinds of things that you can build

743.88

all that stuff in put it all on a page

746.76

and the nice thing is yes you can then

748.56

take that and use that as the foundation

750.56

for all of the work that you do and save

752.36

yourself copy and paste and things like

754.519

that and making sure that um all of

757.639

these things you know sync up properly

759.32

not only that the maintenance side of it

761.6

so if a customer suddenly says I don't

763.639

want that red I want this other red then

766.12

you can just change that it's like boom

767.519

everything just inherits that change

769.959

that's sort of the stretch goal for this

772.76

but the other thing I use that CW

774.68

customer is you want to be able to take

777.279

this and show it to them to some sent to

779.56

say early on say this is sort of how

782.44

these things are going to look this is

783.639

what a standard report page is going to

785.72

look like this is what a data entry page

788.079

is going to look like so your you know

789.8

your kitchen sync this is where it

791.72

becomes maybe an app and not just a page

794.36

but you may have three or four different

795.56

pages to say this is what this style

797.24

looks like this is what this style looks

798.8

like and you see that if you want a good

801.079

example of how that kind of thing can be

802.959

useful go out to Wordpress go to one of

805.48

their

806.36

themes and you will see effect L the

809.56

same thing is they have these themes

811.8

which is essentially CSS because usually

815.24

it's all of the default standard

818.32

WordPress tagging and all that kind of

820.32

stuff just with a CSS slapped on top of

822.839

it so those are the kinds of things

824.44

you're going to have a bonus before I

826.24

pass over to Michael is a another place

828.48

to look that we've we've both

830.199

experienced before and it is really a

831.92

useful place to go is go look up CSS zen

834.519

garden because it is really it is the

837.519

same HTML and they just put different

839.92

CSS and it looks dramatically different

844.24

which is in itself is that Zen it is

846.48

very like relaxing to just look through

848.839

those designs but it's also very helpful

851.079

because you can steal from some of those

853.16

and say oh I really like that style of

856.16

text or whatever they're using and then

858.44

you can utilize that within your own

860

site so I've I've laid a lot out there

862.88

and now I'm going to let Michael sort of

864.8

like you know digest some of that and

866.639

add all of his little sprinkles on top

870.32

thanks

871.24

Rob I really like how you set up the

873.88

kitchen sink app especially the way you

875.6

were talking about using The Styling in

879.639

if you look at the progression of the

882.36

web basically how the web and building

885.36

applications has kind of transformed

887.639

over the last couple of decades we went

889.839

from building nothing but desktop

891.36

applications and you had to kind of had

893.639

this looking feel for Windows you had

895

this looking feel for Mac uh and Linux

897.92

everything kind of was structured like

900.36

if you were doing Java it was kind of

902.92

all Java apps look the same regardless

905.04

of what platform you were on over time

907.639

we started having the internet building

909.759

web pages having more design structures

912.279

it got a lot better we now actually

914.16

could take those marketing documents we

916.44

had for companies those branding

918.32

documents and actually build the brand

920.8

into our applications into these

923.959

designs and then we got into the mobile

926.32

world and all these mobile devices and

928.56

now

929.56

we kind of had a paradigm shift so we

931.24

went from building desktop applications

933.839

building web applications building

935.839

mobile applications each of these at for

938.6

a time was Standalone applications they

941.399

did not play well together you could not

942.959

write one program and have it apply to

945.16

all well here we are today and there are

948.48

so many different Frameworks and

949.959

languages out there now where you can

951.44

write one application and push it out to

954.24

multiple devices so the cool thing is

957.319

especially with this kitchen sink app

959.44

is you can pick one of those languages

961.319

or one of those Frameworks and build it

964.279

and then at a push of a button you can

966.279

show your customer hey here's what a

968.199

desktop application would look like oh

970.279

but by the way if you want to translate

971.8

that and also have it as a web page

973.8

click a button here's what it looks like

975.6

on the web should look very similar and

977.6

then again bring up on a mobile device

980.279

here's what it looks like on mobile it

982.519

can be native applications they don't

984.92

just have to be here's a web browser

987.279

we're trying to conform it to the

988.519

browser you can actually say hey this is

991.079

what it looks like on Windows this is

992.88

what it looks like on Mac and ironically

995.48

enough they actually look like their

997.56

Windows Dev like their native

999.24

applications but in reality it's this

1002.72

kind of neutral application you've built

1006

and you're using all these stylings for

1008.639

multiple devices it is awesome it is so

1011.72

much fun I I've Loved this transition i'

1014.44

fought through this through the '90s it

1017.6

was hell uh in in the mid 2000s we

1020.48

started having um cross platform or

1023.8

cross mobile development because of a

1026.079

couple lawsuits that thankfully opened

1027.72

up some of the architectures on the

1029.319

different devices so we were able to

1031.48

start doing

1033.199

things uh at a native level but for

1035.959

multiple devices so you could actually

1037.48

create a mobile app that worked on both

1040.24

uh iPhones and Android devices instead

1043.36

of just having okay I've got to build an

1044.839

Android device oh okay I got to

1046.6

duplicate the codebase and create and

1049.039

xcode or an iPhone

1052.6

application so this conversation we've

1054.76

been having about styling and kitchen

1056.559

syn apps is more back to that styling

1059.4

that zen garden because we can now build

1061.679

those applications in a way where we

1065.08

basically have a

1066.72

template every device has the same kind

1069.28

of controls you have tables you have

1071.64

buttons you have input Fields how it

1074.72

looks is what you do with your styling

1077.44

so you can create multiple different

1079.6

styles at a push of a button just some

1082.44

customizations so if you build this

1084.52

kitchen syn app right it should be a

1087.52

very simple copy paste change some

1090.4

styling show it to your new customer and

1092.679

it should look very similar to what they

1095.36

currently have if they have anything at

1097.2

all one interesting note is if you use

1100.919

web tool if it's a web application and

1103.4

they have no idea what their styling or

1105.12

branding is you could use uh tools like

1108.84

Chrome or Safari open up the developer

1111.08

tools and over on the right when you go

1113.159

to a web page you can see all the CSS

1115.679

all the colors all The Branding right

1117.72

there so you could go scrape that or

1119.679

literally copy that put it into your

1121.679

kitchen sync app and now all of a sudden

1123.72

Your Design app looks very similar to

1126.28

that company so there's a lot of

1128.24

benefits to doing this and it it's a lot

1131.24

of fun it really from me personally I

1134.76

like playing with that it's like oh hey

1136.52

let me go do this let me see how this

1138.4

works works or if you do it right the

1142

cool part

1144.039

is the web language or I guess what

1148.159

we're at now like 3.0 or hasn't really

1151.4

changed in a while and even when it does

1154.48

change they really only introduce new

1157.88

tags they don't really take away too

1160.2

much um there were a few things they

1162.32

took away for security reasons to help

1164.96

uh you know avoid uh fishing and spy

1167.76

wear but the majority of the the

1170.4

framework what is a web document what is

1173.2

a mobile application it's pretty static

1175.96

these days that doesn't change all the

1178.72

other stuff changes all the styling

1180.48

changes all the JavaScript changes all

1182.64

the stuff behind the scenes that

1184.24

actually help show those controls is

1186.88

really what's important and that's what

1188.52

you just kind of want to go through and

1189.96

refresh yourself on from time to time

1192.4

because then you have this app you can

1194.44

just go hey this works pull it in change

1197.28

some CSS and then present it to the

1202.08

customer so that brings us to our

1204.96

challenge for uh this episode for this

1208.32

week I think and this really it comes

1211.919

actually from something I was doing to

1213.24

to do a a little lecture a little

1216.2

technology session but I think it's it's

1218.24

worthwhile for each of us to do this and

1220.12

I'm actually going to go back and and

1221.28

flesh this out a little bit more is

1224.28

particularly if you're doing web

1226.4

development create a kitchen sync app

1230.039

for your stylesheet which is all it is

1234.32

it's an HTML page H maybe a couple but

1236.679

it's effectively it starts with one HTML

1238.32

page and one CSS document now you may

1242.679

have an application that's rather

1244.32

complex and it needs you know eight

1247.08

different CSS documents so be it put

1250.64

them in order particularly like let's

1252.919

say you're using like I use a lot I use

1254.6

bootstrap very often uh so I'll have the

1257.48

bootstrap Library

1259.919

and then include your customization of

1262.6

that your CSS library on top of that and

1266.08

then have an HTML page or series of

1268.6

pages that is it should be the views of

1272.559

stuff the views of data that your

1274.279

application has and it could be things

1276.36

like a standard

1278

homepage uh reporting page filter search

1282.08

page uh you know things like that it

1284.559

maybe like a profile page uh login log

1288.039

out something like that now some of

1290.72

these I think as you put these together

1292.08

you will realize that there's probably

1293.52

the idea of the general framework of

1296.6

your page headers and Footers and

1298

navigation and then there is uh like a

1301.679

main section let's say a Content section

1304.4

that is maybe report specific or data

1307.24

entry specific or uh dashboard specific

1311

you know things like that so that you

1312.84

would the idea is for you to start

1314.44

thinking through this and say well what

1315.919

really is what are the core elements

1318.76

that I'm using to build this interface

1321.559

now I'm using the words you know CSS and

1323.559

HTML page if you're building a desktop

1326.64

application then build take what you've

1330.279

done and build a stripped down version

1332.48

of your application that is just the

1335.08

guey now there are other things we can

1338.36

do with this idea of kitchen SYNC apps

1340.12

but this for this app you know this

1342.24

excise that we want to do is we want to

1344.6

have a sample of the interface that

1348

ideally is going to be something that

1349.32

when you're done with this you'll have

1351.32

something that you can now very quickly

1354.12

play around with it and say what if I

1356.52

did this like what if I wanted to change

1359.6

the color the know the general color

1362.279

schemes of my application what would

1364.559

that look like and how would that flow

1368.44

um it's the kinds of things I think is

1370.159

very good and Michael sort of got into

1371.72

it you can do this within Chrome and

1373.559

Safari and a lot of the browsers you can

1375.12

start tweaking stuff and see like live

1378.559

very quickly you can tweak a few values

1380.32

and the next thing you know it's like oh

1381.36

this is what that this is what it would

1382.76

look like if I did this this is what it

1384.12

look like if I did that but I think it's

1386.48

nice to have the the full uh expanse of

1390.88

what of all the different controls or

1392.919

objects of your application and do that

1394.72

so that's your your challenge is to

1396.48

build that

1397.52

out and if you can put it somewhere if

1399.96

you want to share it I would love to see

1401.2

it particularly the interesting thing is

1403.559

how complicated you don't have to give

1405.88

us the details but I'd be really

1407.12

interested like how complicated you make

1408.919

if you're using the CSS how complicated

1410.799

do you make that do you have you know

1412.919

five or 10 things do you have hundreds

1415.12

of things because it really does get it

1418.159

can get very long very quickly if you

1420.72

have a lot of different controls and a

1422.24

lot of different customizations to it

1423.96

but I think that's a really good

1425.52

exercise and you know before we come

1427.72

around to next time is spend a little

1430.279

bit of time and play with that if you

1432.2

want to go flashback to our prior lesson

1434.72

maybe do a Pomodoro or two where you are

1437.76

just focused on building this kitchen

1440.24

snc app out that being said we will wrap

1443.4

this one up want to make sure we can

1446.039

give you some time to get back into

1448.159

whatever that work is that you're doing

1449.64

you can build your katchen sync shoot

1451.84

any feedback that you have if you have

1453.44

ideas for some other uh building better

1456.08

habits kinds of topics let us know info@

1458.159

develop ur.com you can reach us on X

1460.84

develop andur there is a develop andur

1462.96

page out on Facebook you can go to

1465.039

developer.com and leave us there's ways

1467.039

to leave forms and contact us so you can

1468.96

give us some feedback that way you can

1471.24

like us and comment and all that kind of

1472.799

good stuff wherever you find all the

1475.24

places that you can find podcast uh you

1477.279

can also go out to YouTube develop

1479.2

actually the developing Channel there

1481

you can see this plus lots of other

1483.2

stuff and lead us feedback there that

1486.2

being said with the big breath we get to

1487.88

wrap this one up as well so go out there

1490.279

and have yourself a great day a great

1491.96

week and we will talk to you next time

1496.24

and bonus material

1499.799

so other than of course we've talked

1501.64

about CSS zen garden look at other

1504.32

things if you're

1506.48

not re you know depending upon where

1508.76

you're at at your skill level you know

1511.88

if you are just kind of starting out and

1514.399

really new at this check out things like

1516.88

the W3 uh C sites they have lots of good

1520.799

examples on building HTML and the types

1523.72

of things you can do with CSS there

1525.559

those are good starting points if you

1527.76

are a more mid-level to Advanced

1530.399

developer get a little creative you know

1532.919

once you get the base down go one step

1535.72

further especially if like you're

1537.12

dealing with web navigations and that

1539

apply a framework pick a framework one

1541.159

of the coolest ones that I run into a

1543.52

lot and I found a couple good books on

1546.08

this is build a uh like a table that you

1550.44

load data into and then how are you

1553.36

going to load large amounts of data do

1555.24

you need pagination are you going to

1557.279

need a reactive search filter where you

1559.399

just kind of type in you can build the

1561.919

table with a bunch of divs and just make

1564.32

it plain vanilla and then you can apply

1566.399

CSS to add all those controllers at

1569.6

runtime so then you could just oh I want

1571.52

to show page Nation click this on yep

1573.6

your page looks like that oh I don't

1575.279

want page donation I want where you

1577.08

click the uh load more button and it

1578.96

just keeps adding to the list again just

1581.32

tweak boom it's right there you don't

1583.52

change the page you change the CSS you

1586

change the controls and think that I'll

1588.96

take that one step further as sort of a

1590.52

bonus I think if you are a mid to

1592.24

advanced level I think one of the things

1593.799

that's really nice to have is not only

1596.64

let's say in the stay in the web world

1598.399

not only the CSS library but actually a

1601.279

JavaScript library because there's going

1603.08

to be a lot of things like that that you

1604.84

start getting into you know clicking a

1607.679

button and hiding a div clicking a

1609.2

button and showing the div um some of

1611.919

the the Ajax related stuff like I want

1614.159

to click a button and have it submit a

1616.48

form or I want to have it go out call an

1619.679

API and then display a value that came

1621.96

back you there uh sort of like messages

1625.08

like you how do I do alerts or how do I

1626.96

do uh shadow boxes and things like that

1629.76

is like those kinds of things you know

1633.32

modal windows and stuff like that how do

1634.919

those work how does it look having those

1637.279

sections of code to be able to show it

1639.679

to see it to test it is awesome but it

1642.679

also allows you a way to quickly then

1646.08

like I said steal from that and say I

1647.919

have just this little snippet of code

1649.96

boom it's available now you may want to

1652.44

be able to you know if you create a new

1654.24

application you want may want to strip

1655.96

that stuff down so you keep it as height

1658.2

as possible but that's okay you can go

1660.159

in and then you start with that and you

1661.48

say well I'm not going to use this not

1662.559

going to use this not going to use this

1663.919

knock those things out and then you're

1666.08

off and running and this goes back to go

1668.12

ahead and throw it into your own little

1669.279

personal repository have like a an

1672.519

application uh template or something

1674.679

like that that you can work from we will

1676.44

talk more about that kind of stuff in

1677.799

the future because we do have some

1679.159

things there about how to uh some other

1682.96

habits we want to build that are about

1684.48

being a better developer through

1685.72

standards and things like that that

1688.72

being said I think we've wrapped this

1690.679

one up we've given you guys enough stuff

1692.44

to uh to think through and to uh you

1696.24

know ruminate over we've got your your

1698.12

task so let us know how that goes give

1701.64

us feedback what are your thoughts on us

1703.399

any additional conver uh like

1705.519

recommendations and stuff like that that

1707.12

you have uh and challenges as well if

1709.679

you've got something like that even if

1710.84

you're like oh I would love to see this

1712.2

challenge but you don't even know what

1713.44

the topic is behind it you know give us

1715.72

that and we'll try to figure out a way

1717

to go from the you know reverse engineer

1720.039

something like that as always go out

1722.12

there go out there I'm gonna learn how

1724.679

to speak that's my challenge of the next

1726.559

little thing go there and have yourself

1728.24

a great day and we will talk to you next

1731.159

time

1732.83

[Music]