Skip to content
View Israa050's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report Israa050

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Israa050/README.md

Israa Essa

Flutter Developer · Offline-First Business Apps · Arabic RTL
Libya

LinkedIn Projects Telegram Email

Money Log — transaction list with live balance summary   Money Log — add transaction sheet   Money Log — empty state

Money Log — a fully reactive Flutter ledger. Every screen driven by a live SQLite stream.


I build Flutter applications that keep working when the network doesn't.

Most mobile apps assume a stable connection. In the markets I build for, that assumption breaks daily — so my work centres on local-first architecture: the app runs entirely on-device, holds a single source of truth in SQLite, and syncs cleanly when connectivity returns. Alongside that, I care about the parts that survive a codebase's second year — typed schemas, tested state machines, and CI that refuses to merge a regression.

I work in both Arabic and English, and give real attention to RTL correctness rather than treating it as a translation pass.


Featured Work

Project What it demonstrates Stack
Money Log Fully reactive architecture — every screen driven by a live database stream, no manual refresh anywhere. Optimistic delete with a countdown undo. Bloc · Drift · get_it · CI
Sabil Fintech MVP: phone/OTP auth, AI-assisted KYC face verification, real-time credit scoring, Arabic RTL-first UI. Cubit · Dio · go_router
Pets Finder Clean Architecture end to end, with unit, widget, and integration test coverage. Cubit · Dio · Clean Arch
Flutter Core Utils Reusable core module consumed as a git submodule — shared configs and architecture to bootstrap projects consistently. Dart · Architecture
Quotes App Native interop via platform channels — a Kotlin shake detector on the Android side wired through to Flutter. Flutter · Kotlin · Platform Channels
Movies DB Infinite-scroll pagination, Hive offline caching, Sentry error tracking, light/dark theming. Cubit · Hive · Sentry

Engineering Decisions I've Made

The choices below are documented in the repositories themselves — I write down the reasoning, including the trade-offs, not just the outcome.

  • Money as integer minor units, never double (Money Log) — IEEE 754 can't represent most decimal fractions exactly, so summed amounts drift over time. Whole minor units keep every operation exact; conversion to a display string happens only at the UI boundary.
  • Balance derived from queries, never stored (Money Log) — one source of truth means no reconciliation step, and no way for a cached total to disagree with the ledger.
  • Tests run against a real in-memory database, not mocks (Money Log) — mocking the data layer tests the mock, not the schema. A real SQLite instance per test catches constraint violations, defaults, and enum round-tripping that mocks silently pass.
  • Shared core extracted as a git submodule, not copy-pasted (Flutter Core Utils) — duplicated base configs diverge the moment one project fixes a bug. A consumed module means the fix propagates instead of rotting in three places.
  • Offline cache with explicit error reporting (Movies DB) — Hive caches pages so the list survives a dropped connection, and Sentry captures what actually failed in production rather than leaving silent empty states.
  • RTL designed in from the start, not retrofitted (Sabil) — direction-aware layout, numerals, and input behaviour are architectural, not a translation pass. Retrofitting them means revisiting every screen.
  • Drop to native only where the platform requires it (Quotes App) — sensor access lives in Kotlin behind a platform channel; everything above it stays in Dart, so the native surface is small and testable.

Toolbox

Language & Framework Dart · Flutter · Kotlin
State Management Bloc / Cubit · Freezed
Data & Backend Drift (SQLite) · Hive · Supabase · Firebase · REST via Dio + Retrofit
Architecture Clean Architecture · SOLID · Design Patterns · Dependency Injection (get_it)
Testing & Quality flutter_test · bloc_test · mocktail · widget & integration tests · Sentry
Delivery GitHub Actions CI · signed release builds & Google Play publishing · Git submodules
Design Figma to Flutter · design tokens · light/dark theming · responsive layouts · RTL

Currently

Extending Money Log into a full offline-first ledger — relational categories and accounts via real Drift migrations, with bloc_test and mocktail coverage across the write paths.

Writing about Flutter architecture in Arabic on LinkedIn — reactive streams, state modelling, and the decisions behind them.


Open to remote roles, freelance projects, and collaboration.

Pinned Loading

  1. money-log money-log Public

    A Flutter income/expense tracker built on BLoC and a reactive Drift (SQLite) database — the UI updates live from the database, no manual refresh.

    Dart

  2. Sabil Sabil Public

    Flutter fintech MVP with phone/OTP authentication, AI-powered KYC face verification, real-time credit scoring, and an Arabic RTL-first UI, built with Cubit, Dio, and go_router.

    Dart

  3. Quotes-App Quotes-App Public

    Flutter + native Kotlin app that detects a phone shake via platform channels and displays a random motivational quote.

    Dart

  4. Pets-Finder Pets-Finder Public

    Flutter pet discovery app using The Cat API, built with Clean Architecture, Cubit/BLoC, Dio networking, and full unit/widget/integration test coverage.

    Dart

  5. Flutter-Core-Utils Flutter-Core-Utils Public

    Reusable Flutter core module (used as a git submodule) providing shared base configs, utilities, and architecture to bootstrap new projects consistently.

    Dart

  6. Movies-DB Movies-DB Public

    Flutter movies browser with light/dark themes, infinite-scroll pagination, Hive offline caching, and Sentry error tracking, built on Clean Architecture + Cubit.

    Dart