Is it feasible to create an responsive website and mobile application with same codebase? - ibm-mobilefirst

Being said that IBM Mobilefirst is very advanced tool in developing hybrid mobile applications, I am curious to know if we can develop both the mobile application and the responsive mobile application using single code base. I know that there are different environments being provided out of box by Mobilefirst i.e mobile browser, desktopBrowser, Android etc.. I feel it kind of opens an option to developer to develop both mobile and responsive web application. But following questions and functionalities makes me rethink about going forward with this approach for practical implementation.
1) How far will the MobileFirst be reusable and flexible in terms of:
* implementing session management for both applications
* Authentication and Authorisation for both applications:
- When I said Authorisation, I meant user level preferences
2) What are the steps that need to be followed to setup a project which effectively uses the all the key features of the worklight for satisfying the above mentioned requirement.
3) Post development what are the steps that need to be followed to successfully deploy mobile and web application (Both of them will be using adapters to talk to services) into production.
Very sorry for making the question so theoretical. I felt very interesting and wanted to know.

1) How far will the MobileFirst be reusable and flexible in terms of:
* implementing session management for both applications
* Authentication and Authorisation for both applications:
- When I said Authorisation, I meant user level preferences
Depends which version of MFPF you are using.
Pre-7.1, all session management is the same in the server.
7.1 forward the server is session independent and currently Mobile Web and Desktop Browser are not supported; read more about session independent in the IBM Knowledge Center
Authentication works the same for both pretty much
2) What are the steps that need to be followed to setup a project which effectively uses the all the key features of the worklight for satisfying the above mentioned requirement.
There is not feature parity between the supported mobile environment and web environment, so the answer will depend on which particular features you will end up using. The IBM Knowledge Center contains a feature parity table.
3) Post development what are the steps that need to be followed to successfully deploy mobile and web application (Both of them will be using adapters to talk to services) into production.
That's got nothing to do with any of the environment you'll choose to use. It's the same for all. Yet again, read in the IBM Knowledge Center.

Related

Does Bluemix support MBaaS (Mobile Backend as a Service)?

