kk-vv / THTemplates

Use Soucery to build templates code . e.g. Auto build Router/ Moya API Parameters ...

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

THNavigator

Use Sourcery and URLNavigator to generate inner router to navigator viewcontrollers

  • likes: myApp://xxx.com/user_info?user_name=xxx&tel=123456789

Routable

  • Annotation UIViewController and parameter
/// sourcery: router="singleParam", name = "Single Param Test Page"
class SingleParamViewController: Routable {

    /// sourcery: parameter
    var navTitle: String?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = navTitle
    }

}

  • Load
Call THNavigator.shared.load()  after finish launching
  • after build, we can use THNavigator.navigator to show page
THNavigator.navigator.push(.singleParam(navTitle: "Single param test"))

  • Router string is SnakeCase style
At this example, you can type 

oneclass://oneclass.com/single_param?nav_title=AAA 

in Safari APP to wake up this page

Safari
TIPS
  • Your can add annotation code to code snippets
Auto Output
  • then ,you can use your own shortcuts like this
MINE
Annotation multi parameters
/// sourcery:begin: parameter
var codableModel: CodableModel?
var handyjsonModel: HandyJSONModel?
var mapperModel: ObjectMapperModel?
/// sourcery:end

AutoBuildParameters

Build parameters for Moya API

enum LoginAPI: AutoBuildParameters {
    case login(userName: String, password: String?)
    case logout
    
    var moyaParameters: [String: Any] {
        return parameters
    }
}
  • after build
Auto Output

AutoEquatable

struct EquatableModel: Codable, AutoEquatable {
    var uuid: String
    var name: String
    var tel: String
    var sex: UInt?
    var address: String?
}
  • after build
Auto Output

About config

config
  • config file under the projects folder, is a hidden file
config

MORE

  • You can write your own templates use Stencil

About

Use Soucery to build templates code . e.g. Auto build Router/ Moya API Parameters ...


Languages

Language:Swift 99.3%Language:Ruby 0.7%