AppDevKit is an iOS development library that provides developers with useful features to fulfill their everyday iOS app development needs.

Overview

AppDevKit

Build Status codecov CocoaPods

AppDevKit is an iOS development library that provides developers with useful features to fulfill their everyday iOS app development needs.

Yahoo’s Taiwan based iOS app development team has been using this development kit for the past three years, and we plan future apps to use AppDevKit as well. Our use of this code in many apps helped improve its stability and utility. We find these libraries help address some incompatibility issues found in different iOS versions, and overall make app development easier and our apps operate more consistently.

AppDevKit has five major parts that include command, user interfaces, animations, image view, and list view support libraries. AppDevKit could be installed by CocoaPods. Please feel welcome to use AppDevKit in your iOS projects as it is licensed under the permissive open source BSD license.

You can help contribute improvements to this project too. If you have suggestions, corrections, or enhancements, please send us a pull request. If you have questions for the team, you can contact [email protected] directly, or the core team at [email protected]. Thank you for checking this out.

Usage

Installation with CocoaPods

The easiest way to leverage AppDevKit is using CocoaPods. Please edit your Podfile like this:

source 'https://github.com/CocoaPods/Specs.git'  

pod 'AppDevKit'

AppDevKit has 5 sub-pods. They're AppDevCommonKit, AppDevUIKit, AppDevAnimateKit, AppDevImageKit and AppDevListViewKit. If you don't want to install whole package, you could pick sub-library and use CocoaPods to install it. For example:

source 'https://github.com/CocoaPods/Specs.git'  

# Only insatll image kit in AppDevKit
pod 'AppDevKit/AppDevImageKit'

Basic Usage

Using this develop kit is very simple. First at all, import it in your any code file or just put it in prefix file (.pch). Then you will enjoy this develop kit.

#import <AppDevKit.h>

Common Tools

  • ADKAppUtil > The foundational tools to support common tasks.
  • ADKStringHelper > The string formatter that will generate formatted strings form date, number and etc for you.
  • ADKCalculatorHelper > The calculation set including distance, size, width, height, etc.
  • ADKNibCacheManager > The manager to cache different instances in memory and keep it as a singleton.
  • UIView+ADKGetUIViewController > Supports get any view's UIViewController.
  • UIColor+ADKHexPresentation > Supports HEX color format and color shift.
  • ADKViewExclusiveTouch > Supports exclusive touch on each sub views.

UI Tools

  • UIView+ADKAutoLayoutSupport > Supports command autolayout features.  - UIScrollView+ADKPullToRefreshView > Supports pull to refresh feature on scrollable view. For example: UIScrollView, UITableView and UICollectionView.  - UIScrollView+ADKInfiniteScrollingView > Supports infinite scrolling feature on scrollable view. For example: UIScrollView, UITableView and UICollectionView.
  • ADKModalMaskView > Providing a way to create a modal view for presenting specific view.
  • ADKGradientView > Creating a simple linear gradient view with orientations for you.
  • ADKMultiGradientView > Creating a complicated linear gradient view with orientations for you.
  • ADKDashedLineView > Creates a dashed line around your view.

Animation Tools

 - UIView+ADKAnimationMacro > Gives some simple animation behavior for specific UIView.

Image Tools

 - UIImage+ADKColorReplacement > Supports color changing / replacement feature on UIImage.  - UIImage+ADKImageFilter > Supports image FX, resize, crop, etc. on UIImage.

  • UIImage+ADKDrawingTemplate > Supports loss less image from a PDF source.

ListView Tools

  • UICollectionView+ADKOperation > Supports force stop scrolling in collection view.
  • ADKNibSizeCalculator > Provides correct cell size for different devices effectively.  - ADKCellDynamicSizeCalculator > Calculates dynamic cell with and height for UICollectionViewCell and UITableViewCell.  - ADKCollectionViewDynamicSizeCell > Base UICollectionViewCell supports dynamic width and height features.  - ADKTableViewDynamicSizeCell > Base UITableViewCell supports dynamic width and height features.

