Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
hackiftekhar authored Aug 14, 2024
1 parent efe5008 commit c52cc8b
Showing 1 changed file with 56 additions and 8 deletions.
64 changes: 56 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,67 @@
<p align="center">
<img src="https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Demo/Resources/icon.png" alt="Icon"/>
<img src="https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/Social.png" alt="Icon"/>
</p>
<H1 align="center">IQKeyboardManager</H1>
<p align="center">
<img src="https://img.shields.io/github/license/hackiftekhar/IQKeyboardManager.svg"
alt="GitHub license"/>


[![LICENSE.md](https://img.shields.io/github/license/hackiftekhar/IQKeyboardManager.svg)]([https://travis-ci.org/hackiftekhar/IQKeyboardManager](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/LICENSE.md))
[![Build Status](https://travis-ci.org/hackiftekhar/IQKeyboardManager.svg)](https://travis-ci.org/hackiftekhar/IQKeyboardManager)


## Big updates are coming soon

#### Thank You All!
It's been 11 years since it's first release in 2013. The library has grown a lot and we have added many new features since then.

#### Motivation
Recently while working on bug fixes, I realized that in 2013 there were only 2 files IQKeyboardManager.{h,m} in Objective-C version, while now in Swift version there are 50+ files which makes the debugging a lot difficult than before. Also some of the features are rarely used in apps.

#### New Idea
I realized that some of the features of library are not tightly linked to each other and can be moved out of the library easily. For Example:-
- IQTextView clas
- IQKeyboardListener class
- IQTextFieldViewListener class
- IQReturnKeyHandler class
- Toolbar related features like IQToolbar and IQBarButtonItem and their support classes.

Moving above things out of the library will make the library more lightweight and user can plug-in or plug-out features as per their needs.

#### Action Plan
I have decided to move loosly linked features to out of the library, and publish them to their separate github repo, and use them dependencies separately as per requirements.

Below are the action plans
- [x] Publish [IQKeyboardCore](https://github.com/hackiftekhar/IQKeyboardCore)
- This contains necessary classes and functions to be used by IQKeyboardManager related libraries. Please note that you shouldn't directly install this as dependency
- [x] Publish [IQTextView](https://github.com/hackiftekhar/IQTextView)
- This is purely separated a separated library now.
- This usually used for showing placeholder in UITextView
- [x] Publish [IQKeyboardReturnManager](https://github.com/hackiftekhar/IQKeyboardReturnManager)
- This is a renamed of `IQReturnKeyHandler`. This is also separated from the library and can be used independently.
- This depends on `IQKeyboardCore` for `TextInputView` type confirmation.
- [x] Publish [IQTextInputViewNotification](https://github.com/hackiftekhar/IQTextInputViewNotification)
- This is a renamed of `IQTextFieldViewListener`. This can be used independently to subscribe/unsubscribe for UITextView/UITextField beginEditing/endEditing events.
- This depends on the `IQKeyboardCore` to add some additional customized features for UITextView/UITextField.
- [x] Publish [IQKeyboardToolbar](https://github.com/hackiftekhar/IQKeyboardToolbar)
- This contains toolbar related classes like IQKeyboardToolbar, IQBarButtonItem, IQTitleBarButtonItems, their configuration classes and other useful functions to add toolbar in keyboard. This can be used independently to add toolbar in keyboard.
- This depends on the `IQKeyboardCore` to add some additional customized features for UITextView/UITextField.
- [x] Publish [IQKeyboardToolbarManager](https://github.com/hackiftekhar/IQKeyboardToolbarManager)
- This is something similar to IQKeyboardManager. This has been moved out of the library as a huge update.
- This depends on the `IQTextInputViewNotification` to know which textField is currently in focus.
- This depends on the `IQKeyboardToolbar` to add/remove toolbars over keyboard.
- [x] Publish [IQKeyboardNotification](https://github.com/hackiftekhar/IQKeyboardNotification)
- This is a renamed of `IQKeyboardListener`. This can be used independently to subscribe/unsubscribe for keyboard events.
- [x] Publish [IQKeyboardManager](https://github.com/hackiftekhar/IQKeyboardManager) 7.2.0 for all the current support without any compilation error but by deprecating most of the things which are moved out of the library.
- This now only contains functions for handling distance between UITextView/UITextField and their useful functions.
- This depends on the `IQKeyboardNotification` to get keyboard notification callbacks.
- This depends on the `IQTextInputViewNotification` to know which textField is currently in focus.
- Now there are also subspecs like `IQKeyboardManagerSwift/Appearance`, `IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler`, `IQKeyboardManagerSwift/IQKeyboardToolbarManager`, `IQKeyboardManagerSwift/IQKeyboardToolbarManager/IQKeyboardToolbar`, `IQKeyboardManagerSwift/IQTextView` , `IQKeyboardManagerSwift/Resign`.
- [ ] Bug fixes which may have arrived due to the library segregation.
- We need your support on this one.
- [ ] Publish [IQKeyboardManager](https://github.com/hackiftekhar/IQKeyboardManager) 8.0.0 by marking deprecated classes as unavailable.
- In this release we will be removing all the deprecated classes and marking some of them as unavailable for easier migration.

## Introduction
While developing iOS apps, we often run into issues where the iPhone keyboard slides up and covers the `UITextField/UITextView`. `IQKeyboardManager` allows you to prevent this issue of keyboard sliding up and covering `UITextField/UITextView` without needing you to write any code or make any additional setup. To use `IQKeyboardManager` you simply need to add source files to your project.


#### Key Features
## Key Features

1) `One Lines of Code`

Expand Down

0 comments on commit c52cc8b

Please sign in to comment.