Building a distributed android application - android

I want to build an mobile application which runs on different phones (android/iphone) but maintains the same status. If one user makes change in state then it reflects on all phone? What are all possible ways to communicate? I thought about sending text messages which I found out that it is not so good idea. I am confused about sockets because I don't know how to share IP address which changes frequently.

The best way of doing this is the way that alot of apps, for example Skype, through a web server.
What you should do is have the app get the current user's status from a database on the web server, and then let the app change the state of the user on this database. Then since the apps for both on Android and iOS both are retrieving the user's state from this database it will automatically change the user's state on both apps.
You will also have to consider how often the users state is updated on the app.

Related

MQTT Unique Topic Format generation for Mobile Devices

Currently I'm working on the MQTT based Chat application where I need to assign
Unique Topics to Users dynamically.
So, I thought of using their IMEI/MobileNumber. But in iOS, we cannot get the IMEI Number so we thought of generating a random IMEI from the backend and assign it to the Users.
Now, My problem is whenever user changes his mobile, the IMEI Number changes and it will be fresh profile again to that user.
If I use based on his Mobile Number, there is a chance when the user doesn't use the sim for 3 months. The connection automatically terminates from the network provider and the same number will be assigned to another new customer(atleast here in india).
Can anyone suggest me a good approach for the Topic Generation?
BTW, I need a Web Chat also and that need to be fetched from database. that is the only reason, I'm focusing on the Topic Generation. So, I will fetch messages based on his topic and show them in the Web Chat.
Do anyone know, how whatsapp maintained their topics?
I thought of using their IMEI/MobileNumber.
Bad design. Have the user create an account (i.e. email) with a password for your service that way no matter what phone or phone number they have, they can still log in and use your app. And make sure you ENCRYPT the user credentials in your database. Start FIRST by building an app with proper security or else you will be hacked 5 minutes after you launch it.
Do anyone know, how whatsapp maintained their topics?
Just because Zuckerberg copies everyone else, doesn't mean you need to copy them. Also, I believe whatsapp created there own version of a MQTT Broker. Hence, it will have an entirely different set of functionality from a regular MQTT Broker.

Android/iOS Persistent Data Storage

I'm trying to understand how applications are storing data without the use of a login system. Example, an android app starts you with 500 coins and you use some of them. You have not logged in at all and you delete the 'app data' in settings and uninstall and reinstall. The app still knows you only have 450 coins left for example. The app requires internet connection so I'm assuming they are storing the info on their server. If so, how are they uniquely identifying your device? In my reading so far it seems there is no full-proof way to uniquely identify a device every time.
I'm asking because I'm going to be working on an app where I don't want to require a login but I also don't want the player to simply reinstall and get to start over. So, my question is how does everyone handle this situation to work for both iOS and android?
Google offers Firebase, which is used for notifications, but makes use of a unique identifier for an application instance on a device (both on iOS and Android), they could be using this.
There are some more providers that offer a similar service (for example OneSignal).
Reference: https://firebase.google.com/

How to manage big data for iOS app that displays location of all its users

I need to develop an iOS (and pref also compilable as Android) app that keeps track of the GPS coordinates of all its users, along with other properties.
Everybody needs to be able to see the the location of every other person on a map and search based on profile characteristics.
I am trying to get an idea of the best architecture of this. Would it be possible to just create a local app that works with a remove sql database? Would that be scalable enough? Or would I need some kind of backend processing?
I know software like PhoneGap can connect the App to a backend website with RESTful API. My question is mainly about what technique to use to handle the live/big data stream. Could mysql handle this?
Having every user be capable of viewing other user's locations will require a centralized backend, ala AWS/Parse(RIP)/Kinvey etc etc.

Which storage option for preserving app data in android?

I do not want the data that is fed into the android app by the user to go away when the app is uninstalled or the device is lost/disposed. What I necessarily want is - data has to be tied to a user account rather than a device where the user can install the app from any other android device by logging into his account using his login credentials and see all the data that was entered in the past from an old/other device. Please suggest a storage option that would best fit for this scenario.
This is a very generic question and I think someone might vote to close it but I will still attempt a generic answer.
Essentially you want the data saved on some external data storage (not on device). So the obvious thing is a server. You will need to set up a machine and run a server on it which can communicate with your app. Also you will need to have unique id for each user (authentication?) which will link user-data with the user, so that if user uninstalls and reinstalls your app, the app can then download the user's data from the server to the mobile device on which the app is running.
For the server you can look at Amazon AWS, Google App Engine, Heroku etc. You can set up a minimal server at one of these places, maybe set a DB there (SQL/ NoSQL) and get a unique URL so that the app can ping the server (so static IP obviously). Then your app can send network requests to your server fetch data for a user and save it to the app whenever the user wants it (say on reinstall, device change, monthly etc).
Hope this helps!
Google is working on Google Cloud Save as a simple way to save data to the cloud on an Android app. There is no backend programming needed.
It's in closed beta now, so that's not super helpful right away, but it might open up to the public soon.

What does it take to sync a contact/calendars web app with mobile devices?

I have been developing a web application in PHP that provides contact and calendar management. This application needs to sync its contact and calendar data with mobile devices (specifically Android, Apple, and Windows phones).
I have no experience in mobile development, so I am mostly looking for guidance. It is difficult to know what to even search for because of this lack of experience. I am mostly looking to know what is possible and what is not.
The overall goal is to be able to edit contact/calendar data from anywhere, whether that be from the web application itself or a mobile device. These changes will then be reflected no matter what tool you are using to view it. A very loose comparison is an IMAP server. One central data source where any app can hop in and view/manage e-mails.
My web application can currently handle HTTP requests using XML data. So it can send out data and have data POSTed into it.
This is where my knowledge ends. I have little insight as to what would be required of the device itself to be able to sync. If a user adds contacts to a mobile device's default contact/calendar application, how can it be told to sync with my web application? Does this mean developing an app for each mobile device in order to act as a medium between my application and the mobile device's default contact/calendar data?
Is it possible to access the internal contact/calendar data of a mobile device? Can that data be pushed to an external server or be modified by that same server? What is required on the web application's side? The mobile device's side?
These are the sort of questions I am looking to be answered. There might be questions that I haven't even thought of that I would also love to be discussed. If my question is too general, please specify anything to be clarified.
In case of iphone you have to write your own app. I would recommend to use a database (sql) on your server, then every time the application opens you can check if there are new entries on the server and load them if needed.
I think it will take you some time to get the basic knowledge about ios programming but it isn't a hard job at all.
Things you should check:
requests
uitableview(/delegate)
Event kit
There are good tutorials to learn this stuff.
One good site:
http://www.raywenderlich.com/

Categories

Resources