hehe.software

For product teams and agencies

Native iOS apps your developers can keep shipping

hehe.software offers native iOS apps in Swift and SwiftUI, plus iPad, Mac or Apple TV targets when the product needs them. We work remotely from Vancouver with businesses and agencies across Canada and the United States, including on products we did not build. Email mwe@hehe.software or use the contact form with what you need; a defined sub-project, white-label or credited, is welcome.

Email us

iOS app development, properly.

Native iOS and Android, or one codebase for both.

01

What we build

The app is native Swift and SwiftUI. An iPad app gets columns, a keyboard, and a pointer. A macOS app gets windows, menus, and shortcuts. An Apple TV app on tvOS uses focus and a remote, with type readable from a couch. A Home Screen widget, a Safari extension, StoreKit, or offline SQLite joins the project when the product needs it. Another language means strings in the repository and room for longer labels. Games are SpriteKit.

A fix on an app we did not start begins in that Xcode project. We name the crash, the stuck purchase, or the archive that will not build before anyone proposes a rewrite.

02

Typical jobs

A first release is one path: the task, an empty state, a failed request, the system permission, and a build your side can install. After that, the usual request is a new surface. An iPad layout. A tvOS library or player. A widget for the next item, at the sizes the Home Screen allows. A Safari extension on iPhone, iPad, or Mac.

StoreKit covers the product, a restore, a failed payment, and a lapsed subscription. A payment handled outside the App Store is a separate API. iPhone and iPad ship as one app or two once we know whether they share a purchase. Offline scope names what must stay correct with no network, such as a bundled reference. Our own reference apps keep that data in SQLite.

03

How a project runs

Tell us the job, the devices in version one, and what already exists. A real date is a pilot, a meeting, or a submission. As soon as possible is a mood, not a date. Hourly fits a fix we can see. A fixed quote fits a new app or a known screen list. A vague brief starts as paid discovery, and you keep that scope if you stop.

Open the Apple Developer account in your company's name before a bundle ID exists, and add us to the team. Git stays in your repository. We take a small number of projects at a time, so you email the person writing the code. You leave with the repository, the schemes, and the keys, and you can remove our App Store Connect access the same day.

04

Xcode, Swift, and SwiftUI

Daily tools are Xcode, Swift, SwiftUI, and Git. UIKit is included only where an Apple API still requires it. App Store Connect holds the build, the listing, and review, in this engagement or a later one. Our own apps have been through review. Apple decides each result. You supply the privacy policy. We write permission strings and the privacy details on the form. VoiceOver labels, type that grows, and reduced motion are the WCAG work we implement. We do not certify conformance, and we do not give legal advice.

Name Android in the first email if it shares the release. That is a separate scope: Kotlin and Jetpack Compose, or React Native or Flutter when one interface is shared. Our App Store apps are Swift.

05

Who should email

Email if you can describe the app and you want an iOS app developer or a Swift developer to build it, extend it, or continue code someone else left. Agencies can send that slice white-label or credited. A team that already has a developer can hand us the iPad app, the Apple TV app, a widget, or a Safari extension.

If the brief is still open, paid discovery can turn it into a defined feature list and acceptance checks. If you already have a developer or agency, we can take a bounded part of the work and agree how it joins the wider project. Share the target date so we can assess capacity and dependencies before committing.

06

Apps we can point to

Rain is our iPhone and iPad browser. Tifo handles supplied media playlists and personal servers on iPhone, iPad and Apple TV. Moonflower is a Safari extension with dark mode and a Reader on iPhone, iPad and Mac. These are products we own and maintain. Together with our other apps, they show Swift and SwiftUI, StoreKit, widgets, offline data and submission work in released software.

Ways to work with us

Built by us

Nine apps of our own are live on the App Store. These are a few — built, shipped and maintained by us.

Questions

Can you add an iPad layout, widget or Apple TV target?

Yes. Describe the task on that device and how it connects to the existing app. Each target has its own interface, capabilities and test scope; it is more than a resized phone screen. We estimate the extension after reviewing the project and shared code.

Can you continue an app another developer started?

Yes, subject to repository and account access. We inspect the current build, supported devices, dependencies and release process before estimating the feature or repair. The handoff includes source changes and the steps needed to produce the next test build.

Can you work with our developer or agency?

Yes. An agency can hire the iOS work as a sub-project, white-label or credited, and your developer can keep the rest while we take one target, such as Apple TV, a Safari extension, or purchases. We agree who merges and who submits before editing starts.

Do you maintain the app after release?

Yes. Hourly time covers a crash, a review note, or a small change, including on an app we did not build. A monthly retainer covers a new system version, a broken purchase, and a modest feature. We write down what is included before it starts.

How do quotes work?

Pricing is quote-only. We scope the work, then send a fixed quote or an hourly estimate, and this page has no rates or ranges. If the brief is too open to price, paid discovery is the shorter first step, and you keep the written scope if you stop. Start at mwe@hehe.software or the contact form.

Tell us what needs doing.

A short email is enough: what you have, what’s wrong or missing, and when you need it. We reply with questions or a plan.

mwe@hehe.software