09.24.09
Native JSON Parser in Safari
I just got through running a test and found the Safari has built-in Native JSON parsing and stringifying. Unfortunately Mobile Safari does not yet have this feature. I am hoping to be able to remove the json2.js file from QCMac but am unsure yet as to how the native parsing compares to json2.js parsing.
Hopefully the comparison is good and it will soon be found in Mobile Safari so it will also be included in the UIWebView.
08.29.09
QuickConnectiPhone 1.5.0 is now available
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
08.28.09
HTML 5 Video and Audio in UIWebView and WebView
I have been playing with the video and audio tags in the UIWebView on the iPhone and WebView on the Mac. I tried them in the QT WebView as well on linux. I am pleased to announce that they work great! I have tried it with mp3, mp4, and wmv. All worked on all three platforms.
It looks like this is a good way to display videos for your users to play in your hybrid applications.
Let’s say you have a video called someCrazyMovie.mp4 that you want to display to your users. On the iPhone or the Mac put it in the Resources group of your Xcode project that uses a UIWebView. Point the UIWebView to a local html file, also in the resources file.
In this html file put the following code.
<video src=”someCrazyMovie.mp4>A movie description as an alt</video>
When you run your application you will see the first frame of the video used as a representational image. You can play it by clicking it. On the iPhone and iPod touch the movie player launches to play the movie.
The tag lets you size it, display or not display the video controls, etc.
The audio tag is used much the same way.
I’ll include an example for both the iPhone and the Mac in the 1.5.0 release of QuickConnectiPhone 1.5.0
07.02.09
Cocoa WebView and the Adobe Flash plugin
Since hybrid applications using the UIWebView are not recognized by the Adobe Flash plugin installer it appears that you cannot embed flash in a page displayed in a UIWebView and expect it to play swf files.
It is also true that the plugin has a defect. If you launch the default browser, be it Safari or Firefox, from within your application to display play a swf file the plugin crashes both browsers. If the browser is already open and running then the browser will open a window and you can play the swf.
I am including this ability in a future release of QuickConnectMac and QuickConnectWin but my opinion is don’t waste your time. Produce the movies as mp4s and you’ll have a much better user experience.
05.27.09
QuickConnectiPhone download now made smaller
I have reposted the QuickConnectiPhone Beta 8 installer on sourceForge. I was able to reduce the size of the movies included in the Mac example dramatically and now the download is a reasonable size.
By the way, the Mac port will now play and loop any movie of any type your QuickTime player will handle.
05.26.09
QuickConnectiPhone 1.5 Beta 8 is now available!
I have merged the installers for QCiPhone, QCMac, and QCPHP. They are now part of the QCiPhone download from sourceForge.
You can now make a Bonjour service on your Mac and connect to it from your iPhone or iPod touch or switch it around and publish the service on your iPhone or iPod touch and connect to it from your Mac.
The download is larger due to the videos included in the Mac Device Catalog example. I’ll try to pare this down for the final release.
The Mac port has begun to catchup with the iPhone version.
After 1.5 ships I’ll start shipping more of the OS 3.0 functionallity as 1.5.x betas.
The changes for this beta include:
iPhone 1.5 beta 8:
- Fixed stateSaving Example
- Simplified and fixed the asynchronous call handling code so that multiple asynchronous calls can be made in any order and intermingled with synchronous calls.
- Created an example of using native footers.
- Added an image display to show the default.png file if one exists to ‘hide’ the web view as it loads the JavaScript, CSS, and HTML files.
- Added a function to allow you to programatically turn copy-paste on and off.
- I still need to create an example of and the code for native headers and navigation bars.
Mac 1.0 beta 2:
- Simplified and fixed the asynchronous call handling code so that multiple asynchronous calls can be made in any order and intermingled with synchronous calls.
- Added recording and playing of audio.
- Added recording and playing of video.
- Added Shipped audio and video playing.
- Added Looping of audio and video.
- Added Bonjour networking (Client and Server)
- Added Error Logging and debug messages
- Fixed database interaction for both native and in browser databases
12.16.08
QuickConnectiPhone 1.0 Release has shipped.

