October 31, 2009

QuickConnectiPhone 1.6 beta 3 now available

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

QCiPhone 1.6 beta 3 includes:

  • All new Xcode apps created using the 1.6 beta 2 or later Xcode template will auto-update to a new version of QCiPhone when you run the QCFamily installer
  • A fix for the permission build error in beta 2
  • In application maps.  This feature allows you to drop any number of pins as well as show the current location of the device.
  • A new object, DBScript, that allows you to do bulk updates to the SQLite database in a transactionally safe fashion (in-browser only for now.  Will work for native databases in the next beta.

Examples for both the in-app maps (MapExample) and DBScript (BrowserDBScript) exist in the iPhone Examples directory of the download.

The post just previous to this one shows how to use the DBScript object.

Advertisement

SQLite bulk data update or insert

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

I just added SQLite bulk updates for in-browser databases (native databases coming soon) to the QuickConnect iPhone framework (1.6 beta 3).  I did this by creating and adding to the framework an object called DBScript.  It is transactionally safe.  If one of your updates in the script fails all changes are rolled back.

It is also easy to use.  The code below comes from the databaseDefinition.js file of the new BrowserDBScript dashcode example.  In it a link to the database is established using the DataAccessObject.  Then the DBScript object is created and a series of SQL statements are added to the script.  Lastly, the script is executed.  Notice that the script object works for both standard and prepared statements.

If you are using this after a data pull from a network resource or after querying the user for information to insert, make sure you use a prepared statement type call to avoid SQL insertion attacks.

/*

* An example of how to use the DBScript object to populate a database.

* This will be done as a single transaction and is transactionally safe.

* This means that all changes will be rolled back if any

* database error happens.

*/

//create or connect to the in-UIWebView database

var database = new DataAccessObject(“WelcomeExample”, “1.0”, “Welcome example”, 20);

//create the script object

var bulkInsertScript = new DBScript(database);

//add all statements to the script object

bulkInsertScript.addStatement(“CREATE TABLE IF NOT EXISTS names (id INTEGER UNIQUE, name TEXT)”);

bulkInsertScript.addStatement(“INSERT INTO names VALUES(1,’Bob’)”);

bulkInsertScript.addStatement(“INSERT INTO names VALUES(2,’Sue’)”);

//and example of using a prepared statement

bulkInsertScript.addStatement(“INSERT INTO names VALUES(?,?)”,[3,“Jose”]);

bulkInsertScript.addStatement(“INSERT INTO names VALUES(4,’Bjorn’)”);

bulkInsertScript.addStatement(“INSERT INTO names VALUES(5,’Jean’)”);

bulkInsertScript.addStatement(“INSERT INTO names VALUES(6,’Gustav’)”);

//execute all statements within a transaction

bulkInsertScript.executeSetDataScript();

 

October 25, 2009

Speaking at iPhone Developers Conference

Posted in iPhone development, misc tagged , , , at 5:19 am by tetontech

I am going to be speaking at the upcoming iPhone Developers Conference in Santa Clara on the 3rd of November.  I’m going to be speaking on Rapid Prototyping and using QuickConnect.

If you would like to attend the conference, follow these instructions to get in for free.

  • 1. go to the special registration page: https://www3.sys-con.com/iphonesummit1109/registernew.cfm?a1=expoplus
  • 2. enter the coupon code iphonespeakerguestVIPgold [case sensitive]
  • 3. the price will re-set to $0 and you can register for full access to all sessions, along with a handful of Cloud Expo sessions too (the Summit is co-located this time round with SYS-CON’s Cloud Computing Expo, a massive and 3-day long event).
  • Snow Leopard QuickConnectiPhone Update

    Posted in iPhone development tagged , , , , , at 5:04 am by tetontech

    QuickConnect 1.6 beta 2 is now available.  It includes the functionality that allows you to create QCiPhone Applications in the version of Dashcode shipping with Snow Leopard.  The Objective-C code has also been reorganized.  It now is contained in a sub-project to allow you to more easily focus on the JavaScript used to create your application.

    I’m going to give a short description of how to create an application and move it into a Xcode application.

    Creating a Dashcode Project and Moving it into Xcode

    1. Copy the QCDashcodeTemplate.dcproj found in the Snow Leopard Dashcode Templates directory of the QCFamily download and rename it with the name for your application.
    2. Design and build all or portions of your application in Dashcode.
    3. Export your Dashcode project to your Sites directory.
    4. Create a new Xcode project by selecting the QuickConnect iPhone Application
    5. Use Finder to copy the files and directories from your exported Dashcode project into the newly created Xcode project directory.  Make sure you allow finder to copy over all of the files and directories in the project.
    6. In Xcode, compile and run your application.
    7. Expand your application to include access to the native behaviors of the device as needed by using the functions in the com.js file.

    If you do not want to use Dashcode to create your application all you need to do is to edit the index.html file and include any JavaScript files you wish to use. You should also delete the Dashcode specific directories from your Xcode project.

    By the way, any of the existing JavaScript libraries such as JQuery, etc. should be usable with QC not just Dashcode.

    October 8, 2009

    StepSqlite and the iPhone

    Posted in iPhone development tagged , , , at 10:20 pm by tetontech

    StepSqlite is a service provided my Metatranz, LLC.  It claims to be a compiler for PL/SQL code that you can compile to run against SQLite.  This compiled code is supposed to be able to run on an iPhone or linux with other platforms upcoming.

    The way it works is that you submit your PL/SQL code via a browser to be compiled.  The compilation happens and then you are presented with links to download the C++ header file and a .so library file.

    This sounds great but I have concerns.  I state these with the belief that those involved with the project are honest and upright people and that metatranz is an honorable company.  Never the less, there are a few things that might keep me from using the service if I were responsible for security at a bank or some other institution that would be tracking secure data.

    • How can I prove, for security requirements purposes not because I think that this service is malicious, that the code that was sent in is the code that is executing without added backdoors, viruses, outbound socket connections, etc?
    • How do I know that the code is compiled to run efficiently?

    Given these concerns, it would be great if metatranz open sourced their compiler code under the BSD or other appropriate license so that it could be evaluated.  Also, that would allow for someone to verify the security of the .so produced without decompiling it.

    I think PL/SQL on the iPhone would be great.

    October 6, 2009

    Display Office documents in Hybrid iPhone Applications

    Posted in iPhone development tagged , , , , , , , , , at 7:28 pm by tetontech

    I have been playing around with the UIWebView today and found something interesting.   The UIWebView can process and display Word, Excel, PowerPoint, PDF, and RTF files.  Additionally I understand that the iWork files can also be displayed, though I haven’t tried those yet.

    The quick test I created consisted of links in index.html that pointed to each of the Microsoft Office file types as well as PDF and RTF files.  I put the files in the Resources group of the Xcode project and all of the files displayed correctly.

    If all you want to do is display these files, QCiPhone has complete support.  Editing is another question all together.  That would require a huge development effort.

    %d bloggers like this: