Outsystems and Android

Outsystems and Android

Hey guys!

I've developed a usual espace in Outsystems and I would like to develop a android solution to interact with this espace. 

I don't have v6 so I don't have the fancy upgrades that allows you to develop mobile in a better way.

I was thinking doing the interaction using web services. Does anyone knows how? I know how to create them in Outsystems but I don't know how to consume them in Android (using Eclipse)! Is this the best way?

I would appreciate any insight!
Depends on what you're trying to do...

If you only want to get/send data from/to the server, and all the Android UI is a native app you can do the communication using Web Services.

If you're trying to design the UI with Outsystems, all you need to do is access the page in the Android.
For this aproach, you might want to pay special attention to your CSS.
You might also want to check this blog post and jQuery Mobile (since you're working with an older version of the platform)
I must be wrong (since I'm the newbiest guy in this mobile world) but I think that Outsystems is only able to "adapt" to iphone and android. It's not able to develop a truly application.

So, I want to build a native app to support my business. But I don't know what is the best approach: HTTP API or Web Services. For example, it would be crucial to exchange files between Outsystems and Android.
Carlos -

OutSystems Agile Platform does not build native applications of any kind. It creates Web applications. That said, you can expose functionality through Web services, which can be consumed by Android and iPhone native applications (as well as any other kind of application).

But I'm not able to receive properly the web service response in android. I was looking for an example in the web but it says that Google doesn't encourage web services.

If anyone was able to do that and would like to share, I think it would be great for the community (and for me, of course)
Carlos -

Most Android development is done in Java, which is perfectly capable of consuming a Web service. A huge number of Android (and iPhone, BlackBerry, Windows Phone 7, etc.) applications make use of Web services. I suspect that you may have misread the documentation, and that is probably says that Android applications should not provide Web services to other applications (because running a server on your phone would be a huge disaster). Or perhaps it is just saying that Google does not prefer SOAP Web Services.

Regardless, you can easily consume SOAP Web Services (which is what Agile Platform creates) from Java. I found that the search phrase "Consume SOAP Android" will produce a large number of potentially useful articles.

I tried that approach and I received the call in Outsystems but wasn't able to receive the answer in android side (java).

Are web services better than HTTP? Because I see Twitter, Google and it seems they choose HTTP API instead of web services. Is there any reason? 

"Are web services better than HTTP? Because I see Twitter, Google and it seems they choose HTTP API instead of web services. Is there any reason? "

I believe what you are referring to here is what is better known as "RESTFul" web services, which is an architectural principles in which you can design web services that performs request/response calls via HTTP.

SOAP web service are natively supported by the Agile Platform, where as for RESTFul web services is a little more complex for you to build, see the following HOWTO instructions to get you started 

I would highly recommend you build a SOAP web service and consume the SOAP web service via your android application.

By the way will you be developing a native android application in Java or will you be developing a mobile web application? 

I agree with Robert. There is ZERO reason why you can't receive SOAP requests in Java. The benefits of REST (which is what you mean by "HTTP", since SOAP also runs on HTTP) are interesting, but for working with a language like Java or .NET where there are plenty of tools to transform SOAP services into classes, SOAP actually is *much* better (in my opinion) that REST. I recently did an integration where huge amounts of my time were lost because of bad REST services, while a similar SOAP integration took 10 seconds to get to the same stage.

In any event, it sounds like you've got some research to do on calling SOAP from Java. Developers do this a zillion times a day, so it's just a matter of finding the right tools and instructions are moving ahead.

RESTFul web service does have its use, For example if you were to consume a web service via an embedded systems, your only choice might be to use RESTful web service, due to it being lightweight because you might not have the ability install libraries or have enough processing power for SOAP to be used your embedded systems. 

But in Carlos case, SOAP will do the job just fine :)
Well, good news. I've advanced throught web services solution and now I'm able to communicate in both ends, using KSOAP2 for webservices in android. Although, I'm still not able to receive parameters in Outsystems but that will be more googling. (Any idea about this?)

How do you manage authentication in web services? In a web application you have credentials and than the session...is there any approach in web services?

Hey guys

If someone needs to set KSOAP2 and Outsystems talking through web services, you can PM me.