>> Thanks. I'm going to talk a little bit about using
Space APIs to create out of this world apps.
First, let me introduce myself.
I'm Linda Nichols. I'm on the Global Blackbelt Team at Microsoft,
which is the coolest name of a team ever in the universe,
but especially at Microsoft.
We focus on app modernization,
app innovation, and we love Power Apps and infusion development.
I included this photo of myself here
because I am presenting live in-person,
which hasn't happened in awhile,
to some girl scouts.
Right here, we're actually doing
some low-code development to move robots,
specifically drones.
I love low-code.
I love robots, but even more than robots, I love space.
Here's my scenario here for Space Apps.
I want to make lots of cool Space Apps.
There's a ton of data out there.
There are NASA APIs.
There are APIs about
near-Earth objects, and meteors, and weather on Mars,
and the photo of the day,
and who's in space, and where is the space shuttle.
There's so much data out there that you can
hit an API and get back all of this data in JSON format,
and so I want to make all of these into apps.
I really needed a really fast way
to create lots of really nice-looking applications.
As I say here, I'm not a UI developer.
I can create the code to make frontends,
but they do not look good
because that is just not where I'm good at.
So that's the great thing about Power Apps
is that you can create nice UIs.
Also, I am a professional developer,
but I do love low-code development,
so I was really excited to then use
Power Apps to create my Space Apps.
I want to talk a little bit about what
modern low-code development looks like.
On the left here, we've got Visual Studio that could be
Visual Studio code that really could be your IDE of choice,
GitHub, your revision control.
These are my professional
developer toolset right here on the left.
These are things I'm comfortable with as a professional developer.
On the right, I'm starting from the bottom,
the Azure app services.
I really love serverless development.
For me, this is going to be Logic Apps.
It's going to be Azure functions.
It's going to be the low infrastructure,
low overhead types of app services.
Then those are then fronted by API Management.
Now, API Management here gives me
a ton of features for my application.
So I can aggregate lots of APIs together,
perhaps from App Services.
I even have microservices.
It also provides an extra layer of security if I need that.
Right here, especially in the frame of talking about Power Apps,
it creates a level of obstruction.
Really, if I'm creating
these custom connectors for my Power Apps,
then they can use the URL for my API Management APIs.
Then whatever changes on the app side,
maybe I change the backing services or even I had external API,
that URL stays the same and
the custom connector stays largely the same.
On the top here, I have Teams,
because Teams is where I live,
this is where my team lives.
This is our main productivity tool.
If I'm talking about Space Apps,
I want to share the Space Apps with my team,
the easiest way to do that is to create
Power Apps for Teams so that when we are in our Team's channel,
we can just see our cool space data.
Now, we're going to talk about fusion development,
which we've heard a few times here even since
the keynote with April and Scott,
but I just want to dive in to how this applies to my Space Apps.
On the left again, I have my professional developer toolset.
An idea here with Fusion Development is that
the professional development services are then
interfacing with the citizen developers
and their Power Platform low-code toolset.
The Professional Developers are using the revision control,
using their IDE,
and they're creating the Azure services,
they're creating the APIs.
They are creating services in Azure, perhaps the infrastructure.
Then maybe they're also creating the custom connectors for
Power Platform so that
the citizen developers can then connect to the services.
We saw a lot about custom connectors
in [inaudible] presentation also.
Then with Fusion Development comes Fusion Development Teams.
These are our pro developers and our citizen developers.
I want to talk about this a lot because
the citizen developers really support the pro developers.
The pro developers are technically -trained developers.
They live in the code.
They write code all the time. They write backends,
they write the frontends,
but they are not subject matter experts in everything.
The citizen developers are the subject matter experts.
They are the best in their trade.
They know their trade very well,
and they're also probably tinkerers.
They're probably people who are at least a little bit technical.
Maybe they like Excel,
maybe they like Access,
maybe they used to be called Shadow IT.
For this scenario here,
we have our Pro Devs on our space team,
our Pro Devs are the astronauts.
The astronauts are very busy.
They are very highly trained.
They are laser-focused on
flying space shuttles and about everything related to space.
They do not have time to learn how to mine an asteroid.
We bring in these citizen developers who are experts
in mining and would know how to mine pretty much any material.
We form a team with
the pro developers and citizen
developers together with the astronauts,
then supporting the mining team to prevent the end of the world.
In the questions, feel free to ask me
anything about Armageddon canon,
or about potholes in the movie Armageddon,
or you can tweet me at @lynnaloo.
Let's talk a little bit about Space Data APIs.
I didn't include Azure Space in here,
but that's a whole other really cool thing
that we can interface with Power Apps.
But right now, I'm talking about more
like open source Space APIs.
NASA has many APIs just under their umbrella.
I have created apps before with their near-Earth objects,
API to predict which meteors might strike or might not strike.
Where is the Space Station is another great space API.
Then we have the solar system open data,
and finally, SpaceX.
This is specifically the unofficial subreddit SpaceX REST API.
This is what I ended up using for
one of my Space Apps, I should say,
it's not the only Space App,
because the SpaceX API has some really great data on the crew.
I felt for my app,
everything starts with the crew.
The crew goes on missions,
the crew rides in vehicles,
the crew operates the payload,
so I would like to start with a crew directory,
and then from there,
I can look at some other information.
This is what my very basic app looks like.
I have a Logic App in Azure that's there, my data parser.
That Logic App then pulls in data from
this open source SpaceX API,
and it sends that data out to an Azure function.
An Azure function is a function as
a Service PAAS offering within Azure.
This allows you to run really small bits of code,
very specific, almost nanoservices,
so that's great for parsing data.
If I have something that's really big and
something that doesn't make sense in Logic Apps,
which is really a workflow low-code tool.
The two work together really well.
They're both in our serverless offering.
Now in front of that,
Logic Apps, their HTTP trigger,
I have wrapped here in this getCrew API and API management.
Like I said, that offers a layer of obstraction
but also allows me to create these subscription keys.
It can have a little bit of extra security from end users,
and then for my Power App.
My Power App is then the crew application.
Now, I'm going to do a little bit of demoing here.
First of all, I just want to show in GitHub
what this API is that I'm using.
This is unofficial, but it's a really great Node.js API.
It's really good documentation, and there's a lot of
good information here for my application.
Now I'm going to go to the Azure Portal.
This is my Logic App designer.
If you're not familiar with Logic Apps,
it is a low code workflow and integration tool.
It's very powerful, and it's built
on top of the same framework as Power Automate.
Initially, the trigger for this workflow is
this HTTP request and that
URL is what I am essentially wrapping in API management.
Every time this is then triggered,
and there's a hit made to the API,
then it goes out to SpaceX,
it calls this crew Query.
Then it sends that,
the result of that then, to this parse crew data.
The reason I'm parsing is because there's
a lot of data that comes back,
and really it's not necessary for
my app I .want my app to be very performant.
I really only want it to have the data that it needs,
and I want it to be very lightweight.
I really filter out a ton
of data there, and I just get what I need.
Then finally, there's a response here.
Then I'm going to go to my API management instance here.
Here I have my subscription keys,
like a little bit of added security that I mentioned.
This is my meteor impacts
API, and then I have our space API.
Here I'm going to just
test this API because I just want to give you
an idea of what the data looks like that's coming back.
We're getting few dots because this is indeed a live demo.
But this is what the data looks like coming back.
We've got Wikipedia articles.
We have lots of images.
We have the patch images.
We have the images of the astronauts,
lots of information, flight numbers,
launches, everything, it's here.
Now, when we want to now connect this to our Power App,
we have a couple of ways that we can do that.
We can go here to Export,
and we can export our open API spec,
which is essentially swagger file,
and then we can use that to create a custom connector,
or we can do the better way,
which is we actually create
the connector here straight from API management.
Now in good cooking show fashion,
I've already done that.
I'm going to go over here to my Power Apps environment,
and this is a developer environment.
We talked about the developer plan,
I think earlier in some of the talks,
and that's what I'm using here for my development
because this SpaceX is still very much in development.
Under Dataverse, I have these custom connectors here.
I have other connectors or other apps that I'm working on.
This is the one that was created from API management.
So I have a choice here.
I can go through the definitions here and make some changes,
or I could actually just go to
my swagger file. I'm zoomed in here,
so this is like not really the best way for you to look at it,
but here I have lots of
extra information here that I can
just edit on the fly if I wanted to and save that.
But I like the way it looks. It looks great.
I'm going to go over now to my app.
Now in my app,
I've made a connection here to
the custom API so that I can pull in all of my crew data.
Then here is my app.
We're just on start here.
I am just creating a collection to cache
this data that I've then pulled from that custom API,
and that's the call there to get the crew.
I'm on the crew list screen right now.
I just want to highlight a couple of
things that I thought were really cool.
Here if I expand this gallery,
this image here is actually one of the URLs that was in the data.
I just think that's one of the reasons why I
want to create a Power App for the DataX.
If you look at the data, you can get some information.
You can see some math, and some numbers, and things in there.
But the pictures of the astronauts
is something that is just really great in this visual setting.
I was really excited to include that in the app.
I also have a detailed screen here with a Wikipedia article,
I have a list of the missions they've been
on and then a lot of data here at the missions.
I don't actually know what some of these numbers mean,
but I included them because someone, I'm sure, does.
There's lots of information here about the astronaut.
Let's look at what the app looks like.
It's showing all of the current SpaceX crew
here and all of their great pictures.
At the top here, we've got Bob and Doug.
They're pretty famous because they had
a splashdown I guess relatively recently.
If I click on the picture here,
he only has one mission,
zero failures, and here's the mission here.
I can do this for every single one of
my astronauts, and I just get
so much information here about all of them.
This app was really pretty simple to build with
just this data that I pulled from only one of these Space APIs.
It's really endless what I could
come up with, and now with Azure Space too,
that's really going to be my next project.
I'm going to go back here to now to my slides,
and if you have questions,
please feel free to put them in the chat.
I will answer also.
Feel free to tweet me, and finally again,
I think I just want to just keep pushing
everyone to please explore Fusion Development.
Even if you're a professional developer like me, I'm really both.
I'm the professional developer, and I'm the citizen developer,
and I like to work with citizen developers because I'm not
a subject matter expert in every single industry.
I think, to developers, we have a lot of backlogs of applications,
and the idea of Fusion Teams really opens things up to really
be able to fill that gap so that we can create more apps,
create more space apps.
Check out the e-book,
checkout the Cloud Skills challenge.
I've done both of them.
Feel free to tweet me about them.
Here I am on Twitter,
lynnaloo, and I'm really lynnaloo on everywhere in the Internet.
Feel free to reach out. Thanks a lot for watching my doc.