>> Hardware, macOS, that's not hardware.
Hi, I'm John Papa and today I'm with.
>> Christina Warren
>> We're going to talk about five things
about developing on a Mac.
Thing number one, developing on a Mac,
hardware. What do we need to know?
>> All right. So, you can do a couple of things.
You can have an iMac an iMac Pro.
There is a Mac Pro, although for anybody watching
this in the middle of 2018,
I would advise against getting one,
because Apple's going to be releasing
a new Mac Pro TBD so.
>> In the fall area maybe.
>> They haven't said so,
but what we know it's coming.
So, that the current Mac Pro is is fairly outdated,
so I would avoid that.
But you can get a MacBook, MacBook Pro,
or iMac or, iMac Pro,
depending on what you want.
I would say for most developers,
the MacBook Pro, is probably the best choice.
There are some new models that came out in
July of 2018 that have either four or six quatrz.
So, they're very powerful,
and yes they have a keyboard,
that some people don't like.
But these are very powerful machines.
It's going to be good enough to do-
they're doing web development or
you're building Swift or Swift apps,
or Objective-C apps, being very
powerful and very good for development.
>> Thing number two. I like to
use my iPad as a second monitor.
Can you talk more about how
that could help people out too.
>> Yeah, I like to do this as well.
So, what you can do if you have an iPad,
you can basically connect it to
your MacBook Pro, or your MacBook,
or your iMac, or whatever,
and use it as a second display.
What's great about this app, there's an app called Duet.
What's nice about it, is that it actually
physically connects to your Mac.
So, you use your lightning cable,
you plug it in either USB-C or USB,
and it mirrors content,
acts as a second screen.
This can be really beneficial if you're traveling,
and you need a small second screen when you
travel because it's not
easy to travel with a secondary monitor,
or even if you're just at
home and you've got your laptop,
and you're like, "Okay, I would like
to have a bigger screen."
I like this app a lot. I know you do too,
because it doesn't have a lot of lag.
Because the problem with some of the other,
like the Bluetooth solutions,
is that they're laggy.
So, they're a few seconds behind.
That might not be a big deal in some cases,
but especially if you're coding a web page or something,
just having a little bit of
lag can really be frustrating.
>> So, it's a nice cheap way, inexpensive way,
if you already have an iPad to have
a high resolution monitor-
>> Yeah.
>> -as an extension.
>> Exactly. What's also great too is,
if you were to, say,
if you're developing something for iOS,
you probably need to have one of those spaces,
anyway, to test things on.
So, you might as well use it as a secondary screen too.
>> Thing number three. Writing code on a Mac,
there's a product called.
>> VS code. So, obviously,
you can use Xcode, which is the official Apple IDE.
That works really well for Objective-C,
and for Swift, and things like that.
But if you want a really great code editor,
VS Code is not just a text editor but it's,
kind of, a full suite of things.
I, honestly, before I started working at Microsoft,
I never thought that I would
genuinely be able to say that
the best text editor on the Mac,
by far, is made by Microsoft, but it's true.
You can get all kinds of extensions
for any of the languages
you write and whether it's JavaScript,
or Ruby, or Python,
but actually there is a extension for Swift.
So, in most cases, if you're writing in Swift,
it probably makes sense to use
Xcode because you're going be building your projects.
But if you're just editing certain project files,
and you want to make it
consistent with your other environment,
there's actually a Swift extension
that you can check out,
that's maintained, that has code completion,
and even has a built-in debugger.
>> Super, super fast editing, VS Code.
>> VS Code is amazing.
>> Thing number four. How did we
do continuous integration and
deployment for a Mac on Azure? This is very cool.
So, actually, there's something called
a Visual Studio app center,
and there are different build machines that are actually
profiled to work with macOS and iOS.
So, basically, you've got a machine in the cloud that
is running whatever version of iOS you need.
It's got a built-in stack, so,
you can do your CICD workloads.
So, if you're building an app using Cordova, or Ionic,
or another kind of mobile development framework,
you could actually do all your build stuff and
your testing in the cloud.
See the errors. You can
even do things if you wanted to test,
so you just see how it's going to look and perform on
various OS versions and various screen sizes.
Say, you don't have all those physical devices.
You might have like the iPhone 10 and the iPhone 6 Plus,
but you don't have some of the other iterations.
You can do those tests in the cloud too,
and it's really easy to do.
>> So, developing for the web,
with mobile applications made much easier this way?
>> Definitely, and again,
what's great about it is that,
if your home Mac isn't that powerful,
or even if you're on a machine that, say,
you're not using a Mac but you need
to do some symbolic deployment stuff,
you can do it, because it's all in the cloud.
>> That link for that is?
>> It's right there. It's somewhere, somewhere.
>> Thing number five.
Sometimes, I'm building on a Mac
but that's not where I'm deploying to.
So, how do we work with that?
>> We containerize all the things. So, docker.
So, Docker for Mac is actually great,
because you can download a Docker image,
or many of them, and
just deploy them using docker for Mac.
What's great about this, is you can basically
make your Mac setup
look and act identical to what your server setup is.
So, because a lot- your MacOS is not really a server OS.
You're more than likely going to be deploying on Linux.
So, it makes a lot of sense
to just make sure that your build environment,
your test environment staging is all the same.
What's also nice about this is, say,
you're using something that
doesn't have a native Mac SDK,
but you want to use some of those features.
Well then, you can just use the docker container
that has that support,
and then do all your build step.
You can still use your VS Code,
or whatever tools you need to do,
and work with it just like you would anything else.
Then if you did want to push changes to production,
you can feel confident
that the space is going to look and act the same.
>> Yeah. We've got some great links
for people to follow on this,
and how you can use docker to build,
and basically mimic what you'd be doing in production.
Christina thank you for coming on.
>> Thank you for having me John and
happy coding and development everybody.
>> Thank you everybody. This was
five things about developing on a Mac.