Flutter Platform Upgrade to Android 16

Posted yesterday

Worldwide

Summary

We are seeking an experienced Flutter developer to upgrade two production apps to Android 16 with a target SDK of 36. The task involves ensuring compatibility with the latest Android version and resolving any issues that arise during the upgrade process. The ideal candidate will have a strong understanding of Flutter and Android platform upgrades, and be able to deliver high-quality results efficiently. Scope of work (per app) Flutter upgrade 3.32.4 → latest stable; resolve all breaking changes; keep fvm pinning; align CI workflow Flutter version. Android toolchain: AGP/Gradle/Kotlin per table above; Java 11 → 17; google-services → 4.4.4+; remove enableJetifier (App A); explicit targetSdk = 36 in both apps. Dependency upgrades (full lists below): upgrade to latest compatible versions; flag any package that blocks targetSdk 36 and propose replacement/removal. Edge-to-edge migration (mandatory at target 36, no opt-out): migrate legacy themes (App A: Theme.MaterialComponents → Material3 DayNight equivalent, framework Theme.Light.NoTitleBar launch themes; App B: review equivalents); verify every screen incl. bottom sheets, keyboard screens, dialogs, image cropper. 16 KB page-size verification: build release AAB, verify ELF alignment of every bundled .so (llvm-readelf -l, LOAD align 2^14 / check_elf_alignment.sh); deliver a per-library report; upgrade/replace any non-compliant plugin. Regression QA on API 36 emulator and at least one physical Android device (platform views are broken on API 36 emulators — Maps/WebView must be verified on hardware). Critical paths: App A: phone-OTP login, main content flow incl. WebView editor, Stripe payment, push notifications, app-scheme:// deep links, image pick/crop, PDF view, share. App B: OTP + Google/Apple sign-in, background location tracking across app lifecycle (foreground/background/terminated) and battery-optimization states, in-app purchase flow, camera + OCR, speech-to-text, local + push notifications, offline DB (drift) integrity. iOS sanity check: apps must still build and run on iOS after the Flutter upgrade (no iOS feature work in scope). Known risk areas (price these in) App A: html_editor_enhanced 2.7.0 pulls unmaintained flutter_inappwebview 6.1.5 (known Android 15/16 inset issues). It is used only by an internal POC feature — removal of the feature + dependency is pre-approved and is the preferred fix. App A: tenjin_plugin 1.3.0 (pinned, closed-source attribution SDK, exported receiver, native libs) — verify target-36 + 16KB compatibility, bump pin if needed. App A: flutter_stripe 11.5.0 — payment flow must be regression-tested on hardware. App B: flutter_background_geolocation ^5.0.0 + background_fetch (Transistorsoft, licensed) — check vendor's Android 16 guidance; background-location behavior is the app's core feature. App B: in_app_purchase 3.2.3 / in_app_purchase_android 0.4.0+5 — verify the bundled Play Billing Library version meets Play's current billing deprecation policy; upgrade if required. App B: sqlite3_flutter_libs ^0.5.0 (native sqlite — 16KB relevant), google_mlkit_text_recognition 0.15.0, camera 0.11, flutter_local_notifications 17.x (current major is 19), file_picker 8.x, geolocator 10.x (current major 14), app_settings 5.x (App A already on 6.x). Both: permission_handler 11.x → 12.x (permission-model changes), image_cropper 11 (UCrop activity uses a legacy AppCompat theme + portrait lock — verify under edge-to-edge). Orientation: portrait lock is ignored on sw≥600dp at target 36. Tablet layout polish is out of scope, but the apps must not crash in landscape/large-screen; report any breakage found. Full dependency lists App A (direct deps, current) go_router 15.1.3, flutter_screenutil 5.9.3, equatable, flutter_bloc 9.1.1, another_flushbar, flutter_gen 5.10, flutter_svg 2.1, easy_localization 3.0.7, retrofit 4.4.2 (pinned), dartz, json_annotation, supabase_flutter 2.12.2, formz, shared_preferences 2.5.3, get_it 8, faker, uuid, easy_logger, freezed_annotation 2.4.1, dio 5.8, custom_sliding_segmented_control, bloc_concurrency, pretty_dio_logger, dropdown_button2, flutter_quill 11.5, webview_flutter 4.13.1 (+ android 4.7, wkwebview 3.23), flutter_pdfview 1.4.4, path_provider, share_plus 12.0.1 (pinned), file_picker 9.2.3, pinput 5.0.2, smooth_page_indicator, package_info_plus 8.3, intl 0.20.2, flutter_advanced_switch, html_editor_enhanced 2.7.0 (→ flutter_inappwebview 6.1.5 — see risks), flutter_stripe 11.5.0, http, html, flutter_contacts 1.1.9+2, azlistview, url_launcher 6.3.2, permission_handler 11.4.0, table_calendar 3.2, flutter_google_places_hoc081098 2.0, google_api_headers 4.5.3, google_maps_flutter (android impl 2.18.3), flutter_libphonenumber 2.5.1, country_flags 3.3, firebase_messaging 16.2.0, firebase_core 4.7.0, firebase_analytics 12.3.0, rxdart, signature 6.3, app_settings 6.1.1, cached_network_image 3.4.1, carousel_slider 5.1.2, image_picker 1.2.1, image_cropper 11.0.0, image 4.5.4, path, app_links 6.4.1, tenjin_plugin 1.3.0 (pinned), flutter_install_referrer 2.1.1, flutter_image_compress 2.4.0, pdf 3.11.3, flutter_dotenv 5.2.1, flutter_carousel_widget 3.1.0. Dev: build_runner 2.4.15, flutter_gen_runner, json_serializable 6.9.5, mocktail, bloc_test 10, mock_supabase_http_client 0.0.3+2, freezed 2.4.7, retrofit_generator 9.2.0, flutter_lints 5. App B (direct deps, current) collection 1.19, connectivity_plus 6.1.1, dartz, dio 5.8, easy_localization 3.0.8, equatable, flutter_bloc 9.1.1, flutter_gen 5.12, flutter_screenutil 5.9.3, flutter_secure_storage 9.2.4, flutter_svg 2.2.1, formz, freezed 3.2.0, freezed_annotation 3.1.0, get_it 8.2, go_provider 1.8.2, go_router 16.0.0, intl 0.20.2, json_annotation, package_info_plus 8.3, device_info_plus 10.1.2, app_settings 5.1.1, pinput 5.0.2, pretty_dio_logger, retrofit 4.7.2, shared_preferences 2.5.3, url_launcher 6.3.2, uuid, path_provider 2.1.4, path, flutter_form_builder 10.1.0, form_builder_validators 11.0.0, signature 6.3.0, supabase_flutter 2.10.3, geolocator 10.1.0, geocoding 3.0.0, permission_handler 11.3.1, image_picker 1.2.0, camera 0.11.0, image_cropper 11.0.0, image 4.3.0, speech_to_text 7.3.0, http 1.5.0, flutter_contacts 1.1.9+2, azlistview 2.0, flutter_libphonenumber 2.5.1, faker, country_flags 4.1.0, google_sign_in 7.2.0, sign_in_with_apple 7.0.1, crypto 3.0.5, bloc_concurrency, dropdown_button2, share_plus 12.0.1, google_mlkit_text_recognition 0.15.0, file_picker 8.1.4, easy_logger, flutter_advanced_switch 3.1, in_app_purchase 3.2.3, in_app_purchase_android 0.4.0+5, in_app_purchase_storekit 0.4.4, custom_sliding_segmented_control, firebase_core 4.4.0, firebase_messaging 16.1.1, rxdart 0.28, flutter_background_geolocation 5.0.0, flutter_local_notifications 17.2.3, background_fetch 1.5.0, latlong2 0.9.1, flutter_speed_dial 7.0, flutter_map 8.2.2, adaptive_action_sheet 2.0.4, drift 2.27.0, drift_flutter 0.2.7, sqlite3_flutter_libs 0.5.0. Deliverables One PR per app (branch off the branch we designate), green CI, reviewable commit history. Upgrade notes: every breaking change encountered and how it was resolved; final version matrix. 16 KB alignment report (per .so, per app). QA evidence: filled regression checklist + screenshots/screen recordings of critical paths on API 36 (emulator + physical device). Release-ready AAB per app uploaded to internal testing (we grant Play Console access) — production rollout stays with us. What we provide Private repo access (after NDA/interview), test backend environment, debug signing, Play Console internal-testing access, Transistorsoft license key (App B), timely code review (same-day on weekdays). Out of scope New features; social sign-in for App A; tablet/adaptive layout polish; iOS store release work; CI redesign beyond the Flutter version alignment.

  • $3,000.00

    Fixed-price
  • Intermediate
    Experience Level
  • Remote Job
  • Ongoing project
    Project Type
Skills and Expertise
Mandatory skills
Android App Development
Nice-to-have skills
Android
Core Java
Activity on this job
  • Proposals:20 to 50
  • Interviewing:
    0
  • Invites sent:
    0
  • Unanswered invites:
    0
About the client
Member since Jun 18, 2025
  • CZE
    Prague5:13 AM
  • $240 total spent
    2 hires, 0 active
  • Tech & IT
    Small company (2-9 people)

Explore similar jobs on Upwork

Quick Video of App FunctionalitiesFixed-price‐ Posted 7 days ago
Smartphone
Video Editing
2D Animation
Smartphone
iOS Development

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo