Looking very nice!
I'm just downloaded and giving it a play with now.
Greatly appreciated! Playing with it now.
Can you provide some screenshots or a video or anything to help those of us who didn't see it when IBM showed it off? I'm not sure what I'm looking at here.
(Edit) Compiled and ran it. Here's the type of screen. I'm guessing this is intended for DEP setups?

Ya IBM had their app running at full screen after DEP enrollment completed. It had the progress bar and some other information for the end user, such as how to get support.
@McAwesome Yea...they used it for self-enrollment since all the user would get is a new Mac and a post-it with a URL. An app like this would pop up after enrollment and explain to the user what was being installed, who to contact, ect. They also said they liked it because you could tell when the build was complete internally. When they post the video of the season I'm sure you'll see it, I haven't seen any slides of the app since the presentation. The goal really is to make the html portion really nice, get key information across, and give the user and idea when the mac is completely ready.
Poking through and thinking a bit, it may be better to use a pre-defined array of policy names rather than go with the package. Once you see the "Executing Policy _", drop _ from the array and update the progress bar a bit. This would help keep it up to date a bit longer as policy names change less frequently than package names(i.e. "prestage-Chrome" vs "Chrome-45.6.21.blah"). It'd add a lot of hoops to jump through since you can't ensure multiple policies will always run in a certain order unless you daisy chained them through events or something. Still, it's a lot of up front work for fewer changes down the line.
I could also see just using a count for "Inventory will be updated when al queued actions in Self Service are complete" if you know how many policies will be executed on DEP enrollment. So instead of having four separate things to update it, increase the bar by 1/X where X=(number of policies to be run). That would require just updating one number rather than package names or the like. I'm not as well versed in the JSS API, but I feel like there's a way to return all the policies that happen on enrollment complete. If so, you could potentially automate that number gathering as step one of the enrollment stuff. That way you don't ever have to update things manually.
I love those ideas. I was obviously mad hacking this together in a few days...but I think you're on to something with the policy count. I can definitely ask the API for a policy count. I'll be giving that a try for sure.
I love this. This one one of the things I was most interested from the talk. What is you way to scope this with file vault? We have a custom trigger that calls a bunch of policies and I was wondering how we would get the progress correctly and get it to kick off. Thanks in advance.
@martel I would try kicking off the FV process immediately after enrollment and then start with the policies after the reboot. Maybe through smart groups? Since the polices fire alphabetically you could make this install first and launch with a post flight scripts. I'm just riffing...everyone's environment is different so these custom things are hard to mold to everything.
Would it be possible to get some instructions on how to set this up?
I've opened it up in xCode and tried to compile and run but the application has a blank screen and hangs, with errors in xCode
I've not touched xCode for any kind of app development before so I am completely unsure as to where I am meant to be looking to get this working.
How is the app meant to launch after DEP enrollment?
An enrollment complete trigger that installs the app and then runs it, with a custom trigger to start downloading the other apps?
@Simmo I know that the app will likely crash if the jamf.log is not present on the machine...so there is still some error handling to add to the app on that front. If you could, just submit the error as an issue on the github repo. That would help me the most.
The app could be launched anytime you want to communicate to your client really. In the IBM demo, they showed their app after user enrollment. If I remember correctly...it launched after the FileVault restart.
To launch the app, I would recommend packaging it up in composer and using a post-flight script to launch it. All the progress bar here is doing is watching the jamf.log for progress. The JSS is still doing all the real work.
I will work on getting better instructions together for compiling. I would like to eventually have it where it comes pre-compiled and the html and other necessary data stand outside the app and easily edited.
@jtratta Sounds good, I'll submit the error I see.
The machine I am running it on does not have a jamf.log, so that is the likely cause of that.
I'll play around a bit, as this could be very beneficial to us coming in the start of the school year with several hundred new devices coming in and we're making the move to using DEP and no imaging.
Appreciate your work.
I'll submit this on GitHub too but I think using the System Font would be a better default than using Arial etc.
Another thing to consider would be having this app actually create the triggers. Napkin mathing it here, but it could first check for policies with a known custom trigger(ProgressScreen). Once it has a count of how many policies it will run, it could create that trigger event
sudo jamf policy -trigger ProgressScreen
This may actually be a bit more accurate than just counting ones that have trigger_enrollment_complete=true due to the ProgressScreen app itself triggering the policies.
I'd code it up, but unfortunately Swift may as well be German for me at this point. Still learning the ropes of it.
I really like this and am interested on using this for our new devices next year as well. I do not use the API nor do I know how to code so, any guidance is much appreciated. Thanks for developing this!
I am wondering if you could just scope the progress bar to the jamf logs? We have a setup where we have a custom trigger the calls all of our imaging policies. I opened up xcode and played around a bit but am having trouble scoping to the larger numbers of policies that we kick off for the progress bar. Would love for the screen to be completed when filevault is done encrypting. Any ideas?
@martel The app (currently) only follows the jamf log. The trick is determining a duration once the screen pops up. My first pass at this was to take an average time (one that you would determine in your own testing) and use that to smooth out the progress bar. The waypoints are there to lend accuracy and help the app adjust the progress bar to what's actually happening. Hopefully that makes sense..and answers your question?
It's the only way I've come up with the doesn't need some sort of special credentials to run.
Do you mean the ENTIRE encryption process...or just the kickoff after the first reboot? If you're talking about having the screen come up after the user is added into Filevault; I'm sure there is a way to scope to a smart group that is looking for FV policy completion.
@lcopeland I'm trying to make the app as easily customizable as possible. Right now, if you can create a HTML page in a WSIWIG and replace what's in there you'd nearly be there. You'll just need to edit a few values in the actual code.
I will work on getting easier documentation to follow so it's more obvious on how to get this running for any environment.
A question for the group then: If I were to include a generic HTML page what should that be? I can't imagine what that would even be.
@jtratta I'd just make that generic page have some fields for each place to replace. So do a side bar that has the IT department name, phone number, address, etc but with obvious dummy text. The rest is pretty much whatever.
But could you get it to show the progress of the full disk encryption? It is currently working for us by showing us the logs. We don't have a progress bar though.
What I am thinking in regards to Filevault its to make a separate app that looks to the filevault progress? I have no Idea how to do that.
I'm working on a template for this that I can make available. Right now it's just a static page you can edit, but I plan to add a slider for customized content. 
Very cool and great idea. After seeing @rdwhitt customization, I decided to mess around with it a little for our own environment.

I wasn't able to attend JNUC, but I just saw the IBM presentation on Keynote, and also implemented the completion screen after enrollment (obviously stole heavily from IBM's):

I am noticing that the app in our environment isn't quitting itself, so I'm trying to work on that next.
I still can't get the progress bar to load...
Looking good @jphillips!! can you share your custom code???