cloudinary / cloudinary_java

Cloudinary Java Client Library
MIT License
161 stars 108 forks source link

Test on Android #4

Closed chrisjenx closed 11 years ago

chrisjenx commented 11 years ago

Has this library been tested and confirmed to work on android, seen as the only reason anyone would write a java lib would be to use it on Android surely? (no one writes java apps anymore right?)

nadavs commented 11 years ago

Hi Christopher, Actually this Java library is used by developers of some Web applications :-) The Java library is using Apache HttpClient for performing HTTP requests, which should be compatible with the Android framework. We are not sure whether Android developers already used this library for integrating with Cloudinary. However, it is in our to-do list for the near future to perform full integration testing with Android, as well as supporting safe mobile uploading as the iOS SDK supports (https://github.com/cloudinary/cloudinary_ios#safe-mobile-uploading). We will update you when it's ready. Thanks, Nadav Soferman Cloudinary

chrisjenx commented 11 years ago

Yeah I had a poke around, You have a scary amount of dependancies, not great for Android Performance to be honest.

Also a much better way of doing this would be like the https://github.com/square/pollexor which has a nice builder interface.

I am going to interact manually using my own upload queue and robospice.

Also worth noting you should use HttpClient pre 2.3 and NetConnection post 2.3 its lighterweight and less buggy than HttpClient and is what the Google team support.

erickok commented 11 years ago

I agree that the API isn't amazing, but more importantly the dependencies (in relation to Android) are a bit too much.

For now I have also gone with a manual upload command, based on DefaultHttpClient (standard available in Android).

My code is at https://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/com/ratebeer/android/api/command/UploadBeerPhotoCommand.java#68 and next to the readily available comonents in Android it only depends on a couple of small classes from an Apache project https://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/#src%2Fcom%2Fandroid%2Finternalcopy%2Fhttp%2Fmultipart

chrisjenx commented 11 years ago

Agreed your request params are really proprietary.

I have extended the Google http client to do what I need. And created a cloudinary builder. For URL generation.

Very disappointed to be honest. On 17 Apr 2013 09:28, "Eric Kok" notifications@github.com wrote:

I agree that the API isn't amazing, but more importantly the dependencies (in relation to Android) are a bit too much.

For now I have also gone with a manual upload command, based on DefaultHttpClient (standard available in Android).

My code is at https://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/com/ratebeer/android/api/command/UploadBeerPhotoCommand.java#68and next to the readily available comonents in Android it only depends on a couple of small classes from an Apache project https://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/#src%2Fcom%2Fandroid%2Finternalcopy%2Fhttp%2Fmultipart

— Reply to this email directly or view it on GitHubhttps://github.com/cloudinary/cloudinary_java/issues/4#issuecomment-16493136 .

nadavs commented 11 years ago

Hi,

Thank you for your feedback.

A new Cloudinary library for Android is available. It is available as a separate project at: https://github.com/cloudinary/cloudinary_android

Dependency on external libraries was minimized. HTTP posting is done using Android's standard HttpURLConnection.

Regarding the transformation API: I guess it's a matter of taste. Personally, I think that the following syntax is quite intuitive:

cloudinary.url().transformation(
   new Transformation().width(90).height(90).crop("thumb").gravity("face")
 ).generate("woman.jpg")

Any feedback on the Android library or the URL building syntax will be appreciated.

Thanks, Nadav