Skip to content
Technova
Web + Android AppLive

Yalla Arabi

يلا عربي

An Arabic language platform for the three secondary years, carrying a brand of its own rather than the teacher’s name. It runs on our education platform, and it is the deployment where the content protection matters most: the recorded lesson is the entire product, so most of the work sits between the student and their screen recorder.

Yalla Arabi — desktop interface
Yalla Arabi — phone interface
ClientMr. Mohammad Hassanein — Arabic Language
IndustryEducation
TypeWeb + Android App
Platforms
webmobileapiadmin

Where the lesson is the whole business, and the lesson is a file.

Part of our education platform
Product brand and identity, then an Android app published under it
Course library for the three secondary years, with exercises and summaries
Screenshot and screen-recording blocked on the pages that carry content
Rooted devices and emulators refused in release builds
Accounts bound to devices in named slots — one student, one guardian
Notification payloads encrypted end to end and decrypted in the app
Sign-out that wipes the offline cache, not just the token
Attendance, grades and exam history on one account
Technologies
FlutterLaravelAndroidAES-GCMEd25519Arabic RTL

A recorded lesson is a file, and files want to be copied.

A live class ends when it ends. A recorded course does not — it sits on a phone, and one screen recording forwarded into a group chat can serve a hundred students who never paid. For a teacher whose entire year is in that library, that is not a support ticket; it is the business.

So on this deployment the protection is not a setting somebody remembers to switch on. It is layered: the pages that carry content refuse to be captured, the account is tied to specific devices on the server, the app declines to run on a device that has been opened up, and signing out takes the cached content with it. None of it is unbreakable, and we do not claim it is. What it does is raise the cost of casual sharing past the point where it is worth doing.

Six places a leak was closed.

Each of these is a separate route out of the app, and each one had to be shut on its own terms.

The screen refuses the shot

Screenshot and screen recording are blocked on the pages that actually carry content, rather than across the whole app where it would only annoy.

And the app switcher too

Android blurs the task-switcher thumbnail natively; iOS has no such API, so the app frosts its own interface the moment it goes to the background.

Mirroring counts as a camera

On iOS, AirPlay and any external display are treated as a capture attempt and the protected content is pulled off the screen.

Not on an opened device

Release builds refuse to run on a rooted or jailbroken phone or in an emulator — the environments where every other protection here can be lifted.

One account, named devices

The account binds to its devices in slots on the server — one for the student, one for a guardian — so a login cannot quietly spread across a class.

Logging out means gone

Deleting the token is not enough — the cached lessons and downloaded artifacts go with it, so a shared handset does not hand over the last account’s course.

Watch, drill, sit, and be recorded.

Arabic is a subject you pass by repetition, so the loop is short on purpose and every pass through it leaves a trace on the student’s record.

01

The lesson

Filed by year, month and unit, resuming exactly where the student stopped.

02

The drill

Exercises and summaries attached to the lesson they belong to, not to a separate folder.

03

The test

It marks itself and opens into a review whose timing the teacher controls.

04

The record

Attendance, marks and how much of each lesson was watched — the same record a guardian can open.

A product with a name, not a teacher with a website.

Every other deployment on this platform carries the teacher’s own name. This one is called Yalla Arabi, and that was the client’s decision: a name a student can recommend to another student without it sounding like an advert for a person. We built the identity around it and published the Android app under it.

Underneath, it is the same platform as the rest — the same Flutter app, the same Laravel API, the same admin panel. What changes per deployment is the application id, the branding file the app reads its identity from, its own Firebase project for notifications, and its own listing on Google Play. That is why a new teacher goes live in days: the product already exists, and what is being configured is which one of them it belongs to.

More work

Have a project like this one?

Tell us what you're building and we'll come back with how, what it takes, and how long.

Start Your Project