Camera Tools

  • ADKCamera > Allows you to use advanced manual camera features and customize your camera view in few steps.
  • ADKOpenGLImageView > It provides an OpenGL ES soltion for rendering a core image on the screen by using GPU.
  • ADKMetalImageView > It provides an Metal framework soltion for rendering a core image on the screen by using GPU.

Instruction

License

This software is free to use under the Yahoo! Inc. BSD license. See the LICENSE for license text and copyright information.

You might also like...
App in Swift that shows a picture of an astronomical phenomenon and a brief explanation of it everyday, allowing you to save that data or share it on a social network.

DailyUniverse 👷‍♂️ 🛠 App under construction iOS App that shows a picture of an astronomical phenomenon and a brief explanation of it everyday. Daily

GraphQLite is a toolkit to work with GraphQL servers easily. It also provides several other features to make life easier during iOS application development.
GraphQLite is a toolkit to work with GraphQL servers easily. It also provides several other features to make life easier during iOS application development.

What is this? GraphQLite is a toolkit to work with GraphQL servers easily. It also provides several other features to make life easier during iOS appl

A quick and "lean" way to swizzle methods for your Objective-C development needs.

Swizzlean A quick and "lean" way to swizzle methods for your Objective-C development needs. Adding Swizzlean to your project Cocoapods CocoaPods is th

Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)
Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)

Perfect: Server-Side Swift 简体中文 Perfect: Server-Side Swift Perfect is a complete and powerful toolbox, framework, and application server for Linux, iO

Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)
Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)

Perfect: Server-Side Swift 简体中文 Perfect: Server-Side Swift Perfect is a complete and powerful toolbox, framework, and application server for Linux, iO

Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)

Perfect: Server-Side Swift 简体中文 Perfect: Server-Side Swift Perfect is a complete and powerful toolbox, framework, and application server for Linux, iO

SuggestionsKit is a framework for iOS that was created in order to provide developers with the opportunity to educate users on various features of applications.
SuggestionsKit is a framework for iOS that was created in order to provide developers with the opportunity to educate users on various features of applications.

SuggestionsKit is a framework for iOS that was created in order to provide developers with the opportunity to educate users

 Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state.
Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state.

Prephirences - Preϕrences Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, co

Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state. UserDefaults
Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state. UserDefaults

Prephirences - Preϕrences Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, co

InstagramLogin allows iOS developers to authenticate users by their Instagram accounts.
InstagramLogin allows iOS developers to authenticate users by their Instagram accounts.

InstagramLogin handles all the Instagram authentication process by showing a custom UIViewController with the login page and returning an access token that can be used to request data from Instagram.

An iOS pre-permissions utility that lets developers ask users on their own dialog for calendar, contacts, location, photos, reminders, twitter, push notifications and more, before making the system-based permission request.

An iOS pre-permissions utility that lets developers ask users on their own dialog for calendar, contacts, location, photos, reminders, twitter, push notifications and more, before making the system-based permission request.

Cluster's reusable pre-permissions utility that lets developers ask the users on their own dialog for photos or contacts access, before making the system-based request.
Cluster's reusable pre-permissions utility that lets developers ask the users on their own dialog for photos or contacts access, before making the system-based request.

Cluster's reusable pre-permissions utility that lets developers ask the users on their own dialog for photos or contacts access, before making the system-based request. This is based on the Medium post by Cluster describing the different ways to ask for iOS permissions (https://medium.com/p/96fa4eb54f2c).

Virgil Core SDK allows developers to get up and running with Virgil Cards Service API quickly and add end-to-end security to their new or existing digital solutions to become HIPAA and GDPR compliant and more.
Virgil Core SDK allows developers to get up and running with Virgil Cards Service API quickly and add end-to-end security to their new or existing digital solutions to become HIPAA and GDPR compliant and more.

