← All case studies
Case Study / Invoicing & Accounting

Invoicing & Inventory App for iOS & Android - Vencru

Native Android and iOS apps that replace a small business owner's cashbook: invoices and receipts out, expenses and stock tracked, and accounting reports generated on the device, not waiting on a server.

Invoicing & Inventory App for iOS & Android - Vencru screens showing the business dashboard, invoice creation and sales reports
Project Overview & Specs
Platform
Native Android (Java) and native iOS (Swift)
Client
Vencru Inc., Calgary, Canada
Architecture
Room + ViewModel over a Volley API layer
Android scope
63 activities, 48 fragments, 182 layouts
Android codebase
360 Java files, ~78K lines

01 / The Challenge

A full accounting suite for people who do not do accounting

Vencru's users are shop owners, contractors and freelancers replacing a paper invoice book, often working on entry-level Android phones with intermittent data. The product's promise is that bookkeeping happens as a side effect of running the business: send an invoice, record a sale, and the reports write themselves. That only holds if the numbers are right, the app opens instantly, and nothing important requires a connection.

Sales, stock and expenses all feed the same reports, so a single write had to update inventory, revenue and profit consistently rather than drift apart

A dashboard that refetches everything on launch is unusable on a slow connection, but stale figures in an accounting app are worse than slow ones

Reports are the reason users upgrade, and they had to be shareable as real documents rather than screenshots of a list

Customers get invoices by WhatsApp as often as email, so sharing could not assume a mail client

Free and paid tiers gate real features, so entitlement had to be enforced in the app and survive reinstalls

02 / Here is What We Did

Cache locally, compute on the device, sync in the background

We built Vencru natively on each platform, in Java on Android and Swift on iOS, with a request layer over the Vencru REST API and a local database underneath the screens that matter. On Android, dashboard, sales, expenses, clients and inventory each cache into their own Room entity and are read through DAOs and ViewModels, so the app opens on real data immediately and refreshes behind the UI instead of blocking on it.

Reports are rendered to PDF on the device with PDFjet, so a user can produce and send a profit-and-loss statement without a round trip.

STEP 01

Invoicing, Clients & Receipts

Built the core money flow: create and update invoices with line items, tax and currency selection, preview and share to email or WhatsApp, log sales receipts for cash payments, and track clients with per-client summaries and debtor status.

STEP 02

Inventory, Expenses & the Cached Dashboard

Added inventory with barcode scanning through ML Kit and CameraX, bulk item import, expense recording, and a business dashboard backed by 16 Room entities and 15 DAOs so summaries render instantly and reconcile against the server in the background.

STEP 03

Reports, Team & Subscriptions

Shipped the reporting suite, sales, profit and loss, debtors, inventory, sales tax, expense analysis and stock analysis, with six of them plus the invoice itself rendered by dedicated PDF generators sharing one base class, alongside team member invitations with roles, bank and payment settings, and Google Play Billing for the paid tiers.

03 / Features

The whole back office, in one app on either platform

01

Invoice creation with line items, tax, discounts and per-invoice currency selection, plus preview, update and a shareable hosted invoice link for clients who pay online.

02

Send invoices and receipts by email or WhatsApp directly from the app, so a customer gets their document on whichever channel they actually read.

03

Sales receipts for cash and offline payments recorded against the same ledger as invoices, keeping reports accurate for businesses that mostly take cash.

04

Inventory management with barcode scanning via ML Kit and CameraX, bulk import from a spreadsheet template, stock-level tracking and low-stock analysis.

05

Expense recording with category breakdowns and an expense analysis view, so cost is visible next to revenue rather than in a separate app.

06

Seven reports, sales, profit and loss, debtors, inventory, sales tax, expense analysis and stock analysis, with six of them rendered to a formatted, shareable PDF on the device through PDFjet rather than fetched from a server.

07

A dashboard backed by 16 Room entities and 15 DAOs feeding ViewModels, so summaries, charts and totals render from cache on launch and update once the network responds.

08

Team member invitations with assigned roles, bank account and payment settings, business profile and business card creation, and subscription tiers enforced through Google Play Billing.

04 / Technologies

A fully native stack on both platforms, built for offline-first bookkeeping

Android
Java
iOS
Swift
Room
ViewModel
Volley
Gson
PDFjet
Barcode Scan
CameraX
MP Charts
Glide
Play Billing
Auth
Messaging
OneSignal
Mixpanel

05 / Results & Impact

A mature product surface, maintained release over release

360
Android Java files across 63 activities and 48 fragments
90
REST endpoints behind one Volley request layer
16
Room entities with 15 DAOs caching the dashboard
8
PDF generator classes rendering reports and invoices on-device
iOS & Android
Published on App Store and Google Play by Vencru Inc.
Android 5.0+ / iOS 14+
Reaches the devices small traders actually use
Offline-first
Dashboard and summaries read from local storage before the network replies
App StoreGoogle Play

Replace your petty cashbook or invoice book with Vencru and start sending invoices, tracking expenses, managing your inventory, and reviewing automatic business accounting reports.

Vencru Inc.
Have something similar in mind?

Let's make your product usable on a bad connection.

Tell us what your users need to see the second they open the app and we'll bring the engineering to make it load before the network does.

Start a project