Colin Devroe

Reverse Engineer. Blogger.

Follow: @c2dev2, RSS, JSON,


Universal Apple apps

Mark Gurman, for Bloomberg:

Starting as early as next year, software developers will be able to design a single application that works with a touchscreen or mouse and trackpad depending on whether it’s running on the iPhone and iPad operating system or on Mac hardware, according to people familiar with the matter.

Remember the many times I’ve written that I wish Apple would combine iOS and macOS into a single operating system that simply adjusts based on the device it is running on? That isn’t what this is, but it is still a great step in the right direction.

Me, a little over a year ago, regarding the Surface Book with Performance Base:

I’ve long written on this blog that I believe Microsoft’s vision of one operating system for both contexts is better than Apple’s two-OS approach. John disagrees with me on this. And I don’t know that there is a right or wrong answer but there certainly is a preference. My preference is to keep my “power user” stuff at my fingertips for when I need them but to hide them when I don’t. The Surface Book does this.

When I was testing a Surface Book for a time I had what I felt is the best of both worlds. I came into my office, docked on a large monitor, and got to work. When I wanted to be mobile and work out of a coffee shop, I could be and everything came with me. Then, when I wanted to read on the couch I could undock the screen and use it like a Surface. Windows 10 would adjust to whichever context I was in. It was either optimized for keyboard / mouse input or for touch.

I still believe this is the correct approach. And we’re starting to see more of it. Look also at Samsung’s DeX that allows a phone to plug into a display and give you a slightly different interface, drag-and-drop, etc. for getting your work done. There are countless number of professionals where this type of setup would not only work well – but it would be ideal and less expensive or confusing than having disparate devices.

This proposed strategy for Apple, that Gurman says he has insider information on, isn’t the same path that Microsoft is taking. It isn’t one device and it isn’t one operating system either. Gurman isn’t saying that Apple is going to release a single OS for all devices but rather that the app binaries will run on multiple devices and operating systems. It is more akin to Microsoft’s Universal Windows Platform. Many Windows UWP apps and games can run on Surface tablets, PCs, and Xboxes. This is amazing. I’m sure Microsoft users love it. Wouldn’t it be cool if Apple allowed the same app to run on Macs, iPhones, and Apple TVs? Wouldn’t that also allow many great iOS apps to suddenly be useful on macOS? I can think of many iOS-only apps I’d love to have on my Mac.

I welcome this if it happens.

I feel like these approaches are just stops along the road to a unified device that runs a single operating system and can work in many contexts. In some ways, it is the largest advantage that Augmented Reality will bring to the professional workplace. Put on your glasses and work however you’d like. Small window. Huge window. On a 3D object. Or on Mustafar with Tie-fighters flying overhead.

Until then, I’d love an iPhone 7 Plus-sized device that ran a single operating system that “worked like” iOS while on-the-go, and that I could plug into a large monitor and give me full macOS experience. That, for me, would be ideal. Until AR is ready.

No, you cannot simply pay me for a link

Hi. You emailed me. Likely more than once. So I’ve sent you this URL to let you know that no, you cannot pay me for placing a link in an existing article that you somehow found on my site.

It would be totally different if you wanted me to review a product, collaborate on some content, or sponsor some of my other projects like Summit, The Watercolor Gallery, or my upcoming YouTube channel. But, no, you want me to randomly throw a link in an old blog post because it ranks well on Google. And that, to me, seems icky.

Please remove me from any and all of your future lists of unsolicited emails of this nature. Unless, after reading this, you’re going to change your approach and do something much more fun and authentic like the above. In that case, my rates will likely be in the few thousands of dollars to get started.

Thank you,


Please don’t try to explain Bitcoin at parties (unless you know what you’re talking about)

Unless you’re drinking your flat whites under a rock, you’re likely seeing a lot of news about Bitcoin, it’s current exchange rate against the US Dollar, blockchain and it’s various applications, etc. You might even be getting sick of hearing about it (or, perhaps you’re sitting there earning hundreds or thousands of dollars per day from it). Either way, I must make one request of you, dear reader…

Please do not spread misinformation about blockchain and cryptocurrency. If someone asks you about these things and you don’t know, say so. They won’t think less of you. Explain to them that you too are interested in these things but that you still need to do more research before you’re willing to explain it to them. They’ll even respect you for being honest. Don’t make it up based on a few headlines or tweets you’ve read. If you are going to try to explain these things to people, especially youth, please dive in and get a deep understanding of some of these more complex technologies before you begin explaining them.

