# Smart Contract Development
Developing usable smart contracts using Solidity++ can roughly be split into two tasks, writing the contract and developing an interface.
# 1. Writing the Smart Contract.
Solidity++ is used to write the contract itself, which is then deployed onto the blockchain. Once a contract is deployed, anyone can interact with it, making the contract essentially a decentralized and publicly accessible application backend.
This can be done entirely within VSCode and the Solidity++ extension, following steps from the debugger guide and examples from Simple Contracts.
# 2. Developing the interface.
There is a much greater freedom when it comes to developing an interface to interact with a smart contract. For starters, the platform can be anything: an Android App, an iPhone app, a website, a browser plugin, a command-line interface, a shell script, etc.
There are several tools available to help you build interfaces:
- Vite Labs has both a JavaScript API and a Java API for interfacing with nodes/contracts.
- Using the Solidity++ VSCode extension's debugger interface.
- Vite node RPC calls can be invoked directly.
- Wallet authentication through ViteConnect (opens new window) is also possible.
We cover some simple examples of interacting with contracts to get you started, but you'll want to supplement this guide with other resources for developing for your target platform.