I am thinking to start working on a project which in future would become a product (hopefully). I want to take it as opportunity to learn what modern programming era has been shifted to. As of now, All i know is Java based web apps, with old school Business Layer (EJB)/JSP front end. Not to mention, the front end isn't optimized for different platforms and if I have to create web apps out of this then its an other story for me.<p>So how should i design the app which<p>1. Will have a Web Client for Administrators and for users
2. Should provide user access on iOS/Android<p>I was looking at different technologies and I am so confused. There is Angular JS, ROR, DJango, IonicFramework and so many more ... So if i ask you to design a modern web-app for browser and cell phones,<p>1. How many tiers you would have
2. What framework/would you use at what tier
3. What architecture you would use. I mean there was SOA back in the time and now there is a new buzz word (micro-services). How would you decouple server with front end so that same functionality could be used on client brwoser and native mobile apps.<p>Any help is appreciated.
As far as I can tell web services returning json is the standard way to separate business functionality and UI. also, bootstrap is a pretty common library that allows your webpages to respond to different size browsers pretty easily. After that you get into choices that are language dependent. Angular JS, knockoutjs, react others are frameworks(using loosely) in the browser. There are a lot of MVC frameworks for the Server including java based ones(groovy/grails). Then, for native you need to decide whether you might want a mobile platform that can be used for both iOS and Android. Cordova, Corona, Titanium, Xamarin.