All Projects → mspvirajpatel → SwiftyBase

mspvirajpatel / SwiftyBase

Licence: MIT license
SwiftyBase - A Swift library for Create Project in iOS ( Base Project)

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to SwiftyBase

Lgsidemenucontroller
iOS view controller which manages left and right side views
Stars: ✭ 1,856 (+5524.24%)
Mutual labels:  sidemenu, viewcontroller
Snowflakes
❄️ Snowflakes in JavaScript
Stars: ✭ 170 (+415.15%)
Mutual labels:  fullscreen
Example React Fullscreen
Example of the Fullscreen API with React using hooks
Stars: ✭ 22 (-33.33%)
Mutual labels:  fullscreen
Vue Fullpage.js
Official Vue.js wrapper for fullPage.js http://alvarotrigo.com/vue-fullpage/
Stars: ✭ 1,626 (+4827.27%)
Mutual labels:  fullscreen
Fullscreendialog
Android Material full screen dialog
Stars: ✭ 11 (-66.67%)
Mutual labels:  fullscreen
Postcss Viewport Height Correction
PostCSS plugin to solve the popular problem when 100vh doesn’t fit the mobile browser screen.
Stars: ✭ 137 (+315.15%)
Mutual labels:  fullscreen
React Fullpage
Official React.js wrapper for fullPage.js https://alvarotrigo.com/react-fullpage/
Stars: ✭ 707 (+2042.42%)
Mutual labels:  fullscreen
view-bigimg
a pure javascript library to view image and support touch, pinch and mousewheel
Stars: ✭ 18 (-45.45%)
Mutual labels:  imageviewer
Glsl Godrays
This module implements a volumetric light scattering effect(godrays)
Stars: ✭ 155 (+369.7%)
Mutual labels:  fullscreen
Zhpopupcontroller
Help you pop up custom views easily. and support pop-up animation, layout position, mask effect and gesture interaction etc.
Stars: ✭ 1,481 (+4387.88%)
Mutual labels:  fullscreen
Abmediaview
Media view which subclasses UIImageView, and can display & load images, videos, GIFs, and audio and from the web, and has functionality to minimize from fullscreen, as well as show GIF previews for videos.
Stars: ✭ 79 (+139.39%)
Mutual labels:  fullscreen
Fullpage.js
fullPage plugin by Alvaro Trigo. Create full screen pages fast and simple
Stars: ✭ 32,974 (+99821.21%)
Mutual labels:  fullscreen
Yjplay
一个支持自定义UI布局,流式API, 加密,直播 ,亮度,音量,快进等手势 ,广告视频预览,多种加载模式 ,多种分辨率切换 ,多种封面图, 自定义数据源,列表播放,倍数播放,边播变缓存<font color="red">不是使用AndroidVideoCache</font>,离线播放,神奇的播放器
Stars: ✭ 1,700 (+5051.52%)
Mutual labels:  fullscreen
Universalvideoview
A better Android VideoView with more Media Controller customization. 一个更好用的Android VideoView
Stars: ✭ 941 (+2751.52%)
Mutual labels:  fullscreen
jquery-jside-menu
jSide Menu is a well designed, simple and clean side navigation menu with dropdowns.
Stars: ✭ 23 (-30.3%)
Mutual labels:  sidemenu
Fsvs
Full Screen Vertical Scroll
Stars: ✭ 730 (+2112.12%)
Mutual labels:  fullscreen
Fullscreen
Fullscreen API Standard
Stars: ✭ 78 (+136.36%)
Mutual labels:  fullscreen
Angular Fullpage
Official Angular wrapper for fullPage.js https://alvarotrigo.com/angular-fullpage/
Stars: ✭ 131 (+296.97%)
Mutual labels:  fullscreen
DTContainerController
A Swift container view controller to handle transitioning to a different child view controller.
Stars: ✭ 20 (-39.39%)
Mutual labels:  viewcontroller
TipJarViewController
Easy, drop-in tip jar for iOS apps.
Stars: ✭ 79 (+139.39%)
Mutual labels:  viewcontroller

SwiftyBase

BuddyBuild Build Status Carthage compatible codecov Version License Platform Language: Swift 3

SwiftyBase makes it easy to deal with new Project create in Swift.

  1. Why use the SwiftyBase
  2. Requirements
  3. Integration
  4. Usage
  5. In Progress
  6. Author

Why use the SwiftyBase?

  • In software development we all know that we have to reuse code as per as requirement so we have to utilise our code with less effort I will show you one demo on that first make one viewcontroller of baseviewcontroller then make one view of base view initialize this view in controller we can use this view in another controller too ...that’s the main purpose of baseview In storyboard or in one view controller have its own view..We all know that if we have work in owns view, then it will not use for another controller so we can implement on baseview & use it another times with simple initialize.

