Where the BMLTiOSLib Fits In
The BMLTiOSLib acts as an abstraction layer between the JSON Semantic Interface to the BMLT Root Server and your app. You throw it into your app development project, just like any of the other frameworks, and import it. You will need to establish a context in your app that responds to the BMLTiOSLibDelegate protocol to receive messages.
Licensing and Reuse
The BMLTiOSLib is a 100% open source project. The BMLTiOSLib uses the MIT License, and we actively encourage people to use it in closed-source or commercial projects, if they wish.
Where to get the BMLTiOSLib
The source code (all of it) is available in this GitHub repo.
However, if you prefer using CocoaPods, we have a CocoaPod of the BMLTiOSLib available.
Using the BMLTiOSLib Framework in Your Project
NOTE: For the discussion in these pages, we may refer to the source project for the Quick NA Meeting Finder App. This is a small Swift project that was originally developed as a demonstrator for the BMLTiOSLib. You can Git Clone the project locally (or simply download the zipped repository), and follow along.
It can be a bit confusing, but if you have experience with Xcode and frameworks, you know that the two icons on either side of this note represent the same thing. You will usually see the one on the left (the white Lego block), but Xcode also uses the one on the right (the toolbox and cup of cocoa -or just the toolbox) inside of the application. Don’t worry if you see both icons applied to the BMLTiOSLib.
Example of a BMLTiOSLib Interaction
Here’s a perfect example of how the BMLTiOSLib makes your life infinitely easier, when communicating with a BMLT Root Server:
Let’s walk through the actions illustrated above:
- First, the app creates a new instance of BMLTiOSLib, giving it a URI to a valid (HTTPS, 2.8.10 or greater, and with a full set of default fields) Root Server, and the app itself as a delegate (will receive messages returned from the BMLTiOSLib).
- The first thing the BMLTiOSLib does, is invoke the JSON Semantic Interface command to get the basic Server info.
- The server responds (or doesn’t, if it is severely out of date) with a JSON object containing the various essential Root Server parameters, such as its version, default language, available data fields and center location.
- Assuming the BMLTiOSLib is satisfied with the response, it then asks the Server to send it a list of the Service bodies on the Server.
- The Server returns a JSON object containing the data on all the Service bodies it contains.
- The BMLTiOSLib then asks the Server to send a list of all possible format codes.
- The Server responds with a JSON object with all the formats possible.
- The BMLTiOSLib then asks the Server to send back all of the languages it supports.
- The Server responds with a JSON object containing all of its supported languages, highlighting the default language.
- At this point, the BMLTiOSLib has enough information. It calls the
BMLTiOSLibDelegate
function
bmltLibInstance(_:,serverIsValid:)with
serverIsValidset to true, if the server is considered valid and connected, or false, if otherwise.
During this process, if a program error occurs, the
function
could be called to report an error. Invalid servers are considered errors, so bad URIs will result in error calls.
If the last step reported success, then a session to the server is now open, and will be maintained for the lifetime of the BMLTiOSLib instance. In order to terminate the session, the program merely has to delete the instance.
See how much work the BMLTiOSLib just saved you? And you’ve barely started.
Now that we have an idea of what the BMLTiOSLib is about, let’s see what we need to do in order to use it.
- Other Topics
- An Illustration of the BMLT System
- BMLT Roles
- Is Your Server Set Up Correctly?
- Test Site Links
- The BMLT Satellite Base Class
- The BMLTiOSLib iOS Framework
- BMLTiOSLib Technical Overview
- Adding the BMLTiOSLib to Your Project
- Being A Responsible Delegate
- Our First Search
- Doubling Down on the Data
- Configuration Management And Release