The 1.0 release version of QuickConnectiPhone is now available for download from SourceForge.
(See the 1.5 release announcement on this blog to see what additional features and examples have been added.)
It allows your application, from JavaScript, to:
- Get browser based database access
- Get access to databases shipped with or created by your application
- Get GPS location information
- Get device acceleration information
- Show and use native Date and Date/Time pickers
- Vibrate the device
- Record and playback audio
- Play system sounds such as the notification sound
- Use a prebuilt drag and drop framework to easily make any DOM object draggable
- Use a prebuilt scaling and rotation framework to easily make any DOM object resizable and rotatable.
Examples for all capabilities are included in the Examples directory included in the download.
An installer is included to add QuickConnectiPhone templates to both Xcode and Dashcode to speed your development. It will also install beta versions of QuickConnectMac and QuickConnectPHP as well as file templates for JavaScript and PHP files.
QuickConnectMac allows you to write Mac applications using the same JavaScript framework that you use for iPhone applications. You can use this instead of Adobe Air. Write your application once and compile it for both iPhone and Mac.
The QuickConnectFamily image Copyright Lee Barney 2008. All rights reserved.
11.29.08
QuickConnectiPhone 1.0 RC3 available
The latest release candidate, 3, is now available for QuickConnectiPhone a framework that allows you to build your installable iPhone applications in HTML, CSS, and JavaScript. If you want to create an iPhone application but don’t have time to or maybe don’t want to learn Objective-C you can use QuickConnect instead.
This release, like RC 2, includes an installer.
It also includes support for embedding Google maps in your installable JavaScript application. This new functionallity, in addition to the previously added capabilities of GPS location, acceleration, JavaScript debugging in Xcode, device vibration and sound, etc., adds new power to your applications easily. All you need to do is make one JavaScript method call that includes the locations where you want a pin dropped and a description. The framework does the rest and your custom map is displayed.
Database access is just as easy. A wrapper for the SQLite database used natively on the iPhone is included in the framework. It supplies you with two methods, getData and setData, that are easily used to access and modify your data.
AJAX is also supported by a wrapper with getData and setData methods.
In addition, this installer will install QuickConnectMac. You can now quickly port your JavaScript application from your iPhone to a Mac. Most of this porting will consist of changing your HTML and CSS to fit the larger screen.
Also, QuickConnectPHP is included. This is an implementation of the QuickConnect framework in PHP. It allows you to create web applications quickly and easily using the same engineered approach that you use for your iPhone and Mac applications. It includes a MySQL wrapper that supplies both of the getData and setData methods as well.
11.28.08
Why QuickConnect?
Recently in a response to a previous blog posting I was asked about what I see as the reason behind and the future of QuickConnect. I am posting my response here to make it easier for all to find.
Brad,
I have as yet not created a web page describing the intent of the QuickConnect platform. It basically comes down to this:
For the last 4 years I have been working on a framework implemented in multiple languages to speed up development of different types of applications. This is why you see QuickConnectPHP and QuickConnectYaws and will soon see QuickConnectJava and QuickConnectJ2EE. You don’t need them to write for the phone or the Mac but you may want to use them if you need to create a web application.
Why should an engineer/developer need to learn one framework for installed applications and another for web applications?
And why should an engineer/developer need to learn one framework to use in a web client and another for the server side of their web application?
And why again should this engineer/developer have to learn a different framework when moving from one language to another?
What I have attempted to do is to boil down all the engineering work I have been doing in the last 4 years to a lean, easy to use framework for multiple platforms, multiple situations, and multiple languages.
I can only hope that it will be of use to someone. I decided to make this work public since it has dramatically increased my productivity when writing apps.
Also, after years in the industry I came to teach in the Computer Information Technology department at BYU-Idaho. We teach the basics of the engineering behind QuickConnect to our undergraduates. This knowledge has given them a distinct advantage in the workplace when it comes to jobs so I felt it should be shared with a wider audience.
I hope this explains why I created QuickConnect.
11.18.08
QuickConnectMac 0.9 beta is now available! Open source Adobe Air?
I know this isn’t directly iphone related but I thought I would include it here.
QuickConnectMac,an open-source alternative to Adobe Air, is now available in its’ first beta form! Build both Mac and iPhone applications in HTML, CSS, and JavaScript without learning a new language or framework. Now you don’t have to learn Objective-C.
QuickConnectMac includes an implementation of the QuickConnect framework both in JavaScript. If you want to write in Objective-C it also includes an Objective-C implementation.
A custom Xcode template is included in the downloadable zip file to dramatically speed your development. See the installation instructions below.
New additions for the Mac implementation are:
1 – Debug messages created in JavaScript are written to the Xcode’s gdb Console just as if they were Objective-C NSLog calls. This is also true of the iPhone release version.
2 – The JavaScript DatabaseAccessObject now has a boolean parameter that allows it to access SQLite database files shipped in the Resources directory of your application. When the application is started a duplicate of the original database is copied to the user’s Documents directory. This allows the user to ‘reset’ the application by deleting the copy in the Documents directory.
Any number of shipped database or embedded UIWebView SQLite databases can be used. They can even be used together if you want.
3 – Multiple Business Control Functions can now be used on both the JavaScript and Objective-C sides. If the JavaScript BCF’s make asynchronous calls the BCF execution is serialized, not made synchronous. This means that you can make an AJAX call from within a BCF and when it returns a value your next BCF will be called. Again, this is not using synchronous AJAX calls. The same holds true for the asynchronous data access calls to the UIWebView’s built in SQLite database.
Both of these asynchronous calls are handled for you in either the DatabaseAccessObject or ServerAccessObject(AJAX). They both use a common ‘getData’ and ’setData’ interface to the functionality.
Installation:
Place the ‘QuickConnect Application’ folder in the ‘/Developer/Library/Xcode/Project Templates/Application’ folder and when you select ‘New->Project’ in Xcode the ‘QuickConnect Application’ template will be a selectable option at the bottom of the window when you select ‘Mac OS X’ and ‘Application’