In Base Project included:

  1. BaseViewController.swift
  2. BaseView.swift
  3. BaseNavigationController.swift
  4. SideMenu

Extensions :

  1. Data
  2. Date
  3. Dictionary
  4. NSArray
  5. NSDictionary
  6. UIColor
  7. UINavigationController
  8. UIScrollView
  9. UITableView
  10. UITextField
  11. UIViewController
  12. UIFont
  13. UIView
  14. String
  15. UIImage

Utilities:

  1. AppBaseLayout
  2. AppConstants
  3. AppUtility
  4. AppInterFaceUtility
  5. AppLocationManager
  6. AppTimer
  7. AppAlert
  8. AppPreferencesExplorer
  9. AppPlistManger
  10. AppImageUploadManager
  11. AppEventBus

Controls:

  1. BaseImageView - with set Url image with catch support & Clear Catch
  2. BaseButton - Multiple Button with single class access
  3. Full screen Image Viewer (ImageViewer)
  4. BaseRoundMenu
  5. BaseProgressHUD - Like MBProgressView
  6. BaseLabel - Multiple BaseLabel with single class access
  7. BaseTextField - Multiple Textfield with single class access
  8. BaseScrollView
  9. BaseSegment
  10. BasePopOverMenu
  11. BaseNotificationBadge

Requirements

  • iOS 9.0+
  • Xcode 8

Integration

CocoaPods (iOS 9)

You can use CocoaPods to install SwiftyBaseby adding it to your Podfile:

platform :ios, '9.0'
use_frameworks!

target 'MyApp' do
    pod 'SwiftyBase'
end

Note that this requires CocoaPods version 36, and your iOS deployment target to be at least 9.0:

Carthage (iOS 9+)

You can use Carthage to install SwiftyBase by adding it to your Cartfile:

github "mspvirajpatel/SwiftyBase"

Manually (iOS 9+)

To use this library in your project manually you may:

  1. Just drag ‘SwiftyBase/’ to the project tree

Usage

Initialization

import SwiftyBase

BaseViewController

//If Create ViewContoller using BaseViewController

class ListController: BaseViewController {

    // MARK: - Attributes -
    
    // MARK: - Lifecycle -
    
    init() {

    }

}

BaseView

//If Create ListView using BaseView

class ListView: BaseView{
    
    // MARK: - Attributes -
    
    // MARK: - Lifecycle -
    
    override init(frame: CGRect) {
        super.init(frame:frame) 
        
    }
}

BaseNavigationController

//using BaseNavigationController
let listview : ListController = ListController()
        
let baseNavigation : BaseNavigationController = BaseNavigationController(rootViewController: listview)

BaseImageView

//using BaseImageView for set Image Local or Remote URL

let imgView : BaseImageView = BaseImageView(type: .profile, superView: self)
imgView.layer.setValue("imgView", forKey: ControlConstant.name)

//Set Remote URL for Download and set in Image View
imgView.setImageURL("Enter Your URL")
        
//For Full Screen Image Show on tap on Image
imgView.setupForImageViewer()

BaseButton

//using BaseButton for set Button with case primary, secondary, radio, rounded Close, close, checkbox, dropdown, transparent 
 
let btnPrimary : BaseButton = BaseButton.init(ibuttonType: .primary, iSuperView: self)
btnPrimary.layer.setValue("btnPrimary", forKey: ControlConstant.name)
btnPrimary.setTitle("Primary Button", for: UIControlState())
        
let btnSecondary : BaseButton = BaseButton.init(ibuttonType: .secondary, iSuperView: self)
btnSecondary.layer.setValue("btnSecondary", forKey: ControlConstant.name)
btnSecondary.setTitle("Secondary Button", for: UIControlState())

BaseProgressHUD

//Just the loader

BaseProgressHUD.shared.showInView(view: view)
// Add title and footer text
BaseProgressHUD.shared.showInView(view: view, withHeader: "Loading", andFooter: "Please wait...")
// Set color to the header, footer, loader or to the background view

BaseProgressHUD.setHeaderColor(color: UIColor.blue)
BaseProgressHUD.setFooterColor(color: UIColor.blue)
BaseProgressHUD.setLoaderColor(color: UIColor.blue)
BaseProgressHUD.setBackgroundColor(color: UIColor.white)
// Customize: Set color the the background view and let header, footer and loader infer a contrast color
BaseProgressHUD.setBackgroundColor(color: UIColor.white, automaticTextColor: true)
// Or show in a window
BaseProgressHUD.shared.showInWindow(window: window, withHeader: "Loading", andFooter: "Please wait...")
// Hide the HUD
BaseProgressHUD.shared.hide()
// Check if HUD is already being displayed
if BaseProgressHUD.shared.isActive {
    print("Currently showing HUD")
} else {
    print("HUD is currently hidden")
}

