Menu

Colin Devroe

Reverse Engineer. Blogger.

Apollo for reddit

Apollo:

Apollo is built by a former Apple employee with feedback from thousands of Redditors to sculpt the best client possible. It features a beautiful, native iOS design, smooth, customizable gestures, fast loading pages, a supercharged Media Viewer experience, a powerful, full Markdown editor, a Jump Bar for lightning-fast navigation, and so much more. You have to see it to believe it.

This is easily one of the best iOS apps I’ve ever used. Even if you don’t use reddit often it is worth having for wasting time on reddit.

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.

Micro.blog for Mac beta

Micro.blog:

Mac users can use the native Micro.blog for Mac app. It’s a free download and supports most of the same features as the iOS version.

You can see a short video of it on Manton’s blog. You’ll even notice a rather handsome avatar make an appearance.

Unfortunately I cannot give this a spin yet since I haven’t upgraded my Mac to High Sierra. And it doesn’t appear I’ll be doing so for at least a month or two since I haven’t seen any updates from Apple on that front. High Sierra just seems far too unstable to switch to on my main work computer at the moment.

Colin Walker, though, seems to like this new app:

Manton has repeatedly said that this is just a version 1.0 app but, I have to say, it’s been rock solid. Browsing, replying and posting to the blog have all been a breeze and I’ve not had a single issue or error.

Jason Snell on Twitterrific for Mac

Jason Snell:

I started using Twitter because of Twitterrific for Mac. When the Iconfactory first released the app, I signed up for a Twitter account and started chatting with my friends. That was ten years ago.

Ditto. I actually started using Twitter via SMS in 2006 then saw it bloom at SXSW in 2007 but then when I saw Twitterrific in 2007-2008 it became a daily (heck, hour-by-hour) habit.

Twitterrific for Mac

Iconfactory:

The Twitter app for people who actually use Twitter. Now all-new for macOS.

Imagine if Twitter cared as much about their desktop and mobile apps (and the people who used them) as Iconfactory does.

SnapThread

SnapThread by Becky Hansmeyer:

Portrait video compilations made easy—that’s what SnapThread is all about.

Like SnapChat without the network. I’ve long held that SnapChat and Instagram have the best UIs but it is a shame they aren’t just an app. Apple tried to solve this with Clips but that is only square-crop. This app could be very useful.

PodcastMenu

PodcastMenu:

PodcastMenu is a simple app which puts Overcast on your Mac’s menu bar so you can listen to your favorite podcasts while you work.

I use Overcast two or three times per day while driving. But I very rarely listened to podcasts while working. PodcastMenu changes that — allowing me to pick up where I’ve left off in Overcast.

E19: Launching Summit’s public beta

Recorded on August 23 2017.

A quickly captured audio bit while walking to get a coffee the day after launching Summit’s public beta.

Download MP3.

Pedometer++ 3.0

_DavidSmith:

I’ve been steadily working on Pedometer++ now for nearly four years. Over that time the core conceit of the app has remained the same, to motivate you to be more active. It has done this with colors, confetti, complications and streaks. Now I’ve added another tool to hopefully motivate, achievements!

Pedometer++ continues to be my favorite step counter*. I’m looking forward to trying out this latest release.

* Yes, I’m building Summit, but that doesn’t mean I won’t still use Pedometer++ and Map My Walk. Each of these apps play a different role. I hope to make Summit good enough to fill a role for others too. But not the same role as Pedometer++. Even though the number one feature request is that I add more stats – that isn’t what Summit is about.

Colin Walker on the Summit beta

Colin Walker:

I’ve thoroughly enjoyed the time I’ve spent beta testing Summit and look forward to the new builds.

Colin has provided excellent feedback on Summit. So have so many of the beta testers. I too am looking forward to publishing new builds.

If you’re on the beta list (which you can get on by putting your email address in the form on this page) and you haven’t gotten Build 15 yet – please let me know. Build 16 is due mid-September.

Summit – The Adventurous Step Counter

This evening, at a presentation at the Lehigh Valley Tech Meetup, I’m opening up public beta access to my new iOS app, Summit – The Adventurous Step Counter.

I’ve stitched together a temporary web site for the app as well as a mailing list that will allow you to get access to the final few beta builds prior to public release. If you have an iPhone please consider signing up and giving it a spin. I’d be very grateful for your feedback.

Thanks to the 13 private beta testers who have already tested the app and provided feedback. You can expect a brand-new build of the app coming in September.

What is Summit?

