Discussions (53)

Currently, Swift on Raspberry Pi3

I’ve taken recent interest in working on the Raspberry Pi now that Swift is open source. Given the amount of products built specifically for the Pi, there’s a huge potential for new, fun projects. DIY electronics have been gaining momentum over the last few years and there’s a lot of information to help you get started. Depending on how things go in the coming months, I may be able to start pitching physical computing devices for client projects.

At the time of this writing (April 2016), there’s not much to be said about getting Swift working properly on devices like the Raspberry Pi. While a few individuals have made great headway into making swift compile for linux arm7, the work isn’t complete and a few critical pieces are missing. Even now, not a lot of progress has been made since January, when it all started to work.

To put it simply this is what does and does not work. Set your expectations accordingly.

  • A build of Swift 2.2 “works” – you can compile and link to Foundation + Glibc
  • That build is from February, 2016
  • The Swift REPL doesn’t work – crashes with a memory bug
  • Full set of Swift3 tools don’t compile (yet)

Getting Started

I’m using a Raspberry Pi3 running the latest Raspbian Jessie. Head over to Joe Bell’s instructions for the Raspberry Pi and follow them exactly. This will give you a workable Swift 2.2 install via apt-get. I’m sorry there aren’t more exciting instructions here, but that’s really the crux of our predicament – that seems to be the only reliable way to get swift running on the Pi for now.

Once you have Swift properly installed, give some examples a try (scroll down) – using Foundation and Glibc. It feels good to see Swift running on something other than an iPhone or Mac.

Next Steps

I’m currently working with (I use that word loosely – I don’t have the knowledge to be a productive contributor) with Joe Bell, Will Dillon, and Morris Cornell-Morgan to see if we can figure out what how we can get builds working for the Pi and other armv7 devices.

I had the most success attempting to compile Swift on the Pi in over a month last night – this happened to be within just a day or so of the main Swift repo switching over to swift-3.0 development. Most of the tools appeared to compile fine, but package manager failed, and there were some issues with linking (this could be a build config issue). I remain hopeful.

I’ll continue to post progress as it comes. In the meantime, I’m preparing a talk on this subject at the All Things Swift meetup in May.

EDIT April 27, 2016: Joe is putting together a concerted effort to get Swift3 on the Pi.He’s also provided a Jenkins build workflow to test integrations.

Apps As Art

We seem to be on a roll again about this whole “indie is not viable” discussion. Next up, Allen Pike on Supply-Side Blues.

If you haven’t read them yet, I posted a couple other articles on this topic [see indie].

Allen’s post is spot-on with my assessment – the AppStore is becoming much like the music industry. Heck, when I was 16, I wanted to play professional saxophone. I might have actually had the chops to do it. At one point I started considering what my career outlook would have been. I noticed my saxophone teachers all had one thing in common – playing wasn’t their main source of income (or probably not; one guy played broadway shows in LA, but even that was inconsistent as shows come and go all the time). Average salaries were low.

Let’s look at another music angle. I have a family member with a reasonably good shot at making it big in the industry, but even then the sacrifice is large for an unknown, and certainly unrealized, payoff. Pick your poison – take a “real job” and do the things you love when you have time in the evenings, or go for it and make peanuts until (if) you make it big.

That’s why this whole thing is bananas. Apps are becoming art in much the way we approach music. And here’s the kicker – as indies, we LOVE to emphasize the care we put into the craft – paying attention to every detail, making it perfect. Tell me that doesn’t sound like something you’ve read on Etsy!

Friends, the gold rush is over, and we’re in this strange, mature, creative industry now. Customers expect loads of great things for free, we do it because we love it and have no expectation of making it big, and the only real money for most of us is taking that other job that actually pays. You know, that one converting CSV files for the sales team.

But you know what – it’s not going to stop me. I will keep on keepin’ on.

The AppStore Ice Cream Truck

Charles Perry (no relation), wrote this follow-up to Brent Simmons’ Love post (app store, indies, etc).

Here’s the question I posted to Charles – Does it change if the ice cream truck is the only one you’re allowed to sell on, yet the entire menu is only the top-sellers?

Sure – don’t blame the delivery truck, but there is significant impact when your product is effectively hidden from view. (How many times have you searched for the exact app title to be presented with dozens of unrelated results?).

Advertising is the obvious answer, and I think that has been the answer for years. I struggle with doing it right. How, where, and how much are all questions I don’t know the answers to. When bootstrapping something and your team is small, it’s a tough sell to spend money on things that may not have a direct correlation to income. BUT how else will people find out about our apps?

We (indies – I count myself as such, though I’m not making a living off it), need to figure this business out. Apple isn’t going to come to our rescue. They’re just the BigBoxRetail of apps. We need to do a better job getting the word out. More traditional advertising channels? Sure. Is there any reasonable way for us as a community to go about educating the average Joe and Jane that AppStore.app isn’t the only (or best) way to find apps? Actually, I wonder if they even care. See my previous post – perhaps the craft and quality movement will creep into digital.

Stay tuned. I hear the ice cream truck coming.

