Розробка мобільного додатку для контролю якості (QC) на виробництві
Контроль якості на виробничій лінії — це чеклисти, вимірювання, фотофіксація дефектів та негайна ескалація при виході параметра за допуск. Паперові карти контролю та Excel-таблиці убивають швидкість реакції: дефект обнаруживається на кінці лінії, а не в точці виникнення. Мобільний додаток QC переносить фіксацію даних безпосередньо на робочому місці контролера.
Контрольні карти та точки вимірювання
Виробництво працює за стандартами ISO 9001 або галузевими (IATF 16949 — автомобілі, AS9100 — аерокосмос). Контрольна карта — набір параметрів з допусками (Upper Control Limit, Lower Control Limit). Інспектор вимірює параметр, вводить значення в додаток, система негайно визначає: у допуску, попередження (близько до границі), вихід за допуск.
SPC (Statistical Process Control) у реальному часі — X̄-R карта Шухарта. Обчислюється на бекенді за останніми N вимірюваннями, мобільний додаток відображає тренд та отримує алерт при порушенні одного з 8 правил Нельсона (наприклад, 7 точок поспіль з однієї сторони від центральної лінії).
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) }
}
}
Фіксація дефектів та привязка до виробу
Серійний номер або QR-код виробу — точка входу для QC-інспекції. Скануємо, додаток відкриває карточку виробу з історією всіх попередніх перевірок.
Дефект фіксується з привязкою до місця: фото з розміткою зони дефекту (анотація поверх зображення). На Android — Canvas поверх ImageView з Paint.Style.STROKE, CircleAnnotation або RectAnnotation. На iOS — PKDrawingView або кастомний UIViewRepresentable з CGContext.
Класифікатор дефектів — довідник за FMEA: тип дефекту (геометрія, поверхня, збірка, маркування), критичність (Critical, Major, Minor). Мобільний додаток не дає ввести довільний текст — тільки вибір з довідника плюс фото та коментар. Це забезпечує однорідність даних для подальшої аналітики.
NCR: невідповідність та ескалація
Non-Conformance Report (NCR) — документ при виході параметра за допуск або обнаруженні критичного дефекту. Створюється автоматично при outOfControl статусі. Інспектор добавляє опис, фото, класифікує причину (8D-методологія: D0-D3 — утримуючі заходи).
Push-сповіщення відповідальному керівнику одразу при створенні NCR: FCM/APNs з priority: high. У сповіщенні — краткий опис та deep link на карточку NCR у додатку. Якщо NCR не підтверджено за 30 хвилин — ескалація вище по ієрархії.
// Android: створення NCR з фото
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) {
// Зберігаємо локально для відкладеної відправки
localDb.savePendingNCR(report)
Result.failure(e)
}
}
}
Інтеграція з MES та ERP
MES (Manufacturing Execution System: Siemens Opcenter, PTC Kepware) — джерело даних про виробничі замовлення та серійні номери. ERP (SAP PP/QM, 1С:ERP) — отримує результати QC та NCR для прийняття рішення по партії.
Типічний потік даних: MES → мобільний QC-додаток (завантаження завдання на контроль) → мобільний додаток → ERP (результати та NCR). Проміжний API-сервіс нормалізує формати.
Розробка мобільного QC-додатку з чеклистами, SPC-картами, фіксацією дефектів з анотацією та NCR з пушами: 8–12 тижнів. З інтеграцією MES/ERP та офлайн-підтримкою для зон без Wi-Fi: 4–6 місяців. Стоимість розраховується індивідуально.







