My question is, does the application team has to use 2 separate connection strings?
Yes. The connection string should not specify read-only intent when writes are performed.
For all this, I am assuming a lot of work needs to be done from application side?
Not necessarily a lot of work, but much depends on application design. For example, if read-only reporting functionality is already segregated in the application code, I would expect the change to use a read-only connection string for report queries to be fairly trivial, especially if the code uses already a connection factory technique to centralize connection management.
OTOH, if read and read-write functionality is co-mingled throughout a large app, there will be additional effort involved to leverage the secondary replica for the read-only workload. One migration strategy would be to change the connection string only for expensive read-only queries initially and follow up with others later. That way, the most costly readd-only queries won't impact the rest of the workload.