Libraries Bounty Thread - Request Libraries here

keirS

Well-Known Member
Licensed User
Longtime User
Dropbox is a bit of a strange example to give for a library. Dropbox provide a REST API so it can be implemented 100% in B4A. No need to resort to Java.
 

thedesolatesoul

Expert
Licensed User
Longtime User
Dropbox is a bit of a strange example to give for a library. Dropbox provide a REST API so it can be implemented 100% in B4A. No need to resort to Java.
It is not strange.
Dropbox has other libraries as well (Datastore/Sync/Dropins)
However, regarding the REST API, AKAIK you cannot login via REST. You need the SDK for that.
And even then, most users I had would not use a REST API login as they are not confident to put their credentials in your app. They prefer to login via the Dropbox app (which is already logged in and just requires an Authorization). And you still need the SDK for that to work.
IMHO you do need a library for the authorization stage in Dropbox.
Have you implemented Dropbox 100% in B4A?
 

keirS

Well-Known Member
Licensed User
Longtime User
The Android library is mainly just a wrapper for the REST API. It's perfectly possible to implement OAuth2 using B4A. Once you have a client access token you don't need the user to log in each time.
I haven't done much with Dropbox. I did get OAuth2 working and uploading a file working in B4A. I do have Google Drive and Google Fusion table classes which are 100% implemented in B4A. The only non core library used is the WebViewXtended library.
 

thedesolatesoul

Expert
Licensed User
Longtime User
The Android library is mainly just a wrapper for the REST API. It's perfectly possible to implement OAuth2 using B4A. Once you have a client access token you don't need the user to log in each time.
I am not saying its not possible using B4A. It works with a browser but to let you login through the Dropbox app you will need to work a lot harder. You will get a hacky working solution with webiew, but it will not be at par with other apps that use the Dropbox SDK.
This is one of the first reviews I got:
Just came across your app. The features look promising, but I'm not going to try it until you add OAuth authentication, i.e. entering dropbox credentials in a separate window. I will not give away my dropbox password to a new app.

I haven't done much with Dropbox. I did get OAuth2 working and uploading a file working in B4A. I do have Google Drive and Google Fusion table classes which are 100% implemented in B4A. The only non core library used is the WebViewXtended library.
Forgive me, but getting it working barely and getting it working like it should are two different things. I would like to see your solution before I can agree with your point. Show me.
 

keirS

Well-Known Member
Licensed User
Longtime User
Besides its an example, not an idea.
I will remove it if it is bothering you that much.

More a case of I would expect people to want something that isn't natively achievable in B4A already. I get the impression that there are quite a lot of developers on here who don't realize that it's possible to implement a lot of Web API's with B4A alone. In theory that includes the Facebook API ; although I have not looked at it that closely it does say "The Graph API is HTTP based, so works with any language that has an HTTP library"

Admittedly it probably takes longer to write it form scratch in B4A but it does have advantage that you fully understand how the API is put together and that it makes it easier for others to suggest fixes for problems as there are (obviously) far more people on here who understand B4A code than Java.
 

Peter Simpson

Expert
Licensed User
Longtime User
On the contrary @keirS .
I would say that most developers on here know that's it's more than possible to implement a lot of Web API's straight into B4A with ease. There are plenty of examples in this community that show this to be true. Admittedly there are times when a wrapper is indeed necessary to do the job for the developer. I myself have used plenty of Web API's directly in B4A without the need for a wrapped library. Granted it does take a bit longer to implement but they, that's part of the fun isn't it. IMO developers should always look for both library and API solutions. Security can sometimes come into it though...

Anyway, it's time for me to go and play a few frames of snooker. It's revenge time :mad:
 
Last edited:

thedesolatesoul

Expert
Licensed User
Longtime User
More a case of I would expect people to want something that isn't natively achievable in B4A already. I get the impression that there are quite a lot of developers on here who don't realize that it's possible to implement a lot of Web API's with B4A alone. In theory that includes the Facebook API ; although I have not looked at it that closely it does say "The Graph API is HTTP based, so works with any language that has an HTTP library"

