Mobile app and web service distribution advice - android

My team and I are working on a mobile app. A feature of this mobile app is to have the ability to register their device with multiple organizations who are our clients. We distribute to our clients multiple applications and web apps, one of them is a web api application so the mobile application can retrieve data. Having this type of distribution can cause issues because there could be a user on the latest version of the application trying to access an older version of the api which may or may not have all of the same properties on a DTO.
Are there known patterns or thoughts on how to deal with an situation like this?
Simple visual representation here

Related

Native iOS and Android App Running Remote Web App Inside a WebView

I am about to start a project to develop app that will run on iOS and Android. Most of the functionalities are very basic. Creating membership, login, viewing some content, entering forms data etc. However, there will be many pages. It is like a Web Site. iOS and Android App will have same functionalities.
I am considering developing this as Web App then creating a native iOS and Android App with a WebView. In that case, my users will download the apps from App Store and Play Store but my Web App will work inside that native apps.
I am willing to do that because apps functionalities will be same and there many simple pages in the apps. This will give me huge benefits. For example, i will implement once and use it in two different app, create new releases mostly without publishing the apps again etc.
I am planning to implement mobile app related things on the native apps like Push Notifications, Crash Reporting, Google Analytics etc. and rest of the functionalities in the Web App
Is this a common practice?
Is there any name for it? (I believe this is not a Hybrid App since Web App will be remote on the cloud)
What are the possible technical difficulties?
What other technologies i need?
How can i done Authentication / Authorization securely (My users will login to app once and then use it without login each use of the app)
Is there any rule against it? Like does the Apple App Guideline allow it?
Is there any framework to use for such need?
Thanks
I wouldn't recommend you to build a native app just for the use of a wrapper. In this case it is better to write a responsive web app. You can bookmark the website on your home screen and it will use the favicon as the apps icon.
Check out progressive web apps. This may be what you are looking for:
Progressive Web Apps

Security of android application while integrating with external mobile library

I have an android application which has a few hundreds of thousands of users. This application is a retail application and hence deals with a fair amount of customer data, shopping history and payment information, built on web views.
My company now has a tie up with another services startup which vends its own mobile SDK for a certain set of functionalities. This is a closed library to no access to source code(baked in the legal contract).
Are there ways for me to ensure the following -
Ensure that the external mobile library does not access any resource or data that I don't want it to, either via javascript injection or otherwise, given both the library and the app share the same process space in memory.
Insulate my application from any security vulnerabilities in the mobile library.
Are there any 'best practices' one can follow from a security perspective while integrating with a mobile library that you can not completely trust or have visibility into ?

Is Google Progressive Web App suitable for Survey style application?

I am planning to build a survey style questionnaire app that will run on android devices. I am not too keen on creating Android apps and recently came across PWA framework of Google.
Can anyone suggest if this is an ideal solution to build an offline survey style questionnaire app, the requirement is users will download a new questionnaire before going in field which would have different set of questions and choices and will take responses that could be around 100-500 per questionnaire in offline mode and they will come back to office and connect with internet and sync with central database.
My question is whether PWA can provide this offline feature and more importantly how much space is provided for a PWA to use on devices, is the space limited to couple of MB's like the Microsoft MVC solution?
Thanks,
Anurag
Regarding offline capabilities:
You can use service workers for such requirement. If you are only targeting modern devices with updated browsers, offline capabilities shouldn't be a problem.
Regarding Storage:
You can either leverage web storage API or indexedDB. In either case, you may read: http://www.html5rocks.com/en/tutorials/offline/quota-research/ to know the limits for each. Actual answer depends on platform and browser.
If you are only targeting mobile app and can take care of app distribution you can also consider Ionic for developing a hybrid app.
http://ionicframework.com/docs/v2/
Also, check out:
https://github.com/pazguille/offline-first : Everything you need to know to create offline-first web apps.

Google app engine - is it possible to create two web clients that will use the same datastore?

I created an application using Google app engine
I have two clients at the moment - one for android and another one for web application
and I want to add a mobile web application as well that will use the same datastore
I can't deploy the mobile web application because it will overwrite the web application that I already have
What do I need to do?
Thanks in advance
The Datastore is effectively partitioned by application. If you're operating on the same data, does anything prevent merging applications?
When you say two clients, do you mean two GAE apps?
The easiest (but probably not ideal) way to deal with it is to upload them as separate versions of the same app. GAE allows you to access different versions of the same app via different urls. You can then point your android app and the mobile web app at the appropriate urls.
Generally the better way to do it would be to design your mobile app and web app to use the same APIs.
This is a perfect use case for App Engine Modules, which provide multiple front ends (e.g. web apps, RESTful APIs, etc.) to the same underlying stateful services such as the datastore, memcache, and task queues. Each module can have its own set of versions, its own scaling configuration, and may be deployed independently of the others.
Java docs are here.
Python docs are here.

Architecture Best Practice: Rails and Mobile/Web App

I am having a browser-oriented web app build on Rails (3.1). I want to make some features of the web app available on mobile devices, too.
Besides...
1.) Building native apps for each vendor of devices and interacting with my rails web app using JSON/XML, ...
I am thinking about reusing as much as business logic already implemented in my rails app by reusing controllers/models and add some new views targeted to mobile devices (in terms of screen size and the like...).
With this approach, I see two alternatives:
2.) Let the end user access the part of the rails app targeted to mobile devices in the mobile browser.
3.) Set up a native mobile app wrapper, e.g. using PhoneGap, and refer to the same part of the rails app used for 2.).
The advantage of 3.) is that I can reuse business logic of my rails web app and having a "phantom" native app for mobile devices at the same time. (I used the term "phantom" because besides the wrapper, it's not really native, this approach actually just mimics a native app.)
Question 1: Are there any other alternatives besides 1.) to 3.) ?
Regarding 3.)
Question 2: Does Apple accept this kind of apps (which fetch large portions remotely) to be uploaded to the app store?
-> I would be surprised if it is so, because it would allow one to change large parts of the app without the notice of Apple.
Question 3: From an architectural/technical point of view, is it recommended to remotely fetch prerenderd html/js to be executed in a "phantom" native mobile app build on top of e.g. PhoneGap?
-> Wouldn't it be better to set up an independent client app within the native mobile app (maybe using backbone.js), keeping all html, css, js locally within the mobile app, and communicate with the backend using JSON/XML or whatever?
I think this is a good question and I've recently come across similar difficulties. I've ended up using (Q3) vaadin with touchkit. Fine if you're doing free but a bit expensive if you're doing commercial (although then you can probably afford it). I realise this doesn't relate to rails but still, I'm assuming the main point of the question was should I build native apps which use web services / middleware or go for pure web apps.
RE (Q2), during my trawl of this current technology, I did read a few articles suggesting that apple are not allowing the web app style. As in, app which simply masks browser window loading remote web app. Essentially, I think where apple are concerned, you'd need to have the functionality tied down to what they agreed to. This doesn't really affect web apps though as you can surely just access them directly from the browser.
RE (Q1), the only alternatives I can see would be different middleware (e.g. MQ, SOAP etc).

Categories

Resources