11.28.09

Cross Platform Mobile Development Documentation

Posted in Uncategorized tagged , , , , , , , , , , , at 1:25 am by tetontech

Available on the wiki you will find documentation on how to start using the latest 1.6 beta to develop for iPhone, Android, and Palm with the same HTML, CSS, and JavaScript code.  I hope this helps you creating the apps that you want.

I’m still working on getting Blackberry development to work the same way as the others but I’m close to having something that works.

I’m also uploading 1.6 beta6.  It makes some small fixes related to the Images directory in the project.  If you are using beta5 you should upgrade.

11.27.09

QCFamily 1.6 beta5 support files

Posted in Uncategorized tagged , , , , at 8:51 pm by tetontech

I have noticed that a support file that you use to launch the Android emulator called SimDroid may not have ended up in the 1.6 beta 5 install.  To remedy this I have put QCFamilySuportApps.zip in the downloads for the 1.6 beta.  After you have unzipped it and installed 1.6 beta 5  you can double click this application.  It should launch the Android emulator for you (you don’t want to know the command line methodology).

11.26.09

QuickConnectFamily 1.6 beta5 now available

Posted in Uncategorized at 12:38 am by tetontech

QC 1.6 beta5 includes:

  • A new Palm WebOS template (more examples coming soon)
  • A new Android template (more examples coming soon)
  • The ServerAccessObject has been updated to allow cookie handling.  The XmlHttpRequest object it is based on would not.  (in preparation for Apple Push technology implementation)
  • A simplified view of the projects (compatible with the beta4 projects.  No modification of existing beta4 projects needed.)

The QCFamily download includes the full Android SDK and is ready to go.  If you want to develop for Palm WebOS you will need to download the Palm WebOS SDK and install VirtualBox from Sun.

In the next be

QuickConnect Cross Platform Mobile Development

Posted in Uncategorized tagged , , , , , , , at 12:15 am by tetontech

The latest QuickConnectFamily beta, 1.6 beta5, includes Xcode templates for iPhone, Android, and Palm WebOS development.  The file structure is the same across all of the platforms.  You can write your application in HTML, CSS, and JavaScript for one device and then move the code into projects for the other platforms.

Coming soon, one project that builds and launches on all platforms.

Things to remember

  1. The 1.6 beta 5 dowload does not include the full Android SDK.  Download the QC Android support file and it will have what you need.
  2. You have to install the Palm WebOS SDK if you want to develop for that platform

Here are images of the same simple application running on all of the platforms on my MacBook Pro

11.17.09

QCiPhone 1.6 beta 4 is now available.

Posted in iPhone development tagged , , , , , at 6:55 am by tetontech

A new beta of QC 1.6, beta 4, is now available on sourceforge.  I has the following fixes and changes

  1. DBScript can now be used with native databases.
  2. All examples shipping in the download of the beta are now converted to the 1.6 file structure.  A few of the examples have not been ported yet and so I have not included them yet.  I’ll put them in the next beta.
  3. ServerAccessObject timeout defect fixed that triggered multiple calls to VCO’s
  4. Cleaned up DataAccessObject batch method (a support method for DBScript.  Don’t use it directly).  Simplified batch completion checking.
  5. Fixed DataAccessObject transaction handling that caused transactions not to appear to fail if database constraints were violated.
  6. SQLite updated to version 3.6.20 with support for FTS3 query syntax added
  7. Added missing NativeFooter Example
  8. Fixed failure to hide native footer defect
  9. Added new JQTouch example showing the JQTouch developer demo

08.29.09

QuickConnectiPhone 1.5.0 is now available

Posted in erlang development, iPhone development, mac development tagged , , , , , , , , , , , , , , , at 9:05 pm by tetontech

QCiPhone 1.5.0 has just been uploaded to sourceForge.  They are saying that it may take about 15 minutes to become visible as the default download for OS X machines.

A note to 3.0 API users. The dashcode QC template no longer appears as an option.  I am looking for ways to get it to show up again.End

Because of the 3.0 Dashcode changes I have not been able to update the Dashcode examples to the latest QC source.  All of the Xcode examples are updated.

The release includes examples of how to use the video and audio tags in booth QCiPhone and QCMac applications.

QuickConnectMac 1.0 is also included in this release.  It allows you to create hybrid applications that run on Mac machines just like you do for the iPhone and iPod touch.

QuickConnectPHP 1.0 is another template that can be used on the Mac side.  It isn’t used to create hybrid applications but is used to create PHP web applications.

Also included, for those interested, is QCErlang 1.0.  It is an updated version of an Xcode template for developing erlang applications.  It includes auto-completes for most of the commonly used functions.

Defect fixes in this release include:

1.  UIWebView no longer ends up with a black background after re-displaying the Default.png file while the page loads.

2.  DataAccessObject in-browser database use fixed and updated to new methodology for the retention of which BCF in the stack is to be called next.

3.  Updated the embedded map code to use the current data passing scheme from and to Objective-C

4.  HTML Elements with touch events inside of Elements made scrollable no longer react to ontouchstart, ontouchmove, and ontouchend unless the event is not due to scrolling

07.01.09

The book is shipping

Posted in Uncategorized at 3:55 pm by tetontech

My latest book, Developing Hybrid Applications for the iPhone: Using HTML, CSS, and JavaScript to Build Dynamic Apps for the iPhone is now available and seems to be doing pretty well.