Summit is a free, iOS-only app that uses your step count to virtually hike up tall peaks like Mount Everest in Nepal, learn about amazing landmarks like Diamond Head in Oahu, and even take a leisurely stroll down famous streets like Lombard Street in San Francisco. As you make progress on your journey you’re provided new information at each goal.

At the time of public release there will be 5 summits and new summits will be added each month thereafter.

Here are some screenshots of the app as it is currently:

When I started on Summit I did not know how to develop an iOS app. It has been really fun to learn Swift, Xcode, iTunes Connect and Test Flight, and the myriad other things I was able to learn in order to get this app as far as I have.

I still have a bit of work to do, but I’d love your feedback along the way as I finish the app up for release.

Mirage

Mirage:

A world living on top of reality.

I played around with the app this afternoon. It is very rough. Super frustrating to try and use. But I sincerely hope they continue to pull this thread. I hope to see a lot more of this type of thing over the next 36 months.

/via Andy Baio.

Transmit 5

Panic:

With one massive update we’ve brought everyone’s favorite file-transferring truck into the future with more speed, more servers, more features, more fixes, a better UI, and even Panic Sync. Everything from the core file transfer engine to the “Get Info” experience was rethought, overhauled, and improved.

Hard to believe Transmit 4 is over 7 years old.

Observations on building my first iOS app in Swift

In early June I decided I wanted to learn iOS app development using Swift.

I’ve made a lot of progress over the last month, building two apps that I can use on my own phone, and one app that I’m now in beta testing via TestFlight with a few friends. Over the last month I’ve made some observations on the process of building an iOS app, the Swift programming language, Xcode, iOS frameworks, and the various other bits needed to make an app. I thought I’d take the time to jot those down.

These are in no particular order:

  • Swift is growing on me rather quickly. The idea behind Swift has always interested me, but I hadn’t really given it a try until now. Like any new language you need to work with it for a time before some of the things that you may not like about it, you end up seeing the wisdom in.
  • I’m very glad I waited until Swift 3 before trying it in earnest. The tutorials I’ve come across for earlier versions make it clear the language has matured in a short period of time.
  • Using Storyboards in Xcode is not intuitive whatsoever. I know many people avoid them altogether (from what I’ve seen on YouTube). Unless you watch someone build a Storyboard you’d likely never, ever just figure it out.
  • iOS frameworks are bulky. It is no wonder so many apps are so big. Just including one or two frameworks for my very simple first app ballooned the app to over 15Mb.
  • That being said, iOS frameworks are very useful. With just a few lines of code you can get something working quickly.
  • Playgrounds are very useful to learn Swift.
  • The Playgrounds compiler can become stuck rather easily. Especially if you paste in a bunch of code from your project to mess around with and get it to work. I’ve had to restart Xcode several times.
  • Xcode has crashed on me a few times over the last month. Crashes on macOS (and also most Apple apps) are very rare. So to be working on something so fragile seems out-of-character. Especially with how simple my apps are currently.
  • Auto Layout baffles me still. I have a working UI for one of my apps that works across multiple device screen sizes. But it is far from what I’d want to ship with. I’ve watched a lot of videos on how to use Auto Layout but I still can’t make heads or tails of it. I’m waiting for the moment it clicks.
  • The connection between labels and buttons and other UI elements in your Storyboard and your Controller class is far too fragile. You should be able to rename things, delete things, move them around without completely blowing everything up and starting over. Example: If I CNTRL+Drag a label onto my Controller and create an Reference Outlet for it… I should be able to rename that Outlet without needing to CNTRL+Drag again. I don’t know how, but somehow.
  • Did I mention that Auto Layout baffles me still?
  • Building and deploying an app to iTunes Connect in order to add to the App Store or Test Flight is an entirely un-Apple-like experience. There is no Step 1, Step 2, Step 3 type of workflow. Similar to Storyboards it is not something you can figure out – you must watch or read to learn. It feels like it was never designed by a Product person.
  • Building an app that resides on a device like the iPhone is an amazing experience. While I’ve always been able to load my web apps on a phone, and I’ve built some apps that use a WebView to deploy across multiple platforms, this is the first time I feel like I’m touching my app when I use it. There is nothing that comes close to native UI.
  • Also, building an app that requires no connection to the web has been really fun. It is so fast! I’d like to move forward by trying my best to keep HTTP request at zero or as low as possible.
  • The amount of information an iOS device knows at any given time is pretty amazing. It can know (with the user’s permission) where it is, what altitude it is at, which way it is pointing, how many times the person’s heartbeat that day, what it is looking at, etc. etc. Amazing to play with these features.
  • The Xcode IDE is really incredible to use. You may not remember a framework’s properties but you can just begin typing a reasonable word and expect that Xcode will figure out what you’re trying to accomplish. Also, if you happen to write older syntax because you’re following an out-of-date tutorial, it will automatically convert it to the most recent syntax.

