Be a crypto hero in the market by logging in

Don't you have an account? Sign in

Token price

  • BTC

    11,968,175.1KRW

    -0.1%

  • ETH

    248,950.8KRW

    -3.5%

  • XRP

    328.5KRW

    -5.2%

  • BCH

    364,301.3KRW

    -2.2%

  • LTC

    86,033.9KRW

    -1.6%

  • USDT

    1,200.1KRW

    0.2%

  • EOS

    4,527.5KRW

    -5.7%

  • BNB

    24,343.2KRW

    -3.2%

  • BSV

    141,218.5KRW

    -3.8%

  • XLM

    81.4KRW

    -5.2%

  • XMR

    86,481.8KRW

    -1.0%

  • ADA

    57.3KRW

    -7.1%

  • TRX

    19.9KRW

    -7.1%

  • HT

    4,787.2KRW

    -1.5%

  • DASH

    110,560.1KRW

    -1.7%

  • XTZ

    1,257.3KRW

    -0.7%

  • ETC

    7,152.8KRW

    -1.9%

  • NEO

    10,896.9KRW

    -3.5%

  • MKR

    629,612.4KRW

    -3.5%

  • ONT

    930.2KRW

    -4.1%

  • XEM

    53.1KRW

    -2.0%

  • USDC

    1,200.1KRW

    0.2%

  • ZEC

    55,211.3KRW

    -3.6%

  • DOGE

    3.1KRW

    0.0%

  • BAT

    231.7KRW

    -8.8%

  • DCR

    26,491.1KRW

    -1.9%

  • PAX

    1,199.9KRW

    0.2%

  • VET

    4.8KRW

    -2.9%

  • QTUM

    2,495.0KRW

    -3.3%

  • TUSD

    1,200.9KRW

    0.2%

  • BTG

    12,089.2KRW

    -4.0%

  • OMG

    1,287.5KRW

    -3.8%

  • RVN

    39.5KRW

    -6.2%

  • LINK

    485.1KRW

    2.0%

  • ZRX

    281.7KRW

    -2.6%

  • KCS

    1,806.9KRW

    -0.2%

  • NANO

    1,088.6KRW

    -1.7%

  • REP

    12,743.9KRW

    -0.1%

  • BCD

    743.7KRW

    -1.5%

  • LSK

    1,145.2KRW

    -6.3%

  • INB

    385.9KRW

    1.0%

  • QNT

    10,061.3KRW

    -3.7%

  • ICX

    238.1KRW

    -3.4%

  • WAVES

    1,174.8KRW

    -4.0%

  • DGB

    9.3KRW

    -4.5%

  • XIN

    248,096.0KRW

    -0.2%

  • XIN

    248,096.0KRW

    -0.2%

  • HC

    2,518.9KRW

    -1.7%

  • BTS

    40.0KRW

    -1.1%

  • THETA

    125.9KRW

    -1.9%

  • BCN

    0.6KRW

    -5.2%

  • DAI

    1,201.5KRW

    0.0%

  • MAID

    227.1KRW

    -0.2%

  • SC

    2.3KRW

    4.1%

  • BTM

    96.6KRW

    -2.0%

  • BTM

    96.6KRW

    -2.0%

  • NPXS

    0.4KRW

    -2.4%

  • IOST

    7.9KRW

    -5.5%

  • KMD

    810.0KRW

    -2.5%

  • MONA

    1,333.4KRW

    -3.6%

  • XVG

    5.2KRW

    -3.9%

  • ARDR

    78.5KRW

    6.9%

  • AE

    257.6KRW

    -0.7%

  • GNT

    73.5KRW

    -1.9%

  • ZIL

    8.1KRW

    -2.2%

  • STEEM

    194.7KRW

    -2.1%

  • NEXO

    118.5KRW

    -2.6%

  • AOA

    9.9KRW

    -10.6%

  • ENJ

    82.2KRW

    -1.8%

  • SNT

    18.2KRW

    -0.9%

  • MCO

    3,936.0KRW

    -0.7%

  • XZC

    6,320.1KRW

    -4.3%

  • ELF

    98.8KRW

    -0.6%

  • WTC

    1,176.2KRW

    -2.3%

  • ETN

    5.1KRW

    0.4%

  • ELA

    2,813.5KRW

    0.3%

  • RDD

    1.6KRW

    -1.4%

  • STRAT

    416.6KRW

    -4.2%

  • DENT

    0.5KRW

    -4.2%

  • LRC

    43.5KRW

    0.2%

  • FCT

    3,886.9KRW

    3.1%

  • PAI

    25.9KRW

    -3.1%

  • PAI

    25.9KRW

    -3.1%

  • FNB

    132.5KRW

    0.6%

  • WAX

    42.4KRW

    -3.3%

  • R

    71.3KRW

    -3.9%

  • ANT

    1,117.3KRW

    5.1%

  • AION

    93.7KRW

    -3.4%

  • ODE

    132.7KRW

    -2.1%

  • ARK

    262.3KRW

    -2.9%

  • BNT

    477.0KRW

    -3.7%

  • LOOM

    28.3KRW

    -2.0%

  • POWR

    65.4KRW

    -2.4%

  • PPT

    461.4KRW

    -3.4%

  • MOAC

    387.2KRW

    -4.8%

  • PAY

    202.1KRW

    2.0%

  • TTC

    53.7KRW

    -1.1%

  • CNX

    319.6KRW

    1.9%

  • PIVX

    310.4KRW

    -2.6%

  • POLY

    39.6KRW

    -1.8%

  • HUM

    0.4KRW

    --%

  • REPO

    115.6KRW

    11.7%

  • GUSD

    1,195.5KRW

    0.2%

  • CPT

    3.2KRW

    -6.2%

  • LKY

    182.5KRW

    -1.7%

  • AERGO

    83.8KRW

    -3.7%

  • COSM

    12.1KRW

    -2.2%

  • MBL

    2.1KRW

    -1.2%

  • APIS

    0.9KRW

    4.9%

  • AKRO

    10.6KRW

    -0.4%

  • TEMCO

    1.5KRW

    -0.4%

  • UPP

    13.8KRW

    -3.2%

  • MEETONE

    1.8KRW

    -6.0%

  • BAAS

    0.8KRW

    2.6%

  • MVL

    0.4KRW

    -1.1%

  • ABL

    10.6KRW

    -8.4%

  • DCC

    0.9KRW

    --%

  • eDEL

    2.4KRW

    -0.7%

  • AID

    11.2KRW

    -2.4%

  • PTON

    0.2KRW

    -12.2%

  • WET

    11.4KRW

    1.6%

  • VRA

    0.7KRW

    -5.7%

  • CLB

    2.9KRW

    -2.8%

  • XRA

    11.6KRW

    -0.1%

  • KARMA

    0.2KRW

    -1.4%

  • SEAL

    1.0KRW

    --%

  • PXL

    8.8KRW

    -0.6%

  • HORUS

    0.5KRW

    -14.0%

  • PUB

    0.3KRW

    -23.2%

  • NPER

    3.5KRW

    --%

  • PUT

    2.8KRW

    -7.8%

  • CCH

    0.1KRW

    -10.5%

  • KNT

    0.1KRW

    -39.2%

  • IQ

    6.2KRW

    -8.1%

  • RBTC

    11,988,058.4KRW

    0.2%

  • BLACK

    1.3KRW

    -3.5%

  • CET

    23.1KRW

    2.7%

  • RCD

    3.0KRW

    --%

  • MCC

    3.0KRW

    --%

  • INC

    2.8KRW

    17.5%

  • BZKY

    0.3KRW

    --%

  • BORA

    17.1KRW

    -4.7%

  • CRE

    2.9KRW

    0.7%

