Steemit-IDCard | An iOS app made for Steemit Users to create their virtual Steemit Identity Cards

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@iamankit·
0.000 HBD
Steemit-IDCard | An iOS app made for Steemit Users to create their virtual Steemit Identity Cards
#### What is the project about?
![alt text](https://media.giphy.com/media/ygAEw5MpnXYNDNNldn/giphy.gif)

Steemit-IDCard is an open source revolutionary iOS app made for Steemit Users. This app will creates you your own Steemit Identity Card from your Steemit account details. This is an unique and revolutionary app for Steemit platform. Currently, in this app users can creates their identity cards by providing their Steemit usernames. App automatically fetch data of specific user on base Steemit username and creates a beautiful Identity Card. The details users get on their Identity Card are following :-
- Their Steemit ID
- Their Name
- Their Steemit username
- Their Steemit profile picture
- creation date of account on steemit
- A barcode which takes users direct to steemit profile, when they scan it with barcode scanners.

#### Why this is helpful?
Well, your Steemit Id Card can't help you get special discount in bars and caffe unless they are sponsored by Steemit. But you can share it with friends, you can use it as a brand recognisation, you can also make your friends jealous by showing them that your a valuable member of Steemit because you have Steemit Id Card. If you are use Steemit to provide services like classes, motivation speech, tech tutorials and other type of services, then you can use share your identity card with other peoples and get chance of building brand recognition. Users can use their identity card in Steemit meetups by sharing with other users.

#### Technology Stack
- Xcode
- Swift Programming Language
- Steemit api
- Cocoa Pods

#### How the app works
- The app fetch user data by making a URL request of Steemit api through this function :-

``` language
func getUserData(userName: String) {
        showLoadingIndicator()
        let url = URL(string: "https://steemit.com/@" + userName + ".json")!
        URLSession.shared.dataTask(with: url, completionHandler: {
            (data, response, error) in
            if(error != nil){
                print("error")
            }else{
                do{
                    var json = try JSONSerialization.jsonObject(with: data!, options: []) as! [String: AnyObject]
                    if let userDetailData = json["user"]!["json_metadata"] as? [String: AnyObject] {
                        DispatchQueue.main.async {
                            self.finalUserData = userDetailData["profile"] as? [String: AnyObject]
                        }
                    }
                    DispatchQueue.main.async {
                       self.userName = json["user"]!["name"] as? String
                        self.joinDate = json["user"]!["created"] as? String
                        self.id = json["user"]!["id"] as? Int
                        self.sendToDetailVC()
                    }
                }catch let error as NSError{
                    print(error)
                }
            }
        }).resume()
    }
```
- After getting the user data, the app stores it and use the data to make user Steemit identity card by this code
``` language
self.userNameLabel.text = self.userName
        self.idLabel.text = "\(self.id!)"
        if let name = self.finalUserData!["name"] as? String {
            self.nameLabel.text = name
        }
        else {
            self.nameLabel.text = "My username is enough"
        }
        if let userImageUrl = self.finalUserData!["profile_image"] as? String {
            self.profileImage.sd_setImage(with: URL(string: userImageUrl), completed: nil)
            self.profileImage.sd_setImage(with: URL(string: userImageUrl), placeholderImage: UIImage(named: "defaultImage.png"))
        }
        else {
            self.profileImage.image = #imageLiteral(resourceName: "defaultImage")
        }
        let formattedDate = self.joinDate!.dropLast(9)
        self.joinedLabel.text = String(formattedDate)
```
- If you want to see the others functions of app too, then clone the repository to your system and open xcworkspace file in Xcode.

#### Roadmap
- Make app live on app store
- Create android version of app
- More identity card designs so that users can keep experimenting with their identity cards.
- Option to share identity card on social platforms
- Option to share identity cards with friends with messaging apps.
- Option to download identity card on device.
- Make copy of virtual card on device so that users can convert it to physical identity card by printing.
- More information like reputation, followers and other on the back side of identity card.
- Steemconnect Login for users, so that users don't need to enter their usernames every time.
- Users can see which design of identity card is popular, so that they never feel out of trend.
- Add other platforms like dlive, dtube identity cards also.
- Add card designs for utopian moderators, supervisors.
- And much more!

#### How to run app
The app is currently not available on app store but still you can install it on your iPhone. For this you need to have following things :-

- Mac

- Xcode

- Apple developer account

- If you had all of this, then download the repository to your system, open xcworkspace file in Xcode.

- Now go to project directory from your terminal and run pod install to install all the dependencies for app.

- That's it now connect your device to system, go to Xcode and build the app on your device and enjoy the app.

#### How to contribute?
You can contribute to the project development if you had knowledge in iOS Development by forking repository and making pull request after adding new feature. If you don't have any knowledge in iOS Development, still you can contribute in following fields :-

- Search for bugs in app, currently i don't think there are any bugs. But after new releases you can test the app for bugs.
- Provide suggestion for new feature in app.
- Suggest designs for the app and logo.
    

<br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@iamankit/steemit-idcard-or-an-ios-app-made-for-steemit-users-to-create-their-virtual-steemit-identity-cards">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,