Skip to main content

Add flutter to existing app — Challenges




I am using flutter last 2 year & successfully released 2 flutter apps on production before 2–3 month, decide to add flutter in existing android & iOS app(while it was in beta-experimental stage). Flutter team have provide better way to add same in flutter v1.2 — Good document than beta.
Article is not about integrate flutter in existing app but, It’s about challenges which i have faced after adding flutter in existing app.
I have integrate flutter module with my existing iOS & Android App (Same Application for both platform), developed 2 new features in flutter module & released successfully.
In last week I have to add new feature in flutter module which user is able to pick file from phone & upload it on server. I have decided to use file_picker: ^1.4.3+2.
Now, what I have is Native Application + Flutter Module < = > Image_picker Plugin in one App. In which I faced below challenges.
Same time flutter v1.12 released
Add-to-app is now released with Flutter v1.12. The updated documentations are at https://flutter.dev/docs/development/add-to-app/
  1. Multiple Channel Issue in Android — because of flutter 1.2 release has changed add on feature beta to stable, So, I am not able to use any flutter plugin which have old platform channel implementation.
The plugin `file_picker` is built using an older version of the Android plugin API which assumes that it’s running in a full-Flutter environment. It may have undefined behaviours when Flutter is integrated into an existing app as a module.
The plugin can be updated to the v2 Android Plugin APIs by following 
https://flutter.dev/go/android-plugin-migration.
  • Solution: this is temporary solution to use old plugin for android, file_picker: 1.2.0, some of plugins worked well.


2. In IOS, trying for pick document from flutter module it’s show me Attempt to present <UINavigationController: 0x104911200> on <Host_IOS_Flutter.ViewController: 0x10470fd70> whose view is not in the window hierarchy!
What I have done so far,
  • Solution 1: tried different plugins available https://pub.dev/ for document picker. but no luck.
  • Solution 2: Created my own plugin just for to make sure its working with add on app or not https://pub.dev/packages/filepicker_plugin in this case I am only able to open document picker, before that i must have to dismiss current flutter view controller. It’s frustrating to get data from new controller to previous which is already closed?? there is way but its change user behaviour & way of using application. It’s feel like….



Image By: http://analyticsatspeed.com/

Finally, i have post issue on GitHub & done for day.
Late night, I have read documentation again and found FlutterViewController, got the idea :)
Solution 3: removed third party plugin & used my channel for document pick in IOs. This is temporary solution it may change with API changes.





Hope it help to use Add-to-app flutter modules.

Questions? Comments?



Comments

Popular posts from this blog

Multi-Selection ListView ANDROID with CheckBox

Shaadi.com Indian Matrimonials Download code Create New Android Project: in res/layout/main.xml create new layout for list row : in res/layout/list_row.xml in your Main Activity Class: Create Class name mItems: Create New Class name SelectViewHolder: Create New Class name SelectArrayAdapter: Download Source Code Click Here : Check PART2 for more detail. Shaadi.com Matrimonials

Multi-Selection ListView ANDROID with CheckBox PART-2

Check Below Code : mainActivity.java package com.example.listviewcheckbox; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private ListView listview; ArrayList<String> items = new ArrayList<String>(); private int count; private boolean[] thumbnailsselection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(...

Jev: The Decision Layer Cutting AI Agent Costs

The expensive part of an AI agent usually isn't the final answer: it's the string of small decisions behind it. Every tool pick and "are we done yet" check is its own LLM reasoning call, and agent loops make dozens per task. Jev is a typed decision layer built to replace exactly those calls. Here's what that looks like inside a personal finance agent answering a spending question, and what it's worth evaluating for your own MCP stack. Key Takeaways Jev never executes anything: it only routes, labels, or checks; your existing LLM and code still do the real work. In a finance agent, it turns a spending question into a routed, labeled, fact-checked answer without extra reasoning calls. Adoption is shadow-mode first: test it against your current routing before it touches production traffic What Is Jev, and Why Are AI Teams Adopting It Now? Jev is a fast, typed decision model: send it a state and bounded questions, and it answers each in one of three fixed shapes: ...