FLINTRoofing & software
FR EN
Request a quote
How it started

We tried buying, then we wrote our own

For years we paid subscriptions for jobsite tracking software. It was designed by people who had never tried to fill in a form on a ladder, in November, wearing gloves.

We ended up hiring a developer to write what our crews actually needed. That one job became a workshop, the workshop published an app, and other roofing firms started asking for the same thing.

What we refuse to ship

  • An app that demands an account for nothingIf the tool runs on the device, it does not need to know who you are.
  • Advertising networksThey bring tracking code we did not write and cannot properly inspect.
  • Convenience permissionsWe declare what a feature actually uses, and strip the ones libraries add on their own.
What we take on

The work the workshop handles

Projects small enough to finish, rather than large enough to drift.

Trade applications

Surveys, job tracking, stock, inspections, timesheets. Built for a gloved hand and a wet screen.

Kotlin · Jetpack Compose

Offline by default

Local database, instant writes, a sync queue. The interface never blocks waiting on a network request.

Room · SQLite

Play Console release

Store listing, content rating, Data Safety form, signing and test tracks. Filled in by hand, line by line.

Signed AAB

Rescue work

An app that got slow, heavy or rejected by a store. We audit it, write down what we find, then start cutting.

Audit · Report · Rebuild

Internal tools

Take-off calculators, quote generators, survey sheets. Often one page that replaces a shared spreadsheet.

Android · Web

Maintenance

Target API updates, fixes, keeping up with store policy changes. An annual contract, not a subscription in disguise.

By project
Method

The maths first, the screen after

The part that calculates is written as an isolated module with its own tests, before a single screen exists. When a number looks wrong six months later, we already know where it is not.

It is the same logic as on a roof: you check the deck before laying the covering, because afterwards everything is hidden.

Native AndroidKotlin · Jetpack Compose
Local storageRoom · DataStore
Cross-platformFlutter when needed
TargetAPI 35, minimum 26
DeliverySigned App Bundle
TestsOn the calculation engine

Got an Android project to write?

Tell us what the app should do, who will use it and in what conditions. The conditions matter as much as the features.

[email protected]