Community

EOSIO™ Software Release: Native SDKs for Swift and Java

EOS | 05.17| 513

New Open Source Tools to Create First-Class Mobile Experiences on EOSIO™

In a very short period of time, we’ve witnessed an explosion of innovative EOSIO web applications due in large part to libraries like EOSJS. EOSJS, with over 5,000 weekly downloads, provides JavaScript developers with the tools they need for interacting with EOSIO blockchains, and for realizing the promise of blockchain technology for users around the world.

As we all know, however, users are spending more of their time on mobile devices in native applications. This is largely because native apps are often able to provide richer, more engaging experiences than their browser-based counterparts. Today, native mobile applications are a crucial component of consumer-facing product strategies.

It is for this reason that we are excited to announce the alpha release of two new open source EOSIO tools to enhance native mobile application development on EOSIO, an EOSIO SDK for Swift and EOSIO SDK for Java.

Developer Convenience, Flexible Architecture

These Software Development Kits (SDKs) provide native APIs for interacting with EOSIO blockchains; creating, signing and broadcasting transactions; handling keys and obtaining signatures; data serialization/deserialization, and more.

And by targeting both the Java and Swift programming languages, we’re bringing these capabilities to the most popular mobile platforms — Android and iOS — contributing to what we hope will be a proliferation of compelling, native EOSIO-powered experiences for mobile users everywhere.

These SDKs employ a concept borrowed from EOSJS that provide a great deal of flexibility for a variety of use cases and environments — that of independent, interchangeable providers that plug into one core library.

The Core Libraries