Overall I’ve had a positive experience learning to build an iOS app on my own. Going from having an app in TestFlight to shipping an app feels like preparing to cross a desert on foot. But, I’m enjoying my experience so I’m going to trudge forward to do so.

I hope to ask for public beta testers of the app in a few weeks or a month.

mapmywalk

Under Armour has a free app called mapmywalk that I’ve been using to map hikes that I’ve been taking recently. I really like it.

It doesn’t rely on street maps but rather exact GPS coordinates to map the route I take. This helps me to map trails that I’m hiking that aren’t on any park maps so that I can track the distance I’ve hiked, the trails I’ve already taken, and more. I like to explore new areas and this app is useful to know where I’ve already been.

One other nice feature is that it gives me audio updates while I am hiking at each mile I cross to tell me my current pace and time. My hiking goal isn’t to set a pace or go a particular distance (at least not lately) but this does give me a cue as to how long I’ve been wandering around. I can easily burn a bunch of hours so this app keeps me moving forward so I’m not stumbling around for hours and hours.

Thanks to the team behind this app for making it useful.

Clips

Apple:

Introducing Clips. A new iOS app for making and sharing fun videos with text, effects, graphics, and more.

I’ve been looking for an app like this for a long time. The Verge describes how I think I’ll use this app.

My best guess is because the default camera app is still something that’s supposed to be super simplistic (and accessible from the lock screen). And I think in some ways, this is a precursor to a consumer AR app, but Apple declined to answer questions around that. Clips seems like it could be the perfect app to use when iMovie is too much and the default camera app is not enough. The question is whether it will be the necessary stop between your phone’s camera and your favorite social network.

I’ve tried to edit a personal “vlog” (that I do not publish publicly) for a long time. And I did it using iMovie. But iMovie is too much for this. What I really want is Instagram Stories or Snapchat Stories in their own app. It looks like I’ll kind of sort of get that with Clips.

I don’t know why they didn’t just release it. Apple doesn’t usually announce things before they’re ready (I’m not counting operating system releases which require so much public testing). But I’ll be happy to get my hands on this next month.

Overcast 3

Marco Arment just released version 3 of Overcast, the podcast player I use on my phone every single day. I like this bit in the update:

No closed-source code will be embedded in Overcast anymore, and I won’t use any more third-party analytics services. I’m fairly confident that Apple has my back if a government pressures them to violate their customers’ rights and privacy, but it’s wise to minimize the number of companies that I’m making that assumption about.

Marco has always put his money where his mouth is. This is just another demonstration of that.

Disappearing apps and services

Alexei Baboulevitch (archagon) in a comment on Hacker News:

These indie apps are often marketed as beautiful, wholesome alternatives to grimy corporate or open source software, but how could I possibly rely on these products for essential tasks like note-taking if they’re just going to disappear out from under me in a few years? The idea that software has a lifespan controlled by the developer is, in my opinion, toxic to the market. It’s just one of the many things pulling the App Store down, and one of the many downsides of living in a walled garden.

I have to agree. More and more I’m inclined to use an open (but not necessarily free) alternative for just about any app or service that I rely on.

I wasn’t a Vesper user, but if I was, I’d be scrambling to find an alternative since it is now being shut down. I’m a happy Simplenote user which is free and open and backed by a company that wants to keep things open and running for as long as possible.

Picturelife’s recent closing, which I called in January of 2015, is also a stark reminder that even if we rely heavily on an app or service, and even if we support it with our money and our word-of-mouth, it doesn’t mean that it will stick around.

If you find yourself relying on an app or service that could disappear tomorrow do yourself a favor and seek out alternatives while you still have plenty of time to make the switch. You don’t have to switch, but knowing what alternatives are out there and having a plan can save you a ton of headaches. If I hadn’t switched from Picturelife to iCloud when I did I’d be hurting right now. Bigtime.

I’ll have more on Picturelife’s shutdown in a future post.

Rocket

I had bookmarked Rocket by Matthew Palmer almost two weeks ago and today I finally took the time to install it. Game changer on the Mac. Recommended. Also, give it an up-vote on Product Hunt if you like it.

E6: Verizon, iPhone SE, Yeti

The iPhone SE is for me and Yeti is changing my life.

 

Download MP3