4.7 KiB
4.7 KiB
LeadKit
LeadKit is the iOS framework with a bunch of tools for rapid app development.
This repository contains the following frameworks:
- TISwiftUtils - a bunch of useful helpers for Swift development.
- TIFoundationUtils - set of helpers for Foundation framework classes.
- TIUIKitCore - core ui elements and protocols from LeadKit.
- TISwiftUICore Core UI elements: protocols, views and helpers.
- TIUIElements - bunch of of useful protocols and views.
- OTPSwiftView - a fully customizable OTP view.
- TITableKitUtils - set of helpers for TableKit classes.
- TIKeychainUtils - set of helpers for Keychain classes.
- TIPagination - realisation of paginating items from a data source.
- TINetworking - Swagger-frendly networking layer helpers.
- TIMoyaNetworking - Moya + Swagger network service.
- TIAppleMapUtils - set of helpers for map objects clustering and interacting using Apple MapKit.
- TIGoogleMapUtils - set of helpers for map objects clustering and interacting using Google Maps SDK.
- TIYandexMapUtils - set of helpers for map objects clustering and interacting using Yandex Maps SDK.
- TIAuth - login, registration, confirmation and other related actions
Playgrounds
Create new Playground
$ cd TIModuleName
$ touch PlaygroundPodfile
$ echo "ENV[\"DEVELOPMENT_INSTALL\"] = \"true\"
target 'TIModuleName' do
platform :ios, IOS_VERSION_NUMBER
use_frameworks!
pod 'TIDependencyModuleName', :path => '../../../../TIDependencyModuleName/TIDependencyModuleName.podspec'
pod 'TIModuleName', :path => '../../../../TIModuleName/TIModuleName.podspec'
end" > PlaygroundPodfile
$ nef playground --name TIModuleName --cocoapods --custom-podfile PlaygroundPodfile
See example of PlaygroundPodfile in TIFoundationUtils
Rename/add pages to Playground
For every new feature in module create new Playground page with documentation in comments. See nef markdown documentation.
Create symlink to nef playground
$ cd TIModuleName
$ ln -s TIModuleName.app/Contents/MacOS/TIModuleName.playground TIModuleName.playground
Add nef files to TIModuleName.app/.gitignore
# gitignore nef files
**/build/
**/nef/
LICENSE
Exclude .app bundles from package sources
SPM
.target(name: "TIModuleName", dependencies: ..., path: ..., exclude: ["TIModuleName.app"]),
Podspec
sources = 'your_sources_expression'
if ENV["DEVELOPMENT_INSTALL"] # installing using :path =>
s.source_files = sources
s.exclude_files = s.name + '.app'
else
s.source_files = s.name + '/' + sources
s.exclude_files = s.name + '/*.app'
end
Docs:
- TIFoundationUtils
- TICoreGraphicsUtils
- TIKeychainUtils
- TIUIElements
- TITextProcessing
- TIDeeplink
- TIBottomSheet
- Semantic Commit Messages - commit message codestyle.
- Snippets - useful commands and scripts for development.
Contributing
- Run following script in framework's folder:
./setup
-
If legacy Source folder needed, build dependencies for LeadKit.xcodeproj.
-
Make sure the commit message codestyle is followed. More about Semantic Commit Messages.
Installation
SPM
dependencies: [
.package(url: "https://git.svc.touchin.ru/TouchInstinct/LeadKit.git", from: "x.y.z"),
],
Cocoapods
source 'https://git.svc.touchin.ru/TouchInstinct/Podspecs.git'
pod 'TISwiftUtils', 'x.y.z'
pod 'TIFoundationUtils', 'x.y.z'
# ...
Legacy
Code located in root Sources folder and LeadKit.podspec should be treated as legacy and shouldn't be used in newly created projects. Please use TI* modules via SPM or CocoaPods.