Creating an iOS or Android App from an existing backend - android

Okay, so I've got a Postgres database hosted on a VPS at the moment, and I wanted to use this as a backend for a mobile app (Android and iPhone).
The current database stores public information about shops (name, address, postcode, city, phone). I wanted to use this data to build native apps for android and iphone with the following functionality:
Get Local Stores using GeoLocation.
In the case of GeoLocation not being available, fall back to grouping by city, allowing the user to select a city.
Show the information for each store. (A show page).
I don't need any authorization, or access to any of the other device APIs, just geolocation.
Also, my speciality lies in web app development - I have zero experience with objective-c. Is there anything you folks would recommend?
Note: It needs to be deployable to the appstore.

You should really go with mobile web app frameworks if you're a web app developer.These frameworks are cross platform which is pretty useful and makes it a breeze for a web developer to have an app.
Something like these.
Sencha Touch - http://www.sencha.com/products/touch
jquery mobile - http://jquerymobile.com/
Titanium - http://www.appcelerator.com/products/titanium-mobile-application-development/

I second the mobile web app framework suggestion of #Serdar Dogruyol, but my personal favourite would be Apache Cordova

Related

Android application like the Mobile Browser Version

I have a question about creating an Android application.
I have a website (dating service) and it has "Desktop Version" and "Mobile Browser Version". These two versions differ in design and few functions (but they are one, one registration for one user). I want to make an Android application like the "Mobile Browser Version", so that it is also connected with my website (one registration for one user).
How to do it?
I installed Android Studio and connected to Firebase.
You can do two things (easy and hard )
1) easy way is if your website is responsive then you can use a webview of android with your website link that don't need any other customization.Just one splash screen and a webview in Mainactivity.
2) (Hard one) you can make API to pull and push data from/to database,this need, you have to make app from scratch and need some times.For this you must have deep knowledge about Retrofit,Recycleview etc
If you have already have a database connected with your website then you need to make an API service to connect android application with your website. You can restrict users having multiple accounts by making their email or mobile number primary key if you have a relational database. or you can use firebase but you also need to connect the website with the firebase account otherwise it will act like a separate service.

Apache cordova or native development for an instant messaging app?

I have to develop a mobile app for iOS and Android .
I'm undecided whether to use a cross-platform approach with Apache Cordova or to develop in a native environment, with Eclipse ADT and Xcode .
The problem with the native development is that I have to build two distinct app, doing the same job for these two platform.
With Apache Cordova i should build a single HTML/CSS/Javascript app but i have serious doubts about the efficiency of this type of app development.
The app is an Instant Messaging system for medical doctors, with exchange of multimedia elements. It is important that the message exchange is protected via a cryptographic protocol like TLS .
Specifically, i have to implement:
A multi-platform registration and authentication system communicating
with a Web server through PHP language and MySQL DBMS;
The requests and response format is defined with an XML document;
Research of users by giving the opportunity to open a conversation with a
particular user;
Research of medical cases giving the opportunity to participate in the
discussion of one or more cases;
Creation of medical cases with description, media attachment and initial
selection of participants according to different medical specialties;
A user profile with the possibility to modify the entered information.
Push notification system (GCM for Android) . Clicking on the
notification will directly open the chat;
Protection of client-server communication via HTTPS protocol, which
includes functions of asymmetric encryption and data integrity
checking.
Through the chat it will be possible:
To show user profile by clicking his photo;
Report any abuse;
Send the conversation via email
Share the conversation on Facebook and Twitter.
I have read about the inefficiency of the hybrid app development, becouse it relies on the WebView native component which makes the app heavier and slower.
On the other hand, the native developement approach takes more time but assures best performance . (If the app is well written).
Based on the characteristics I've listed, what kind of approach do you recommend to follow?
Thanks :)
Of course if you have enough resources(time, money etc) creating native application is always better solution.
But if you need to save time of development and feature support of app, I recommend you to use hybrid approach, but without Cordova or Phonegap. You can just create some parts of UI and logic as independent HTML5 components on your server and then load it in webview on your apps.
Simple example: You have to implement form which will allow user to write a review about doctor.
Create HTML5 page of form on your server (with js and css). You can use jquery mobile for make it responsive.
Load this page on webview on your apps (both IOS and Android).
Logic which validates and submits form is also on server (php, js), so there is no need to create it inside app.
Such approach allows you to use HTML5 only for simple things, like forms, popups etc. You also always have flexibility to choose how do you want to use it and you are not restricted with any external framework.

How to store data in cloud from android app?

