v1.9.10 Beta Release Candidate

A browser workspace for learning Android Java and XML.

Kodari gives students and beginners a lighter place to design Android interfaces, connect views to Java logic, run supported behavior in a Virtual Preview, save projects, and return to them later.

Kodari — Code, Build, Run
Built for
Students, instructors, and beginners
Core
Java · Android XML · Virtual Preview
Platform
Browser · Firebase-backed cloud features
Kurt's role
Product, frontend/runtime engineering, Firebase, QA, performance
Why it exists

Android concepts are easier to learn when setup is not the first obstacle.

Android Studio is the right professional tool for full Android development, but it also brings SDK setup, Gradle, device configuration, and heavier hardware requirements. That can distract beginners before they understand views, IDs, events, and application logic.

Kodari narrows the problem. It is not an Android Studio replacement. It focuses on a supported Java/XML learning workflow that can open quickly in a browser and make the relationship between layout and code easier to see.

Product experience

The shortest useful loop is the product.

A beginner should be able to move from an interface idea to working Java behavior without first learning the entire Android build toolchain.

  1. 01
    Create or open a project

    Start from a project structure designed around beginner Android exercises.

  2. 02
    Design with Android XML

    Work with layouts and IDs that connect directly to the Java side.

  3. 03
    Write Java logic

    Use normal beginner patterns for views, events, conditions, calculations, and app state inside Kodari's supported scope.

  4. 04
    Run in Virtual Preview

    See supported app behavior without waiting for a full Android SDK/Gradle build.

  5. 05
    Leave and return safely

    Local persistence, cloud projects, recovery paths, and sharing are treated as core product behavior—not extras.

Typical exercise flowAndroid XML → Java event → Virtual Preview
activity_main.xml
<Button
    android:id="@+id/btnCount"
    android:text="Add one" />

<TextView
    android:id="@+id/txtCount"
    android:text="0" />
MainActivity.java
Button button = findViewById(R.id.btnCount);
TextView output = findViewById(R.id.txtCount);

button.setOnClickListener(v -> {
    count++;
    output.setText(String.valueOf(count));
});
Real-app compatibility

The runtime is tested against projects beginners would actually build.

v1.9.9 changed the development rule: reasonable beginner Android code should not be rewritten just to fit Kodari. When a normal pattern inside the intended scope fails, the runtime is improved and the case becomes a regression test.

CalculatorBMI CalculatorGrade CalculatorLogin / validationRegistrationQuiz / RadioGroupOrder CalculatorCounter / persistent stateMulti-Activity navigationTodo / ListViewCombined Study Planner
Engineering

The difficult part is keeping a browser IDE trustworthy.

Running code is only one part of Kodari. The release work is dominated by preserving projects, reconciling cloud state, keeping the editor responsive, and surviving browser lifecycle changes.

01

Never report a failed save as success.

Rejected local writes stay visibly unsaved. Recovery paths use IndexedDB and workspace exports, while lifecycle handling protects edits during navigation, refresh, and normal browser closure.

Data safetyDirty-state visibilityRecovery downloadLifecycle saves
02

Cloud sync must preserve both sides of a conflict.

Cloud writes are ordered and baseline-aware. Per-file deltas reduce unnecessary writes; remote deletion uses tombstones; unsynced local edits are recovered instead of silently disappearing.

Cloud integrityConflict preservationAccount isolationDelete recovery
03

Typing should not trigger the whole Studio.

Per-keystroke project-tree rebuilds were removed from the hot path. Heavy diagnostics and XML-ID analysis are deferred, while versioned assets are cached and a near-limit project is part of the performance gate.

PerformanceDebounced diagnosticsBatched UI work60-file stress gate
04

Browser updates cannot be allowed to surprise an active edit.

Service-worker activation, origin fallback, account state, sharing, and App Check are treated as release behavior. The product prefers an explicit recovery path over pretending that every browser transition is harmless.

Release safetyUpdate controlTrusted originsApp Check verification
Save path

Every edit has more than one failure mode.

Kodari's save path is designed around the possibility that storage, network, account state, or another device may disagree. The goal is not “always online.” The goal is that a failure becomes visible and recoverable.

  1. EditWorking project becomes dirty
  2. Local saveBrowser persistence is the first durable checkpoint
  3. RecoveryFailed storage keeps attention state and export paths available
  4. Cloud syncSigned-in projects reconcile ownership, baseline, and per-file changes
  5. ConflictDivergent work is preserved rather than silently overwritten
  6. SharePublished snapshots are separate from the private working project
Release evidence

The current candidate is being promoted by evidence, not by a date.

The v1.9.10 line is deliberately feature-frozen around reliability, security, compatibility, performance, and release verification.

25 / 25Production zero-data-loss checks passed on the deployed candidate
11Realistic beginner reference applications kept as compatibility regression gates
60 filesNear-supported-limit local project included in automated performance testing

Production gates already exercised

Hosting and origin parity, production App Check visibility, account isolation, browser resilience, multi-device behavior, viewport coverage, pilot smoke, and zero-data-loss scenarios are part of the current evidence set.

Why it is still not labeled Public Beta

Hard browser/process-crash timing, the real old-service-worker to new-service-worker transition, final physical sanity checks, and the controlled beginner pilot still need to clear the release decision. App Check enforcement also remains a measured decision rather than a marketing checkbox.

Direction

Finish the Studio before expanding the platform.

v2.0Public Beta after the remaining reliability and pilot gates pass.
v2.1Learning improvements plus a minimal Classroom foundation for instructor activities, joining, submission snapshots, and review.
LaterCloud Build remains a later stage. Kodari is not trying to become a complete Android Studio clone before the learning product is proven.
Use the product

Open Kodari and try the workflow yourself.

The strongest way to understand the product is to create a Java/XML project, run it, leave, and return to the same work. For client or employer review, the wider Natsu Labs portfolio shows the rest of Kurt's engineering work.