I am looking for some architectural guidance.

 

I developed a mobile application using Flex mobile.  It is not very usable.
This is no fault of Flex, it is the way I designed it.  The application is a
task management application with lots of data exchange with a remote server.


 

During development, it worked OK.some forms were slow to get required data,
but all in all, being a business application with a captive audience, it was
usable.  However, during real world testing, it was obviously deficient,
especially in areas with a weak signal.  It is not usable in its present
form.

 

I have two main issues.the first is, I need to run the application with a
local sqlite database and synch in the background.  I really don't know the
right way to do this.  But I am thinking the steps are something like the
following:

 

1.            Add two columns to the required database tables:
CreatedTimeStamp and MostRecentEditTimeStamp

2.            Write a script that creates a blank database when the app is
initially run, which matches the database tables required on the remote
database (about 15 tables).  Most of the remote tables have auto-increment
primary keys, so I guess just numeric primary key on the phone.

3.            Connect to the database and create ArrayCollections for each
of the database tables.

4.            Loop over theArrayCollections and add the data to the SQLite
database tables.

5.            Then, as the user works with the application, change all my
remote objects to SQLite queries populating the existing ArrayCollections,
for the existing forms and lists, which should eliminate the remoteObject
latency/failures that plague the current version.

6.            Change all the add/edit functions to include added/edited
timestamps (to the CreatedTimeStamp and MostRecentEditTimeStamp columns
mentioned above).

7.            When the sync occurs, download all newly added records from
the various tables ( I guess in an order that doesn't violate foreign key
constraints).

8.            Upload any newly created records from the phone to the remote
database.

9.            Download any edited records changed since last sync to the
phone.

10.          Upload any edited records changed on the phone since the last
sync.

 

I am not even going to mention the second issue just yet.this is the big one
and quite a stretch for a hack like me.

 

Any guidance, advice, or shortcuts would be greatly appreciated.

 

Mark Fuqua

 

[email protected]

 

2301 Mount Carmel Road

Parkton,  MD  21120

(410) 215-7356

 

www.availdata.com

 

Reply via email to