Geof Crowl

About
I’m a software designer currently living in Salt Lake City, Utah. I like to make nice apps and websites. Sometimes I share things of interest here. Subscribe to the RSS feed with my open source reader.

I have been focusing on photography and sell my photo prints or zines in my spare time.
On The Web

Instagram, Threads, Strava, GitHub, LinkedIn, email

Projects
Air Lookout, Simple Pacer, Super Simple RSS
Suggested Reading
Salt Lake City Canyon Info For Bikes
Introducing Air Lookout 2
Collection of Human Interface and Software Design Guides
Air Lookout 1.4: All The Complications
Kawasaki KLR 650 Rebuild Compilation

Thursday, June 21st 2018

Airbnb Switching Away From React Native #

Gabriel Peal:

Before React Native can render for the first time, you must initialize its runtime. Unfortunately, this takes several seconds for an app of our size, even on a high-end device.

Gabriel Peal:

A common misconception is that React Native allows you to move away from writing native code entirely. However, that is not the current state of the world. The native foundation of React Native still rears its head at times. For example, text is rendered slightly differently on each platform, keyboards are handled differently, and Activities are recreated on rotation by default on Android. A high-quality React Native experience requires a careful balance of both worlds. This, paired with the difficulty of having balanced expertise on all three platforms makes shipping a consistently high-quality experience difficult.

Although I don't have any real experience with React Native, both of these points seem like dealbreakers to me.

I'm always hesitant to recommend a framework like React Native that is not officially supported by Apple. Especially when Apple can operate mysteriously and suddenly. It's quite possible (however unlikely) they could ban all apps from the App Store made from frameworks such as React Native.

Furthermore, I think there's a lot of cases where branded apps across platforms should behave and meet the interface guidelines of each platform. Sharing model and data code is nice (in which case, C/C++ is pretty cross platform…), but I have a hard time believing that views and UI should be identical. To me, that would just be the lowest common denominator of experience across all supported platforms.

In addition, personally, I'd rather write Swift than JS.

More: mjtsai.com, hackernews, medium/airbnb

Friday, June 15th 2018

Rogue Amoeba: On The Sad State of Macintosh Hardware #

It’s very difficult to recommend much from the current crop of Macs to customers, and that’s deeply worrisome to us, as a Mac-based software company. For our own internal needs, we’ve wound up purchasing used hardware for testing, rather than opting to compromise heavily on a new machine. That isn’t good for Apple, nor is it what we want.

This is the most frustrating aspect to me: potential customers who have the means and will to buy new machines but because of stagnation in the hardware roadmap it would be absurd to spend a large portion of money on a computer with out-of-date hardware.

Their current failure to keep the Mac lineup fresh, even as they approach a trillion dollar market cap, is both baffling and frightening to anyone who depends on the platform for their livelihood.

Frightening indeed. I even dug up one of my old tweets from 2016 with an eerily similar "Do not buy" recommendation.

Wednesday, June 13th 2018

512pixels: On macOS Mojave’s Dark Mode #

Dark Mode

At the end of the day, Dark Mode isn’t a brave new era for macOS, but it is a welcome addition to the system. It’s an option that I’m already enjoying on my test system, and I think I’ll move to it full-time this fall when macOS Mojave ships. It’s clear that Apple has put a lot of thought into the feature, and I think most Mac developers will be onboard with what it means for their applications.

Until all apps are recompiled against the 10.14 SDK, I suspect opening an older "stuck in light mode" app on 10.14 will be like someone turning on the lights in a dark room during a movie.

Wednesday, June 6th 2018

Bitsplitting.org: Ersatz Free Trials #

Daniel Jalkut:

While I’ve enjoyed many of the upsides of the Omni approach, I’ve also had the opportunity to really appreciate the many downsides. You might say it’s “a pretty sweet solution” for offering free trials.

I think it’s particularly important, in the face of all the celebration this week about Apple’s perceived changes to the App Store, to appreciate all the many ways in which this solution falls short of what many developers still hope for: bona fide support for real free trials in the App Store.

It would be nice to have better guidance from Apple on this, or even a StoreKit / iTunes Connect API for free trials. It feels a little odd and loose that their guidance is basically just as follows:

Non-subscription apps may offer a free time-based trial period before presenting a full unlock option by setting up a Non-Consumable IAP item at Price Tier 0 that follows the naming convention: “14-day Trial.”

Tuesday, Jan. 23rd 2018

It Takes Two Neurons To Ride a Bicycle #

Past attempts to get computers to ride bicycles have required an inordinate amount of learning time (1700 practice rides for a reinforcement learning approach [1], while still failing to be able to ride in a straight line), or have required an algebraic analysis of the exact equations of motion for the specific bicycle to be controlled.

Mysteriously, humans do not need to do either of these when learning to ride a bicycle. Here we present a two-neuron network that can ride a bicycle in a desired direction (for example, towards a desired goal or along a desired path), which may be chosen or changed at run time.

older home newer