Virgil Core SDK Objective-C/Swift Introduction | SDK Features | Installation | Configure SDK | Usage Examples | Docs | Support Introduction Virgil Sec

Since Facebook introduced reactions in 2016, it became a standard in several applications as a way for users to interact with content. ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.  ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.
ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Since Facebook introduced reactions in 2016, it became a standard in several applications as a way for users to interact with content. ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

UI framework that allows developers to integrate an amazing selection interface into their applications

UI framework that allows developers to integrate an amazing selection interface into their applications! Each bubble has a set of parameters, which could be configured individually.

FlexibleImage is implemented with the hope that anyone could easily develop an app that provides features such as Camera Filter and Theme.
FlexibleImage is implemented with the hope that anyone could easily develop an app that provides features such as Camera Filter and Theme.

FlexibleImage is implemented with the hope that anyone could easily develop an app that provides features such as Camera Filter and Theme. When you wr

Luminous provides you a lot of information about the system and a lot of handy methods to quickly get useful data on the iOS platform.
Luminous provides you a lot of information about the system and a lot of handy methods to quickly get useful data on the iOS platform.

Luminous Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 8+ Swift 5 Xcode 1

Luminous provides you a lot of information about the system and a lot of handy methods to quickly get useful data on the iOS platform.
Luminous provides you a lot of information about the system and a lot of handy methods to quickly get useful data on the iOS platform.

Luminous Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 8+ Swift 5 Xcode 1

Comments
  • ADKOpenGLImageView

    ADKOpenGLImageView

    Hi, thank you for the awesome AppDevKit. According to the speak at MOPCON 2017 - AppDevKit x CameraKit The ADKOpenGLImageView seems to be the rescue for the image rendering performance, will it be available soon ? Thank you

    opened by moonorblue 3
Releases(1.6.0)
  • 1.6.0(Feb 18, 2020)

    This release contains few significant upgrade and recommend to migrate to this version. The changes are below:

    • Adding a new ADKMetalImageView to support Metal framework. It can be used for CIImage instance and render view very fast with GUP clips.

    • Adding ADKHexString compatible of UIColor to support different HEX color formate. EX: 0xFFAA33 and FFAA33.

    • Adding the UIColor support for extended SRGB color space.

    • Fixing the issues that ADKGradientView and ADKMultiGradientView won't display gradient color correctly when setting color contains transparent alpha channel.

    • Fixing the crash issue when PullToRefresh and InfiniteScrolling are using in the same UIScrollView. It would miss the paired removeObserver: method call.

    Source code(tar.gz)
    Source code(zip)
  • 1.5.0(Feb 1, 2019)

    #90 Creating a complicated linear gradient view with orientations for you. Enhancing ADKGradientView with redraw method. #87 ADKGradientView supports UI adjustment in InterfaceBuilder.

    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Jun 26, 2018)

    Adding a new method to support manual update layout in UIScrollView+ADKInfiniteScrollingView. It allows you to modify UIScrollView's contentInsets dynamically.

    #82 New method ADKUpdateInfiniteScrollingLayout to support manual layout updating.

    Source code(tar.gz)
    Source code(zip)
  • 1.3.1(Mar 14, 2018)

  • 1.3.0(Feb 2, 2018)

    For this major release that includes several significant fixing and update. We're highly recommend to upgrade AppDevKit to this version. Below are key updates.

    • fixing some bugs in ADKNibCacheManager, ADKCellDynamicSizeCalculator and etc.
    • #67 Adding ADKOpenGLImageView to provides OpenGL rendering solution for CameraKit.
    • #65 Adding color transfer methods for ARGB, GBRA in UIColor.
    Source code(tar.gz)
    Source code(zip)
  • 1.2.2(Aug 31, 2017)

    The iOS 11 changes navigationBar's layout rules. It would trigger incorrect layout if you compile your project by XCode 9 and run it on iOS 11. Please upgrade this version if you're using ADKPullToRefresh mechanism.

    #59 Fix Pull-To_Refreash on iOS 11

    Source code(tar.gz)
    Source code(zip)
  • 1.2.1(Aug 25, 2017)

    We fixed the problem of final image result with wrong mirror setting after users switch camera lens from front to rear or rear to front. #56 Fixing flip camera lens issue

    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Jul 12, 2017)

    We extended CameraKit to support live video data feature. When you use CameraKit to implement a camera, CameraKit has the capability that allows you to do the real-time image analysis.
    #52 Adding a live video data delegate to handle real-time camera image data.

    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Jul 6, 2017)

    We fixed a bug in UIView+ADKAutoLayoutSupport and also add a new example to teach users how to use CameraKit to create a simple camera app. #46 Fix logic error in UIView+ADKAutoLayoutSupport. #48 Adding a demo sample for CameraKit.

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(May 10, 2017)

    #40 Merging CameraKit into AppDevkit to cover camera controlling features. The CameraKit is a powerful kit that allows you use high-level APIs to control advanced manual camera features. You also can customize your camera view in your app.

    Source code(tar.gz)
    Source code(zip)
  • 1.0.3(Nov 7, 2016)

  • 1.0.2(Jul 26, 2016)

  • 1.0.1(Jun 20, 2016)

  • 1.0.0(Jun 14, 2016)

