Modernize Noteless for Flutter 3 and Dart 3#99
Draft
mcepl wants to merge 5 commits into
Draft
Conversation
Raise the Dart SDK constraint for the current Flutter toolchain and replace obsolete package dependencies with null-safe alternatives. Add a shared_preferences-backed PrefService wrapper so existing preference call sites can migrate without retaining the deprecated preferences package.
Update the note model, persistence layer, note store, YAML utilities, theme provider, and application bootstrap to Dart 3 null safety. This keeps the existing storage behavior while using current path_provider, device_info_plus, shared preference access, and YAML parsing APIs.
Remove reliance on non-null-safe editor, front matter, diff, and markdown packages by switching the editor to Flutter text editing primitives and preview rendering to markdown plus the modern webview_flutter controller API. This preserves editing, preview generation, and note navigation while allowing the project to build on current Flutter.
Migrate the main note list, settings, and about pages away from removed widgets and legacy packages. Replace the old preferences widgets with local Material controls, update package_info usage, modernize note actions, and add a minimal Flutter test so the upgraded project has a runnable test target.
Migrate the project metadata and Android Gradle setup to the current Flutter template, including Kotlin DSL build files, updated wrapper/properties, refreshed manifests/resources, and release-build compatibility flags. Update dependencies for Dart 3 and Flutter 3.44, remove material_design_icons_flutter because it extends final IconData, replace its usages with built-in Material icons, and update file_picker calls to the new static API. Rename tutorial asset files to ASCII-only paths and update sample references so Gradle can stat assets reliably during release builds.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR migrates the Noteless application from a legacy Flutter version to a modern toolchain (Flutter 3.44, Dart 3.12). The primary focus was on implementing sound null safety across the codebase and stabilizing the Android build process for release APK generation.
##Key Changes
Technical Debt & Modernization
Android Build Pipeline
UI & UX
Verification Results
Status of the effort
APK builds, but the result is not useful (errors in Markdown parsing), needs finishing (for which I don’t have enough time any more).
Whole effort is completely vibe coded. I don’t know properly Dart even.