Developing a Mobile App for Quality Control (QC) on Production Line
Quality control on a manufacturing line involves checklists, measurements, defect photo documentation, and immediate escalation when parameters exceed limits. Paper control cards and spreadsheets kill response speed: defects are discovered at the end of the line, not at the point of origin. A mobile QC app moves data entry directly to the inspection workstation.
Control Charts and Measurement Points
Manufacturing operates by ISO 9001 or industry standards (IATF 16949 — automotive, AS9100 — aerospace). A control chart is a set of parameters with limits (Upper Control Limit, Lower Control Limit). An inspector measures a parameter, enters it into the app, and the system immediately determines: within limits, warning (close to limit), or out of control.
Real-time SPC (Statistical Process Control) — Shewhart X̄-R chart. Calculated on the backend from the last N measurements; the app displays trends and gets alerts when Nelson's 8 rules are violated (e.g., 7 consecutive points on one side of center line).
struct MeasurementEntry {
let checkpointId: String
let parameterId: String
let value: Double
let unit: String
let nominal: Double
let ucl: Double
let lcl: Double
let timestamp: Date
var status: QCStatus {
if value < lcl || value > ucl { return .outOfControl }
if value < lcl + (ucl - lcl) * 0.1 || value > ucl - (ucl - lcl) * 0.1 { return .warning }
return .ok
}
}
class QCViewModel: ObservableObject {
@Published var currentMeasurement: MeasurementEntry?
@Published var chartData: [MeasurementEntry] = []
func submitMeasurement(_ value: Double) {
guard let checkpoint = currentCheckpoint else { return }
let entry = MeasurementEntry(
checkpointId: checkpoint.id,
parameterId: checkpoint.parameterId,
value: value,
unit: checkpoint.unit,
nominal: checkpoint.nominal,
ucl: checkpoint.ucl,
lcl: checkpoint.lcl,
timestamp: Date()
)
if entry.status == .outOfControl {
triggerNonConformanceFlow(entry)
}
Task { await api.submitMeasurement(entry) }
}
}
Defect Recording and Product Linking
Serial number or QR code of the product — the entry point for QC inspection. Scan it; the app opens the product card with history of all previous checks.
Defects are recorded with location information: photo with defect zone markup (annotation over image). On Android — Canvas over ImageView with Paint.Style.STROKE, CircleAnnotation, or RectAnnotation. On iOS — PKDrawingView or custom UIViewRepresentable with CGContext.
Defect classifier — FMEA reference: defect type (geometry, surface, assembly, marking), criticality (Critical, Major, Minor). The app enforces selection from the reference list; free text is not allowed — only reference + photo + comment. This ensures data consistency for downstream analytics.
NCR: Non-Conformance and Escalation
Non-Conformance Report (NCR) is created when a parameter exceeds limits or a critical defect is found. Automatically created on outOfControl status. Inspector adds description, photo, classifies root cause (8D methodology: D0-D3 containment measures).
Push notification to responsible manager immediately upon NCR creation: FCM/APNs with priority: high. Notification includes brief description and deep link to NCR card in the app. If NCR is not confirmed within 30 minutes, escalate further.
// Android: creating NCR with photos
class NCRRepository {
suspend fun createNCR(report: NonConformanceReport): Result<String> {
val photoParts = report.photos.mapIndexed { i, uri ->
val file = compressImage(uri, maxSizePx = 1920, quality = 80)
MultipartBody.Part.createFormData(
"photo_$i",
file.name,
file.asRequestBody("image/jpeg".toMediaType())
)
}
return try {
val response = api.createNCR(
report = report.toMultipartBody(),
photos = photoParts
)
Result.success(response.ncrId)
} catch (e: IOException) {
// Save locally for deferred upload
localDb.savePendingNCR(report)
Result.failure(e)
}
}
}
MES and ERP Integration
MES (Manufacturing Execution System: Siemens Opcenter, PTC Kepware) — source of data on manufacturing orders and serial numbers. ERP (SAP PP/QM, 1C:ERP) — receives QC results and NCR for batch decisions.
Typical data flow: MES → mobile QC app (load inspection task) → mobile app → ERP (results and NCR). Intermediate API service normalizes formats.
Developing a mobile QC app with checklists, SPC charts, annotated defect recording, and NCR with pushes: 8–12 weeks. With MES/ERP integration and offline support for Wi-Fi-free zones: 4–6 months. Pricing is calculated individually.