I think I’ve caught myself a few times, in recent conversation, going just a little bit further than my own knowledge and regretting it. I feel I have a fair understanding but I’m nowhere near qualified to teach on the subject. Which is why I’m bringing it up here on my blog. Fortunately, most of the conversations I’ve had about these things are with people that are also devouring every bit of information they can about it – and so I don’t think I pointed them in an incorrect direction. But I think we (the nerds among us) can easily misinform others if we begin to describe blockchain and crypto at parties.

So don’t try. Unless you know what you’re talking about.

Attending Venture Idol 2017 at Ben Franklin TechVentures

In 2007 I visited the area where Ben Franklin TechVentures is now. I was there for an interview with the then CEO of Viddler, Rob Sandie, to see about working there full time. At the time, Viddler was housed in Jordan Hall – a one-story building next to the now incredible Ben Franklin TechVentures complex. It wasn’t until many months later we moved Viddler out of the closet-like space in Jordan Hall and into the future-feeling building next door.

That memory pales in comparison to what exists there today.

I make mention of this fact because the feeling one gets when walking into Ben Franklin TechVentures is that the work that goes on in this building is new, exciting, and is the future of technology in our area. I personally want schools, libraries, incubators, and town squares to feel as though they are leading us into the future. Where the work that I do is raised to meet the expectation of the environment. I feel that Ben Franklin TechVentures does that.

In August when I presented at the local meet up I loved seeing the new wing being constructed. This month that wing was completed and this year’s Venture Idol 2017 event was in it.

But building’s aren’t everything. The community is of even more import. And the community is strong.

This year’s Venture Idol was the best attended year yet and, as Fred Beste (the emcee for the event) pointed out, everyone had a chair for the first time. He’s seen BFTV’s growth and he was as excited as I was to see where it is today.

The presentations by the three finalists were great. Mark Keith and I remarked how polished each presentation was. In my mind there were two presentations that were clearly the best; Channel Ape (from Scranton woot woot!) and Give Gab. Both had impressive results, tight presentations, and a roadmap that made sense. At the end of the night Channel Ape took home the victory.

Photo: Mike Averto, CEO Channel Ape, preparing for presentation.

Yes, it is a big of a jaunt from Scranton to Bethlehem. But it has been worth it every single time I’ve done it over the last 10+ years. I’m looking forward to seeing the sort of growth that region has been enjoying happening in our area too. It is only a matter of time.

Speaking at the 2017 tecBRIDGE Entreprenuerial Institute

Photo credit: Mandy Pennington on Twitter.

On Friday I had the privilege to host two sessions at the 2017 tecBRIDGE Entrepreneurial Institute Conference at Marywood University. The event was very well attended (I’d say nearly  200 people, but I don’t know for sure). The speakers and panels were engaging, interesting, and the number of people that remained until the last minute of the event was evidence of that.

My session was titled Social Media Metrics that Matter. I didn’t choose the title but I enjoyed the topic. The audience was mainly students focusing on being future business owners and also local businesses and organizations in our area. I can tell from the feedback that the subject matter was welcome.

The way I laid out my outline was to bring everyone in the room up-to-speed with common metrics that can be tracked on social networks. We spoke about how each of those metrics impacts the business, the content, the page. Then, we used a few example businesses to determine which of the metrics each of them should track and why.

It was a good exercise, even for me, and I hope those that attended each of my two sessions got something out of it.

A technology predication time capsule

Readers of my blog will know that I occasionally attempt to predict when certain technologies that I write about will hit the mainstream. While I’m very passionate about a few technologies, I try to temper that excitement with the experiences I’ve had, the wisdom that comes with age, and other factors. Usually, things take a little longer to happen than we’d like for the things we want to see most. And sometimes, sometimes, the things we want most never materialize at all.

For the purposes of this post, mainstream doesn’t mean critical mass but rather mass market adoption. With 7B+ people on the planet reaching critical mass is far easier than reaching mass market saturation. In other words, a company, product, or technology can reach sustainability and never truly hit the mass market. Examples: Tesla can succeed, be profitable, and have happy customers without the world moving on from fossil fuels. A company focusing on AI can make great livings, do compelling and challenging work, without every family having their own personal C-3PO.

