September 10, 2011
At long last (big sigh of relief here by me) QuickConnectFamily 2.1 is finally available for download. It involved a lot of work by many people and has come together well. There are some big changes for both the iOS and Android platforms. These enhancements and changes have been driven by requests from developers like you.
- Another BIG one. In order to make the Control Function code more readable and more easily comprehended for those new to the framework all Control Functions MUST return one of the following three values (see the documentation for more information):
- qc.STACK_CONTINUE – This instructs the framework to execute the next control function in the stack.
- qc.STACK_EXIT – This instructs the framework to terminate all further stack execution.
- qc.WAIT_FOR_DATA – This instructs the framework that a call to database or remote data has been made or a call to device specific behavior such as showing a map, displaying the camera, email editor or other native behaviors.
- Work has been done to improve the asynchronous call stability in the underlying framework. (Thank you to the team at affinityAmp).
- Miscellaneous bug fixes and enhancements.
- Bug fixes
- Expanded database support and fixes
- A major rework of the underlying Android Java code to make it match the design changes in iOS. This is in preparation for QC Plugins and some new features such as ‘window-in-window’ that will be part of the next release as a Plugin. The ‘window-in-window’ code is in there now but not official until it is converted to a plugin and the same behavior is available for iOS.
- Added a hybrid sqlite database example
- Bug fixes
- Removed the native footer code since libraries for scrolling and others such as Sencha, JQTouch, etc. are now of good quality.
- QC Family Hybrid Plugin API and design spec completed. There is an example of how you can add to QC on your own. If you thing these additions could be useful to others you are free to charge for them, or not, host them yourself, notify me and I will add them to the plugin list on the QC plugin site. If you are willing to donate them to the QC community send them to me for review and I will put them into the git repository and list them on the QC plugin site.
- Updated all the examples to use the new return values and the new qc name space.
August 16, 2011
The download now includes a SimpleDB example for both Android and iOS. The example inserts values into the database, queries values from the database, and can do an HTTP GET. The iOS database interactions show how to use CoreData. I will soon (by the end of the month??) have an example using the Android ORM I’m developing.
Still working on that QC Hybrid release. It is getting really close. More on that later.
January 15, 2011
QC 1.6.7 has been uploaded. It includes a complete rewrite of the way your QCAndroid apps are compiled from within xCode. I think you will find compiling much better. It also includes a native Android template that allows you to build QC applications in Androids’ native Java along side the Objective-C native template for iOS apps.
Just like in QC Native for iOS apps created using this QC Native for Android template ‘pre-threads’ your application for you. This means that any code that you write that is not directly related to updating the view is run in helper threads. Any code you write that updates the view will run in the main view thread just like the native QC iOS apps.
Build your Control stacks in either language and your Validation and Business Control Objects, including db and server/service access, will be run on background, helper threads and then when the View Control Objects are executed they will be run in the main-view thread.
This means that your applications’ user experience is snappier since the main-view thread is only blocked when the view is being updated.
I will be covering the basic structure of Android Native QC apps and how to write them at the Android Developer Conference in March.
I will be covering the basic structure of iOS Native and Hybrid QC apps at the iPhone Developers Conference in April.
More tutorials, when I get them done, will be available on the wiki.
I have also uploaded QuickConnectFamilyPC_1.6.7 for those of you who want to develop using Eclipse rather than Xcode. It includes a few examples of hybrid apps and instructions for how to use QC in Eclipse.
I’d love to see you at the developer conferences and get feedback in addition to what I receive via the Google group and this blog.
December 23, 2010
I have just posted the 1.6.4 version of QC on SourceForge. It includes some defect fixes and some minor additions, and a few big changes. QC 1.6.4 requires the iOS 4.2 SDK.
The big changes are regarding the native application templates. You can now use the same design to create Objective-C iPhone, iPad, and Universal iPhone/iPad apps that you have been using to create your hybrid applications.
These native iOS apps come ‘pre-threaded’. Every time you call handleRequest your command stack is executed on a worker thread. Any of your ViewControlObjects that you create for your control Stack are executed in the main thread since it is the only one that is allowed to update the User Interface. All other behavior is done on a worker thread and you don’t have to worry about how to set it up, make it go, or make it stop.
Just as with the hybrid apps you’ve been creating with QC all of your async calls to HTTP servers, portals, etc. are linearized for you. You never need to write another callback function!
In addition to making your remote HTTP calls easier all of the templates for native QuickConnect applications also include support for both direct SQLite access and CoreData.
With a little time working in Interface Builder and putting together some CoreData objects your app is up and running.
Examples are already in the download for all of these native iOS templates. Check them out and see how easy native iOS apps can be.
The next release will have native multi-threaded Android applications as well.
One other change is that the PHP template has been updated. Take a look at the example in the download.
July 30, 2010
A feature to build on top of this download would be displaying office docs that you download. Would you like that feature?
July 4, 2010
The first non-beta of QuickConnect 1.6 is now available.
Thanks to several of your users the new QC release is available. It is no longer in Beta!
It includes an update to Android version 2.2. You will also find that the template selection has been dramatically simplified. You will find that there are now two template groups, QuickConnect Mobile Hybrid and QuickConnect Mobile Obj-C. Within these groups you will find the different types of projects.
For the Obj-C group you will find iPhone and iPad Objective-C templates.
The Obj-C group is used to develop pure Objective-C iPhone and iPad applications.
There have been many changes and improvements since 1.5 including many more examples.
May 30, 2010
Exciting new features have been added in this beta with matching examples. They include:
- Custom Extension support including a template for your new BCOs, VCOs, ValCOs, etc. that inherit from QCCommandObject.
To create an Objective-C extension do the following:
- In your application project select New->File and pick the Mac OS X -> QuickConnect-> QCCommandObject subclass option.
- Repeat this until you have created your BCOs, VCOs, etc.
- Open the app delegate .m file in the Classes group and map commands to your new Control Objects ( see the Objective-C Extension example for code you can copy and paste).
To those of you who are creating custom behavior. If the behavior is generic enough to be used by others please submit it for review and let’s get it in the base framework.
April 26, 2010
I have been invited to teach three 75 minute courses at the upcoming iPhone/iPad DevCon in San Diego September 28th and 29th, 2010. Two of the courses are on Objective-C topics and one is on using QuickConnect to build hybrid applications.
I’d love to meet you there if you get the chance. Maybe we could setup a users group meeting. I have put up a survey here on the blog as to what you think would be the most helpful items to cover in the ‘using QC’ class.
After the survey you can see a description of each of the classes I’ll be teaching.
Advanced track “Mobile Data Synchronization with Any Database”
iPhone applications can easily store data using either the core Data framework or by directly interacting with the SQLite database engine. This data can then be heavily used without delays involved in passing information back-and-forth between the device and a remote database. How then can data be kept in sync if it needs to exist on the device and a remote database? What if you don’t need all of the data found in the database to exist on the device?
This class helps you design and implement a synchronization utility that will work with the database management system of your choice. It could be Oracle, MySQL, Sybase, or some other database. It could even be something completely different such as XML or other textual flat files. The data structure on the device won’t even need to match the remote data structure.
All of this can be done to create an easy to use sync utility you can use in any of your applications.
Intermediate track “Creating an Easy-To-Use Objective-C Modular Framework”
The Model-View-Control pattern as implemented by apple is great as far as it goes. It does tend to lead to implementation code being scattered across many areas of your application.
This class helps you design and implement a modular, reusable framework that can speed up your application development dramatically. Initial data indicates you could reduce your time to market by a factor or 10 or more by reusing the framework you will create in this class.
You will create a command-response, highly modular framework that you can reuse in every iPhone, iPad, and even Mac application you ever create. Your framework will be fast. It will be small. It will be easy to use.
Beginning track “Ship Your App Now by Creating Hybrid Applications”
This class helps you create your hybrid application using the first, open source, free, and most highly developed hybrid application framework QuickConnect. A few of the ideas you will learn to implement are:
- Storing data on the device
- Using HTML 5 to animate your interface
- Displaying Maps in your application
- Using audio and Video
January 28, 2010
I just ran the QuickConnectiPhone framework in the iPad simulator. It works without changes. All I had to do is add the iPad build target and run it.
I won’t add it officially to the framework template until the 3.2 SDK release ships so it won’t mess you up. You can add it to your app if you want.
January 26, 2010
We are getting closer to build once and launch all all platforms! The Android template is much more functional now and prepares the way.
This beta 11 of QCFamily 1.6 has some important features
- Enterprise Sync supports synchronization with all remote databases.
- Stabilization of the iPhone enterprise synchronization for native and in-browser databases
- Enterprise synchronization is now available for Android devices. Unfortunately Google is not supporting in-browser HTML 5 databases at this time. This means that if you want to use this feature you will need to use a native database (include a .sqlite file)
- Google doesn’t support the XMLHttpRequest object in their WebView class. Therefore I have written a simple replacement. It is not fully featured but works in support of the Enterprise data sync ability.
- The QC Android template now includes the ability to build and run on a connected Android device in addition to the build for release and build for simulator functionality it already had.
Target features for the next beta:
- iPhone in-app purchase
- Enterprise data sync for Palm WebOS
- First Blackberry template
- Enterprise data sync for Blackberry
- One click build and run on all platforms