Friends I'm Planning to design an application such a way that user has to login and he has to enter the data to be stored in cloud and if he opens the account the data should be edited other wise it should display the data.
I would look into solutions such as couchbase:
Apache CouchDB on Android provides a simple way to sync your application data across devices and provide cloud backup of user data. Unlike other cloud solutions, the data is hosted on the device by Couchbase Mobile, so even when the network is down or slow (airplane, subway, backyard) the application is responsive to users.
What this means for you:
You can embed the rock solid distributed database, Mobile Couchbase,
on your Android device. Your Android apps can use Apache CouchDB's
well-proven synchronization technology. If you <3 CouchApps, you can
deploy them as Android apps.
check it out here

What backend to use for a location based android app?

I'm planning to develop a location based Android app. The app needs to store location information such as currentLocation, location info of an address i.e latitude and longitude of each as well as other user info such as name, sex, age etc which i believe i can extract from a fb or g+ login. The app will also include a chat functionality which will allow its users to communicate.
I'm comfortable with Java, but haven't used PHP. But i don't mind spending time learning it if that is the best option in building a backend.
I was wondering if i could use the GAE for the same. I also came across parse.com which can be used as a backend. There may be other options too, which i may not have explored. I'm new to android app development. This will be my first app. Kindly suggest a backend which suits my needs the best. All kinds of inputs are welcomed!
I work at Backbeam. It is a backend-as-a-service and it has support for geolocated data and users authentication using Facebook, Google+, Twitter and more external services (additionally to email + password authentication).
Furthermore, we have plans to release an Open Source version this year.
If you need further information we will be glad to assist you :)
There isn't a right or wrong answer to this really.
For myself, I've been learning and using Python and MongoDB. There are so many web/cloud based hosting services that learning and using a free account for your development shouldn't be a problem no matter your language choice.
If you are writing the app in Java, maybe you want your cloud system to also be similar using JavaScript such as NodeJS.

How to implement 3D Secure (Verified by Visa / MasterCard SecureCode) on Native mobile app (e.g. IOS)

This question is specific to Native mobile applications (e.g. IOS, Android, WP apps that are not actually using a browser to access a web site).
We have an existing e-commerce website that takes payment for most of the major credit cards, and it also performs payer authentication via the 3DSecure program (implemented as Verified by Visa and MasterCard SecureCode). This helps negate fraud and reduce charge-backs.
The existing implementation is such that during checkout and payment stage, it involves redirecting the customer away from your website, to a bank / card issuer website where the customer can enter their previously set-up password to authenticate that they are indeed the card holder. The website will then redirect the customer back to your website with information needed to complete the transaction. (There is quite a bit more to it, but that's the basic premise of it).
So we're working to create a native app for IOS (initially) that is not just the user browsing with Safari to the website, but an ObjectiveC implementation that gives a native experience that is rich and task focussed UI and easy for the user to operate.
What we cannot do is open 'n browser window from the native app for the user to be redirected somewhere, for authentication, and then redirected back. The reasons for this are:
This is a native app, not a web site, so there is nowhere (URL) to redirect back to.
The user experience is terrible switching from a clean UI to a squinty and differently styled web form on another website, and then back.
Has anyone had to try and implement 3D Secure (VbV / SecureCode) using a Native app (WP/IOS/Andriod)? Can it be done? Did you take a different approach?
Thanks for reading!
Even in native app you should use embedded WebView component to open banking ACS server url, let user enter password or other code there, get it verified by the bank and get back the results for your app for further forwarding to your card processing api.
As for Android, you can take a look how it is done in my helper class - https://github.com/LivotovLabs/3DSView (after making a couple of apps with 3D Secure support I decided to create a micro component for such task)
Hope this helps
We made an early decision with our acquirer (Global Payments aka HSBC) to not implement 3DS on native apps (or even mobile website in the end) because of the terrible user experience. We've had no problems with chargebacks, or with users. You should speak to your acquirer about this, and also to your payment gateway - in my view you should have 3DS switched off for mobile native / web until it is proven. Otherwise customers will not complete transactions.
That said, companies like Mopowered are claiming to have solved this with better implementations. I haven't seen these yet.
You can solve the 3d-secure redirection problem by using custom url-schemes. This is not a good user experience as you said, but we solved it this way on our ios project.
As others have mentioned, the shopper's experience during native authentication will be too poor to consider implementing.
However, with the introduction of 3D Secure 2.0, 3D Secure providers will be able to offer native SDKs to allow authentication with less abandonment rate.

Categories

Resources