Regarding the responsive requirement, I believe the Ionic framework has always been responsive. You can see this by doing ‘ionic serve’ and changing the window size of the browser.
Regarding the “create and maintain two different code bases” part, this one is more difficult.
I’m not sure if it’s possible or a good idea to serve your Ionic 2 project in production. PWAs might solve this issue in the future, but on this page: https://ionicframework.com/pricing/index3.html it lists PWA as a feature as part of the Indie service, so Ionic may only offer this as a paid service.
One of the features of a PWA (progressive web app) is that it is discoverable like a website and can be linked to like a website. This would indicate that there is a way to serve an Ionic app as a website in production.
However, this ionic forum answer (Web version in ionic 2) from a moderator states that Ionic 2 apps cannot be hosted as stand-alone web apps yet, but that the functionality is “in the works”.
Other problems I have heard about are resource issues, as serving an Ionic app would create a separate instance for every remote user.
Still, this does not mean that you can’t share code between two projects.
I created a shared library to do this at my company.
However, another department decided to use Bootstrap 4 in their Angular 2 project.
So I figured out how to use Bootstrap 4 with an Ionic 2 project:
npm install bootstrap@4.0.0-alpha.6 --save
Then add this to src/theme/variables.scss
@import “./node_modules/bootstrap/dist/css/bootstrap”
That worked for me. I haven’t found any conflicts yet, but haven’t really tried anything besides a proof of concept project so far.
In case you are interested, here is an example of a shared lib that will work with Ionic 2:
Here is an example of an Ionic 2 app which uses the shared lib: