November 18, 2008

QuickConnectMac 0.9 beta is now available! Open source Adobe Air?

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

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’

Advertisements

4 Comments »

  1. Brad Parks said,

    This sounds very interesting! Thanks for the great work…. A couple of quick questions:

    – Could someone develop an iPhone app using QuickConnectMac if they weren’t planning on using any device specific features (eg accellarometer), and port it to QuickConnectIphone easily?

    – Are you planning a windows or linux version of QuickConnect to complete your Adobe Air open source platform?

    – Is there a page describing the intent of the QuickConnect platform? When I first looked at it, it appeared to me to be implementing a framework on different platforms and exposing the API entirely through javascript/css/html. But after looking quickly at QuickConnectPHP, for example, it looks like it requires that apps built off of it be implemented in PHP, not in javascript/css/html… Is this correct?

    Thanks!

  2. tetontech said,

    Brad.

    Since both QuickConnectiPhone and QuickConnectMac use the same JavaScript libraries you could quickly port from one to the other. Obviously most of this porting, if not all, would be modifications to the user interface. The API for the Objective-C sides is identical so you would want to move your JavaScript, CSS, and html files into a project of the other type.

    I have plans for both a windows and linux version of QuickConnectMac though time is currently an issue for me developing them. It shouldn’t take much time or effort to develop them since the underlying WebKit engine is available for both platforms. Again, my issue is time. I am trying to complete my book, available from Pearson Publishing, on QuickConnectiPhone right now.

    I also am considering an ebook on QuickConnectMac. If the windows/linux version was complete before I were to write the ebook I could write it generically for all platforms.

    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.

  3. Brad Parks said,

    Thanks for the post… I truly appreciate it, and your work…. Sincerely!

    As a result, I do have a better understanding of what you’ve been working on. From what I’ve seen of the QuickConnect platform, I can tell that it’s built upon experience, and that’s the type of framework I’m looking to build applications with.

    I’m currently in the process of trying to figure out how to best approach iPhone development… I’ve looked at PhoneGap, and QuickConnectIPhone, and I really believe that QuickConnect is the most mature WebKit based approach to iPhone development I’ve seen…

    Sadly, I’m still trying to work out getting a mac with leopard on it to do iPhone development (I’ve got an eMac that I’m trying to get it on)…. That’s why I was really interested in seeing if I could basically start doing iPhone development using QuickConnectMac, and the easily port it to the iPhone when I get a Leopard based mac going…..

    And I completely believe in your unified/evolving/frameworked approach to development…. And the fact that WebKit seems to be central to alot of your development is important to me as well, as I also want to start building apps using AdobeAir, but would of course prefer to do this type of cross platform development (iPhone/Mac/Windows/Linux/Possibly Android) using a single framework if possible….

    Have you considered for the time being porting QuickConnect to work on top of AdobeAir get it working easily in Windows/Linux? The big thing Adobe has going with Air, from what I can see, is that AdobeAir apps can be easily installed by end users that simply have the Flash plugin, as far back as Flash Player ~v7? As I mentioned though, I haven’t implemented any iPhone or AdobeAir apps yet, but will be as soon as I can lock myself into a framework, which I believe is QuickConnect.

  4. tetontech said,

    Brad,

    There is no reason that I can think of why you could not use the QuickConnect JavaScript framework with Adobe Air. It would just require you to include the script files.

    Right now I am a little skeptical about the flash download/installation process for Air apps just as I am with the JavaWebStart process. Both seem to me to be a solution looking for a problem. It is awfully easy to install stuff on todays machines.
    There are those that say it makes it easier to keep users up to date with the latest versions of the software but there are many times I don’t want the software to change. For example, if I am constantly updating my OS to the latest versions in what way do I have a stable platform for testing?
    Another example is mission critical apps. We all know that fixes make bugs. If I have a mission critical app running do I want it auto updated? Not me.

    I see the greatest future of Air not being the flash front, but the ability to truly write once and have it run and look the same on multiple platforms. That is what started me down the path of QuickConnect several years ago.
    The one item that makes this future possible is the WebKit engine being easily available on multiple platforms and easy to embed in multiple languages supported on those platforms.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: