# Mobile app development

**URL:** <https://gov.near.org/t/mobile-app-development/9241>\
**Category:** Product & Design\
**Tags:** mobile\
**Created:** [November 11, 2021, 11:09pm UTC](https://gov.near.org/t/mobile-app-development/9241 "2021-11-11T23:09:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mikedotexe](https://dub1.discourse-cdn.com/flex005/user_avatar/gov.near.org/mikedotexe/32/18_2.png) [@mikedotexe](https://gov.near.org/u/mikedotexe)\
**Post date:** [November 11, 2021, 11:09pm UTC](https://gov.near.org/t/mobile-app-development/9241/1 "2021-11-11T23:09:22Z")

</div>

We’ve been getting good questions about how to proceed with implementations of a mobile wallet.

At the moment, let’s focus on the Android and iOS development which will be Java/Kotlin and Swift, what are the needs here.

On the Swift side, there has been some work done in this repository, which is no longer actively maintained:

> **[GitHub - near/near-api-swift: Interact with NEAR blockchain from iOS and OS X...](https://github.com/near/near-api-swift)**
>
> Interact with NEAR blockchain from iOS and OS X apps using Swift

The above repo seems to have implemented the ed25519 curve but not secp256k1. Perhaps these are useful libraries to peruse:

- [GitHub - Boilertalk/secp256k1.swift: secp256k1 bindings for swift. Cocoapods, Carthage and SPM support. Linux support.](https://github.com/Boilertalk/secp256k1.swift)
- [GitHub - bitwiseio/sawtooth-sdk-swift](https://github.com/bitwiseio/sawtooth-sdk-swift)

For Java/Kotlin, I have another list here. Some, like one of the Swift links above, use C bindings, so the implementor must be familiar with that process.

- [GitHub - carterharrison/ecdsa-kotlin: A simple, lightweight, fast elliptical curve cryptography library in kotlin.](https://github.com/carterharrison/ecdsa-kotlin)
- [GitHub - joshjdevl/libsodium-jni: (Android) Networking and Cryptography Library (NaCL) JNI binding. JNI is utilized for fastest access to native code. Accessible either in Android or Java application. Uses SWIG to generate Java JNI bindings. SWIG definitions are extensible to other languages.](https://github.com/joshjdevl/libsodium-jni)
- [GitHub - str4d/ed25519-java: Pure Java implementation of EdDSA](https://github.com/str4d/ed25519-java)
- [GitHub - InstantWebP2P/tweetnacl-java: TweetNaCl in Java - a port of TweetNaCl-js](https://github.com/InstantWebP2P/tweetnacl-java)
- [Bindings for other languages | Libsodium documentation](https://libsodium.gitbook.io/doc/bindings_for_other_languages)

For the links from GitHub it’s useful to search for `ed25519` and `secp256k1` to see if they’re mentioned and if you might need to use two libraries to get both.

There’s an article written in the NEAR docs about creating a transaction “from scratch” that is meant for exchanges and similar folks who need to construct transactions. This is one of those useful cases, and this link will be helpful:

> **[Create Transactions | NEAR Documentation](https://docs.near.org/integrations/create-transactions)**
>
> To construct & process transactions you will need our API JavaScript library: near-api-js. There are many ways to create transactions but for this example we'll show you two ways to create a simple token transfer transaction.

Note that in the above page in documentation, we use `near-api-js` but tried to avoid using the magic of the functions in order to have the user walk through the process without the helpers.

After a transaction has been successfully signed, we’ll use the RPC API to send them to the blockchain, as covered here:

> **[RPC Endpoints | NEAR Documentation](https://docs.near.org/api/rpc/transactions)**
>
> The RPC API enables you to send transactions and query their status.

I’d like to open this thread for other folks to chime in on mobile development and how we might leverage libraries or SDKs.