Here are some stake-in-the-ground predictions on some of the most talked about technologies of our day. We’ll see in the next few decades if I was even close.

  • Legal, fully autonomous driving with no human assistance: Mid-summer 2026 – Even 9 years out there will still only be a few select vehicles that will fit into this category. There will still be humans driving on the road. And, only the most expensive cars will have all of these features. But, it will exist, be available to anyone, and be legal in the US. And I also believe there will be small fleets running in select cities for Lyft, Uber, and I believe Tesla will have a ride-share platform by this point. Also, don’t be surprised if Apple does too.
  • Bitcoin, or some crypto-currency, being widely transacted at small retail stores in the US: 2027 – If Square, or some other platform with high market saturation, turns on crypto for retail SMBs then we can say they accept this form of tender. But, I believe it will be 10 years before we see a decent number of daily transactions by consumers. I know, “decent” is relative so I’ll give it a number: $100,000,000 US dollar equivalent in a single month. This is roughly 25% of US monthly retail revenue as of September 2017. Side note: By this time we’ll see talk of the US dollar being converted to an all digital currency and, perhaps, transacted on its own blockchain.
  • Mixed Reality experiences used in everyday work environments: 2027 – Today we share links to web sites, documents on Google Drive, and flat or animated graphics to design and develop both soft and physical products. By 2025 many of these every day things will be accessible and even better experience within MR. I believe most businesses with digital assets will have multiple pairs of “glasses” or “goggles” that will allow team members to view or collaborate on these types of data. In other words, by 2030 rather than sending a child a link to Wikipedia to learn about our Solar System I believe we’ll be sending them MR experiences that they will consume using an augmented reality experience on a device other than a flat panel display. This happens today. But no where near mass market. And this industry has a long way to go. Even further than I previously thought.
  • Wireless internet takes over all cable based internet: 2029 – Most people in the US will connect to the Internet via wireless across all devices. And there will be no limitation on bandwidth usage.
  • Fully autonomous fleets replace individual car ownership: 2037 – Today US cities are plagued by traffic jams comprised of single occupant vehicles. Mass transit softens this but doesn’t solve the issue due to the convenience of a car. Ride sharing services have softened this even more and car ownership in urban areas is on the decline. By 2037 we’ll see massive reduction in individual car ownership in cities but also in the hinterlands as fleets of fully autonomous vehicles, combined with better mass transit, can care for the majority of transportation needs. I believe, however, families with at least 2 children will still have a single family-owned vehicle of some sort. Again, I’d like to put a number on this. So I’d say 15-25% less car ownership/use for individuals and commuters nationwide.
  • Mixed Reality replacing many conventional meat space locations/activities: 2050 – By 2050 the majority of children in the US will have the option to attend school in VR ala Ready Player One. Virtual classrooms will no longer be limited by federal budgets but will be designed to appear like cathedrals of learning.
  • (Because, why not?) An off-planet human civilization: 2175 – Humans will walk on Mars in the 2020s. And, perhaps, a small moon or Mars base will exist in similar fashion to today’s ISS in the 2030s. But a civilization, where people live, work, play, have children, and die peacefully etc. won’t exist on any other planet or moon (likely the Moon will have an established civilization prior to Mars). The reason I put this far-reaching prediction on this list is because I believe the excitement around a human footprint on Mars will lead to speculation about off-planet civilizations. But, we must all remember, we put a footprint on the Moon many, many decades ago and then just never went back. I do think that we’ll be mining objects near Earth much, much sooner. Even the Moon. But we’ll do that with robots and minimal human intervention.
  • Tweet editing – Never.

Check back in a few decades to see if I was even close.

Creating Summit: The current summit view

This post is the first in a series of posts about my experience building and designing Summit. This post focuses on just one view within the application; the current summit view.

The idea for Summit came nearly 4 years ago as far as I can tell. I’ve hunted around for scraps of paper, digital notes, code snippets to see if I can come up with an exact date but I’ve been unable to. And it has been fits and starts for several years.

When Kyle Ruane and I started on the idea we first thought the UI would be a bit more game-like. I envisioned a 3D model of the current mountain you were hiking that would progress the person up the summit in first-person towards each goal. This was altogether too much work, and far too difficult given my unfamiliarity with the platform. Kyle’s suggestion – again, many years ago – was to use a low poly look. He would craft a low poly representation of the summit and we could allow the user to move around in it, perhaps even spin it around, zoom in-and-out, etc.

