Skip to main content

01 - Roadmap

Sinew is built waterfall: every note in base/, kotlin/ and flutter/ is written and reviewed before any code. Each milestone is then built in Kotlin first, then in Flutter, from the same notes. Releases are lockstep: every package ships together, at one version number.

Milestones​

MilestoneContentNotesDone when
S0 Setupthe umbrella repo srctool/sinew with sinew-kotlin and sinew-dart submodules and Docusaurus docs; build logic; CI; one empty module or package per v1 packageArchitectureevery package compiles on every target, and CI fails a dependency edge that isn't in the graph
S1 Models + Exceptionenvelope bases, paging shapes, ViewState, Result (Flutter), AppException and ErrorMessage; the built-in types, processCall, the use-case guard, CrashReporter, Localizer; sinew_l10n (English, Indonesian)Error Model, Models, Exceptiona failure keeps its code through every layer, and a language switch re-renders an error on screen
S2 Paging + PresentationPager and its strategies; StateEffectHandler, EventActionHandler, EffectEmitter; the Riverpod mixins and hooks, the ViewModel bases, ObserveEffects, the AsyncValue conversionsPaging, Presentation, Adaptersevery paging race test passes, and one order-list view model runs unchanged on the neutral base and both adapters
S3 NetworkSinewHttp, the six layers, the auth layer, processApiCall, the handlers, retry and polling, the network checkerNetworkten parallel 401s cause one refresh, and a refresh failing because the backend is down keeps the session
S4 Security + StorageFieldCipher, BiometricVault; SecureStore, KeyValueStore, processStorageCall, pagedQuery, InspectableStoreSecurity, Storageno storage failure crashes the app, and an iOS reinstall starts with an empty secure store
S5 Testing + Gluesinew_testing; sinew_camouflage; sinew_riverpod_providers; one sample app per platform with a list screen through CamoPagedListTesting, Camouflage Gluethe sample list screen runs the full cycle (skeleton, items, more, retry, refresh, end) on each platform
S6 Publish 1.0lockstep release on pub.dev and Maven Central (com.srctool.sinew), the Kotlin BOM, changelogsthe platform 05 - Delivery notesa fresh app on each platform resolves 1.0 and runs the sample screen
S7 DevTools (1.1)sinew_devtools, sinew_devtools_ui, sinew-devtools-noop, gating, the built-in inspectorsDevToolsa production release or profile build contains no devtools code (checked in CI), and no stored record contains a secret

Later​

ItemNote
sinew_permissionPermission
sinew_notification (+ the devtools notification playground)Notification
sinew_extensions (toMoney, toRelative)Extensions
Devtools inspectors with native code: EXIF, camera, mapseparate optional packages
Router adapters for the devtoolsone per router
A Camouflage skin and theme inspectorin the Camouflage family
An external devtools companionreads sinew_devtools over a connection
Migration recipesfpdart Either → Result; state-flag reactions → effects

The Koin adapter was considered and dropped (Koin Adapter).