Admittedly it probably takes longer to write it form scratch in B4A but it does have advantage that you fully understand how the API is put together and that it makes it easier for others to suggest fixes for problems as there are (obviously) far more people on here who understand B4A code than Java.
As I said before, it is not always a developer decision but also a UX decision. Users are more comfortable in native solutions. Jumping out of an app into a web browser and going back in is shitty UX, confusing, disorienting for a user and they will uninstall your app.
Secondly, the SDKs deal with a lot of other error handling, queueing, QoS issues within the SDK.
To take your examples further, when it comes to dropbox, I implemented only the necessary part i.e. the login mechanism as a library, the rest I all used REST in B4A.
For Facebook, we have NJDude's Facebook library based on graph and we have Periklis native library that implements the sign in. You should check the requests from people to judge what people want and require.
 

Periklis Koutsogiannis

Active Member
Licensed User
Longtime User
As I said before, it is not always a developer decision but also a UX decision. Users are more comfortable in native solutions. Jumping out of an app into a web browser and going back in is shitty UX, confusing, disorienting for a user and they will uninstall your app.

+1
 

Periklis Koutsogiannis

Active Member
Licensed User
Longtime User
That was in Facebook developers group a while ago (just 1 day before I discovered b4a and I am so happy I did)

(Emil Hesslow is a facebook engineer btw)

upload_2014-7-16_0-30-56.png
 

MarcTG

Active Member
Licensed User
Longtime User
I like this thread, I wish I had seen this a month ago...

I don't know much about developing libraries but I think that this should be an easy one:

50$ fully functional appbrain applift library (latest SDK)

https://developers.appbrain.com/info/sdk

Send me a message for questions/details.

Also, please provide a working example on how to use it.

Thanks
 

walterf25

Expert
Licensed User
Longtime User
I like this thread, I wish I had seen this a month ago...

I don't know much about developing libraries but I think that this should be an easy one:

50$ fully functional appbrain applift library (latest SDK)

https://developers.appbrain.com/info/sdk

Send me a message for questions/details.

Also, please provide a working example on how to use it.

Thanks
Someone already has wrapped this library, not sure if it complies with their latest sdk, but you can check it out here http://www.b4x.com/android/forum/threads/appbrain-another-monetization-option.13197/#content

good luck.
 

MarcTG

Active Member
Licensed User
Longtime User
Someone already has wrapped this library, not sure if it complies with their latest sdk, but you can check it out here http://www.b4x.com/android/forum/threads/appbrain-another-monetization-option.13197/#content

good luck.

Thanks... I already saw that.
If you look at post #43, this library no longer works as of June 2013. There's mention that you can use appbrain through MoPub in the following posts, but I don't believe that this is the applift SDK. I think MoPub only supports banners and interstitial ads (from what the post said). I am interested in a library that supports banner, interstitial, remote settings, conversion event tracking, and offerwall without the preceding interstitial and without their approval (fully functional applift SDK).

All those details can be found on the link I provided above.
 
Last edited:

walterf25

Expert
Licensed User
Longtime User
I can wrap this library, but 50 dollars to be honest i don't think is worth, specially when there's updates that will need to be done when a new sdk is released.

Think about it and let me know!
 

keirS

Well-Known Member
Licensed User
Longtime User
As I said before, it is not always a developer decision but also a UX decision. Users are more comfortable in native solutions. Jumping out of an app into a web browser and going back in is shitty UX, confusing, disorienting for a user and they will uninstall your app.

Google do exactly this though. It's one of the first things that happens when you boot up your shiny new device and your account has two step authentication.enabled. With Oauth2 it happens exactly once when the user configures the application and it gets a client access token. Unless the user revokes the token or they don't use the app for many months they will only see the Browser/ Webview once.

