Skip to content

Instantly share code, notes, and snippets.

View pffan91's full-sized avatar
🌍
Developing the Future

Vladyslav Semenchenko pffan91

🌍
Developing the Future
View GitHub Profile
@pffan91
pffan91 / SlideAnimationTabBarController.swift
Created April 11, 2022 14:03 — forked from illescasDaniel/SlideAnimationTabBarController.swift
[Updated to Swift 4] - UITabBarController slide animation. Slide left and right when tabs are selected. Based on code from StackOverflow
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if let fromView = tabBarController.selectedViewController?.view,
let toView = viewController.view, fromView != toView,
let controllerIndex = self.viewControllers?.firstIndex(of: viewController) {
let viewSize = fromView.frame
let scrollRight = controllerIndex > tabBarController.selectedIndex
if fromView.superview?.subviews.contains(toView) == true { return false }
@pffan91
pffan91 / NetworkLayerWithMoya_fullExample.swift
Last active February 7, 2019 12:46
NetworkLayerWithMoya_fullExample
#1 Moya Target
import Foundation
import Moya
enum MyAPI {
// MARK: - User
case createUser(model: User)
case changePassword(currentPassword: String, newPassword: String)
@pffan91
pffan91 / NetworkLayerWithMoya_parsingDataFromServer.swift
Created May 15, 2017 18:05
NetworkLayerWithMoya_parsingDataFromServer
// Created by Vladyslav Semenchenko on 15/05/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
NetworkAdapter.request(target: .cameras, success: { (response) in
// parse your data
do {
let cameras: [Camera] = try response.mapArray() as [Camera]
// do something with cameras
} catch {
@pffan91
pffan91 / NetworkLayerWithMoya_customObject.swift
Created May 15, 2017 18:01
NetworkLayerWithMoya_customObject
// Created by Vladyslav Semenchenko on 15/05/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
import Mapper
// 1:
class Camera: Mappable {
var cameraId: Int?
var title: String?
var isAvailable: Bool?
@pffan91
pffan91 / NetworkLayerWithMoya_sendRequestViaAdapter.swift
Last active May 15, 2017 17:54
NetworkLayerWithMoya_sendRequestViaAdapter
// Created by Vladyslav Semenchenko on 15/05/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
NetworkAdapter.request(target: .cameras, success: { (response) in
// parse your data
}, error: { (error) in
// show error from server
}, failure: { (error) in
// show Moya error
})
@pffan91
pffan91 / NetworkLayerWithMoya_networkAdapter.swift
Last active February 16, 2018 18:31
NetworkLayerWithMoya_networkAdapter
// Created by Vladyslav Semenchenko on 15/05/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
import Moya
struct NetworkAdapter {
static let provider = MoyaProvider<MyServerAPI>()
static func request(target: MyServerAPI, success successCallback: @escaping (Response) -> Void, error errorCallback: @escaping (Swift.Error) -> Void, failure failureCallback: @escaping (MoyaError) -> Void) {
@pffan91
pffan91 / NetworkLayerWithMoya_sendRequest.swift
Last active November 29, 2017 09:46
NetworkLayerWithMoya_sendRequest
// Created by Vladyslav Semenchenko on 15/05/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
let provider = MoyaProvider<MyServerAPI>()
provider.request(.cameras) { (result) in
switch result {
case .success(let response):
// do something with resoinse
case .failure(let error):
// show error
@pffan91
pffan91 / NetworkLayerWithMoya.swift
Created May 15, 2017 11:22
NetworkLayerWithMoya
// Created by Vladyslav Semenchenko on 15/05/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
import Foundation
import Moya
// 1:
enum MyServerAPI {
// MARK: - Cameras
@pffan91
pffan91 / DecomposingViewControllerAnimations_FinalViewControllerClass.swift
Created April 9, 2017 17:59
DecomposingViewControllerAnimations_FinalViewControllerClass
// Created by Vladyslav Semenchenko on 09/04/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
import UIKit
class InitialViewController: EZViewController {
// MARK: - Variables
@IBOutlet var sceneAnimations: InitialViewControllerAnimations!
@pffan91
pffan91 / DecomposingViewControllerAnimations_FinalAnimationClass.swift
Created April 9, 2017 17:56
DecomposingViewControllerAnimations_FinalAnimationClass
// Created by Vladyslav Semenchenko on 09/04/2017.
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved.
import UIKit
class InitialViewControllerAnimations: NSObject {
@IBOutlet weak var controlsContainer: UIView!
@IBOutlet weak var ivLogoHorizontalConstraint: NSLayoutConstraint!