In the meantime a shameless plug: Have you heard about my latest project, Pocket Coach Pro? If you’re interested in getting fit (and I’m not talking about turning into a Hollywood six-pack… just about getting in shape and staying in shape – for your own health), then this app might be the one for you. Go, sign up, and you’ll be on my no-spam mailing list where I will send occasional development updates, take sign ups for beta testing, etc.

Indie Love

Is going indie on iOS viable? Nope. Don’t bother.

First, by Brent Simmons: http://inessential.com/2015/06/30/love

Then, Gruber follows: http://daringfireball.net/linked/2015/06/30/the-love-era

Hit the nail on the head. I have an app currently in development that might have a reasonable chance of doing OK, but I can’t see making my entire living off of it. Sounds great, huh? Here’s the thing – this is a concept I believe in (health), coupled with something I love to do – develop apps that I conceived. To try out-competing megacorp is foolish, but nothing says you can’t have a slice of the pie AND have fun doing it.

One thing I’m reminded of is how I sense parallels to the music industry (or any creative art, for that matter). We do what we do for the love of doing it. Few artists can make a full-time living off the art, but I don’t see that stopping them. Do it because you love it and because some people appreciate it. A few make it big, but not making it shouldn’t matter. That’s where Brent’s most poignant remark comes, “If there’s a way out of despair, it’s in changing our expectations.” True of everything in life, right? It’s often how you respond to circumstances rather than the circumstances you experience that matters.

Let me wonder this – we (Americans, at least) enjoy the big apps from well-known companies. The names sell themselves. Congratulations to them – that’s no easy task. We’re taking another turn. Things like the foodie movement, farm to table, hand-crafted goods, rejection of the mass-produced, etc are surging farther and farther into our society. We have a millennial spirit of idealism that may end up working to our favor. Will “hand-crafted apps” follow? Maybe. I mean, I don’t know if they actually will, but possibly there’s a chance, and I can hope they will.

So, if I may suggest – do it for the love. Any other benefit that comes of it is bonus.

iBeacons In Real Life

The State of iBeacons (June 2015)

This is pretty consistent with my experiences. On observation I’d add  about squirrely RSSI values – readings walk around a bit. You’ll do better to calculate a moving average and toss out the occasional 0 reading. Also be mindful of your iBeacon’s power settings – you may need to calculate your own distance from the RSSI value if the device isn’t transmitting at the default power expected by iOS. Even so, distance may not be entirely accurate. Take it with a grain of salt.

Jay Fields on Unit Testing

Working Effectively with Unit Tests – Interview with Jay Fields

I rather enjoyed this interview with Jay. It was nice hearing a reasonable voice in the discussion – namely, there’s no need to be over-zealous about any one approach. Even in my own work I’ve seen a tremendous benefit to testing as I write code. It saves a lot of headache and provides some assurance that things still work down the road when code changes. Of course, as always, you need to be confident your tests are thorough enough in the first place.

Measuring Perceived Performance

Measuring user perceived latency | Foursquare Engineering Blog.

I’ve found one of the most important components of performance is the perception. Within reason, the actual performance doesn’t matter as much as how people perceive actions to be progressing and completing.

This is about the user’s experience.

Consider the two possible experiences of loading a web page. In one version – the browser waits until all content is loaded. The other version – the browser progressively loads content, as we’re typically used to. Which one will feel faster, less frustrating, and more “productive”?

Are you doing the same in your app? Luke W explains it well in his post about content loading spinners.

The Case for Slow Programming

A thought-provoking post by Jeffrey Ventrella. I’ve seen both sides. Surely there’s little to be gained by maintaining breakneck development speeds – when the goal is more features as fast as you can. It might look good to business, but there’s a chance it comes back to bite you. I can appreciate taking the time to figure things out, test, and tinker before reaching the final solution. Software is as much an art and a craft as it is math and logic.

Rest and Vacation for Your Mind

I don’t know about you, but I often forget just how much I can enjoy and actually need time off to rest from work. I recently took ten days (mostly) off to be with family and explore the great outdoors. After returning to work, I feel recharged, and fresh with ideas; even colleagues have made note.

I need to remember this for next time.  Taking the time away allows your brain to recharge, change gears, and get away from the routines of work. Refresh.

iPhone 6 Screen Resolution, Points, and Pixels Explained

iPhone 6 Screens Demystified on PaintCode

There were a lot of questions surrounding the rumored iPhone 6 display resolution. A few had well-reasoned extrapolations based on conjecture, but ultimately we had no idea. Now that the hardware is public and our iOS 8 SDKs are gold master, we finally have the numbers. And…. they’re not what we expected.

Yup – 3x graphics are there for the iPhone 6 Plus, but by the time those images hit the screen, they’ve been down sampled by about 15%. I’m sure the 6 Plus screen looks absolutely delicious, but I can’t imagine what that scaling factor is actually going to look like.  Or maybe I do. Having owned a retina Macbook Pro, I’m familiar with scaling on the retina display. It’s actually hardly noticeable. Maybe if I get up close I could see some sort of issue, but I haven’t yet.

We have higher resolution on-screen now, but the UI should be about the same size as it always has; it’s important to Apple that touch just works.