I pulled that thread for a very short time before giving up. Remember, we started toying with the idea of Summit before Swift was released. So I was trying to draw this UI with Obj-C. Something I’m even more terrible at than Swift.

Here is what one attempt at drawing progress lines using Obj-C looked like back 4 years ago or so. I took this screenshot in June 2014 and was already labeling it “historical junk” in my files.

The red triangles were goals to meet, the blue line was your path, and the white line was your progress so far. My goal was to overlay this on top of the low poly art that Kyle drew. This was inspired by maps like this. (copied here for archival purposes)

This worked but was not that easy to pull of, introduced more complexity than we needed, and so we quickly shelved the idea until we got more familiar with the platform.

In tandem I began constructing a simple web UI to start cataloging steps from a phone. This was purely to get used to writing code that would track user’s steps, show stats, work on our step algorithm (the code that determines how far up Mount Everest a single step walking in a downtown city parking lot gets you), etc.

It went this way for a few years. I would open up a code editor and begin working on the pieces of Summit; the progress UI, the algorithm, the code to read from a user’s step count or HealthKit or Apple Watch.

In June 2017, when I picked up this project on my own to take on since Kyle had moved away, I decided I needed a simpler approach to the UI. In part because Kyle is the design genius but also in part because I wanted to get as quickly to shipping an app as I possibly could. I prefer to iterate on ideas with user feedback than to work on something in a silo for years. I wanted a way to show the summit, or some visual from the summit, but yet also show one’s progress. And I also still needed multiple goals per summit.

Here are a few drawings from this summer.

See, I’m not an artist. Admittedly, though, this wasn’t an attempt to draw anything beautiful but rather to get a general idea for all of the views I needed to pull off the layout. I needed some labels, some buttons, navigation, etc.

The long goal buttons was really “a punt” on my part. I gave up trying to get Xcode’s Storyboard feature to properly align a changing number of goal buttons (since each summit has a different number of goals) in a way that worked with each device size. It was very frustrating. So I began to go down this path of having them just be full-width, flat buttons.

But then I ran into Brian Voong on YouTube. In most of his video tutorials he suggests forgoing the Storyboard feature and using code to create the UI. Though I didn’t want to lose the progress I had made, I’m so glad that I took his advice. Writing UI directly in Swift is far, far easier (for me)  and seemingly more powerful than using Storyboards.

This revelation allowed me to go back to a drawing I did a month earlier. This one:

On the left, the elements needed, on the right, a rough sketch of a much more minimal and airy design of the current summit view. The goal buttons have varying distances between them relative to how far apart they are in real life (I’m still working on getting this right in the app).

Using Swift I was able to make this happen much easier than Storyboards.

The above is one of the very first swings at this view. It had all of the elements I wanted. And I’ve been iterating on this specific design ever since. I wish I had the hundreds of iterations saved but I don’t.

Here is what the most recent iteration looks like with goal buttons that are easier to determine your progress and other tweaks to make the UI more consistent.

This is the design for this view I’ve settled with for now. I have plans to iterate on this current design for some time before, perhaps, taking a whole new swing at it. Perhaps my skills will grow to the point that I feel confident going back to Kyle’s low poly idea. But, I’m pleased with how it has come along so far.

Attending October’s NEPA.js meet up

On Tuesday, October 10 I attended October’s NEPA.js meet up. John George of NEPA Web Solutions was this month’s presenter and his topic was Bitcoin and the Blockchain: Democratizing How We Exchange Value.

I believe all members of NEPA.js would agree, John’s presentation was arguably the best presentation the meet up group has had to-date. Though the Blockchain can seem a complex topic, John did an excellent job describing how it worked, where it is currently being used, and its future potential. Though the meet up was relatively well attended, I left wishing that so many more people had heard his presentation.

To further the lesson beyond the walls of the Scranton Enterprise Center, John also gave each attendee a gift in the form of a wallet containing a single bit of BTC. He also incentivized attendees to claim that bit for themselves by awarding the first few that did so with $50USD in BTC. Those that did it were rewarded indeed since the value of BTC has jumped to new record highs this month. Those that didn’t claim their bit may be kicking themselves for dragging their feet.