The core EOSIO SDK for Swift and EOSIO SDK for Java libraries are responsible for facilitating the transaction lifecycle. They provide developers with easy and idiomatic ways of creating and working with transactions, collecting the necessary signatures, and preparing and broadcasting those transactions to EOSIO nodes. Much of the heavy lifting, however, takes place in the providers that are plugged into it.

The Signature Provider

The Signature Provider is arguably the most flexible of all of the provider abstractions. It is responsible for a) finding out what keys are available for signing and b) requesting and obtaining the signatures required for the transaction.

How it goes about executing that, though, is entirely up to the particular signature provider the developer has chosen to “plug in” for that transaction. By simply switching out the signature provider, signature requests can be routed in any number of ways.

A signature provider is able to carry out a number of useful functions. For example, anyone who needed a signature from keys in the platform’s key store or secure hardware signing element can simply configure the transaction with a signature provider that does it. The same goes for needing signatures from a wallet app running on a user’s device, which a signature provider can also perform.

This is great news for both app developers and users. For developers, this feature means that depending on their selection of signature providers, they no longer have to be on the hook for handling and securing a user’s private keys. For users, it means that the apps they love can easily work with the wallet or authenticator of their choice, creating a win-win situation.

Along with the core libraries, we are releasing the following signatures providers, in alpha.

As always, we encourage others in the community to create and open source other signature providers.

For more information about the signature provider concept, check out our previous article: EOSJS Major Update V20.0.0 Beta: Entrusting key management to signature providers for a more secure future of javascript development for EOSIO

The RPC, ABI, and Serialization Providers

Transactions are also configured with RPC, ABI, and Serialization providers.

  • RPC Providers are responsible for all RPC calls to nodeos, as well as general network handling (reachability, retry and failover logic, etc.)
  • Serialization providers handle ABI-driven transaction and action serialization and deserialization between JSON and binary data representations
  • ABI providers are responsible for fetching and caching ABIs for use during serialization and deserialization

While the need to swap these providers is less frequent, the abstraction is still quite valuable, especially when it comes to one of these SDKs’ other value propositions — support for platforms other than mobile.

Mobile and Beyond

It is important to note that both Java and Swift are general purpose programming languages, and that they are not restricted to running on mobile platforms. In fact, Java, with its “write once, run anywhere” philosophy, precedes Android and is virtually ubiquitous.

With that in mind, we have purposefully set out to make the core SDK libraries as generic and platform agnostic as possible, relegating any platform-specific code to the individual provider libraries.

While we have only tested the alpha versions of EOSIO SDK for Java on the Android platform and EOSIO SDK for Swift on iOS, when instantiated with the right platform-compatible providers, the core library should run with little additional effort. We welcome the community to contribute by testing the core libraries on other platforms and creating issues and pull requests that improve compatibility with those platforms.

Get Started and Get Involved

We have several resources for those interested in using these libraries and/or contributing.

Example Apps

To help developers get started using these new SDKs, we have created both iOS and Android example applications. These examples are simple demonstrations of how to integrate with EOSIO-based blockchains using the EOSIO SDKs. The applications do two things: they fetch your account token balance and push a transfer action.

Documentation

Stay Connected

If you are interested in providing feedback and working more closely with our team to improve the EOSIO for developers, you can send our developer relations team an email at developers@block.one.

You can also keep up to date with future updates by subscribing to our mailing list on the EOSIO Developer Portal. We are excited to be regularly improving the usability of the software for EOSIO developers as we continue to lay a foundation for the mass adoption of blockchain technology.

. . .

All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

Disclaimer: Block.one makes its contribution on a voluntary basis as a member of the EOSIO community and is not responsible for ensuring the overall performance of the software or any related applications. We make no representation, warranty, guarantee or undertaking in respect of the releases described here, the related GitHub release, the EOSIO software or any related documentation, whether expressed or implied, including but not limited to the warranties or merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or documentation or the use or other dealings in the software or documentation. Any test results or performance figures are indicative and will not reflect performance under all conditions. Any reference to any third party or third-party product, resource or service is not an endorsement or recommendation by Block.one. We are not responsible, and disclaim any and all responsibility and liability, for your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so the information here may be out of date or inaccurate. Any person using or offering this software in connection with providing software, goods or services to third parties shall advise such third parties of these license terms, disclaimers and exclusions of liability. Block.one, EOSIO, EOSIO Labs, EOS, the heptahedron and associated logos are trademarks of Block.one. All other trademarks referenced herein are the property of their respective owners.


EOSIO™ Software Release: Native SDKs for Swift and Java was originally published in eosio on Medium, where people are continuing the conversation by highlighting and responding to this story.

Comment 0

delete

Are you sure you want to delete this post?