Introducing GlueKit

GlueKit was written by 1701 Software (http://www.1701software.com) in order to support cross platform code in Xojo. Currently Xojo is developing the "new framework" which primarily focuses on the iOS platform. The goal is to eventually bring those classes to the desktop/web platforms. However until they do so 100% it is difficult to write one set of business logic to be shared between platforms.

For instance let's say you want to write a class that interacts with a web service. You might subclass the Xojo.Net.HTTPSocket in iOS and utilize its events and methods. This allows you to just interact with that one class without having to integrate the web service code into the presentation layer of your app. The subclass you developed will not work on a desktop or web project because the Xojo.Net.HTTPSocket class is not available.

However if you use GlueKit and subclass from GlueKitHTTPSocket then you get the best of both worlds. GlueKit automatically uses the best framework depending on the situation. GlueKit is a 99% code compatible drop-in replacement for the Xojo new framework. When Xojo does release Xojo.Net.HTTPSocket for desktop you can just change the super class of your web service subclass to Xojo.Net.HTTPSocket and everything should work. We do this be mimicking the Xojo.Net.HTTPSocket methods/properties/events making it a drop-in replacement.

Classes available, purpose, and planned obsolescence:

GlueKitTimer

  • Xojo.Core.Timer is not currently available on all desktop platforms.
  • Drop in replacement for Xojo.Net.Timer. On desktop uses the Timer class.
  • Will be removed once Xojo.Net.Timer is available on the desktop.

GlueKitTCPSocket

  • Xojo.Net.TCPSocket is not currently available on all desktop platforms.
  • Drop in replacement for Xojo.Net.TCPSocket. On desktop uses the TCPSocket class.
  • Will be removed once Xojo.Net.TCPSocket is available on the desktop.

GlueKitHTTPSocket

  • Xojo.Net.HTTPSocket is not currently available on all desktop platforms.
  • Drop in replacement for Xojo.Net.HTTPSocket. On desktop uses the HTTPSecureSocket class.
  • Will be removed once Xojo.Net.HTTPSocket is available on the desktop.

GlueKitFolderItem

  • Xojo.IO.FolderItem is not currently available on all desktop platforms.
  • Drop in replacement for Xojo.IO.FolderItem. On desktop uses the FolderItem class.
  • Will be removed once Xojo.IO.FolderItem is available on the desktop.

GlueKitSpecialFolder

  • Xojo.IO.SpecialFolder is not currently available on all desktop platforms.
  • Used to instantiate an instance of GlueKitFolderItem.
  • Drop in replacement for Xojo.IO.SpecialFolder. On desktop uses the SpecialFolder class.
  • Will be removed once GlueKitFolderItem can be removed.

GlueKitEasyTCPSocketClient

  • This is the Xojo EacyTCPSocketClient source modified to use GlueKitTCPSocket.
  • This provides the ability to subclass the GlueKitEasyTCPSocketClient and use it across all platforms.
  • Will be removed once Xojo.Net.TCPSocket is available on the desktop.
  • Alternatively can be removed if the EasyTCPSocket comes to iOS and desktop natively. This does not seem likely as Xojo chose to release the source code for the EasyTCPSocketClient as opposed to build it into iOS.

GlueKit_Extensions

  • This module provides numerous extensions and methods to assist in development for various new framework shortcomings.
  • EncodeBase64/DecodeBase64 provided by Kim Tekinay. See: https://forum.xojo.com/18743-encode-decodebase64-in-ios/p1#p157101
  • EncodeHex extends the Text type.
  • ToDouble and ToText extend the Auto type. On the desktop (Windows specifically) the Auto type cannot be auto-cast to a Text or Integer/Double without raising an exception. These methods do it in a safe way.
  • Additionally the .ToText() method handles empty strings which currently raises an exception on the desktop.
  • ParseJSON method extends Text to provide the same functionality as the Xojo.Data module. This allows you to parse JSON the same way across all platforms. Not 100% complete as sub-JSON needs to be handled as Auto() arrays. Will be fixed.
  • Will be removed once Xojo natively supports these methods (Xojo.Data module for instance).

GlueKit_Extensions_Mobile

  • This module provides multiple methods exclusively for the iOS platform.
  • DeviceName provides the unique iOS device name.
  • EvaluateJavascript allows you to execute and evaluate Javascript in a iOSHTMLViewer object.
  • Will be removed once Xojo natively supports these methods.

GlueKitInvalidJSONException

  • Just a subclass on RuntimeException to provide GlueKit-compatible JSON exceptions when using the Text.ParseJSON() method.

We do plan to add more classes as we need them for our own projects. We will happily accept pull requests. Please respect the spirit of GlueKit to strictly be a set of extensions for new framework shortcomings. Replacements for new framework classes should be a drop-in replacement.

The goal here is to make GlueKit easily replaceable with the Xojo new framework equivalents once available. GlueKit SHOULD get smaller over time.

Please check out our blog at http://dev.1701software.com

Get GlueKit on GitHub (MIT Licensed) at https://github.com/1701software/GlueKit

Xojo and Valentina Hosting Added to Omegabundle

1701 Software, Inc. Announces Xojo and Valentina Hosting Added to Omegabundle for Xojo 2014. 

1701 Software, Inc. is a premier tools and services provider for Xojo® software developers. 

The association of Omegabundle vendors announce the expansion of Omegabundle for Xojo 2014, a collection of over $3567 of the best third party development tools for the Xojo cross-platform development environment. 

1701 Software, a software services company that specializes in Xojo web application hosting, is providing a three month free subscription to their services for participating customers who order Omegabundle for Xojo 2014. 

In addition, 1701 Software will also provide Valentina Server hosting as a part of its service lineup. 

Valentina Server is the ultra-fast database and business reports server from Paradigma Software. A license for Valentina Server Unlimited (a $1499 value) is included with Omegabundle for Xojo 2014. Using Valentina Studio Pro ($199, also included in Omegabundle for Xojo 2014), you can create business reports that are served from Valentina Server as web pages, graphics or PDF and can utilize most popular database servers, including MySQL, PostgreSQL, MS SQL Server and more. Reports can incorporate charts, graphs, barcodes, data layouts and other elements. Valentina Server also functions as a complete, object-relational database server. 

-Einhugur Plugin Pack. The first time offered as a part of Omegabundle! Large collection of user interface controls, image processing, application scripting, tree view and more 
-AppWrapper. Wraps your application for sale on the Mac App Store; high quality icon generation, Help Validator & insertion, Zip compression and more 
-Monkeybread Software's ChartDirector. Cross platform charts for your Xojo projects! Works with Mac OS X, Windows and Linux for Desktop, Console and Web 
-Franklin 3D for Xojo. An adaption of the mature Irrlicht 3d game engine; available for Xojo developers on Mac OS X and Windows 
-xDev Magazine. The original professional developer magazine for Xojo developers! Includes 12 years of back issues, plus a one-year subscription and your choice of a 500-page printed xDev annual book 
-Valentina Studio Pro. A powerful database development, database administration and report designer tool, available for Mac OS X, Windows and Linux 
-Custom UI. A complete set of Custom Controls bringing customization to the highest possible level. This set of controls will give your applications a unique and professional display. Nine styles are included 
-Retina Display Kit. The best way to create x-plat apps with Retina ability when using Xojo 
-DynaPDF Starter. Create PDF files on Mac, Windows and Linux from your Xojo based applications 
-Valentina Server (Unlimited Connections). An enterprise ready reports server that works with most well known databases, and also includes the advanced, object relational database server technology Valentina 
-Sandbox Kit. Takes all the heavy lifting out of sand-boxing your application for the Mac App Store 
-Valentina DB ADK for Xojo. Embeds the ultra-fast, object-relational Valentina database into Xojo applications on Mac OS X, Linux and Windows, with royalty free distribution 
-Valerian Icon Set. Set of professionally made application icons for cross platform applications; this year includes 1024 x 1024 sizes! 

For more information about the offer, visit the official Omegabundle website at http://www.omegabundle.com and also 1701 Software at http://www.1701software.com/webhosting.php

About 1701 Software, Inc. 

1701 Software, Inc. was founded in 2011 with the idea that business owners should not have to choose between Windows or Mac. Primarily specializing in the development of Xojo® based applications, we are passionate about helping our customers reach their customers on all devices.