Owner
Yahoo
This organization is the home to many of the active open source projects published by engineers at Yahoo Inc.
Yahoo
An iOS app decrypter, full static using fouldecrypt.

Iridium An iOS app decrypter, full static using fouldecrypt. Supporting iOS 13+ Note We have built everything into the package, you can install and fl

Lakr Aream 226 Dec 24, 2022
Automatically build and rebuild Xcode image catalogs for app icons, universal images, and more

Better asset workflow for iOS developers. Generate Xcode image catalogs for iOS / OSX app icons, universal images, and more.

Dotan J. Nahum 822 Dec 21, 2022
Command line program that detects unused resource strings in an iOS or OS X application.

Abandoned Resource String Detection This command line program detects unused resource strings in an iOS or OS X application. Updated to Swift 3, thank

Josh Smith 360 Nov 26, 2022
All new design. Inspect your iOS application at runtime.

Peek: All new design Peek 5 with an all new design and all new features. Whether you're a developer, designer or QA/tester, Peek can help you at all s

Shaps 2.6k Dec 17, 2022
Build native iOS, Android, and Web apps with Capacitor and Remix.run 💿

This repository holds production ready Capacitor templates for building native mobile applications using Remix. Using Capacitor, you can quickly build out a native mobile application for iOS and Android using web technology, such as Remix.

Ionic 70 Dec 30, 2022
SharedImages Screen grabs Main Features Private & self-owned social media Users store their images in their own cloud storage (Dropbox or Google Drive

SharedImages Screen grabs Main Features Private & self-owned social media Users store their images in their own cloud storage (Dropbox or Google Drive

Christopher Prince 12 Feb 10, 2022
Provides an iOS view controller allowing a user to draw their signature with their finger in a realistic style.

Swift version now available! Mimicking pen-on-paper signatures with a touch screen presents a difficult set of challenges. The rate touch events are e

Uber Open Source 1.3k Jan 6, 2023
Allows users to pull in new song releases from their favorite artists and provides users with important metrics like their top tracks, top artists, and recently played tracks, queryable by time range.

Spotify Radar Spotify Radar is an iOS application that allows users to pull in new song releases from their favorite artists and provides users with i

Kevin Li 630 Dec 13, 2022
Perspective is a friendly charting iOS App for your everyday use.

Perspective Perspective is a friendly charting iOS App for your everyday use. Nowadays, Data is everywhere, and we tend to feel like we have a picture

Csaba Kuti 1 Dec 20, 2021