It covers using QuickConnectiPhone and PhoneGap to create applications for the iPhone.

Hopefully it will be helpful.

06.05.09

QuickConnect Defect Tracking System

Posted in Uncategorized at 12:57 am by tetontech

A new defect tracking system is now available for the QuickConnect family of products.

When you post a defect please include a simple example code set that illustrates the issue.

05.01.09

Scrolling individual elements in hybrid or web applications

Posted in Uncategorized tagged , , , , , , , , , , , , at 6:24 pm by tetontech

A request has been made to show how individual elements in a hybrid or web application can be scrolled on the iPhone.  I have included some code below that has all of the JavaScript requried to accomplish this.  It comes from the QCUtilities.js file of QuickConnect iPhone 1.5 release that will be posted within a couple of days.

Because it is from QuickConnect it includes the ability to add request handling for when the user touches the screen in preparation for scrolling, as well as each time the finger is moved and when the scroll action is complete.  If you want to use this code outside of QuickConnect then remove everything regarding the startDragCmd, dragCmd, and dropCmd parameters.

If you want to use this within an older version of QuickConnectiPhone place the code in your version of the QCUtilities.js file and it works.

This approach uses the CSS transitions, proposed for HTML 5,  available in WebKit instead of the standard JavaScript approach since that approach is much to slow for both the iPhone and iPod touch devices.

To make an element scrollable call the makeScrollable function and pass the element you want to be scrollable as the first parameter.  If you want the element to not be scrollable below its original y axis location pass true as the second parameter of makeScrollable.  Here is the onload event code from the scrollingElements example of the  upcoming QuickConnectiPhone 1.5 release that sets three views in a view stack to be scrollable.

Making elements scrollable

function load()

{

dashcode.setupParts();

makeScrollable(document.getElementById(‘view1′));

makeScrollable(document.getElementById(‘view2′));

makeScrollable(document.getElementById(‘view3′));

}

Scrolling Functions to Add

/*

* Pass any DOM element to this function to make it scroll

* The *Cmd parameters are optional commands to be handled for

* scroll events.

*/

function makeScrollable(anElement, scrollBothUpAndDown, startDragCmd, dragCmd, dropCmd){

anElement.ontouchstart = prepareScroll;

anElement.ontouchmove = scrollIt;

anElement.ontouchend = scrollDone;

anElement.scrollBothUpAndDown = scrollBothUpAndDown;

//do not set or reset the commands if none are passed in.

if(startDragCmd){

anElement.startDragCmd = startDragCmd;

}

if(dragCmd){

anElement.dragCmd = dragCmd;

}

if(dropCmd){

anElement.dropCmd = dropCmd;

}

}

/*

* This function is triggered each time an ontouchmove event is

* fired for an element that has been passed to makeDraggable.

*/

function scrollIt(event)

{

stopDefault(event);

this.y = event.targetTouches[0].clientY – this.offsetY;

if(this.lastY){

this.y += this.lastY;

}

if(this.scrollBothUpAndDown || this.y < 0){

this.style.webkitTransform = ‘translate(0px, ‘ + this.y + ‘px)’;

}

else if(this.y >= 0){

this.style.webkitTransform = ‘translate(0px, 0px)’;

}

if(this.dragCmd){

var params = new Array();

params.push(event);

params.push(this);

handleRequest(this.dragCmd, params);

}

}

/*

* This function is triggered every time an ontouchstart event is

* fired for an element that has been passed to makeDraggable.

*/

function prepareScroll(event)

{

stopDefault(event);

//store off any timing and duration set anywhere else in the app

//and turn them off so they don’t interfere with the scrolling

this.timing = this.style.webkitTransitionTimingFunction;

this.style.webkitTransitionTimingFunction = null;

this.duration = this.style.webkitTransitionDuration;

this.style.webkitTransitionDuration = null;

this.touches = event.targetTouches;

this.offsetY = event.targetTouches[0].clientY;

if(this.startDragCmd){

var params = new Array();

params.push(event);

params.push(this);

handleRequest(this.startDragCmd, params);

}

}

/*

* This function is triggered every time an ontouchend event is

* fired for an element that has been passed to makeDraggable.

*/

function scrollDone(event)

{

//this.ontouchmove = null;

//this.ontouchend = null;

if(this.scrollBothUpAndDown || this.y < 0){

this.lastY = this.y;

}

else{

this.lastY = 0;

}

//restore any timing or duration that was set anywhere else in the app

this.style.webkitTransitionTimingFunction = this.timing;

this.style.webkitTransitionDuration = this.duration;

if(this.dropCmd){

var params = new Array();

params.push(event);

params.push(this);

handleRequest(this.dropCmd, params);

}

}

04.16.09

QuickConnectiPhone 1.5 beta 7 available

Posted in Uncategorized tagged , , , , , , , , at 6:31 pm by tetontech

Beta 7 includes:

  1. A fix to a defect that didn’t allow any control functions to be called if the DataAccessObject or ServerAccessObject was used.
  2. Added the ability to set a timeout value for the ServerAccessObject when it is used to make an AJAX call.  The default value is 10 seconds.
  3. Added AJAXErrorExample to show how to handle web server errors.
  4. Fixed the DeviceDescription example so that it includes the necessary support files.

It looks like we are getting close to a release version!

Next page