THE LATEST
THE LATEST
Tips On Small-Screen Development
Most of the development team here at BiTE are very well supplied with screen real estate; in fact, I can’t believe how wide and how numerous their monitors are. Very often, someone shares their screen with me, and it’s so insanely wide that it’s almost impossible to see it on my screen, because it has …
“Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains.”
— Steve Jobs
Recent Posts
Swift 5.5: Replacing GCD With Async/Await
Multithreading! The mere word sends shivers up one’s spine. And if it doesn’t, it should. Main thread and background threads. Code that runs asynchronously. Code that can run simultaneously with other code. Code that can run simultaneously with itself. Code that can share data across threads — possibly with disastrous consequences. Concurrency. Multithreaded code is …
Of Git and GitHub, Master and Main
Following on from my earlier blog post on understanding (and misunderstanding) Git, let’s dive deeper into some individual Git topics. Today’s article is about the branch names master and main. It’s the story of a change in the policies, at GitHub and within Git itself, about what the default initial branch name should be. This …
Taking Control of Rotation Animations in iOS
We all love to have animation in our app’s interface. But sometimes writing even the simplest animation can be rather elusive. Rotation is a case in point. As you probably know, the way to rotate a view (or a layer) is to change its transform, applying a rotation transform to it. But certain rotations are …
Picturing Git: Conceptions and Misconceptions
Usually, I write on this blog about matters directly related to developing for iOS on a Mac. I typically talk about Xcode, the Swift language, and of course iOS itself (in particular, aspects of Cocoa Touch and related frameworks). Today I’d like to switch gears and talk about another development-related topic that’s near and dear …
Effective Test Automation in iOS Development
Test automation is probably the single most important factor within an agile software project. Providing a customer with small, working increments of a product, delivered frequently, requires the pipeline from feature design to product delivery to operate very fast. The biggest hurdle in delivering a small change quickly is regression testing. The trouble stems from …
Little Swift Tricks: Boxing Multiple Types
Here’s a little Swift language trick I sometimes use — more often than you might suppose, actually. As I’m sure you know, Swift is very strict about the types of its objects. You have to declare clearly what type a reference is, and from then on, you have to stick to that. That’s one of …
Night Thoughts on Testing iOS In-App Purchases
What’s the business model for an iOS app? If you aren’t just distributing an app as a freebie out of the goodness of your heart (several of my apps do work that way), and if you aren’t being paid directly by a client to create or maintain the app in the first place, and if …
Green Is Home Base
A developer’s typical working procedure is: Create a feature branch off of master. Implement the feature, which will destabilize the code… Then, spend time getting everything back into a working state. It’s as if you needed to replace a part in your car that is buried deep inside of it — so first, you have …
Android
COVID-19 and the Broadband Gap
School is about to start for millions of kids around the country, in the middle of a pandemic (sadly, the pandemic isn’t over just because we’re over it). We can’t quite imagine how this’ll work out, since if we cast our minds way (way) back to childhood, the likelihood of being able to pay attention …
The Rise of Cybercrime During the Pandemic
Covid-19 has brought out the best in a lot of people. At the same time, if you’re someone who preys on the weak, this global pandemic is a banquet. If you’re anything like us you’ve seen a huge increase in phishing and scam calls since all of this began in earnest. Interestingly, so have corporations. …
TikTok, Vine, and the Monetization of Creativity
We’ve been talking about TikTok a lot lately, and not just as an excuse to post our favorite videos (though that is certainly a nice bonus). And in a bit of accidental prescience last week we compared them to the rapidly sinking Quibi, a company whose ambition exceeded its understanding of the mobile market. TikTok, …
TikTok, Vine, and the Monetization of Creativity Read More »
Tracking the Spread
While most of us are getting used to the new normal of quarantine and social distance, for tech companies it is a brave new world of close collaboration. We looked at the mutually beneficial partnership between long-time frenemies Apple and Amazon, and now Apple has entered into an unprecedented, globally beneficial relationship with perpetual rivals …
To Like or Not to Like
You Like Me, You Really Like Me Instagram has made a lot of tweaks to its user experience lately, like removing the following tab (simultaneously making it harder to stalk people and easier for us to like really embarrassing things) and changing the “explore” experience. But now it’s doing something that’s got opinions very …
How Do You Test Mobile Apps for Android?
It’s a question I hear from nearly every client. So here are five ways to make that testing easier. There are thousands of variants of Android devices out there and your app will be run on an incredibly high number of them. There simply isn’t a way to test on every different flavor of device. But like …
BiTe
Development
Of Git and GitHub, Master and Main
Following on from my earlier blog post on understanding (and misunderstanding) Git, let’s dive deeper into some individual Git topics. Today’s article is about the branch names master and main. It’s the story of a change in the policies, at GitHub and within Git itself, about what the default initial branch name should be. This …
Picturing Git: Conceptions and Misconceptions
Usually, I write on this blog about matters directly related to developing for iOS on a Mac. I typically talk about Xcode, the Swift language, and of course iOS itself (in particular, aspects of Cocoa Touch and related frameworks). Today I’d like to switch gears and talk about another development-related topic that’s near and dear …
Effective Test Automation in iOS Development
Test automation is probably the single most important factor within an agile software project. Providing a customer with small, working increments of a product, delivered frequently, requires the pipeline from feature design to product delivery to operate very fast. The biggest hurdle in delivering a small change quickly is regression testing. The trouble stems from …
Green Is Home Base
A developer’s typical working procedure is: Create a feature branch off of master. Implement the feature, which will destabilize the code… Then, spend time getting everything back into a working state. It’s as if you needed to replace a part in your car that is buried deep inside of it — so first, you have …
Tools We Use: What’s in Our CTO’s Menu Bar?
The other day, I was discussing something with BiTE CTO Brant via Slack, and he was showing me his screen for some reason; and when he got done showing me whatever it was that he was showing me, and we’d finished discussing it, and he was about to turn off his screen sharing, I said: …
Common Pitfalls of BDD
Introduction So you’ve decided you want to drive development from behaviors, created with a shared understanding in a shared language among the Three Amigos (product owner/designer, developer, and tester). You will, most likely, immediately start seeing some benefits. But you’ll probably also encounter some difficulties. It’s important to understand that these difficulties are common. They …
The Line Between “What” and “How”
Introduction A pervasive problem in software development is finding the line between what is a sufficiently detailed description of a product requirement and describing the "implementation details" of that requirement. Put simply; it is a problem of finding the line between what and how. A product requirement should contain everything about the "what" (and leave …
The Shape of Things
Let’s say you want to build a chair, a simple wooden chair. Nothing fancy, it just needs to support you when you sit and not collapse when you lean back. You want one, or you need one, or your client needs one… whatever. What’s the first thing you do? Well, you look at the parts. …
Strategy
The 4 Forces Applied: Why Microsoft’s Conversion Tool Won’t Entice iOS Developers To Windows
Microsoft’s newly announced conversion tool for bringing iOS code to Windows will not be compelling enough to move developers over. The 4 Forces help explain why. The 4 Forces are a lens used to look at why people decide to change their behavior to use a new product or service. It is a wonderfully helpful …
Why Focus Groups Lead to Horrible Software
The first rule of great product development is: Don’t ask the customer what they want. But why? Well, customers have no idea what they want. More importantly, they can’t tell you why they really buy your product. I love the Henry Ford’s quote, “If I’d of asked people what they wanted, they would have …
What a Successful Slack Implementation Looks Like
Tips to make Slack an amazing tool for your team. At BiTE, we’re huge fans of Slack. For the uninitiated, Slack is an amazing collaboration tool. It starts with chat; both person-to-person as well as group chats (“channels” in Slack parlance) are exceptional. It handles sharing files between team members, offers integrations to other services, …
What a Successful Slack Implementation Looks Like Read More »
The Path Less Traveled for Talent Recruitment and Retention
According to London Business School’s Annual Global Leadership Summit poll, over a third of surveyed companies project more than 50% of their workforce will work remote by 2020. That may seem like a surprising number until you realize how much a remote workforce could benefit your company. Here’s how it benefited ours: When Brant DeBow …
The Path Less Traveled for Talent Recruitment and Retention Read More »
What Shoveling Snow Taught Me About Making Great Mobile Apps
How shoveling snow this winter helped me contemplate what makes great software I live at the top of a steep and twisting driveway that quickly turns into what I’ve described to my team in Slack as “a snowy deathcoaster”. While spending a few hours trying to end my family’s snow-exile, my mind drifted to thoughts …
What Shoveling Snow Taught Me About Making Great Mobile Apps Read More »
How to Do BDD and Agile Well for Your Mobile App Project
In a previous post I wrote about how Jobs to be Done theory can be used to develop a clear and powerful mobile strategy. But once you have this mobile strategy in place, and have developed your stories, how do you then execute BDD well in an Agile environment? Going from a waterfall, fixed-price …
How to Do BDD and Agile Well for Your Mobile App Project Read More »
How to Integrate Jobs-To-Be -Done and App Definition Statements into Your Mobile Strategy
As a strategist I’ve written a lot about Jobs-To-Be-Done. So if you’re reading this post you already know that customers don’t want the drills – they want the holes in the walls. But understanding the value in Jobs-To-Be-Done and App Definition Statements (ADS) and implementing these critical elements into your Mobile App development process …
Jobs To Be Done, Good Enough and Your Mobile App
The basics behind Clayton Christensen Jobs-to-be-done theory is that customers buy or “hire” products and services to do jobs. Some of those jobs are quite clear: I hire the metro to take me from point A to point B. But there are other jobs for which people might hire the metro: to be eco-friendly, …
Jobs To Be Done, Good Enough and Your Mobile App Read More »
iOS
Swift 5.5: Replacing GCD With Async/Await
Multithreading! The mere word sends shivers up one’s spine. And if it doesn’t, it should. Main thread and background threads. Code that runs asynchronously. Code that can run simultaneously with other code. Code that can run simultaneously with itself. Code that can share data across threads — possibly with disastrous consequences. Concurrency. Multithreaded code is …
Taking Control of Rotation Animations in iOS
We all love to have animation in our app’s interface. But sometimes writing even the simplest animation can be rather elusive. Rotation is a case in point. As you probably know, the way to rotate a view (or a layer) is to change its transform, applying a rotation transform to it. But certain rotations are …
Little Swift Tricks: Boxing Multiple Types
Here’s a little Swift language trick I sometimes use — more often than you might suppose, actually. As I’m sure you know, Swift is very strict about the types of its objects. You have to declare clearly what type a reference is, and from then on, you have to stick to that. That’s one of …
Night Thoughts on Testing iOS In-App Purchases
What’s the business model for an iOS app? If you aren’t just distributing an app as a freebie out of the goodness of your heart (several of my apps do work that way), and if you aren’t being paid directly by a client to create or maintain the app in the first place, and if …
Picking a Photo in iOS 14
If your app puts up an interface where the user gets to choose a photo from the photos library, you’re probably familiar with UIImagePickerController. Indeed, you’re probably all too familiar with it. UIImagePickerController is a remarkably clunky, aged piece of interface, both from the user point of view and with regard to its programming API. …
Dealing with iOS 13 Deprecations
In an earlier article, I talked about the major and minor changes you might expect to grapple with when updating your older app to iOS 13 and iOS 14. In that article, however, I didn’t talk about deprecations. So I want to talk about them now. What is a deprecation? A deprecation is when [WARNING: …
Finishing Touches: Haptics
We are probably all so accustomed by now to haptic feedback on our iPhones that we hardly give it a thought. Here are some examples: On the home screen, long press on the background, and the screen enters “jiggly mode” — with a dull thud. On the home screen, long press an app or a …
Xcode Tricks: Multiple Selection
Have you used a code text editor that’s truly sophisticated and powerful, such as SublimeText or TextMate or Visual Studio Code or RubyMine? One very cool feature that they all have in common is multiple selection, also referred to as multiple cursors. This means you can select and edit multiple stretches of text simultaneously. When …
This Week In Mobile
Signal vs WhatsApp: Chat App Encryption
If you spend any amount of time on social media these days (and heaven knows I do), you’ll see people talking about encrypted chat apps. In the days following the Capitol riots, both Twitter and Facebook cracked down hard on violent speech and anything that could be considered a conspiracy theory. The result was a …
CES 2021: Moflin, Masks, and Meeting the Future
Believe it or not, we’re going to talk about something other than politics today. CES was this week! The Consumer Electronics Show is usually a fun, exhausting, 3 days in Las Vegas. This year, obviously, it was a fun, exhausting, 3 days on your couch. And to be honest, we kind of like these virtual …
Why President Biden Wants to Repeal Section 230
It’s worth mentioning that when I first decided to write about 230, there had been no Capitol riot, and things seemed a little bit more normal than they do today (relatively). But for the next few paragraphs, let’s pretend it’s all as it was 48 hours ago, shall we? Last week we all waited on …
The FTC’s Next Strike on Data Privacy
Remember last week when we talked about the new avalanche of lawsuits against Facebook? Well it gets worse for the social media giant (whether or not it’s better for us remains to be seen). Yesterday, the FTC made a move that could signal future regulation of data handling: They demanded all of it. The data, …
(Anti)competitive spirit: Facebook, the FTC, and Antitrust
Modern life is completely dominated by just a few corporations. That’s a discordant thing to realize in a nation that prides itself on an excess of choice. If you search “nightlight” on Amazon, you get 11,000 results. “Coffee mug” gets 100,000. We cannot possibly scroll through 100,000 coffee mugs, and there’s simply no rationale for …
(Anti)competitive spirit: Facebook, the FTC, and Antitrust Read More »
One in a Googol: DeepMind’s Protein Folding AI
A couple weeks ago I talked about all the hard science that’s being done by intrepid gamers and idle PCs. One of the coolest was, and is, Folding@Home, a groundbreaking research project that allows millions of distributed, amateur scientists to gain insight into diseases like Alzheimer’s, cancer, and even COVID-19 by simulating protein patterns to …
Bite of the Apple: App Store Commissions
When Apple and Fornite went to war in the great battle over commission costs, Apple was left with super-expensive egg on its face. It didn’t look good for the richest company in 5 galaxies to tighten the thumbscrews on a brand from whom they’ve made $360 million in app revenue and in-app purchases over the …
Eve Online’s Crowdsourced Covid19 Research
Science is infinite in its capacity. Humans are not. And the volume of data needed to do something like find life in the galaxy, or cure disease, is overwhelming. That’s where we come in. Years ago, when I was a bright-eyed college student, I set up an unused laptop to analyze radio signals in the …