BaseRoundMenu

//using BaseRoundMenu for set Button with case center,topLeft,topRight,bottomLeft,bottomRight

let btncenter = BaseRoundMenu(withPosition: .center, size: 50.0, numberOfPetals: 10, images:[])
let btntopLeft = BaseRoundMenu(withPosition: .topLeft, size: 50.0, numberOfPetals: 4, images:[])
let btntopRight = BaseRoundMenu(withPosition: .topRight, size: 50.0, numberOfPetals: 4, images:[])
let btnbottomLeft = BaseRoundMenu(withPosition: .bottomLeft, size: 50.0, numberOfPetals: 4, images:[])
let btnbottomRight = BaseRoundMenu(withPosition: .bottomRight, size: 50.0, numberOfPetals: 4, images:[])

self.view.addSubview(btncenter)
self.view.addSubview(btntopLeft)
self.view.addSubview(btntopRight)
self.view.addSubview(btnbottomLeft)
self.view.addSubview(btnbottomRight)

btncenter = { (indexSelected) in
    debugPrint("Selected Index: \(indexSelected)")
}

BaseLabel

//using BaseLabel for set diffrent types of Buttons

let lblUserName : BaseLabel = BaseLabel(labelType: .small, superView: self)

let lblUserRealName = BaseLabel(labelType: .large, superView: self)

BaseTextField

//using BaseTextField for set diffrent types of BaseTextField like Password, Email

let baseTextField : BaseTextField = BaseTextField.init(iSuperView: self, TextFieldType: .primary)

let baseTextField : BaseTextField = BaseTextField.init(iSuperView: self, TextFieldType: .showPassword)

let baseTextField : BaseTextField = BaseTextField.init(iSuperView: self, TextFieldType: .withoutClear)

let baseTextField : BaseTextField = BaseTextField.init(iSuperView: self, TextFieldType: .noAutoScroll)

SideMenu

//using SideMenu for set Application Menu SideMenu
//SideMenu is a simple and versatile side menu control

let menuLeftNavigationController = UISideMenuNavigationController(rootViewController: YourViewController)
menuLeftNavigationController.leftSide = true
// UISideMenuNavigationController is a subclass of UINavigationController, so do any additional configuration 
// of it here like setting its viewControllers. If you're using storyboards, you'll want to do something like:
// let menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "LeftMenuNavigationController") as! UISideMenuNavigationController
SideMenuManager.menuLeftNavigationController = menuLeftNavigationController

let menuRightNavigationController = UISideMenuNavigationController(rootViewController: YourViewController)
// UISideMenuNavigationController is a subclass of UINavigationController, so do any additional configuration
// of it here like setting its viewControllers. If you're using storyboards, you'll want to do something like:
// let menuRightNavigationController = storyboard!.instantiateViewController(withIdentifier: "RightMenuNavigationController") as! UISideMenuNavigationController
SideMenuManager.menuRightNavigationController = menuRightNavigationController

// Enable gestures. The left and/or right menus must be set up above for these to work.
// Note that these continue to work on the Navigation Controller independent of the view controller it displays!
SideMenuManager.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
SideMenuManager.menuAddScreenEdgePanGesturesToPresent(toView: self.navigationController!.view)


// For Custom Open with Button Click
present(SideMenuManager.menuLeftNavigationController!, animated: true, completion: nil)

// Similarly, to dismiss a menu programmatically, you would do this:
dismiss(animated: true, completion: nil)

AppImageUploadManager

//using AppImageUploadManager for Multiple Image Upload and track with number of remain with Progress

//Add Upload in Multiple Images 

var arrImage : [UIImage]? = [Add Your Images]

let isUploadAdded : Bool = AppImageUploadManager.sharedInstance.addImageForUpload(arrImage: arrImage!)
if isUploadAdded
{
    print("new Image Added")
}


//Progress Getting

AppImageUploadManager.sharedInstance.setUpdateProgressStatusEven { (wasSuccessfull, object) in
    // object is Kind of "object as! NSArray"

    self.updateImageProgress(arrCount: object as! NSArray)
}

open func updateImageProgress(arrCount : NSArray) -> Void
{
    print("Uploading (\(arrCount[0])\\\(arrCount[1]))")

    let uploadedImg : Float = Float(arrCount[0] as! Int)
    let totalImg : Float = Float(arrCount[1] as! Int)

    print("Completed : \(arrCount.firstObject)" , "Total : \(arrCount[1])")
    print("Progress : \(uploadedImg / totalImg)")

    if arrCount[0] as! Int == arrCount[1] as! Int
    {
        print("Upload is completed...")
    }
}

