Offices: Gurgaon, Jaipur, Indore, London, Dubai, Sweden
The Storybook Approach
Two integration approaches were considered: using a third-party library for Web3 wallet and smart contract checks, which was discarded due to concerns about SDK size and dependencies; and implementing a Backend API with RPC URLs, creating a frontend function for chat room access checks, as part of a development process that involved knowledge transfer, API development, testing, and documentation updates, with development technologies including Swift, UIKit, Promise Kit, XCTest, PubNub, and SwiftLint.
The case study delves into the development and implementation of token gating for chat rooms within the platform’s iOS SDK. The project showcases FiftyFive Technologies expertise in iOS development and their capacity to offer innovative solutions to their clients’ challenges.
The client has an audience engagement platform that provides tools to enable audience interaction. To enhance user engagement, The client wanted to implement token gating in chat rooms, a novel concept in Web3. The challenge was to allow chat room creators to add token gates and verify if users had the required tokens in their Web3 wallets. Token gating is a method to control access to content or features, requiring users to possess a specific number of tokens in their Web3 wallet. The client wanted this system to work seamlessly with various blockchain networks, including Chiliz, Hedera, Socio, and Polygon.
Two approaches were considered for integrating token gating into the SDKs: The first option involved the integration of a third-party library, such as web3.swift in iOS, to inspect the user’s Web3 wallet content and smart contract criteria for chat room access. However, this approach was dismissed due to concerns about increased SDK size and third-party library dependencies. Instead, the chosen solution centered around a Backend API that utilized RPC URLs for blockchain networks. This approach introduced a frontend function, which communicated with the backend API to ascertain a user’s eligibility to enter a chatroom and provided comprehensive information regarding token gating criteria.
All Web3-related operations were managed by the backend. The development process encompassed requirements gathering, Web3 research, knowledge transfer, project management using Jira and Bitbucket, API development for token-gated chat rooms, standardization of the get TokenGatedChatRoomAccessDetails function, modification of the createChatRoom method to accommodate token gates, creation of getSmartContracts for contract address retrieval, comprehensive testing, and documentation updates. The development technologies employed included Swift as the primary language, UIKit and Storyboards for the user interface, asynchronous programming with Promise Kit, XCTest for unit and integration testing, the PubNub package for chatroom messaging, and SwiftLint for maintaining code quality.
The adoption of the second approach, which focused on avoiding increased SDK size and third-party library dependencies, enabled the client to successfully implement token gating in their SDKs. This involved the implementation of the getTokenGatedChatRoomAccessDetails function, which communicated with the backend responsible for Web3 operations and provided detailed responses. Rigorous testing, including unit and integration tests using XCTest, coupled with PR reviews and adherence to high coding standards, ensured the reliability and security of the SDK.
As a result, the project met its goals within the specified timeframe, receiving positive feedback from the client. Through this experience, lessons were learned in improving communication between the client and the App team, streamlining PR review processes, and gaining knowledge of Promise Kit and async programming, as well as insights into Web3 wallets, smart contracts, blockchain networks, NFTs, and attributes.
Planning to outsource software development services?
Contact sales, to start a project, now.