Secondly, the SDKs deal with a lot of other error handling, queueing, QoS issues within the SDK.To take your examples further, when it comes to dropbox, I implemented only the necessary part i.e. the login mechanism as a library, the rest I all used REST in B4A.
For Facebook, we have NJDude's Facebook library based on graph and we have Periklis native library that implements the sign in. You should check the requests from people to judge what people want and require.

To be honest I am more likely to be buying rather than bidding with the amount of work I currently have on. It wouldn't be stuff most of the developers on here would use; For example I may need to use the ORBExpress library and will definitely need to either replicate something like ORMLite in B4A or if it's possible to wrap the library for B4A. I would be expecting to pay rather more than $50 though as that sounds more like an hourly rate; in my experience if you pay peanuts you do get monkeys.
 

vpires

Member
Licensed User
Longtime User
B4X:
#Region  Project Attributes
    #ApplicationLabel: AppBrain Demo
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim ap As AppBrain
    Dim EditText1 As EditText
    Dim banner As AppBrainBanner
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout  file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
   
    ap.Initialize
    ap.showInterstitial
       
    ' dont call offerWall method without autorization, or you don't get paid.
    ' via a button, it's Ok
    Dim b As Button
    b.Initialize("btnOffer")
    b.Text=ap.getOfferWallButtonLabel
    Activity.AddView(b,0,100%y-50dip,100%x,50dip)
    ap.setOfferWallClickListener(b)
   
    banner.Initialize("banner")
    Activity.AddView(banner,0,100%y-150dip,100%x,100dip)
    banner.Design=2
    banner.requestAd
   
    ap.getSetting("news","Hello(from the app)","event_remotesetting")
End Sub
Sub event_RemoteSetting(Setting As String,value As String)
    Log(Setting & " " &  value)
    If Setting="news" Then
        EditText1.Text=value
    End If
End Sub
Sub Activity_Resume
   
End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub banner_onAdRequestDone(result As Boolean)
    Log("Banner onAdRequestDone : " & result)
End Sub
Sub banner_onClick
    Log("Banner onClick")   
End Sub
 

Attachments

  • appBrainTest.apk
    214.8 KB · Views: 249

Johnmcenroy

Active Member
Licensed User
Longtime User
Thanks... I already saw that.
If you look at post #43, this library no longer works as of June 2013. There's mention that you can use appbrain through MoPub in the following posts, but I don't believe that this is the applift SDK. I think MoPub only supports banners and interstitial ads (from what the post said). I am interested in a library that supports banner, interstitial, remote settings, conversion event tracking, and offerwall without the preceding interstitial and without their approval (fully functional applift SDK).

All those details can be found on the link I provided above.

MoPub uses official AppBrain applift SDK , but only one method -
B4X:
AppBrain.initApp(this);
and of course banners and interstitials. If you want to use their another features as Remote Settings , Conversion Event Tracking , Direct Offerwall you can email AppBrain support about implementing these features for MoPub custom event class.

P.S. In our experience, the use of the interstitial gives up to 10x more revenue than other simple integrations using the offerwall directly (AppBrain official documentation)

update: I have looked into code and it seems that Conversion Tracking and Remote Settings can be implemented but certainly not direct offerwalls.

Regards
John
 
Last edited:

MarcTG

Active Member
Licensed User
Longtime User
MoPub uses official AppBrain applift SDK , but only one method -
B4X:
AppBrain.initApp(this);
and of course banners and interstitials. If you want to use their another features as Remote Settings , Conversion Event Tracking , Direct Offerwall you can email AppBrain support about implementing these features for MoPub custom event class.

P.S. In our experience, the use of the interstitial gives up to 10x more revenue than other simple integrations using the offerwall directly (AppBrain official documentation)

update: I have looked into code and it seems that Conversion Tracking and Remote Settings can be implemented but certainly not direct offerwalls.

Regards
John
Hi John, I am currently using the appbrain sdk but did not include direct offer wall button because my offer wall button includes offer walls from multiple networks not just appbrain. The banners themselves are also like offerwalls buttons, so no need to implement this in mopub.
 
Top