John will likely do this presentation again, in some form, under the NEPA Tech banner. Meet up’s like October’s are what is spurring the group to expand the group into a more general direction. This particular presentation had nothing to do with JavaScript – as the name NEPA.js would have you believe – and so we want to make sure each meet up is approachable by all that would be interested. You may remember me saying this over the last few months, and even in January I spelled it out specifically, but now there has been positive steps towards this happening. We’ll have more to announce in the near future.

Thanks to John for the amazing presentation, and for the bitcoin, and to the attendees for the active discussion.

Side note: My apologies for a terrible pano photo. I’ll try to do better next time.

Developers, Let me tell you about Microsoft (audio)

I’ve been writing about Microsoft’s moves for the last three years. This week everything has come together and I’ve been writing my first multi-platform application using C# and Visual Studio. In this long rant I go on and on about how Microsoft needs to spread the word about what they are up to.

Links for this bit:


My tips for new iOS 11 upgraders

I’ve been using the iOS 11 public betas on my iPhone and iPad for several releases and I think it is one of the most important updates to iOS. It brings lifesaving features to the iPhone and powerful features to the iPad.

Tomorrow iOs 11 is being released to the public, I thought I’d jot down a few things that I believe people should do on the day they upgrade, so that they don’t just move on with their busy lives and forget.

  • Turn on automatic Driving Mode detection. This setting could save your life and those of others. You have no excuse good enough to justify being able to text while you drive. iOS 11 does a good job of detecting when you are driving and turns off all notifications. Almost immediately when you exit your vehicle at your destination your messages are waiting for you. I love this setting. Settings > Do Not Disturb > Do Not Disturb While Driving.
  • Set up Driving Mode auto-replies. Optionally, you can set iOS 11 to automatically reply to certain people with messages that you’re driving. Or, you can keep this feature off and people will simply believe you have a life and cannot respond to every text message within 15 seconds of receiving one. Settings > Do Not Disturb > Auto-Reply To.
  • Customize Control Center. The control center (the screen you get when you flick up from the button of the screen, or from the top-right on the iPhone X) is very different than iOS 10. You can now add or remove buttons from it, and even customize their position on the screen. I’ve chosen to have Camera, Notes, and Voice Memos easily accessible in the bottom-right of the Control Center. I love it. Settings > Control Center > Customize Controls.
  • Identify faces in group photos. For those of you without a Mac, you’ve never had facial detection and naming capabilities for your photos. Now you can put a name to a face in iOS 11 and when your device is locked and plugged in it will rummage through your photos for you and find the vast majority of the other photos with that person in them. I’ve found that using large group photos is the quickest way to finding the most people. So, start off finding a few dozen group photos, naming everyone in them, and then let iOS 11 go to work at night. It is surprisingly good and getting better with every release. Photos > Find a Group Photo > Swipe Up > Click on person under People > Tap “Add Name” (repeat for all people in the photo).
  • On iPad: Customize your Dock. You can have up to 15 apps in your Dock on iPad. You can also add more by adding folders of apps. There is also an area on the right side of the dock that can show recent apps. Turn on Recent Apps in Settings > General. Otherwise, drag your favorite apps into the Dock.
  • On iPad: Practice multi-tasking, split-screen, and drag-and-drop gestures. iOS 10 has had split-screen features for iPad since it was released and I still see many iPad users that do not take advantage of them. iOS 11 makes these features even more powerful. Unless you make these part of your muscle memory by practicing them, you might be under-utilizing the power of your device. Watch this video on YouTube to see how best to open multiple apps, drag-and-drop files, and more.
  • Try out Notes’ new features. Notes has some new features that you will definitely find useful but you need to know they are there. Try some of the following:
    • If you have an iPad Pro with Apple Pencil, try tapping your Pencil on the lock screen. This results in a new note. Pretty slick.
    • Try the document scanner. iOS 11’s ARKit features allow for a pretty practical use of this technology in scanning a document and being able to sign it with ease. It is remarkably good. Put a document on a table, open Notes, in a new Note hit the + symbol, select Scan Documents. Prepare to be wowed. I wish this feature were part of the camera somehow or its own mode from Control Center. Again, here is a good video showing how this works.

By doing the above you may just save a life. But, also you’ll get far more use out of the device you already own and take full advantage of this monumental release of iOS.

If you have any others, feel free to leave them in the comment section below.