KAKhaled AshrafSoftware EngineerHire me
Projects

BLE Connected Device App

BEY-T Smart Lock

BEY-T is a Flutter mobile app for onboarding, connecting to, calibrating, and controlling a Bluetooth Low Energy smart lock. The app reads lock state, door state, and battery status, then sends lock/unlock commands to the device.

FlutterDartBLoC/Cubitflutter_reactive_bleflutter_blue_plus

Stack depth

9+

tools and integrations

Product scope

Landing flow for lock setup and invited-user login entry. Bluetooth and location permission handling.

Stack

Technology stack

FlutterDartBLoC/Cubitflutter_reactive_bleflutter_blue_pluspermission_handlerlocationScreenUtilLogger

Features

Key product features

  • Landing flow for lock setup and invited-user login entry.
  • Bluetooth and location permission handling.
  • BLE scanning, device discovery, connection state tracking, and device connection.
  • Lock state and door open/closed state reading through BLE characteristics.
  • Lock/unlock command writing through BLE.
  • Battery reading and lock detail UI.
  • Home dashboard with locks and properties sections.

Architecture

Technical decisions

Separated BLE operations into `BleCubit` and lock business logic into `LockCubit`.

Mapped BLE services and characteristics for lock state, door state, commands, battery, and calibration.

Used componentized Flutter screens for onboarding, calibration, lock details, home, locks, and shared cards.

Kept device communication local to the mobile app because no backend integration was evident in the source.

Problem solving

Challenges and solutions

BLE testing depends on real Android hardware and runtime permissions.

Built explicit permission, Bluetooth enabled, scan, connect, read, and write states so device behavior could be tested step-by-step.

Lock state required translating numeric BLE values into user-facing door/lock conditions.

Modeled lock and door conditions in Cubit logic and rendered clear connected, locked, unlocked, open, and battery states.

Screenshots / video

Product media

Media shown here comes from the project source folders in this workspace.

Screenshots or video are not included in the current source folder for this project. The case study keeps this section available for future product media.