Skip to content

juansanzone/uicardtest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Screenshot iOS

CocoaPods CocoaPods downloads

๐Ÿ“ฒ How to Install

Using CocoaPods

Edit your Podfile and specify the dependency:

pod 'MeliCardDrawer'

๐ŸŒŸ Features

  • Easy to integrate
  • Card number, name, expiration date and CVV support (CardData protocol)
  • Card left and right image customization (CardUI protocol)
  • CVV support at front & back view
  • Card flip animation integrated
  • Live card view updated while CardData protocol is edited
  • PCI compliance (We do not save anything)

๐Ÿ’ How to use

1 - Import into project

import MeliCardDrawer

2 - Define CardHeaderController reference & your own container view.

// You can create your containerView by code or by storyboard/xib (as you like)
private var containerView: UIView = UIView()
private var cardDrawer: CardHeaderController?

3 - Init cardDrawer sending CardUI and CardData protocol as parameters.

cardDrawer = CardHeaderController(cardUIHandler, cardDataHandler)

4 - Call to setup and show method.

cardDrawer?.setup(inView: containerView).show()

๐Ÿ’ก Advanced features

Show security code

You can highlight the security code location. If the security code is behind, the card will transition with flip animation.

cardDrawer?.showSecurityCode()

Show front card view

cardDrawer?.show()

๐Ÿ’ณ Card data structure and style customization

You can customize the data structure and style of your card.

๐Ÿ”  CardData protocol

Using CardData protocol to update the card display values.

@objc public protocol CardData {
    var name: String { get set }
    var number: String { get set }
    var expiration: String { get set }
    var securityCode: String { get set }
    @objc optional var lastDigits: String { get set}
}

๐ŸŽจ CardUI protocol

Using CardUI protocol to customize: position of security code, card background, font color, place holders, etc.

@objc public protocol CardUI {
    var cardPattern: [Int] { get }
    var placeholderName: String { get }
    var placeholderExpiration: String { get }
    var cardFontColor: UIColor { get }
    var cardBackgroundColor: UIColor { get }
    var securityCodeLocation: Location { get }
    var defaultUI: Bool { get }
    var securityCodePattern: Int { get }

    @objc optional func set(bank: UIImageView)
    @objc optional func set(logo: UIImageView)
    @objc optional var fontType: String { get }
    @objc optional var bankImage: UIImage? { get }
    @objc optional var cardLogoImage: UIImage? { get }
}

๐Ÿ•ต๏ธโ€โ™‚๏ธ Test cases

TestCases

๐Ÿ“‹ Supported OS & SDK Versions

  • iOS 9.0+
  • Swift 4.2
  • xCode 9.2+
  • @Objc full compatibility

๐Ÿ”ฎ Project Example

This project include an example project using MeliCardDrawer and another target with xCTests test cases.

โค๏ธ Feedback

This is an open source project, so feel free to contribute. How? -> Fork this project and propose your own fixes, suggestions and open a pull request with the changes.

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Author

Mercado Libre - Mercado Pago

๐Ÿ‘ฎ๐Ÿป License

Copyright 2019 Mercadolibre Developers

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors