This is why you go to Servoy World!

Discussions regarding developing applications using Servoy Mobile (new in Servoy 7)

This is why you go to Servoy World!

Postby goldcougar » Wed Jun 19, 2013 8:51 pm

So, in usual fashion, I'm at Servoy World, beer in hand, talking to Johan about new features in Servoy. As some of you know, Servoy Mobile was the big topic of Servoy World 2013. I described why it wasn't usable for my customers, primarily my issues with it being offline only, and syncing entire record objects. So, this morning I arrive to an email from Johan:

column level updates, no worries anymore about overwriting other mans data (except if you did exactly the same record.column)

https://www.servoyforge.net/projects/se ... ions/11225


Whoa! So, for those of you that aren't familiar, previously Servoy synced the entire record object. So if 2 users synced, and left the office, then one user updated the first name, and another user updated the last name of the same record. Then later one user synced, then the other, whoever synced last would win and overwrite the other person's data. So if you had multiple people working on a record (lets say a new order), some users in the office on Servoy Smart/Web client, other users syncing with Servoy Mobile, you could run into some real problems of overwriting other users data.

So, that should be fixed with this new commit from Johan. Now Servoy only sends changed record data from the mobile device over the wire to be synced. That's a big improvement, and I'm anxious to test it in a few scenarios to see if it will work for my customers.
Scott Butler
iTech Professionals, Inc.
SAN Partner

Servoy Consulting & Development
Servoy University- Free Training Videos
Servoy Guy- Free Plugins, Tips & Resources
ServoyForge- Open Source Servoy Components
User avatar
goldcougar
Servoy Expert
 
Posts: 657
Joined: Sun Jan 08, 2006 7:15 am
Location: Cincinnati, OH

Re: This is why you go to Servoy World!

Postby mboegem » Wed Jun 19, 2013 11:18 pm

Nice one!
_____________________
Marc Boegem
Solutiative / JBS Group, Partner
• Servoy Certified Developer
• Servoy Valued Professional
• Freelance SAN Developer

Image
User avatar
mboegem
 
Posts: 1382
Joined: Sun Oct 14, 2007 1:34 pm
Location: Hoofddorp, The Netherlands

Re: This is why you go to Servoy World!

Postby david » Thu Jun 20, 2013 5:45 pm

Alternate thread title: "This is why you shouldn't use Servoy Mobile". It's a closed system that relies on us to wait for Servoy to make changes. To the functionality, to the widgets in the editor, to even what client-side library is being used.

At the pace that technology in the mobile space is currently evolving, Servoy's approach is not sustainable and cuts out experimentation. A few of us have argued for much more "pluggable" approach: viewtopic.php?f=16&t=19471&start=15#p105151 with the core component being a client-side js library that encapsulates foundset-esque functionality.

The goal being to have a connector that you can use to backend Servoy to whatever client-side thing out there: Sencha Touch, KendoUI, Enyo, etc. The argument against is that you can already do this with REST but my argument is that there is a whole layer that could be wrapped around REST that would be specific to Servoy.

For example, a mythical Angularjs example. HTML:

Code: Select all
<!DOCTYPE html>
<html ng-app>
    <head>
        <title>Angular with Servoy</title>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <meta name="SERVOY.connection.udp" content="Employee"/>

        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.min.js"></script>

        <script src="test.js"></script>

        <link rel="stylesheet" href="bootstrap.min.css">

    </head>

    <body ng-controller="personCtrl">
        <div ng-repeat="employee in employees">
            <form class="form-horizontal">
                <fieldset>
                    <legend>{{employee.firstname}} {{employee.lastname}}</legend>
                    <div class="control-group">
                        <label class="control-label" for="inputLastName">Last Name</label>
                        <div class="controls">
                            <input ng-model="employee.lastname" type="text" readonly="readonly"/>
                        </div>
                    </div>
                    <div class="control-group">
                        <label class="control-label" for="inputFirstName">First Name</label>
                        <div class="controls">
                            <input ng-model="employee.firstname" type="text" readonly="readonly"/>
                        </div>
                    </div>
                    <div class="control-group">
                        <label class="control-label" for="inputAge">Age</label>
                        <div class="controls">
                            <input ng-model="employee.age" type="text" readonly="readonly"/>
                        </div>
                    </div>
                </fieldset>
            </form>
        </div>
        <script type="text/javascript" src="../ROOT/DataAccess/Loader.js"></script>
    </body>
</html>


This line tells the Servoyjs what database connection and table to load client-side:

Code: Select all
<meta name="SERVOY.connection.udp" content="Employee"/>


This line is the Servoyjs call:

Code: Select all
<script type="text/javascript" src="../ROOT/DataAccess/Loader.js"></script>


And this is the "test.js" used to bridge data from Servoy to Angular:

Code: Select all
var personCtrl = function ($scope) {
    var scope = $scope;
    SERVOY.onAfterInit = function () {       
        SERVOY.employee.foundset.loadAllRecords().toArray('lastname, firstname, age', {
                   top       : 40,
                    onSuccess: function (evt) {                               
                        scope.$apply( function() {
                            scope.employees = evt.result;
                        })
                    }
         })
   }
}


Hides all the REST stuff into something an average Servoy developer could get their heads around.

Basically, I think the current mobile approach is the result of trying to be too "Servoy-ish" about the whole thing with severe lock-in as a result. When really we would all be so much further ahead right now if Servoy was pursuing a "putting a Servoy facade" approach on all the forward-thinking javascript stuff going out there.

Nobody cares about Servoy Mobile -- too many better ways out there to skin that cat (and more being released every month). But if there were a Servoy data connector, the Servoy Mobile forum would be filled with examples of top Servoy devs doing cool things with mobile clients backed by Servoy.

My $.02
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1723
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.


Return to Servoy Mobile

Who is online

Users browsing this forum: No registered users and 1 guest