I am reading about and then trying to use IBM Bluemix. I have seen some confusing statement about MBaaS support on Bluemix. Some sites mention that Bluemix is a PaaS, and some places say it supports MBaaS. I have basic doubts: does IBM support MBaaS? If yes, where can I find the full MBaaS features list for IBM Bluemix? I couldn't find it in IBM site.
You're correct: Bluemix is a PaaS. However as you probably know and as you can see here:
Mobile backend as a service (MBaaS) enables you to quickly integrate
your mobile apps with data and functions in security-rich, backend,
cloud storage. MBaaS is usually delivered through a set of custom
software development kits (SDKs) and application programming
interfaces (APIs). MBaaS can offer you full data synchronization, user
management, push notifications, integration with social networking
services, and file-handling.
A PaaS provides SDKs and APIs and for this reason it can support MBaaS. In Bluemix the MBaaS capabilities are provided by the MobileFirst platform. It is designed for building and enhancing multiplatform, enterprise-grade apps that can be native or hybrid – for Android, iOS, and Windows. You can get started here.
Yes, Bluemix Mobile supports a Mobile Backend as a Service.
Here are the current services that we have that support the MBaaS pattern and a bit of information about them (and here's a quick graphical view and some links for how to get started):
Mobile Client Access
This service enables you to secure your Mobile Application. You can add Facebook, Google, or custom authentication to your application.
Push Notifications
You can add the Push Notifications service to send push notifications to your app on Android and iOS.
Mobile Analytics (Beta)
The Mobile Analytics service enables you to gather crash and usage knowlege about customers using your mobile app.
Cloudant NoSQL DB
The Cloudant service is the IBM NoSQL database to store your data.
Object Storage
The Object Storage service is an unstructured cloud data store where you can store things like images or files.
Mobile Foundation
The catalog also includes the Mobile Foundation service which you can use to create a test environment before deploying or purchasing the on-premise software. This service is another way for enabling a developer to create a mobile channel.
You may have a look at this :
http://www.ibm.com/mobilefirst/mobile-backend-as-a-service/mbaas.html

Is MBaaS specifically for Hybrid applications or can also used for Native Applications?

I am researching MBaaS (Mobile Backend as a Service) and what its purpose is, for school. So far I gathered that it is basically a resource that developers can use so they can create the back-end code one time, rather than separately for each device - this way the focus can be more on the front-end of the development.
So my initial thoughts would be that this tool can be used only in the creation of Hybrid apps, however I'm having difficulty finding information to back that thought up. So can MBaaS be applied to Native apps also?
If the sense of meaning I've gathered about what MBaaS is used for is wrong, making my original question void or not applicable, a thorough but simple explanation, of what exactly MBaaS does would be very much appreciated.
MBaaS is a service that can be used by all – companies that are big to start ups and solo developers.
Mobile app development remains fun when it is about designing user interfaces, engineering social communication among users or bringing in stickiness. The Backend infrastructure plumbing is too time consuming and less rewarding. Worrying about database scaling, thread locking, persistence, user registration handling, messaging and pushing notifications is not fun. They are necessary evils that have to be taken care of to launch an app. The Baas paradigm has definitely made app development much easier and fun. Hence MBaaS services definitely present a powerful case for quick adoption.
Built.io Backend is an MBaaS provider. It is client platform agnostic. It provides platform-specific SDKs (iOS as well as Android) for native app development, and Xamarin and JavaScript SDKs for hybrid app development.
Coming back to your question. MBaaS can be used to develop native as well as hybrid applications. The services is not limited to a platform or any other technology.
PS: I am employee at built.io

Usage of already deployed REST service in mobile application using IBM Mobile First

I've published a native android application which uses a services with response in JSON format. Now, I want to develop a Hybrid application using IBM Mobile first platform. I want to use the same service here in this case also. I'm not able to findout the mechanism to do so. Anyone please suggest me some solution.
I assume that you intend to build your hybrid app using HTML, CSS and JavaScript.
You could directly call the service using standard JavaScript
XMLHttpRequest(serviceUrl)
But you probably will use some framework such as AngularJS - such frameworks really do pay off in the long run - and in which case you have nice APIs
$http.get(serviceUrl).then(doSomeWork);
However this raw JavaScript approach does not exploit the MobileFirst programming model. We tend to find that using a Mobile Gateway architectural pattern, where MobileFirst adapters act as the gateway, pays off as your application becomes more complex. The adapters provide a security model and can implement aggregation and filtering so that precious mobile bandwidth is used more efficiently.
Hence we recommend that you build adapters, as described in the links given by Idan, and then you use the MobileFirst API to call the adapters:
WL.Client.invokeProcedure( ... );
Starting MobileFirst Platform Foundation 7.0, both the JS framework (for Hybrid apps) and the Native SDK (for iOS and Android) provide REST support. You can accomplish this using either JavaScript adapters or Java adapters.
Read the following tutorials explaining how to use MFP adapters:
Server-side development
If you're interested in Java adapters as well, take a look at these videos as well:
Getting familiar with IBM MobileFirst Platform Foundation Java Adapters [Part 1]
Getting familiar with IBM MobileFirst Platform Foundation Java Adapters [Part 2]

IBM Worklight - Any advantages for when developing a Mobile web app?

Going through the IBM Worklight product documentation,the product looks great for building hybrid or native applications. However for building mobile web (with responsive web design) what are the specific advantages one can get from worklight?
For (the) Mobile Web (environment), I don't think that at this time there is much left.
However, you do still:
get to use Worklight Adapters and its extensive integration abilities, which do make it easier to connect to various backends
use Cordova to access some device native capabilities
use the WL Client JavaScript API

IBM worklight for developing static websites

I am new to Worklight and am currently doing proof of concepts to understand the features and strengths of the platform to create mobile web apps, hybrid apps and native apps.
Can IBM Worklight also be used for developing static information websites for multiple mobile devices?
Even if all you want to do is serve dynamic content form your server to the mobile device there are some advantages to use Worklight, for example by wrapping your site in a hybrid shell you can gain the presence in application stores (Apple iTunes and Google Play).
You can check "Module 45.1 – Worklight App as a Container For Server Generated Pages" ftp://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v505/Module_45_1_-_Worklight_App_as_a_Container_for_Server_Generated_Pages.pdf for more information about how to do it.
If you will not use your static site as the resource of the content but will use the Worklight application you will have a few advantages
1) Will work offline
2) Faster response time (no round trips (HTTP requests) to get the whole HTML, CSS, JavaScript, images)
At the end of the day Worklight application are for applications, where there is a interaction between backends and the client and usage of device capabilities (like location, camera, etc.) and not only static content.
Can it be used to create static sites? Yes. Is that a good use of the software license? Probably not. There is a lot more power in Worklight than just creating a static site. I would suggest really understanding responsive web design and using that to create your mobile friendly sites.