Halo Platform SDK
What does SDK stand for?
A software development kit (SDK or devkit) is typically a set of software development tools that allows the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform. To enrich applications with advanced functionalities, advertisements, push notifications and more, most app developers implement specific software development kits. Some SDKs are critical for developing a platform-specific app. For example, the development of an Android app on Java platform requires a Java Development Kit, for iOS apps the iOS SDK, and for Universal Windows Platform the .NET Framework SDK. There are also SDKs that are installed in apps to provide analytics and data about activity. Prominent examples include Google, InMobi and Facebook.
It could be something as simple as the implementation of one or more application programming interfaces (APIs) in the form of on-device libraries to interface to a particular programming language, or to include sophisticated hardware that can communicate with a particular embedded system. Common tools include debugging facilities and other utilities, often presented in an integrated development environment (IDE). SDKs also frequently include sample code and supporting technical notes or other supporting documentation to help clarify points made by the primary reference material.
SDKs often include licenses that make them unsuitable for building software intended to be developed under an incompatible license. For example, a proprietary SDK is generally incompatible with free software development, while a GPL-licensed SDK could be incompatible with proprietary software development. LGPL SDKs are typically safe for proprietary development.
The average Android mobile app implements 15.6 separate SDKs, with gaming apps implementing on average 17.5 different SDKs. The most popular SDK categories for Android mobile apps are analytics and advertising.
SDKs can be unsafe (because they are implemented within apps, but yet run separate code). Malicious SDKs (with honest intentions or not) can violate users' data privacy, damage app performance, or even cause apps to be banned from Google Play or iTunes.
New technologies allow app developers to control and monitor client SDKs in real time.
Developers typically get the SDK from the target system developer. Often the SDK can be downloaded directly via the Internet or via SDK marketplaces. Many SDKs are provided for free to encourage developers to use the system or language. Sometimes this is used as a marketing tool. Freely offered SDKs are often able to monetize, based on user data taken from the apps, which serves the interests of larger players in the ecosystem.
An SDK for an operating system add-on (for instance, QuickTime for classic Mac OS) might include the add-on software itself to be used for development purposes, although not necessarily for redistribution together with the developed product. Between platforms where it is possible to develop applications that can at least start up on a system configuration without the add-on installed, and that use a Gestalt-style run-time environment query to determine whether the add-on is present, and ones where the application will simply fail to start, it is possible to build a single binary that will run on configurations with and without the add-on present, although operating with reduced functionality in the latter situation.
Providers of SDKs for specific systems or subsystems sometimes substitute a more specific term instead of software. For instance, both Microsoft and Apple provide driver development kits (DDK) for developing device drivers.
The Halo SDK
The Halo Platform will be a diverse array of complete applications for users to control
their entire cryptosphere. To help support the diversity of applications, we are providing
both API’s and SDK’s to developers to extend the wallet, core applications, and provide
new applications to solve new problems in the future.
Included with the SDK will be a complete set of tools in addition to the API. The tools
are as follows:
A complete development environment to test contracts on a private blockchain, test
network, or a client side VM.
If you need a quick jumpstart to developing on the Halo Platform, we will provide some
quick start applications that have everything setup and ready to go to start
development. We will include quick starts for Angular, React, Vue, and even Meteor.
All of our core modules will be built on Angular, and we want to provide developers with
a stress free way to interact with the Halo Platform in Angular. We will be providing
typing files, service dependency injection, and more. Expect a vast array of tools for
be consumed by DAPPs. This API will allow you to interact with currently installed core
modules, modify theming and shortcuts for the wallet, modify theming for core modules
installed, and much more!
Test RPC Network
We know that loved feature for development in the community is the Test RPC option. It
allows you to do blazing fast testing without connecting to an actual private or test
blockchain. We want to help you take your app a step further and provide you with the
tools to do instant testing without waiting for blocks to be mined. The Test RPC will take
care of all those needs for you.
We are also developing a browser plugin to allow your DAPPs to be used outside of the
Halo Wallet. Users will be able to interact with your DAPPs using the main net, test net,
local private nets, local test rpc, or even through an embedded VM running inside the
plugin when needed.
Get easy to remember domains mapped to your DAPPs so that your users can find your
site and index it easier within the Halo Platform DAPP network. This will be used in
conjunction with our new protocols for serving static files.
The point of having transactions and state changes to a contract cost gas is to prevent
contracts from entering into continuous loops and causing malicious problems. This
helps keep contracts within the bounds of the network and prevent scaling and timing
problems. To keep these same checks in place we are still going to require gas on
public contracts. Just like contracts today, anyone can publish a public contract.
However we are going to offer a unique feature to developers and token creators. If you
wish to submit your token code to a security audit, and it passes, then your token can be
published by the Halo Platform developer team as a private contract. Private contracts
can only be published by the Halo Platform developer team, and incur 0 (ZERO) gas
costs when changing contract states or sending transactions.
The Universe Expansion
We are building new features on top of the Swarm protocol built by the ethereum
network. We are calling it the Universe, and the project is the Universe Expansion.
Outlined below are the features we are adding into swarm for standardization and
NoSQL JSON Datastore
Giving you standardized API and tooling to use a NoSQL database stored in swarm on
your application. DAPPs will have direct access to storage and management through
the halo.js API.
A familiar situation as with the current swarm, the asset control API will allow you to
store files and information within the swarm network. This will be particularly good for
PDF’s, images, and other items that aren’t related to serving a web page but needed for
general storage purposes.
Static Site Server
Using the distributed decentralized network to store your website and serve it to others
is a major goal of the Halo Platform. As long as your website assets are static files (Ex:
HTML / CSS / JS / JPG / PNG / etc…) then they can be served from the network. We are
taking some key notes from other distributed and decentralized website hosting
projects. The ability to deploy your website and update it will be given through the SDK