January 30, 2012
With changes that have been happening in my life, specifically going back to school to get a doctoral degree, I find that I am no longer able to support the full suite of QC libraries. The QuickConnect Hybrid framework will now be the only one I am supporting.
When I am done with the degree I will again be supporting the other libraries. There is only so much time in the day.
The other libraries, such as enterprise sync, QCJSON, QCNative, etc. are and will still be available for download from source forge.
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.
June 15, 2011
I have just completed an update to QC Native for those of you who are doing native Android and/or iOS development. Download it from here: http://goo.gl/P7s6D
As with the previous version of QC Native all threading is done for you. ValCO’s and BCO’s will run in a background thread and VCO’s will run in the UI thread on Android, JavaSE, and iOS. No threads will be used when you use the qc.jar file in an Enterprise Java environment since they are not needed there.
The Control Objects in QC Native now use HashMap/NSMutableDictionary instead of ArrayList/NSArray. This allows you to have more control over the data used in your Control Objects. Another change is that you now add the results of your calculations in your BCO’s, ValCO’s, and VCO’s to the parameters HashMap/NSMutableDictionary instead of returning them from your handleIt methods. Now you return null to terminate a control stack and any value to continue.
This change will give us a strong base to build on for the foreseeable future for both the native and hybrid libraries.
May 11, 2011
So here is a hint for using the camera with the iPad.
The iPad allows the camera view to rotate as the orientation of the device changes. Imagine this set of views.
———-> base view
————–> camera view
If you display the camera from the subviews’ view controller the camera views’ control bar and the orientation of the camera view itself will only be correct if the device is in portrait-right-side-up orientation when the camera view is displayed. In any other orientation the camera view will be displayed incorrectly and this orientation error remains as the device orientation changes.
If the set of views is like this the camera view will be displayed correctly regardless of the original orientation of the device. It will remain correct as the orientation of the device changes.
———-> base view
—————> camera view
So here is a rule for showing the camera via the UIImagePickerControllerDelegate class.
“The view controller that displays the camera must be controlling a view whose superView is the main window if the controlled view auto rotates.”
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.
Avoid the current Gingerbread Android SDK if you use the emulator to develop your apps!
Installing and running your QuickConnect or other hybrid apps on a device still works. Since developing using a device is faster than developing using the emulator this is probably your bet anyway.
A discussion of this bug can be found in this Google group discussion.
Let’s hope the Android team either gets their act together and fixes this soon or gives us a better development tool like Android running in a real VM instead of this emulator.
January 6, 2011
The mac app store is up. Do you want to put an app up? QC has supported hybrid mac development for two years. It is ready for you now. All you have to do is make your selection as you see in the picture below and start making your app.
January 4, 2011
December 31, 2010