AppPlistManger

//using AppPlistManger for Management of Plist file store & read Data

//For Read Plist File (Link :- "Menu")
for menuData in AppPlistManager().readFromPlist("Your Plist File Name without .plist Extension") as! NSMutableArray
{
    let dicMenu : NSMutableDictionary = menuData as! NSMutableDictionary
    var arrItem : [NSDictionary] = []
    ...
}

AppPreferencesExplorer

//using AppPreferencesExplorer open Settings Page in IPhone or IPad

do{
    try AppPreferencesExplorer.open(.locationServices)
}
catch let error{
    print(error.localizedDescription)
}

AppEventBus

//AppEventBus using Notification Handling with hole Application 

//implement event handling methods

AppEventBus.onMainThread(target, name: "someEventName") { result in
    // UI thread
}

// or

AppEventBus.onBackgroundThread(target, name:"someEventName") { result in
    // API Access
}

//Post events

AppEventBus.post("someEventName")

//Post events with Parameters

AppEventBus.post("someEventName", sender: "VIRAJ")

// Expecting parameters

AppEventBus.onMainThread(target, name:"personFetchEvent") { result in
    let person : Stirng = result.object as Stirng
    println(person) // will output "VIRAJ"
}

//Remove all the observers from the target

AppEventBus.unregister(target)

//Remove observers of the same name from the target

AppEventBus.unregister(target, "someEventName")

BaseScrollView

//using BaseScrollView ( ScrollTypes : both , horizontal, vertical )

let scrollView = BaseScrollView.init(scrollType: .both, superView: self)

BaseSegment

//using BaseSegment 

let baseSegment = BaseSegment.init(titleArray: ["Sign In", "Sign Up", "Forgot"], iSuperView: containerView)
baseSegment.setSegmentTabbedEvent { (selectedIndex) in
    print("SelectedIndex Segment:\(selectedIndex)")
}

BasePopOverMenu

//using BasePopOverMenu set Globle Variable For Custom

let configuration = AppConfiguration.shared
configuration.menuRowHeight = ...
configuration.menuWidth = ...
configuration.textColor = ...
configuration.textFont = ...
configuration.tintColor = ...
configuration.borderColor = ...
configuration.borderWidth = ...
configuration.textAlignment = ...
configuration.ignoreImageOriginalColor = ...;
//// set 'ignoreImageOriginalColor' to YES, images color will be same as textColor

//From SenderView, Menu Without Images.
//
BasePopOverMenu.showForSender(sender: sender,with: ["Share"],
    done: { (selectedIndex) -> () in
        print(selectedIndex)
    }) {
}

//From SenderView, Menu With Images.
//
BasePopOverMenu.showForSender(sender: sender,with: ["Share"],menuImageArray: ["iconImageName"],
    done: { (selectedIndex) -> () in

        print(selectedIndex)
    }) {
   
}

//From SenderFrame/NavigationItem, Menu Without Images.
//
BasePopOverMenu.showFromSenderFrame(senderFrame: sender.frame,with: ["Share"],
    done: { (selectedIndex) -> () in

    }) {

}

//From SenderFrame/NavigationItem, Menu With Images.
//
BasePopOverMenu.showFromSenderFrame(senderFrame: sender.frame,with: ["Share"],menuImageArray: ["iconImageName"],
    done: { (selectedIndex) -> () in

    }) {
    
}

BaseNotificationBadge

//using BasePopOverMenu 

//To add a badge with default settings use this (This also applies to updating an existing badge):

view.badge(text: "5")

barButtonItem.badge(text: "7")


//To remove the badge:

view.badge(text: nil)

barButtonItem.badge(text: nil)


//Advanced Usage

let badgeAppearnce = AppBadgeAppearnce()
appearnce.backgroundColor = UIColor.blue //default is red
appearnce.textColor = UIColor.white // default is white
appearnce.alignment = .center //default is center
appearnce.textSize = 15 //default is 12
appearnce.distenceFromCenterX = 15 //default is 0
appearnce.distenceFromCenterY = -10 //default is 0
appearnce.allowShadow = true
appearnce.borderColor = .blue
appearnce.borderWidth = 1
view.badge(text: "Your text", appearnce: badgeAppearnce)

AppLocationManager

//using AppLocationManager 

AppLocationManager.shared.locate { result in
    switch result {
        case .success(let locator):
            ...
            break
        case .failure( _):
            ...
            break
    }
}

In Progress

  • Description after some time added.(In Progress)

Author

Viraj Patel, [email protected]

License

SwiftyBase is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].